+++ /dev/null
-# Copyright 1999-2015 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-
-EAPI=5
-inherit nsplugins toolchain-funcs versionator multilib multilib-minimal
-
-DESCRIPTION="Adobe Flash Player"
-HOMEPAGE="
- http://www.adobe.com/products/flashplayer.html
- http://get.adobe.com/flashplayer/
-"
-
-AF_URI="http://fpdownload.macromedia.com/get/flashplayer/pdc"
-AF_DB_URI="http://fpdownload.macromedia.com/pub/flashplayer/updaters"
-PV_M=$(get_major_version)
-AF_32_URI="${AF_URI}/${PV}/install_flash_player_${PV_M}_linux.i386.tar.gz -> ${P}.i386.tar.gz"
-AF_64_URI="${AF_URI}/${PV}/install_flash_player_${PV_M}_linux.x86_64.tar.gz -> ${P}.x86_64.tar.gz"
-AF_32_DB_URI="${AF_DB_URI}/${PV_M}/flashplayer_${PV_M}_plugin_debug.i386.tar.gz -> ${P}-debug.i386.tar.gz"
-
-SRC_URI="
- abi_x86_32? (
- !debug? ( ${AF_32_URI} )
- debug? ( ${AF_32_DB_URI} )
- )
- abi_x86_64? ( ${AF_64_URI} )
-"
-IUSE="debug kde selinux cpu_flags_x86_sse2"
-REQUIRED_USE="
- cpu_flags_x86_sse2
- debug? ( abi_x86_32 )
- || ( abi_x86_64 abi_x86_32 )
-"
-SLOT="0"
-
-KEYWORDS="-* amd64 x86"
-LICENSE="AdobeFlash-11.x"
-RESTRICT="strip mirror"
-
-S="${WORKDIR}"
-
-NATIVE_DEPS="
- dev-libs/atk
- dev-libs/glib:2
- dev-libs/nspr
- dev-libs/nss
- kde? (
- dev-qt/qtcore:4
- dev-qt/qtdbus:4
- dev-qt/qtgui:4
- dev-qt/qtsvg:4
- kde-base/kdelibs
- x11-libs/libICE
- x11-libs/libSM
- x11-libs/libXau
- x11-libs/libXdmcp
- x11-libs/libXext
- x11-libs/libXft
- x11-libs/libXpm
- )
- media-libs/fontconfig
- media-libs/freetype
- >=sys-libs/glibc-2.4
- x11-libs/cairo
- x11-libs/gdk-pixbuf
- x11-libs/gtk+:2
- x11-libs/libX11
- x11-libs/libXcursor
- x11-libs/libXext
- x11-libs/libXrender
- x11-libs/libXt
- x11-libs/pango
-"
-
-DEPEND="
- amd64? ( abi_x86_32? ( !abi_x86_64? ( www-plugins/nspluginwrapper ) ) )
-"
-RDEPEND="
- ${DEPEND}
- abi_x86_64? ( ${NATIVE_DEPS} )
- abi_x86_32? (
- amd64? (
- >=dev-libs/atk-2.10.0[abi_x86_32(-)]
- >=dev-libs/glib-2.34.3:2[abi_x86_32(-)]
- >=dev-libs/nspr-4.10.4[abi_x86_32(-)]
- >=dev-libs/nss-3.15.4[abi_x86_32(-)]
- >=media-libs/fontconfig-2.10.92[abi_x86_32(-)]
- >=media-libs/freetype-2.5.0.1[abi_x86_32(-)]
- >=x11-libs/cairo-1.12.14-r4[abi_x86_32(-)]
- >=x11-libs/gdk-pixbuf-2.30.7[abi_x86_32(-)]
- >=x11-libs/gtk+-2.24.23:2[abi_x86_32(-)]
- >=x11-libs/libX11-1.6.2[abi_x86_32(-)]
- >=x11-libs/libXcursor-1.1.14[abi_x86_32(-)]
- >=x11-libs/libXext-1.3.2[abi_x86_32(-)]
- >=x11-libs/libXrender-0.9.8[abi_x86_32(-)]
- >=x11-libs/libXt-1.1.4[abi_x86_32(-)]
- >=x11-libs/pango-1.36.3[abi_x86_32(-)]
- )
- x86? ( ${NATIVE_DEPS} )
- )
- || ( media-fonts/liberation-fonts media-fonts/corefonts )
- selinux? ( sec-policy/selinux-flash )
-"
-
-# Ignore QA warnings in these closed-source binaries, since we can't fix them:
-QA_PREBUILT="usr/*"
-
-any_cpu_missing_flag() {
- local value=${1}
- grep '^flags' /proc/cpuinfo | grep -qv "${value}"
-}
-
-pkg_setup() {
- unset need_lahf_wrapper
- if use abi_x86_64 && any_cpu_missing_flag 'lahf_lm'; then
- export need_lahf_wrapper=1
- fi
-}
-
-src_unpack() {
- local files=( ${A} )
-
- multilib_src_unpack() {
- mkdir -p "${BUILD_DIR}" || die
- cd "${BUILD_DIR}" || die
-
- # we need to filter out the other archive(s)
- local other_abi
- [[ ${ABI} == amd64 ]] && other_abi=i386 || other_abi=x86_64
- unpack ${files[@]//*${other_abi}*/}
- }
-
- multilib_parallel_foreach_abi multilib_src_unpack
-}
-
-src_configure() { :; }
-
-multilib_src_compile() {
- if [[ ${ABI} == amd64 && ${need_lahf_wrapper} ]]; then
- # This experimental wrapper, from Maks Verver via bug #268336 should
- # emulate the missing lahf instruction affected platforms.
- set -- $(tc-getCC) -fPIC -shared -nostdlib -lc \
- -oflashplugin-lahf-fix.so "${FILESDIR}/flashplugin-lahf-fix.c"
- echo "${@}" >&2
- "${@}" || die "Compile of flashplugin-lahf-fix.so failed"
- fi
-}
-
-multilib_src_install() {
- # PLUGINS_DIR comes from nsplugins.eclass
- exeinto /usr/$(get_libdir)/${PLUGINS_DIR}
- doexe libflashplayer.so
-
- if [[ ${ABI} == amd64 && ${need_lahf_wrapper} ]]; then
- # This experimental wrapper, from Maks Verver via bug #268336 should
- # emulate the missing lahf instruction affected platforms.
- doexe flashplugin-lahf-fix.so
- fi
-
- if multilib_is_native_abi; then
- if use kde; then
- local pkglibdir=lib
- [[ -d usr/lib64 ]] && pkglibdir=lib64
-
- exeinto /usr/$(get_libdir)/kde4
- doexe usr/${pkglibdir}/kde4/kcm_adobe_flash_player.so
- insinto /usr/share/kde4/services
- doins usr/share/kde4/services/kcm_adobe_flash_player.desktop
- else
- # No KDE applet, so allow the GTK utility to show up in KDE:
- sed -i usr/share/applications/flash-player-properties.desktop \
- -e "/^NotShowIn=KDE;/d" || die "sed of .desktop file failed"
- fi
-
- # The userland 'flash-player-properties' standalone app:
- dobin usr/bin/flash-player-properties
-
- # Icon and .desktop for 'flash-player-properties'
- insinto /usr/share
- doins -r usr/share/{icons,applications}
- dosym ../icons/hicolor/48x48/apps/flash-player-properties.png \
- /usr/share/pixmaps/flash-player-properties.png
- fi
-
- # The magic config file!
- insinto "/etc/adobe"
- doins "${FILESDIR}/mms.cfg"
-}
-
-unregister_pluginwrapper() {
- # TODO: Perhaps parse the output of 'nspluginwrapper -l'
- # TODO: However, the 64b flash plugin makes
- # TODO: 'nspluginwrapper -l' segfault.
- local FLASH_WRAPPER="${ROOT}/usr/lib64/${PLUGINS_DIR}/npwrapper.libflashplayer.so"
- if has_version 'www-plugins/nspluginwrapper' && [[ -f ${FLASH_WRAPPER} ]]; then
- einfo "Removing 32-bit plugin wrapper"
- nspluginwrapper -r "${FLASH_WRAPPER}"
- fi
-}
-
-pkg_postinst() {
- if use amd64 ; then
- 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}[abi_x86_32,-abi_x86_64]"
- elog
- fi
- # needed to clean up upgrades from older installs
- if use abi_x86_64 && [[ -n ${REPLACING_VERSIONS} ]]; then
- unregister_pluginwrapper
- fi
- if has_version 'www-plugins/nspluginwrapper'; then
- if use abi_x86_32 && ! use abi_x86_64; then
- einfo "nspluginwrapper detected: Installing plugin wrapper"
- local oldabi="${ABI}"
- ABI="x86"
- local FLASH_SOURCE="${ROOT}/usr/lib32/${PLUGINS_DIR}/libflashplayer.so"
- nspluginwrapper -i "${FLASH_SOURCE}"
- ABI="${oldabi}"
- fi
- elif use abi_x86_32; then
- elog "To use the 32-bit flash player in a native 64-bit browser,"
- elog "you must install www-plugins/nspluginwrapper"
- fi
- fi
-}
-
-pkg_prerm() {
- use amd64 && use abi_x86_32 && ! use abi_x86_64 && \
- unregister_pluginwrapper
-}