build: Update www-plugins/adobe-flash to 10.3.181.26.

The old version that was being built for -generic boards,
10.2.159.1, looks like it's no longer available for
download.

BUG=none
TEST=manual: emerged it successfully

Change-Id: I8c9bf5f1afe2a19c20b0c1be8e05cdddd37aa978
Reviewed-on: http://gerrit.chromium.org/gerrit/2768
Reviewed-by: Simon Que <sque@chromium.org>
Tested-by: Daniel Erat <derat@chromium.org>
(cherry picked from commit 539240127b138875aa73beabb51e7dcec6aba833)
Reviewed-on: http://gerrit.chromium.org/gerrit/4407
Reviewed-by: Nick Sanders <nsanders@chromium.org>
Tested-by: David James <davidjames@chromium.org>
diff --git a/profiles/targets/chromeos/package.mask b/profiles/targets/chromeos/package.mask
index 50bc14b..d9a541e 100644
--- a/profiles/targets/chromeos/package.mask
+++ b/profiles/targets/chromeos/package.mask
@@ -59,8 +59,8 @@
 # Avoid using old known-vulnerable versions.  Upstream also installs the
 # plugin to a different place than where the chromeos-chrome ebuild expects
 # to find it, so ensure that we don't start using newer upstream versions.
-<www-plugins/adobe-flash-10.2.159.1
->www-plugins/adobe-flash-10.2.159.1
+<www-plugins/adobe-flash-10.3.181.26
+>www-plugins/adobe-flash-10.3.181.26
 
 # Masked old packages that had old ${PV} numbering scheme
 >=app-i18n/ibus-mozc-29
