blob: 82bef4dff9734005f2192733012f59a07ab4a925 [file] [log] [blame]
# 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"
}