# 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.153.1.ebuild,v 1.5 2011/03/28 12:51:55 lack 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}" NATIVE_DEPS="x11-libs/gtk+:2 media-libs/fontconfig dev-libs/nss net-misc/curl vdpau? ( x11-libs/libvdpau ) >=sys-libs/glibc-2.4" 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}" # Where should this all go? (Bug #328639) INSTALL_BASE="opt/Adobe/flash-player" # 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 released 10.1 in only a 32-bit version and upgrading" elog "is required to close a major security vulnerability:" elog " http://bugs.gentoo.org/322855" 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 # 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}" ewarn "Using adobe-flash-10.1 in a 64-bit browser is unstable:" ewarn " http://bugs.gentoo.org/324365" ewarn "The recommended configuration is to use the 32-bit plugin" ewarn "in a 32-bit browser such as www-client/firefox-bin" 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, though this" elog "configuration is not recommended:" elog " http://bugs.gentoo.org/324365" 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" }