diff --git a/www-plugins/adobe-flash/adobe-flash-10.3.181.26.ebuild b/www-plugins/adobe-flash/adobe-flash-10.3.181.26.ebuild
new file mode 100644
index 0000000..8e8f86b
--- /dev/null
+++ b/www-plugins/adobe-flash/adobe-flash-10.3.181.26.ebuild
@@ -0,0 +1,165 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/www-plugins/adobe-flash/adobe-flash-10.2.159.1.ebuild,v 1.3 2011/04/20 19:08:42 angelos Exp $
+
+EAPI=1
+inherit nsplugins rpm multilib toolchain-funcs
+
+MY_32B_URI="http://fpdownload.macromedia.com/get/flashplayer/current/flash-plugin-${PV}-release.i386.rpm"
+
+DESCRIPTION="Adobe Flash Player"
+SRC_URI="${MY_32B_URI}"
+HOMEPAGE="http://www.adobe.com/"
+IUSE="vdpau"
+SLOT="0"
+
+KEYWORDS="-* amd64 x86"
+LICENSE="AdobeFlash-10.1"
+RESTRICT="strip mirror"
+
+S="${WORKDIR}"
+
+# >glibc-2.4 dependency is removed to workaround bug in gmerge.
+# See http://crosbug.com/9991
+NATIVE_DEPS="x11-libs/gtk+:2
+	media-libs/fontconfig
+	dev-libs/nss
+	net-misc/curl
+	vdpau? ( x11-libs/libvdpau )"
+
+EMUL_DEPS="vdpau? ( >=app-emulation/emul-linux-x86-xlibs-20110129 )
+	>=app-emulation/emul-linux-x86-gtklibs-20100409-r1
+	app-emulation/emul-linux-x86-soundlibs"
+
+DEPEND="amd64? ( www-plugins/nspluginwrapper )"
+RDEPEND="x86? ( $NATIVE_DEPS )
+	amd64? ( $EMUL_DEPS )
+	|| ( media-fonts/liberation-fonts media-fonts/corefonts )
+	${DEPEND}"
+
+# Chromium expects that flash is installed to /opt/netscape/plugins.
+INSTALL_BASE="opt/netscape/plugins"
+
+# Ignore QA warnings in these binary closed-source libraries, since we can't fix
+# them:
+QA_EXECSTACK="${INSTALL_BASE}32/libflashplayer.so
+	${INSTALL_BASE}/libflashplayer.so"
+
+QA_DT_HASH="${INSTALL_BASE}32/libflashplayer.so
+	${INSTALL_BASE}/libflashplayer.so"
+
+pkg_setup() {
+	if use x86; then
+		export native_install=1
+	elif use amd64; then
+		# As of 10.1, no more native 64b version *grumble grumble*
+		unset native_install
+		unset need_lahf_wrapper
+		export amd64_32bit=1
+	fi
+}
+
+src_compile() {
+	if [[ $need_lahf_wrapper ]]; then
+		# This experimental wrapper, from Maks Verver via bug #268336 should
+		# emulate the missing lahf instruction affected platforms.
+		$(tc-getCC) -fPIC -shared -nostdlib -lc -oflashplugin-lahf-fix.so \
+			"${FILESDIR}/flashplugin-lahf-fix.c" \
+			|| die "Compile of flashplugin-lahf-fix.so failed"
+	fi
+}
+
+src_install() {
+	if [[ $native_install ]]; then
+		# 32b RPM has things hidden in funny places
+		use x86 && pushd "${S}/usr/lib/flash-plugin"
+
+		exeinto /${INSTALL_BASE}
+		doexe libflashplayer.so
+		inst_plugin /${INSTALL_BASE}/libflashplayer.so
+
+		use x86 && popd
+
+		# 64b tarball has no readme file.
+		use x86 && dodoc "${S}/usr/share/doc/flash-plugin-${PV}/readme.txt"
+	fi
+
+	if [[ $need_lahf_wrapper ]]; then
+		# This experimental wrapper, from Maks Verver via bug #268336 should
+		# emulate the missing lahf instruction affected platforms.
+		exeinto /${INSTALL_BASE}
+		doexe flashplugin-lahf-fix.so
+		inst_plugin /${INSTALL_BASE}/flashplugin-lahf-fix.so
+	fi
+
+	if [[ $amd64_32bit ]]; then
+		local oldabi="${ABI}"
+		ABI="x86"
+
+		# 32b plugin
+		pushd "${S}/usr/lib/flash-plugin"
+			exeinto /${INSTALL_BASE}32
+			doexe libflashplayer.so
+			inst_plugin /${INSTALL_BASE}32/libflashplayer.so
+			dodoc "${S}/usr/share/doc/flash-plugin-${PV}/readme.txt"
+		popd
+
+		ABI="${oldabi}"
+	fi
+
+	# The magic config file!
+	insinto "/etc/adobe"
+	doins "${FILESDIR}/mms.cfg"
+}
+
+pkg_postinst() {
+	if use amd64; then
+		elog "Adobe has no stable 64-bit native version at this time. The beta"
+		elog "64-bit native release (codenamed \"square\") is installed as part"
+		elog "of the unstable testing version of this package:"
+		elog "  ${CATEGORY}/${P}_p...."
+		elog
+		if has_version 'www-plugins/nspluginwrapper'; then
+			if [[ $native_install ]]; then
+				# Note: This code branch is dead (no native 64-bit flash player
+				# available yet for 10.1), but I'm keeping it around in the hope
+				# that some day it will be back...
+				#  - Jim Ramsay <lack@gentoo.org>
+
+				# TODO: Perhaps parse the output of 'nspluginwrapper -l'
+				#       However, the 64b flash plugin makes
+				#       'nspluginwrapper -l' segfault.
+				local FLASH_WRAPPER="${ROOT}/usr/lib64/nsbrowser/plugins/npwrapper.libflashplayer.so"
+				if [[ -f ${FLASH_WRAPPER} ]]; then
+					einfo "Removing duplicate 32-bit plugin wrapper: Native 64-bit plugin installed"
+					nspluginwrapper -r "${FLASH_WRAPPER}"
+				fi
+				if [[ $need_lahf_wrapper ]]; then
+					ewarn "Your processor does not support the 'lahf' instruction which is used"
+					ewarn "by Adobe's 64-bit flash binary.  We have installed a wrapper which"
+					ewarn "should allow this plugin to run.  If you encounter problems, please"
+					ewarn "adjust your USE flags to install only the 32-bit version and reinstall:"
+					ewarn "  ${CATEGORY}/$PN[+32bit -64bit]"
+					elog
+				fi
+			else
+				einfo "nspluginwrapper detected: Installing plugin wrapper"
+				local oldabi="${ABI}"
+				ABI="x86"
+				local FLASH_SOURCE="${ROOT}/${INSTALL_BASE}32/libflashplayer.so"
+				nspluginwrapper -i "${FLASH_SOURCE}"
+				ABI="${oldabi}"
+				elog
+			fi
+		elif [[ ! $native_install ]]; then
+			elog "To use the 32-bit flash player in a native 64-bit firefox,"
+			elog "you must install www-plugins/nspluginwrapper."
+			elog
+		fi
+	fi
+
+	ewarn "Flash player is closed-source, with a long history of security"
+	ewarn "issues.  Please consider only running flash applets you know to"
+	ewarn "be safe.  The 'flashblock' extension may help for mozilla users:"
+	ewarn "  https://addons.mozilla.org/en-US/firefox/addon/433"
+}