| # 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}" |
| |
| # >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 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 <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}" |
| 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" |
| } |