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