| # Copyright 1999-2010 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.1.53.64.ebuild,v 1.10 2010/07/11 10:46:49 lxnay 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="multilib" |
| SLOT="0" |
| |
| KEYWORDS="-* amd64 x86" |
| LICENSE="AdobeFlash-10.1" |
| RESTRICT="strip mirror" |
| |
| S="${WORKDIR}" |
| |
| # Remove >glibc-2.4 dependency since we use 2.10 from package.provided |
| NATIVE_DEPS="x11-libs/gtk+:2 |
| media-libs/fontconfig |
| dev-libs/nss |
| net-misc/curl" |
| |
| EMUL_DEPS=">=app-emulation/emul-linux-x86-gtklibs-20100409-r1 |
| app-emulation/emul-linux-x86-soundlibs" |
| |
| RDEPEND="x86? ( $NATIVE_DEPS ) |
| amd64? ( $EMUL_DEPS ) |
| || ( media-fonts/liberation-fonts media-fonts/corefonts )" |
| |
| # Ignore QA warnings in these binary closed-source libraries, since we can't fix |
| # them: |
| QA_EXECSTACK="opt/netscape/plugins32/libflashplayer.so |
| opt/netscape/plugins/libflashplayer.so" |
| |
| QA_DT_HASH="opt/netscape/plugins32/libflashplayer.so |
| opt/netscape/plugins/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 /opt/netscape/plugins |
| doexe libflashplayer.so |
| inst_plugin /opt/netscape/plugins/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 /opt/netscape/plugins |
| doexe flashplugin-lahf-fix.so |
| inst_plugin /opt/netscape/plugins/flashplugin-lahf-fix.so |
| fi |
| |
| if [[ $amd64_32bit ]]; then |
| oldabi="${ABI}" |
| ABI="x86" |
| |
| # 32b plugin |
| pushd "${S}/usr/lib/flash-plugin" |
| exeinto /opt/netscape/plugins32/ |
| doexe libflashplayer.so |
| inst_plugin /opt/netscape/plugins32/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 |
| elog "Furthermore, there are stability problems when running 10.1 in a" |
| elog "64-bit browser with nspluginwrapper. The current recommended" |
| elog "configuration is to use a 32-bit browser such as" |
| elog "www-client/firefox-bin:" |
| elog " http://bugs.gentoo.org/324365" |
| elog |
| # Temporarily skip automatic nspluginwrapper stuff, since it is fraught |
| # with peril (Bug #324365): |
| # |
| #if has_version 'www-plugins/nspluginwrapper'; then |
| # if [[ $native_install ]]; then |
| # # 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]" |
| # fi |
| # else |
| # oldabi="${ABI}" |
| # ABI="x86" |
| # local FLASH_SOURCE="${ROOT}/usr/$(get_libdir)/${PLUGINS_DIR}/libflashplayer.so" |
| # |
| # einfo "nspluginwrapper detected: Installing plugin wrapper" |
| # nspluginwrapper -i "${FLASH_SOURCE}" |
| # |
| # ABI="${oldabi}" |
| # fi |
| #elif [[ ! $native_install ]]; then |
| # einfo "To use the 32-bit flash player in a native 64-bit firefox," |
| # einfo "you must install www-plugins/nspluginwrapper" |
| #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" |
| } |