summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin H. Johnson <robbat2@gentoo.org>2015-08-08 13:49:04 -0700
committerRobin H. Johnson <robbat2@gentoo.org>2015-08-08 17:38:18 -0700
commit56bd759df1d0c750a065b8c845e93d5dfa6b549d (patch)
tree3f91093cdb475e565ae857f1c5a7fd339e2d781e /www-plugins
downloadgentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.gz
gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.bz2
gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.zip
proj/gentoo: Initial commit
This commit represents a new era for Gentoo: Storing the gentoo-x86 tree in Git, as converted from CVS. This commit is the start of the NEW history. Any historical data is intended to be grafted onto this point. Creation process: 1. Take final CVS checkout snapshot 2. Remove ALL ChangeLog* files 3. Transform all Manifests to thin 4. Remove empty Manifests 5. Convert all stale $Header$/$Id$ CVS keywords to non-expanded Git $Id$ 5.1. Do not touch files with -kb/-ko keyword flags. Signed-off-by: Robin H. Johnson <robbat2@gentoo.org> X-Thanks: Alec Warner <antarus@gentoo.org> - did the GSoC 2006 migration tests X-Thanks: Robin H. Johnson <robbat2@gentoo.org> - infra guy, herding this project X-Thanks: Nguyen Thai Ngoc Duy <pclouds@gentoo.org> - Former Gentoo developer, wrote Git features for the migration X-Thanks: Brian Harring <ferringb@gentoo.org> - wrote much python to improve cvs2svn X-Thanks: Rich Freeman <rich0@gentoo.org> - validation scripts X-Thanks: Patrick Lauer <patrick@gentoo.org> - Gentoo dev, running new 2014 work in migration X-Thanks: Michał Górny <mgorny@gentoo.org> - scripts, QA, nagging X-Thanks: All of other Gentoo developers - many ideas and lots of paint on the bikeshed
Diffstat (limited to 'www-plugins')
-rw-r--r--www-plugins/adobe-flash/Manifest3
-rw-r--r--www-plugins/adobe-flash/adobe-flash-11.2.202.491.ebuild234
-rw-r--r--www-plugins/adobe-flash/files/flashplugin-lahf-fix.c29
-rw-r--r--www-plugins/adobe-flash/files/mms.cfg117
-rw-r--r--www-plugins/adobe-flash/metadata.xml11
-rw-r--r--www-plugins/chrome-binary-plugins/Manifest6
-rw-r--r--www-plugins/chrome-binary-plugins/chrome-binary-plugins-44.0.2403.130_p1.ebuild102
-rw-r--r--www-plugins/chrome-binary-plugins/chrome-binary-plugins-45.0.2454.26_beta1.ebuild102
-rw-r--r--www-plugins/chrome-binary-plugins/chrome-binary-plugins-46.0.2471.2_alpha1.ebuild102
-rw-r--r--www-plugins/chrome-binary-plugins/chrome-binary-plugins-9999.ebuild102
-rw-r--r--www-plugins/chrome-binary-plugins/metadata.xml17
-rw-r--r--www-plugins/freshplayerplugin/Manifest1
-rw-r--r--www-plugins/freshplayerplugin/files/0.2.4-cmake.patch59
-rw-r--r--www-plugins/freshplayerplugin/freshplayerplugin-0.3.1-r2.ebuild82
-rw-r--r--www-plugins/freshplayerplugin/metadata.xml14
-rw-r--r--www-plugins/gecko-mediaplayer/Manifest2
-rw-r--r--www-plugins/gecko-mediaplayer/gecko-mediaplayer-1.0.8.ebuild40
-rw-r--r--www-plugins/gecko-mediaplayer/gecko-mediaplayer-1.0.9.ebuild40
-rw-r--r--www-plugins/gecko-mediaplayer/metadata.xml11
-rw-r--r--www-plugins/gnash/Manifest2
-rw-r--r--www-plugins/gnash/files/gnash-0.8.10-amf-include.patch45
-rw-r--r--www-plugins/gnash/files/gnash-0.8.10-boost-1.50.patch24
-rw-r--r--www-plugins/gnash/files/gnash-0.8.10-gettext-macro.patch170
-rw-r--r--www-plugins/gnash/files/gnash-0.8.10-npapi-sdk.patch29
-rw-r--r--www-plugins/gnash/files/gnash-0.8.10_p20120903-bytesfmt.patch32
-rw-r--r--www-plugins/gnash/files/gnash-0.8.10_p20120903-ffmpeg1.patch252
-rw-r--r--www-plugins/gnash/files/gnash-0.8.10_p20120903-libav9.patch85
-rw-r--r--www-plugins/gnash/files/gnash-0.8.11-gettext-macro.patch29
-rw-r--r--www-plugins/gnash/files/gnash-0.8.9-external-dejagnu.patch24
-rw-r--r--www-plugins/gnash/files/gnash-0.8.9-kde4-libdir.patch12
-rw-r--r--www-plugins/gnash/files/gnash-0.8.9-klash.patch12
-rw-r--r--www-plugins/gnash/gnash-0.8.10_p20131019.ebuild284
-rw-r--r--www-plugins/gnash/gnash-0.8.10_p20150316.ebuild281
-rw-r--r--www-plugins/gnash/metadata.xml21
-rw-r--r--www-plugins/google-talkplugin/Manifest8
-rw-r--r--www-plugins/google-talkplugin/google-talkplugin-5.38.6.0.ebuild129
-rw-r--r--www-plugins/google-talkplugin/google-talkplugin-5.4.2.0.ebuild125
-rw-r--r--www-plugins/google-talkplugin/google-talkplugin-5.40.2.0.ebuild127
-rw-r--r--www-plugins/google-talkplugin/google-talkplugin-5.41.0.0.ebuild127
-rw-r--r--www-plugins/google-talkplugin/google-talkplugin-9999.ebuild127
-rw-r--r--www-plugins/google-talkplugin/metadata.xml9
-rw-r--r--www-plugins/kaffeine-mozilla-plugin/Manifest1
-rw-r--r--www-plugins/kaffeine-mozilla-plugin/kaffeine-mozilla-plugin-0.2-r1.ebuild34
-rw-r--r--www-plugins/kaffeine-mozilla-plugin/kaffeine-mozilla-plugin-0.2.ebuild34
-rw-r--r--www-plugins/kaffeine-mozilla-plugin/metadata.xml9
-rw-r--r--www-plugins/kpartsplugin/Manifest1
-rw-r--r--www-plugins/kpartsplugin/files/kpartsplugin-20120723-segfault.patch21
-rw-r--r--www-plugins/kpartsplugin/kpartsplugin-20120723-r1.ebuild22
-rw-r--r--www-plugins/kpartsplugin/kpartsplugin-20120723-r2.ebuild24
-rw-r--r--www-plugins/kpartsplugin/metadata.xml5
-rw-r--r--www-plugins/lightspark/Manifest3
-rw-r--r--www-plugins/lightspark/files/lightspark-0.7.2-ffmpeg20.patch155
-rw-r--r--www-plugins/lightspark/files/lightspark-0.7.2-llvm33.patch103
-rw-r--r--www-plugins/lightspark/lightspark-0.7.1.ebuild108
-rw-r--r--www-plugins/lightspark/lightspark-0.7.2-r1.ebuild108
-rw-r--r--www-plugins/lightspark/lightspark-0.7.2.ebuild108
-rw-r--r--www-plugins/lightspark/lightspark-0.7.2_p20150318.ebuild113
-rw-r--r--www-plugins/lightspark/metadata.xml15
-rw-r--r--www-plugins/metadata.xml28
-rw-r--r--www-plugins/mozplugger/Manifest1
-rw-r--r--www-plugins/mozplugger/metadata.xml8
-rw-r--r--www-plugins/mozplugger/mozplugger-2.1.6.ebuild31
-rw-r--r--www-plugins/nspluginwrapper/Manifest1
-rw-r--r--www-plugins/nspluginwrapper/files/nspluginwrapper-1.3.0-gdk-native-windows.patch13
-rw-r--r--www-plugins/nspluginwrapper/files/nspluginwrapper-1.4.4-compile-on-hardened.patch12
-rw-r--r--www-plugins/nspluginwrapper/files/nspluginwrapper-1.4.4-dont-include-gthread.patch12
-rw-r--r--www-plugins/nspluginwrapper/files/nspluginwrapper-1.4.4-dont-unload-libraries.patch14
-rw-r--r--www-plugins/nspluginwrapper/files/nspluginwrapper-1.4.4-link-to-libdl.patch13
-rw-r--r--www-plugins/nspluginwrapper/files/nspluginwrapper-1.4.4-link-to-libgthread.patch15
-rw-r--r--www-plugins/nspluginwrapper/files/nspluginwrapper-1.4.4-parallel-make.patch91
-rw-r--r--www-plugins/nspluginwrapper/metadata.xml10
-rw-r--r--www-plugins/nspluginwrapper/nspluginwrapper-1.4.4-r3.ebuild111
-rw-r--r--www-plugins/pipelight/Manifest2
-rw-r--r--www-plugins/pipelight/metadata.xml11
-rw-r--r--www-plugins/pipelight/pipelight-0.2.7.3.ebuild87
-rw-r--r--www-plugins/pipelight/pipelight-0.2.8.ebuild87
-rw-r--r--www-plugins/pipelight/pipelight-9999.ebuild88
77 files changed, 4527 insertions, 0 deletions
diff --git a/www-plugins/adobe-flash/Manifest b/www-plugins/adobe-flash/Manifest
new file mode 100644
index 00000000000..ae55f7d96e4
--- /dev/null
+++ b/www-plugins/adobe-flash/Manifest
@@ -0,0 +1,3 @@
+DIST adobe-flash-11.2.202.491-debug.i386.tar.gz 7425036 SHA256 5f5d2443f9a9482d26fa8685f5593dd833e4dbd729e41851e41dc1bfbe4276bb SHA512 e2d7291ac41e7bf375d8bcf67bbb0c359ee9481beefc7ee7ab84e66896e0037543cb73c946d0be7829efef1841318b2fdf8669bbef2c931362c5610c50482150 WHIRLPOOL 2fd7d999bf1e83ca51c35978052ad690230bdf53d3a6b8df80b58556819b2a721eafc9cdcb54b710ae243f036c3f3bde3697c37aa13958a0fb18197e10349db5
+DIST adobe-flash-11.2.202.491.i386.tar.gz 6942060 SHA256 be3f277fe1a15e4b082938019b4e0f9fac4336b460b2eb08d8f22bf90c718e53 SHA512 465a17858cd929f46260709061c61ae56b2f7da61722a5fb8eac44e7474ade730c4031631d173c9f42e994f73f82ad8b734bf76fc73294ed8ef55af73c4fcde9 WHIRLPOOL 08856d73968d464893aea7b1d341000c6ff22c47a8175784fe42ac24483276211cc85823f20dfb038eafaefc072cdbd4e14e7601ba362e8427f2cd6ecf9c4feb
+DIST adobe-flash-11.2.202.491.x86_64.tar.gz 7261649 SHA256 f4be14b3da6fd8485292b128d01f8e560b1fe2bbb97d5f1dbc104a84a7a51f94 SHA512 03fb0e445669b20ac0bb87d8ada44dedf191a6b1411461d5b766a1cc6325864ef3df0fdb88a04bfdace152452a52e6cd20ba0e6183a240a44d7fdd708bb9e956 WHIRLPOOL d1fe0578cfe47456d0ee9f3253fadf3aed872cd1af451dd929cad0e3b098543cdc2c4788fc14120b913f52070f7b90e43c662ebc7592b01e1e0a0fac9553c0a6
diff --git a/www-plugins/adobe-flash/adobe-flash-11.2.202.491.ebuild b/www-plugins/adobe-flash/adobe-flash-11.2.202.491.ebuild
new file mode 100644
index 00000000000..a77fb116af0
--- /dev/null
+++ b/www-plugins/adobe-flash/adobe-flash-11.2.202.491.ebuild
@@ -0,0 +1,234 @@
+# 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
+}
diff --git a/www-plugins/adobe-flash/files/flashplugin-lahf-fix.c b/www-plugins/adobe-flash/files/flashplugin-lahf-fix.c
new file mode 100644
index 00000000000..9338b733731
--- /dev/null
+++ b/www-plugins/adobe-flash/files/flashplugin-lahf-fix.c
@@ -0,0 +1,29 @@
+/* Simple work-around for running the 64-bit Adobe Flash plug-in version 10
+ on Athlon64 processors without support for the lahf instruction.
+
+Compile with:
+cc -fPIC -shared -nostdlib -lc -oflashplugin-lahf-fix.so flashplugin-lahf-fix.c
+Then place the .so file in the plug-in directory (e.g. $HOME/.mozilla/plugins)
+or use LD_PRELOAD to force Firefox to load the library.
+
+ - Maks Verver <maksverver@geocities.com> July 2009 */
+
+#define _GNU_SOURCE
+#include <stdlib.h>
+#include <signal.h>
+#include <ucontext.h>
+
+static void sig_handler(int signal, siginfo_t *info, void *context) {
+ if (signal != SIGILL) return;
+ if (*(char*)info->si_addr != (char)0x9f) abort();
+ greg_t *regs = ((ucontext_t*)context)->uc_mcontext.gregs;
+ ((char*)&regs[REG_RAX])[1] = ((char*)&regs[REG_EFL])[0];
+ regs[REG_RIP]++;
+}
+
+static struct sigaction old_sa, new_sa = {
+ .sa_flags = SA_SIGINFO,
+ .sa_sigaction = &sig_handler };
+
+int _init() { sigaction(SIGILL, &new_sa, &old_sa); return 0; }
+int _fini() { sigaction(SIGILL, &old_sa, &new_sa); return 0; }
diff --git a/www-plugins/adobe-flash/files/mms.cfg b/www-plugins/adobe-flash/files/mms.cfg
new file mode 100644
index 00000000000..3d53391eb7b
--- /dev/null
+++ b/www-plugins/adobe-flash/files/mms.cfg
@@ -0,0 +1,117 @@
+#
+# /etc/adobe/mms.cfg: Adobe Flash privacy and security settings
+#
+# For more details on the meaning of most of these options, please visit:
+# http://www.adobe.com/devnet/flashplayer/articles/flash_player_admin_guide.html
+#
+
+# Lets you prevent users from designating any files on the local file system as
+# trusted
+# 0 = Not Allowed, 1 = Allowed (default)
+#AllowUserLocalTrust = 1
+
+# Lets you specify a hard limit on the amount of local storage that Flash Player
+# uses for the storage of common Flash components
+# Size in megabytes (default is 20), 0 = Component storage disabled
+#AssetCacheSize = 20
+
+# Lets you prevent Flash Player from automatically checkingfor and installing
+# updated versions
+# 0 = Not Disabled (default), 1 = Disabled
+AutoUpdateDisable = 1
+
+# Lets you specify how often to check for an updated version of Flash Player
+# Number of days, 0 = Every startup
+# There is no default value, which falls back to the user's setting (30 days by
+# default)
+#AutoUpdateInterval =
+
+# Lets you prevent SWF files from accessing webcams or microphones
+# 0 = Not Disabled (default), 1 = Disabled
+#AVHardwareDisable = 0
+
+# Lets you prevent information on installed fonts from being displayed
+# 0 = Not Disabled (default), 1 = Disabled
+#DisableDeviceFontEnumeration = 0
+
+# Lets you prevent networking or file system access if any kind
+# Set to the executable filename, default is empty
+#DisableNetworkAndFilesystemInHostApp =
+
+# Lets you prevent native code applications that are digitally signed and
+# delivered by Adobe from being downloaded
+# 0 = Not Disabled (default), 1 = Disabled
+#DisableProductDownload = 0
+
+# Lets you enable or disable the use of the Socket.connect() and
+# XMLSocket.connect() methods
+# 0 = Not Disabled (default), 1 = Disabled
+#DisableSockets = 0
+
+# Lets you create a whitelist of servers to which socket connections are allowed
+# Set to hostname or IP address. This can be specified multiple times in this
+# file to allow more than one host, and only takes effect if DisableSockets
+# (above) is set to 1.
+#EnableSocketsTo = localhost.localdomain
+#EnableSocketsTo = 127.0.0.1
+
+# Lets you prevent the ActionScript FileReference API from performing file
+# downloads
+# 0 = Not Disabled (default), 1 = Disabled
+#FileDownloadDisable = 0
+
+# Lets you prevent the ActionScript FileReference API from prerforming file
+# uploads
+# 0 = Not Disabled (default), 1 = Disabled
+#FileUploadDisable = 0
+
+# Lets you disable SWF files playing via a browser plug-in from being displayed
+# in full-screen mode
+# 0 = Not Disabled (default), 1 = Disabled
+#FullScreenDisable = 0
+
+# Lets you specify whether SWF files produced for Flash Player 6 and earlier can
+# execute an operation that has been restricted in a newer version of Flash
+# Player
+# 0 = Deny, 1 = Allow
+# There is no default value, which falls back to the user's setting (Defaults to
+# "Ask"
+#LegacyDomainMatching =
+
+# Lets you specify how Flash Player should determine whether to execute certain
+# local SWF files that were originally produced for Flash Player 7 and earlier
+# 0 = Deny, 1 = Allow
+# There is no default value, which falls back to the user's setting
+#LocalFileLegacyAction =
+
+# Lets you prevent local SWF files from having read access to files on local
+# drive
+# 0 = Not Disabled (default), 1 = Disabled
+#LocalFileReadDisable = 0
+
+# Lets you specify a hard limit on the amout of local storage that Flash Player
+# uses (per domain) for persistent shared objects
+# 1 = no storage, 2 = 10KB, 3 = 100KB, 4 = 1MB, 5 = 10MB,
+# 6 = User specified (default)
+# If the user does not specify a limit, the default is 100KB.
+#LocalStorageLimit = 6
+
+# Lets you override GPU validation checks to force hardware acceleration
+# Warning: This may make your player (more) unstable!
+# 0 = Check GPU (default), 1 = Skip checks
+# More details:
+# http://blogs.adobe.com/penguin.swf/2008/08/secrets_of_the_mmscfg_file_1.html
+#OverrideGPUValidation = 0
+
+# Lets you specify whether third-party SWF files can read and write locally
+# persistent shared objects
+# 0 = disabled, 1 = enabled
+# There is no default value, which falls back to the user's setting
+#ThirdPartyStorage =
+
+# Lets you disable "Windowless" mode, which may cause crashes in firefox
+# version 3.01 and earlier.
+# 0 = Not Disabled (default), 1 = Disabled
+# More details:
+# http://blogs.adobe.com/penguin.swf/2008/08/windowless_mode_fix.html
+#WindowlessDisable = 0
diff --git a/www-plugins/adobe-flash/metadata.xml b/www-plugins/adobe-flash/metadata.xml
new file mode 100644
index 00000000000..772ac9925ed
--- /dev/null
+++ b/www-plugins/adobe-flash/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>desktop-misc</herd>
+<maintainer>
+<email>jer@gentoo.org</email>
+</maintainer>
+<use>
+<flag name='kde'>Install a KCM plugin for configuring flash player preferences</flag>
+</use>
+</pkgmetadata>
diff --git a/www-plugins/chrome-binary-plugins/Manifest b/www-plugins/chrome-binary-plugins/Manifest
new file mode 100644
index 00000000000..b391d7e8dc1
--- /dev/null
+++ b/www-plugins/chrome-binary-plugins/Manifest
@@ -0,0 +1,6 @@
+DIST google-chrome-beta_45.0.2454.26-1_amd64.deb 48036388 SHA256 58b0744d59966cfe15d8c8897ff77a71a6be6bb0a7e31e9c04d20a9c0fbd952f SHA512 8945c1b47066fe4f429f10aac8becfe7077cbd64215d716ed7574f430246c496543b9c9a8c90f475ba1a44ce4cb8da5b8cc07adb9eeba9138ce7f0ec22cc3ec1 WHIRLPOOL 8a5ecfc6f125d938cde9a63b305be87880432abb47f183304462f378f61dca9448b1cc08bff63198dbd135521bc095ec23b30683a25a7bcb31adf428d7a09013
+DIST google-chrome-beta_45.0.2454.26-1_i386.deb 46977744 SHA256 7341988b778654c3b49e89e9a52c4b6d062449668d3209e207936d0144532118 SHA512 10e17fec4f6108f189b19d27ad863598d563cd5d9d11fa031afcec1790fed459c8703d775d8a9e50215a61ea1cdff719e5bbedad498711b82c0f648ae53cc474 WHIRLPOOL 0d95a617d199367f855adabc3fbd3afdf0d9ee7628e3df55d0bf02cd5378815ab6e5a550bb9b0458341dde7a3f98b71d8151f730b7b5b1525f124d1aa9eb7f4e
+DIST google-chrome-stable_44.0.2403.130-1_amd64.deb 47572650 SHA256 0b29ab582fd82a1587626f33025a50d4748df7ddea0eca6e36df63bb5ba6fcb7 SHA512 000f0ac68e83e1b6b7a09d2bf3b681a5771ecf0fba68a6d4c472d31f527f57144201093191b74f200f1906cef5343e53aefa5e65cb59bed1d4ebcae36663c31e WHIRLPOOL 18074f8f2fda1d04e396528a629246cd7486533bf35e49c7287294f43a69cbe26aa3588a7ad2b45d000460d570df488408a3f4e30a1d49220176abad35519c21
+DIST google-chrome-stable_44.0.2403.130-1_i386.deb 46630472 SHA256 bb041e86d8ccc571c5c4f327bb8643e2b11fb72a879534b6e35129c13d86f27b SHA512 840b2dd9ed32b5e28897251566b742d348138a998b8cad145c286d8b016316a019dd3ee7434c0efd015dd146e81c0798dcf0938aa7f228e2368442516443ce8a WHIRLPOOL 7dad7f4920cdce5ceb3a5a62301f33d8bad440b50de803519ef92141c158762960857babce098a988436b1f5ff935bf7c321ff3a6ce7d3df4f00cd805cab8ad6
+DIST google-chrome-unstable_46.0.2471.2-1_amd64.deb 47352022 SHA256 13f5c6cfece24c849f743a797556cf11ea10f6dc36aad030dedde47a065d11f7 SHA512 3e435573cdad1f7972893f14748e497311a67f450f81244c2620d841909eba4d27926a79b5a438ece7bf5a9c14ce44cdbc2a93219e35c622a858dd0ba3692936 WHIRLPOOL 0187f601db519cccd02f2e14be556bc4ac31f0100e4b049955aebd6c2ead7281393d608f5e0d3ac40ef8690ba4c25422cf8375894ec4cc6cda7181c79670b81f
+DIST google-chrome-unstable_46.0.2471.2-1_i386.deb 46699784 SHA256 a9e332ef3d16601ae3481793d7754d3c119f8a05c8d07869dffb27c467262f87 SHA512 8f1e502214dbea7650a2221589f488c6cd1bd4532469ab6ed00bacbf823795a11815c21413031e7f54452f0fd905587b104fb4fb01b2ae58997ecab830822aa1 WHIRLPOOL 9b85a2f5b676e6cb7500d679c0b0184b0f7cfdacb8b1e364f01f42b10035ffcea74cdd4058a4c8108b259773435640e5e981a979dd0b24afeab243211e43d240
diff --git a/www-plugins/chrome-binary-plugins/chrome-binary-plugins-44.0.2403.130_p1.ebuild b/www-plugins/chrome-binary-plugins/chrome-binary-plugins-44.0.2403.130_p1.ebuild
new file mode 100644
index 00000000000..92be2e0acee
--- /dev/null
+++ b/www-plugins/chrome-binary-plugins/chrome-binary-plugins-44.0.2403.130_p1.ebuild
@@ -0,0 +1,102 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit multilib unpacker
+
+DESCRIPTION="Binary plugins from Google Chrome for use in Chromium"
+HOMEPAGE="http://www.google.com/chrome"
+
+case ${PV} in
+ *_alpha*|9999*)
+ SLOT="unstable"
+ CHROMEDIR="opt/google/chrome-${SLOT}"
+ MY_PV=${PV/_alpha/-}
+ ;;
+ *_beta*)
+ SLOT="beta"
+ CHROMEDIR="opt/google/chrome-${SLOT}"
+ MY_PV=${PV/_beta/-}
+ ;;
+ *_p*)
+ SLOT="stable"
+ CHROMEDIR="opt/google/chrome"
+ MY_PV=${PV/_p/-}
+ ;;
+ *)
+ die "Invalid value for \${PV}: ${PV}"
+ ;;
+esac
+
+MY_PN="google-chrome-${SLOT}"
+MY_P="${MY_PN}_${MY_PV}"
+
+if [[ ${PV} != 9999* ]]; then
+SRC_URI="
+ amd64? (
+ https://dl.google.com/linux/chrome/deb/pool/main/g/${MY_PN}/${MY_P}_amd64.deb
+ )
+ x86? (
+ https://dl.google.com/linux/chrome/deb/pool/main/g/${MY_PN}/${MY_P}_i386.deb
+ )
+"
+KEYWORDS="amd64 x86"
+fi
+
+LICENSE="google-chrome"
+IUSE="+flash +widevine"
+RESTRICT="bindist mirror strip"
+
+for x in 0 beta stable unstable; do
+ if [[ ${SLOT} != ${x} ]]; then
+ RDEPEND+=" !${CATEGORY}/${PN}:${x}"
+ fi
+done
+
+S="${WORKDIR}/${CHROMEDIR}"
+QA_PREBUILT="*"
+
+pkg_nofetch() {
+ eerror "Please wait 24 hours and sync your portage tree before reporting fetch failures."
+}
+
+if [[ ${PV} == 9999* ]]; then
+src_unpack() {
+ local base="https://dl.google.com/linux/direct"
+ local debarch=${ARCH/x86/i386}
+ wget -O google-chrome.deb "${base}/google-chrome-${SLOT}_current_${debarch}.deb" || die
+ unpack_deb ./google-chrome.deb
+}
+fi
+
+src_install() {
+ local version flapper
+
+ insinto /usr/$(get_libdir)/chromium-browser/
+
+ if use widevine; then
+ doins libwidevinecdm.so
+ strings ./chrome | grep -C 1 " (version:" | tail -1 > widevine.version
+ doins widevine.version
+ einfo "Please note that if you intend to use this with www-clients/chromium,"
+ einfo "you'll need to enable the widevine USE flag there as well, in order to"
+ einfo "utilize the widevine USE flag that's been used here."
+ fi
+
+ if use flash; then
+ doins -r PepperFlash
+
+ # Since this is a live ebuild, we're forced to, unfortuantely,
+ # dynamically construct the command line args for Chromium.
+ version=$(sed -n 's/.*"version": "\(.*\)",.*/\1/p' PepperFlash/manifest.json)
+ flapper="${ROOT}usr/$(get_libdir)/chromium-browser/PepperFlash/libpepflashplayer.so"
+ echo -n "CHROMIUM_FLAGS=\"\${CHROMIUM_FLAGS} " > pepper-flash
+ echo -n "--ppapi-flash-path=$flapper " >> pepper-flash
+ echo "--ppapi-flash-version=$version\"" >> pepper-flash
+
+ insinto /etc/chromium/
+ doins pepper-flash
+ fi
+}
diff --git a/www-plugins/chrome-binary-plugins/chrome-binary-plugins-45.0.2454.26_beta1.ebuild b/www-plugins/chrome-binary-plugins/chrome-binary-plugins-45.0.2454.26_beta1.ebuild
new file mode 100644
index 00000000000..db26f7a0072
--- /dev/null
+++ b/www-plugins/chrome-binary-plugins/chrome-binary-plugins-45.0.2454.26_beta1.ebuild
@@ -0,0 +1,102 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit multilib unpacker
+
+DESCRIPTION="Binary plugins from Google Chrome for use in Chromium"
+HOMEPAGE="http://www.google.com/chrome"
+
+case ${PV} in
+ *_alpha*|9999*)
+ SLOT="unstable"
+ CHROMEDIR="opt/google/chrome-${SLOT}"
+ MY_PV=${PV/_alpha/-}
+ ;;
+ *_beta*)
+ SLOT="beta"
+ CHROMEDIR="opt/google/chrome-${SLOT}"
+ MY_PV=${PV/_beta/-}
+ ;;
+ *_p*)
+ SLOT="stable"
+ CHROMEDIR="opt/google/chrome"
+ MY_PV=${PV/_p/-}
+ ;;
+ *)
+ die "Invalid value for \${PV}: ${PV}"
+ ;;
+esac
+
+MY_PN="google-chrome-${SLOT}"
+MY_P="${MY_PN}_${MY_PV}"
+
+if [[ ${PV} != 9999* ]]; then
+SRC_URI="
+ amd64? (
+ https://dl.google.com/linux/chrome/deb/pool/main/g/${MY_PN}/${MY_P}_amd64.deb
+ )
+ x86? (
+ https://dl.google.com/linux/chrome/deb/pool/main/g/${MY_PN}/${MY_P}_i386.deb
+ )
+"
+KEYWORDS="~amd64 ~x86"
+fi
+
+LICENSE="google-chrome"
+IUSE="+flash +widevine"
+RESTRICT="bindist mirror strip"
+
+for x in 0 beta stable unstable; do
+ if [[ ${SLOT} != ${x} ]]; then
+ RDEPEND+=" !${CATEGORY}/${PN}:${x}"
+ fi
+done
+
+S="${WORKDIR}/${CHROMEDIR}"
+QA_PREBUILT="*"
+
+pkg_nofetch() {
+ eerror "Please wait 24 hours and sync your portage tree before reporting fetch failures."
+}
+
+if [[ ${PV} == 9999* ]]; then
+src_unpack() {
+ local base="https://dl.google.com/linux/direct"
+ local debarch=${ARCH/x86/i386}
+ wget -O google-chrome.deb "${base}/google-chrome-${SLOT}_current_${debarch}.deb" || die
+ unpack_deb ./google-chrome.deb
+}
+fi
+
+src_install() {
+ local version flapper
+
+ insinto /usr/$(get_libdir)/chromium-browser/
+
+ if use widevine; then
+ doins libwidevinecdm.so
+ strings ./chrome | grep -C 1 " (version:" | tail -1 > widevine.version
+ doins widevine.version
+ einfo "Please note that if you intend to use this with www-clients/chromium,"
+ einfo "you'll need to enable the widevine USE flag there as well, in order to"
+ einfo "utilize the widevine USE flag that's been used here."
+ fi
+
+ if use flash; then
+ doins -r PepperFlash
+
+ # Since this is a live ebuild, we're forced to, unfortuantely,
+ # dynamically construct the command line args for Chromium.
+ version=$(sed -n 's/.*"version": "\(.*\)",.*/\1/p' PepperFlash/manifest.json)
+ flapper="${ROOT}usr/$(get_libdir)/chromium-browser/PepperFlash/libpepflashplayer.so"
+ echo -n "CHROMIUM_FLAGS=\"\${CHROMIUM_FLAGS} " > pepper-flash
+ echo -n "--ppapi-flash-path=$flapper " >> pepper-flash
+ echo "--ppapi-flash-version=$version\"" >> pepper-flash
+
+ insinto /etc/chromium/
+ doins pepper-flash
+ fi
+}
diff --git a/www-plugins/chrome-binary-plugins/chrome-binary-plugins-46.0.2471.2_alpha1.ebuild b/www-plugins/chrome-binary-plugins/chrome-binary-plugins-46.0.2471.2_alpha1.ebuild
new file mode 100644
index 00000000000..db26f7a0072
--- /dev/null
+++ b/www-plugins/chrome-binary-plugins/chrome-binary-plugins-46.0.2471.2_alpha1.ebuild
@@ -0,0 +1,102 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit multilib unpacker
+
+DESCRIPTION="Binary plugins from Google Chrome for use in Chromium"
+HOMEPAGE="http://www.google.com/chrome"
+
+case ${PV} in
+ *_alpha*|9999*)
+ SLOT="unstable"
+ CHROMEDIR="opt/google/chrome-${SLOT}"
+ MY_PV=${PV/_alpha/-}
+ ;;
+ *_beta*)
+ SLOT="beta"
+ CHROMEDIR="opt/google/chrome-${SLOT}"
+ MY_PV=${PV/_beta/-}
+ ;;
+ *_p*)
+ SLOT="stable"
+ CHROMEDIR="opt/google/chrome"
+ MY_PV=${PV/_p/-}
+ ;;
+ *)
+ die "Invalid value for \${PV}: ${PV}"
+ ;;
+esac
+
+MY_PN="google-chrome-${SLOT}"
+MY_P="${MY_PN}_${MY_PV}"
+
+if [[ ${PV} != 9999* ]]; then
+SRC_URI="
+ amd64? (
+ https://dl.google.com/linux/chrome/deb/pool/main/g/${MY_PN}/${MY_P}_amd64.deb
+ )
+ x86? (
+ https://dl.google.com/linux/chrome/deb/pool/main/g/${MY_PN}/${MY_P}_i386.deb
+ )
+"
+KEYWORDS="~amd64 ~x86"
+fi
+
+LICENSE="google-chrome"
+IUSE="+flash +widevine"
+RESTRICT="bindist mirror strip"
+
+for x in 0 beta stable unstable; do
+ if [[ ${SLOT} != ${x} ]]; then
+ RDEPEND+=" !${CATEGORY}/${PN}:${x}"
+ fi
+done
+
+S="${WORKDIR}/${CHROMEDIR}"
+QA_PREBUILT="*"
+
+pkg_nofetch() {
+ eerror "Please wait 24 hours and sync your portage tree before reporting fetch failures."
+}
+
+if [[ ${PV} == 9999* ]]; then
+src_unpack() {
+ local base="https://dl.google.com/linux/direct"
+ local debarch=${ARCH/x86/i386}
+ wget -O google-chrome.deb "${base}/google-chrome-${SLOT}_current_${debarch}.deb" || die
+ unpack_deb ./google-chrome.deb
+}
+fi
+
+src_install() {
+ local version flapper
+
+ insinto /usr/$(get_libdir)/chromium-browser/
+
+ if use widevine; then
+ doins libwidevinecdm.so
+ strings ./chrome | grep -C 1 " (version:" | tail -1 > widevine.version
+ doins widevine.version
+ einfo "Please note that if you intend to use this with www-clients/chromium,"
+ einfo "you'll need to enable the widevine USE flag there as well, in order to"
+ einfo "utilize the widevine USE flag that's been used here."
+ fi
+
+ if use flash; then
+ doins -r PepperFlash
+
+ # Since this is a live ebuild, we're forced to, unfortuantely,
+ # dynamically construct the command line args for Chromium.
+ version=$(sed -n 's/.*"version": "\(.*\)",.*/\1/p' PepperFlash/manifest.json)
+ flapper="${ROOT}usr/$(get_libdir)/chromium-browser/PepperFlash/libpepflashplayer.so"
+ echo -n "CHROMIUM_FLAGS=\"\${CHROMIUM_FLAGS} " > pepper-flash
+ echo -n "--ppapi-flash-path=$flapper " >> pepper-flash
+ echo "--ppapi-flash-version=$version\"" >> pepper-flash
+
+ insinto /etc/chromium/
+ doins pepper-flash
+ fi
+}
diff --git a/www-plugins/chrome-binary-plugins/chrome-binary-plugins-9999.ebuild b/www-plugins/chrome-binary-plugins/chrome-binary-plugins-9999.ebuild
new file mode 100644
index 00000000000..db26f7a0072
--- /dev/null
+++ b/www-plugins/chrome-binary-plugins/chrome-binary-plugins-9999.ebuild
@@ -0,0 +1,102 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit multilib unpacker
+
+DESCRIPTION="Binary plugins from Google Chrome for use in Chromium"
+HOMEPAGE="http://www.google.com/chrome"
+
+case ${PV} in
+ *_alpha*|9999*)
+ SLOT="unstable"
+ CHROMEDIR="opt/google/chrome-${SLOT}"
+ MY_PV=${PV/_alpha/-}
+ ;;
+ *_beta*)
+ SLOT="beta"
+ CHROMEDIR="opt/google/chrome-${SLOT}"
+ MY_PV=${PV/_beta/-}
+ ;;
+ *_p*)
+ SLOT="stable"
+ CHROMEDIR="opt/google/chrome"
+ MY_PV=${PV/_p/-}
+ ;;
+ *)
+ die "Invalid value for \${PV}: ${PV}"
+ ;;
+esac
+
+MY_PN="google-chrome-${SLOT}"
+MY_P="${MY_PN}_${MY_PV}"
+
+if [[ ${PV} != 9999* ]]; then
+SRC_URI="
+ amd64? (
+ https://dl.google.com/linux/chrome/deb/pool/main/g/${MY_PN}/${MY_P}_amd64.deb
+ )
+ x86? (
+ https://dl.google.com/linux/chrome/deb/pool/main/g/${MY_PN}/${MY_P}_i386.deb
+ )
+"
+KEYWORDS="~amd64 ~x86"
+fi
+
+LICENSE="google-chrome"
+IUSE="+flash +widevine"
+RESTRICT="bindist mirror strip"
+
+for x in 0 beta stable unstable; do
+ if [[ ${SLOT} != ${x} ]]; then
+ RDEPEND+=" !${CATEGORY}/${PN}:${x}"
+ fi
+done
+
+S="${WORKDIR}/${CHROMEDIR}"
+QA_PREBUILT="*"
+
+pkg_nofetch() {
+ eerror "Please wait 24 hours and sync your portage tree before reporting fetch failures."
+}
+
+if [[ ${PV} == 9999* ]]; then
+src_unpack() {
+ local base="https://dl.google.com/linux/direct"
+ local debarch=${ARCH/x86/i386}
+ wget -O google-chrome.deb "${base}/google-chrome-${SLOT}_current_${debarch}.deb" || die
+ unpack_deb ./google-chrome.deb
+}
+fi
+
+src_install() {
+ local version flapper
+
+ insinto /usr/$(get_libdir)/chromium-browser/
+
+ if use widevine; then
+ doins libwidevinecdm.so
+ strings ./chrome | grep -C 1 " (version:" | tail -1 > widevine.version
+ doins widevine.version
+ einfo "Please note that if you intend to use this with www-clients/chromium,"
+ einfo "you'll need to enable the widevine USE flag there as well, in order to"
+ einfo "utilize the widevine USE flag that's been used here."
+ fi
+
+ if use flash; then
+ doins -r PepperFlash
+
+ # Since this is a live ebuild, we're forced to, unfortuantely,
+ # dynamically construct the command line args for Chromium.
+ version=$(sed -n 's/.*"version": "\(.*\)",.*/\1/p' PepperFlash/manifest.json)
+ flapper="${ROOT}usr/$(get_libdir)/chromium-browser/PepperFlash/libpepflashplayer.so"
+ echo -n "CHROMIUM_FLAGS=\"\${CHROMIUM_FLAGS} " > pepper-flash
+ echo -n "--ppapi-flash-path=$flapper " >> pepper-flash
+ echo "--ppapi-flash-version=$version\"" >> pepper-flash
+
+ insinto /etc/chromium/
+ doins pepper-flash
+ fi
+}
diff --git a/www-plugins/chrome-binary-plugins/metadata.xml b/www-plugins/chrome-binary-plugins/metadata.xml
new file mode 100644
index 00000000000..09868e17461
--- /dev/null
+++ b/www-plugins/chrome-binary-plugins/metadata.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>chromium</herd>
+ <maintainer>
+ <email>floppym@gentoo.org</email>
+ <name>Mike Gilbert</name>
+ </maintainer>
+ <maintainer>
+ <email>zx2c4@gentoo.org</email>
+ <name>Jason A. Donenfeld</name>
+ </maintainer>
+ <use>
+ <flag name="flash">Install Chrome's native Pepper Flash</flag>
+ <flag name="widevine">Install the Widevine DRM library</flag>
+ </use>
+</pkgmetadata>
diff --git a/www-plugins/freshplayerplugin/Manifest b/www-plugins/freshplayerplugin/Manifest
new file mode 100644
index 00000000000..5971ccc3e42
--- /dev/null
+++ b/www-plugins/freshplayerplugin/Manifest
@@ -0,0 +1 @@
+DIST freshplayerplugin-0.3.1.tar.gz 2711793 SHA256 4ed582896fff618d8025dd51bbf2fae0c5e36e2875065acc536b2c76befb593c SHA512 78e87548ecd758ad9ff0dab59b1b2f68b8b9a639ff19de08046a7090ab51d87f0e4c879b1b0075151ff17642d50ff937e199733c55c4a9cff94599fd98eae9de WHIRLPOOL d8be949cc9a2087d8f62fcfb4a1786d68574a5ec52dccc45da06df9838ee84e8dd4d7f3c3f86703e428df1b3f4d6d75c1e87d0809d3f78550a16ed278d51b211
diff --git a/www-plugins/freshplayerplugin/files/0.2.4-cmake.patch b/www-plugins/freshplayerplugin/files/0.2.4-cmake.patch
new file mode 100644
index 00000000000..3ad1523e2ab
--- /dev/null
+++ b/www-plugins/freshplayerplugin/files/0.2.4-cmake.patch
@@ -0,0 +1,59 @@
+diff -uarN a/CMakeLists.txt b/CMakeLists.txt
+--- a/CMakeLists.txt 2015-04-25 11:17:24.000000000 -0400
++++ b/CMakeLists.txt 2015-04-26 20:14:43.152014529 -0400
+@@ -61,35 +61,36 @@
+ # optional dependencies
+ message(STATUS "checking for optional dependencies")
+
+-pkg_check_modules(PULSEAUDIO QUIET libpulse)
+-pkg_check_modules(JACK QUIET jack)
+-pkg_check_modules(SOXR QUIET soxr)
+ set(WITH_PULSEAUDIO TRUE CACHE STRING "enable PulseAudio support")
+ set(WITH_JACK TRUE CACHE STRING "enable JACK Audio Connection Kit")
+
+-if (PULSEAUDIO_FOUND AND WITH_PULSEAUDIO)
++if (WITH_PULSEAUDIO)
++ pkg_check_modules(PULSEAUDIO libpulse)
++ if (NOT PULSEAUDIO_FOUND)
++ message(FATAL_ERROR "PulseAudio requested but not found.")
++ endif()
+ add_definitions(-DHAVE_PULSEAUDIO=1)
+- message(STATUS " found libpulse, version ${PULSEAUDIO_VERSION} (optional)")
++ message(STATUS " found libpulse, version ${PULSEAUDIO_VERSION}")
+ list(APPEND REQ_LIBRARY_DIRS ${PULSEAUDIO_LIBRARY_DIRS})
+ list(APPEND REQ_INCLUDE_DIRS ${PULSEAUDIO_INCLUDE_DIRS})
+ list(APPEND REQ_LIBRARIES ${PULSEAUDIO_LIBRARIES})
+-else()
+- message(STATUS " no libpulse found (optional)")
+ endif()
+
+-if (JACK_FOUND AND WITH_JACK)
+- message(STATUS " found jack, version ${JACK_VERSION} (optional)")
+- if (SOXR_FOUND)
+- message(STATUS " found soxr, version ${SOXR_VERSION}")
+- add_definitions(-DHAVE_JACK=1)
+- list(APPEND REQ_LIBRARY_DIRS "${JACK_LIBRARY_DIRS}" "${SOXR_LIBRARY_DIRS}")
+- list(APPEND REQ_INCLUDE_DIRS "${JACK_INCLUDE_DIRS}" "${SOXR_INCLUDE_DIRS}")
+- list(APPEND REQ_LIBRARIES "${JACK_LIBRARIES}" "${SOXR_LIBRARIES}")
+- else()
+- message(STATUS " no soxr found, JACK output disabled")
++if (WITH_JACK)
++ pkg_check_modules(JACK QUIET jack)
++ if (NOT JACK_FOUND)
++ message(FATAL_ERROR "JACK support requested but not found.")
++ endif()
++ pkg_check_modules(SOXR QUIET soxr)
++ if (NOT SOXR_FOUND)
++ message(FATAL_ERROR "SOXR libray not found but needed for JACK support.")
+ endif()
+-else()
+- message(STATUS " no jack found (optional)")
++ message(STATUS " found jack, version ${JACK_VERSION}")
++ message(STATUS " found soxr, version ${SOXR_VERSION}")
++ add_definitions(-DHAVE_JACK=1)
++ list(APPEND REQ_LIBRARY_DIRS "${JACK_LIBRARY_DIRS}" "${SOXR_LIBRARY_DIRS}")
++ list(APPEND REQ_INCLUDE_DIRS "${JACK_INCLUDE_DIRS}" "${SOXR_INCLUDE_DIRS}")
++ list(APPEND REQ_LIBRARIES "${JACK_LIBRARIES}" "${SOXR_LIBRARIES}")
+ endif()
+
+ list(APPEND REQ_LIBRARIES img-resources)
diff --git a/www-plugins/freshplayerplugin/freshplayerplugin-0.3.1-r2.ebuild b/www-plugins/freshplayerplugin/freshplayerplugin-0.3.1-r2.ebuild
new file mode 100644
index 00000000000..b01fdf3f742
--- /dev/null
+++ b/www-plugins/freshplayerplugin/freshplayerplugin-0.3.1-r2.ebuild
@@ -0,0 +1,82 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+# $Id$
+
+EAPI=5
+
+CMAKE_MIN_VERSION="2.8.8"
+
+inherit cmake-utils multilib
+
+LICENSE="MIT"
+HOMEPAGE="https://github.com/i-rinat/freshplayerplugin"
+DESCRIPTION="PPAPI-host NPAPI-plugin adapter for flashplayer in npapi based browsers"
+SRC_URI="https://github.com/i-rinat/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+SLOT=0
+IUSE="gtk3 jack libav pulseaudio vaapi vdpau"
+
+KEYWORDS="~amd64 ~x86"
+
+HWDEC_DEPEND="
+ libav? ( media-video/libav:0=[vaapi?,vdpau?,x264] )
+ !libav? ( media-video/ffmpeg:0=[vaapi?,vdpau?,x264] )
+ x11-libs/libva
+ x11-libs/libvdpau
+"
+
+CDEPEND="
+ dev-libs/glib:2=
+ dev-libs/libconfig:=
+ dev-libs/libevent:=[threads]
+ dev-libs/openssl:0=
+ media-libs/alsa-lib:=
+ media-libs/freetype:2=
+ media-libs/libv4l:0=
+ media-libs/mesa:=[egl,gles2]
+ x11-libs/libXrandr:=
+ x11-libs/libXrender:=
+ x11-libs/pango:=[X]
+ jack? ( media-sound/jack-audio-connection-kit )
+ pulseaudio? ( media-sound/pulseaudio )
+ !gtk3? ( x11-libs/gtk+:2= )
+ gtk3? ( x11-libs/gtk+:3= )
+ vaapi? ( ${HWDEC_DEPEND} )
+ vdpau? ( ${HWDEC_DEPEND} )
+"
+
+DEPEND="${CDEPEND}
+ dev-util/ragel
+ virtual/pkgconfig
+ "
+RDEPEND="${CDEPEND}
+ || (
+ www-plugins/chrome-binary-plugins[flash]
+ www-client/google-chrome
+ www-client/google-chrome-beta
+ www-client/google-chrome-unstable
+ )
+ "
+
+PATCHES=( "${FILESDIR}/0.2.4-cmake.patch" )
+
+src_configure() {
+ mycmakeargs=(
+ $(cmake-utils_use_with jack JACK)
+ $(cmake-utils_use_with pulseaudio PULSEAUDIO)
+ -DWITH_GTK=$(usex gtk3 3 2)
+ -DCMAKE_SKIP_RPATH=1
+ )
+ if use vaapi || use vdpau ; then
+ mycmakeargs+=( -DWITH_HWDEC=1 )
+ else
+ mycmakeargs+=( -DWITH_HWDEC=0 )
+ fi
+ cmake-utils_src_configure
+}
+
+src_install() {
+ dodoc ChangeLog data/freshwrapper.conf.example README.md
+ exeinto /usr/$(get_libdir)/nsbrowser/plugins
+ doexe "${BUILD_DIR}/libfreshwrapper-pepperflash.so"
+}
diff --git a/www-plugins/freshplayerplugin/metadata.xml b/www-plugins/freshplayerplugin/metadata.xml
new file mode 100644
index 00000000000..a2941a290b1
--- /dev/null
+++ b/www-plugins/freshplayerplugin/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>grknight@gentoo.org</email>
+ <name>Brian Evans</name>
+ </maintainer>
+ <use>
+ <flag name="gtk3">Build with GTK+ 3 instead of GTK+ 2</flag>
+ </use>
+ <upstream>
+ <remote-id type="github">i-rinat/freshplayerplugin</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/www-plugins/gecko-mediaplayer/Manifest b/www-plugins/gecko-mediaplayer/Manifest
new file mode 100644
index 00000000000..19e1a48609a
--- /dev/null
+++ b/www-plugins/gecko-mediaplayer/Manifest
@@ -0,0 +1,2 @@
+DIST gecko-mediaplayer-1.0.8.tar.gz 269970 SHA256 25f02dbc1ece6e69ee4af60a4bf61b08b61997b5d4141eb289f3e5212dc85ecd SHA512 a66d286e668dbe1bbbbf42bbf68bd35bda68db73e7a30674f2cd87850e17a8c27ecf9ae3f32c3024fcca31174e3c5ef88da668b11a5cc3641824fae8c9367962 WHIRLPOOL 5c158521492e1534c48553a0ad06ad137c815ec2a867483a717af23d65ca00ad8c15e72cc02d99d0db6e4f73931718f096960f718b6a4c3078e4c3196aa971cb
+DIST gecko-mediaplayer-1.0.9.tar.gz 271917 SHA256 212a0a87e35da9ed944f5fb827552e9978fd3ea051da89554da5ef3934d4c2a5 SHA512 64624726e2c668085455a7eaaf82f4d7f4c962212789284b2c652fc93b3a9c9e8ad6c3f7f4c887487b68870e867678dd47201bb9495de863a05e0e1e9b7f2a74 WHIRLPOOL a09a85dda42668bb6adda60933b99aa8ee4d15ff8bf2c1d2141dd378c63c0ca2937316718d6abdbe3f6022419070a0f44c1f7f196d32f0784a8d127983bdf94b
diff --git a/www-plugins/gecko-mediaplayer/gecko-mediaplayer-1.0.8.ebuild b/www-plugins/gecko-mediaplayer/gecko-mediaplayer-1.0.8.ebuild
new file mode 100644
index 00000000000..303b193df20
--- /dev/null
+++ b/www-plugins/gecko-mediaplayer/gecko-mediaplayer-1.0.8.ebuild
@@ -0,0 +1,40 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+inherit multilib nsplugins
+
+DESCRIPTION="A browser plugin that uses GNOME MPlayer"
+HOMEPAGE="http://code.google.com/p/gecko-mediaplayer/"
+SRC_URI="http://${PN}.googlecode.com/files/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ~ppc ~ppc64 x86"
+IUSE="+curl"
+
+RDEPEND=">=dev-libs/dbus-glib-0.100
+ >=dev-libs/glib-2.30
+ dev-libs/nspr
+ >=media-libs/gmtk-${PV}
+ >=media-video/gnome-mplayer-${PV}[dbus]
+ curl? ( net-misc/curl )"
+DEPEND="${RDEPEND}
+ app-arch/xz-utils
+ >=net-misc/npapi-sdk-0.27
+ sys-devel/gettext
+ virtual/pkgconfig"
+
+DOCS="ChangeLog DOCS/tech/*.txt"
+
+src_configure() {
+ econf \
+ --with-plugin-dir=/usr/$(get_libdir)/${PLUGINS_DIR} \
+ $(use_with curl libcurl)
+}
+
+src_install() {
+ default
+ rm -rf "${ED}"/usr/share/doc/${PN}
+}
diff --git a/www-plugins/gecko-mediaplayer/gecko-mediaplayer-1.0.9.ebuild b/www-plugins/gecko-mediaplayer/gecko-mediaplayer-1.0.9.ebuild
new file mode 100644
index 00000000000..9e611f767f9
--- /dev/null
+++ b/www-plugins/gecko-mediaplayer/gecko-mediaplayer-1.0.9.ebuild
@@ -0,0 +1,40 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+inherit multilib nsplugins
+
+DESCRIPTION="A browser plugin that uses GNOME MPlayer"
+HOMEPAGE="http://code.google.com/p/gecko-mediaplayer/"
+SRC_URI="http://${PN}.googlecode.com/svn/packages/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ~ppc ~ppc64 x86"
+IUSE="+curl"
+
+RDEPEND=">=dev-libs/dbus-glib-0.100
+ >=dev-libs/glib-2.30
+ dev-libs/nspr
+ >=media-libs/gmtk-${PV}
+ >=media-video/gnome-mplayer-${PV}[dbus]
+ curl? ( net-misc/curl )"
+DEPEND="${RDEPEND}
+ app-arch/xz-utils
+ >=net-misc/npapi-sdk-0.27
+ sys-devel/gettext
+ virtual/pkgconfig"
+
+DOCS="ChangeLog DOCS/tech/*.txt"
+
+src_configure() {
+ econf \
+ --with-plugin-dir=/usr/$(get_libdir)/${PLUGINS_DIR} \
+ $(use_with curl libcurl)
+}
+
+src_install() {
+ default
+ rm -rf "${ED}"/usr/share/doc/${PN}
+}
diff --git a/www-plugins/gecko-mediaplayer/metadata.xml b/www-plugins/gecko-mediaplayer/metadata.xml
new file mode 100644
index 00000000000..b9229a7c57b
--- /dev/null
+++ b/www-plugins/gecko-mediaplayer/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>video</herd>
+ <maintainer>
+ <email>media-video@gentoo.org</email>
+ </maintainer>
+ <upstream>
+ <remote-id type="google-code">gecko-mediaplayer</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/www-plugins/gnash/Manifest b/www-plugins/gnash/Manifest
new file mode 100644
index 00000000000..773c154640f
--- /dev/null
+++ b/www-plugins/gnash/Manifest
@@ -0,0 +1,2 @@
+DIST gnash-0.8.10_p20131019.tar.xz 3868156 SHA256 93e5c82c9f5e326b8ddba3cb4c4178fb9428e92987b3b8e6ef59b201ef37782a SHA512 79b4e86275b6b11774212315ea3b4a6192177d297d4ebe93c39d69734dbaa4c893845dc606e724e03f6409f0695794ade0f2544e30cf2d291a42d0cf3d674dcc WHIRLPOOL fb9a9b9f00c10af75c595147ce3d9bdf18f5cfde907fa69c9d0e28a278ff4fa835eba4d1e19ea72ac65e6e0f769da30f5790c652e2df723c36db6e3ef4436851
+DIST gnash-0.8.10_p20150316.tar.xz 4031684 SHA256 0c380f7b6756ad8a4d5ca152933f9a51278e00d51b3677812c69d65a166e3a6c SHA512 3f166de91a2f9f538ef76d21f7e9c2c240a776855cfe00c4e39fd6c0b6718f450ffecac61f38a6e534c6eb3f5b747c1d800f5bc7712ece3dcf14be1ee50384d0 WHIRLPOOL 6dd3886b9bcca56fbf63442f25d7af9184188702a167d3962f97fcf0496a99898033ee52843f9bc53b73236b96e4995b882de9685898820cf0f6b27dccb881c9
diff --git a/www-plugins/gnash/files/gnash-0.8.10-amf-include.patch b/www-plugins/gnash/files/gnash-0.8.10-amf-include.patch
new file mode 100644
index 00000000000..983fa6b70eb
--- /dev/null
+++ b/www-plugins/gnash/files/gnash-0.8.10-amf-include.patch
@@ -0,0 +1,45 @@
+diff -ur a/cygnal/libnet/cque.h b/cygnal/libnet/cque.h
+--- a/cygnal/libnet/cque.h 2012-01-19 20:17:47.000000000 +0100
++++ b/cygnal/libnet/cque.h 2012-02-23 20:13:39.000000000 +0100
+@@ -25,8 +25,9 @@
+ #include <boost/thread/condition.hpp>
+ #include <deque>
+
++#include "../libamf/amf.h"
+ #include "getclocktime.hpp"
+-#include "buffer.h"
++#include "../libamf/buffer.h"
+ #include "network.h"
+ #include "dsodefs.h" //For DSOEXPORT.
+
+diff -ur a/cygnal/libnet/sshclient.h b/cygnal/libnet/sshclient.h
+--- a/cygnal/libnet/sshclient.h 2012-01-19 20:17:47.000000000 +0100
++++ b/cygnal/libnet/sshclient.h 2012-02-23 20:13:09.000000000 +0100
+@@ -32,9 +32,10 @@
+ #include <libssh/sftp.h>
+ }
+
++#include "../libamf/amf.h"
+ #include "cque.h"
+ #include "network.h"
+-#include "buffer.h"
++#include "../libamf/buffer.h"
+
+ namespace gnash
+ {
+diff -ur a/cygnal/libnet/sslclient.h b/cygnal/libnet/sslclient.h
+--- a/cygnal/libnet/sslclient.h 2012-01-19 20:17:47.000000000 +0100
++++ b/cygnal/libnet/sslclient.h 2012-02-23 20:13:21.000000000 +0100
+@@ -36,10 +36,11 @@
+ #include <openssl/err.h>
+ #endif
+
++#include "../libamf/amf.h"
+ #include "dsodefs.h"
+ #include "cque.h"
+ #include "network.h"
+-#include "buffer.h"
++#include "../libamf/buffer.h"
+
+
+ namespace gnash
diff --git a/www-plugins/gnash/files/gnash-0.8.10-boost-1.50.patch b/www-plugins/gnash/files/gnash-0.8.10-boost-1.50.patch
new file mode 100644
index 00000000000..ed774ed50a0
--- /dev/null
+++ b/www-plugins/gnash/files/gnash-0.8.10-boost-1.50.patch
@@ -0,0 +1,24 @@
+diff -ur a/macros/boost.m4 b/macros/boost.m4
+--- a/macros/boost.m4 2012-09-03 17:11:43.000000000 +0200
++++ b/macros/boost.m4 2012-10-16 01:58:28.000000000 +0200
+@@ -37,7 +37,7 @@
+ boost_headers="detail/lightweight_mutex.hpp thread/thread.hpp multi_index_container.hpp multi_index/key_extractors.hpp thread/mutex.hpp program_options/options_description.hpp iostreams/stream.hpp"
+ dnl this is a list of *required* libraries. If any of these are missing, this
+ dnl test will return a failure, and Gnash won't build.
+- boost_libs="thread program_options iostreams"
++ boost_libs="thread program_options iostreams system"
+
+ dnl this is a list of *recommended* libraries. If any of these are missing, this
+ dnl test will return a warning, and Gnash will build, but testing won't work.
+diff -ur a/plugin/npapi/Makefile.am b/plugin/npapi/Makefile.am
+--- a/plugin/npapi/Makefile.am 2012-09-03 17:11:43.000000000 +0200
++++ b/plugin/npapi/Makefile.am 2012-10-16 01:58:57.000000000 +0200
+@@ -78,7 +78,7 @@
+
+ libgnashplugin_la_LIBADD = \
+ $(GLIB_LIBS) \
+- -lboost_iostreams \
++ $(BOOST_LIBS) \
+ $(NULL)
+
+ # Scriptable plugin support
diff --git a/www-plugins/gnash/files/gnash-0.8.10-gettext-macro.patch b/www-plugins/gnash/files/gnash-0.8.10-gettext-macro.patch
new file mode 100644
index 00000000000..0501f745581
--- /dev/null
+++ b/www-plugins/gnash/files/gnash-0.8.10-gettext-macro.patch
@@ -0,0 +1,170 @@
+diff -ur a/libdevice/vaapi/VaapiImage.cpp b/libdevice/vaapi/VaapiImage.cpp
+--- a/libdevice/vaapi/VaapiImage.cpp 2012-01-19 20:17:48.000000000 +0100
++++ b/libdevice/vaapi/VaapiImage.cpp 2012-02-23 19:05:13.000000000 +0100
+@@ -35,7 +35,7 @@
+ : _format(format)
+ , _image_data(NULL)
+ {
+- log_debug(_("VaapiImage::VaapiImage(): format '%s'\n", string_of_FOURCC(format)));
++ log_debug("VaapiImage::VaapiImage(): format '%s'\n", string_of_FOURCC(format));
+
+ memset(&_image, 0, sizeof(_image));
+ _image.image_id = VA_INVALID_ID;
+@@ -79,7 +79,7 @@
+ if (!vaapi_check_status(status, "vaCreateImage()"))
+ return false;
+
+- log_debug(_(" image 0x%08x, format '%s'\n", get(), string_of_FOURCC(_format)));
++ log_debug(" image 0x%08x, format '%s'\n", get(), string_of_FOURCC(_format));
+
+ return true;
+ }
+diff -ur a/libdevice/vaapi/VaapiSubpicture.cpp b/libdevice/vaapi/VaapiSubpicture.cpp
+--- a/libdevice/vaapi/VaapiSubpicture.cpp 2012-01-19 20:17:48.000000000 +0100
++++ b/libdevice/vaapi/VaapiSubpicture.cpp 2012-02-23 19:05:13.000000000 +0100
+@@ -32,7 +32,7 @@
+ : _image(image)
+ , _subpicture(VA_INVALID_ID)
+ {
+- log_debug(_("VaapiSubpicture::VaapiSubpicture(): format '%s'\n", string_of_FOURCC(image->format())));
++ log_debug("VaapiSubpicture::VaapiSubpicture(): format '%s'\n", string_of_FOURCC(image->format()));
+
+ if (!create()) {
+ boost::format msg;
+diff -ur a/libdevice/vaapi/VaapiSurface.cpp b/libdevice/vaapi/VaapiSurface.cpp
+--- a/libdevice/vaapi/VaapiSurface.cpp 2012-01-19 20:17:48.000000000 +0100
++++ b/libdevice/vaapi/VaapiSurface.cpp 2012-02-23 19:05:13.000000000 +0100
+@@ -74,7 +74,7 @@
+
+ VaapiSurfaceImpl::~VaapiSurfaceImpl()
+ {
+- log_debug(_("VaapiSurface::~VaapiSurface(): surface 0x%08x\n", surface()));
++ log_debug("VaapiSurface::~VaapiSurface(): surface 0x%08x\n", surface());
+
+ if (surface() == VA_INVALID_SURFACE) {
+ return;
+diff -ur a/libdevice/vaapi/VaapiSurfaceGLX.cpp b/libdevice/vaapi/VaapiSurfaceGLX.cpp
+--- a/libdevice/vaapi/VaapiSurfaceGLX.cpp 2012-01-19 20:17:48.000000000 +0100
++++ b/libdevice/vaapi/VaapiSurfaceGLX.cpp 2012-02-23 19:05:13.000000000 +0100
+@@ -202,14 +202,14 @@
+
+ reset(reinterpret_cast<uintptr_t>(surface));
+
+- log_debug(_(" -> surface %p\n", this->surface()));
++ log_debug(" -> surface %p\n", this->surface());
+ }
+
+ VaapiSurfaceGLXImpl::~VaapiSurfaceGLXImpl()
+ {
+ // GNASH_REPORT_FUNCTION;
+
+- log_debug(_("VaapiSurface::~VaapiSurface(): surface %p\n", surface()));
++ log_debug("VaapiSurface::~VaapiSurface(): surface %p\n", surface());
+
+ if (!surface()) {
+ return;
+@@ -263,7 +263,7 @@
+
+ bool VaapiSurfaceGLX::update(boost::shared_ptr<VaapiSurface> surface)
+ {
+- log_debug(_("VaapiSurfaceGLX::update(): from surface 0x%08x\n", surface->get()));
++ log_debug("VaapiSurfaceGLX::update(): from surface 0x%08x\n", surface->get());
+
+ return dynamic_cast<VaapiSurfaceGLXImpl *>(_impl.get())->update(surface);
+ }
+diff -ur a/libdevice/vaapi/VaapiSurfaceProxy.cpp b/libdevice/vaapi/VaapiSurfaceProxy.cpp
+--- a/libdevice/vaapi/VaapiSurfaceProxy.cpp 2012-01-19 20:17:48.000000000 +0100
++++ b/libdevice/vaapi/VaapiSurfaceProxy.cpp 2012-02-23 19:05:13.000000000 +0100
+@@ -28,12 +28,12 @@
+ boost::shared_ptr<VaapiContext> context)
+ : _context(context), _surface(surface)
+ {
+- log_debug(_("VaapiSurfaceProxy::VaapiSurfaceProxy(): surface 0x%08x\n", _surface->get()));
++ log_debug("VaapiSurfaceProxy::VaapiSurfaceProxy(): surface 0x%08x\n", _surface->get());
+ }
+
+ VaapiSurfaceProxy::~VaapiSurfaceProxy()
+ {
+- log_debug(_("VaapiSurfaceProxy::~VaapiSurfaceProxy(): surface 0x%08x\n", _surface->get()));
++ log_debug("VaapiSurfaceProxy::~VaapiSurfaceProxy(): surface 0x%08x\n", _surface->get());
+
+ _context->releaseSurface(_surface);
+ }
+diff -ur a/libdevice/x11/X11Device.cpp b/libdevice/x11/X11Device.cpp
+--- a/libdevice/x11/X11Device.cpp 2012-01-19 20:17:48.000000000 +0100
++++ b/libdevice/x11/X11Device.cpp 2012-02-23 19:05:13.000000000 +0100
+@@ -85,7 +85,7 @@
+ GNASH_REPORT_FUNCTION;
+
+ if (!initDevice(0, 0)) {
+- log_error(_("Couldn't initialize X11 device!"));
++ log_error("Couldn't initialize X11 device!");
+ }
+ }
+
+@@ -103,7 +103,7 @@
+ GNASH_REPORT_FUNCTION;
+
+ if (!initDevice(argc, argv)) {
+- log_error(_("Couldn't initialize X11 device!"));
++ log_error("Couldn't initialize X11 device!");
+ }
+ }
+
+@@ -139,7 +139,7 @@
+
+ _display = XOpenDisplay(dpyName);
+ if (!_display) {
+- log_error(_("couldn't open X11 display!"));
++ log_error("couldn't open X11 display!");
+ return false;
+ }
+
+@@ -159,7 +159,7 @@
+ _vinfo = XGetVisualInfo(_display, VisualIDMask, &visTemplate, &num_visuals);
+ std::cerr << "Num Visuals: " << num_visuals << std::endl;
+ if (!_vinfo) {
+- log_error(_("Error: couldn't get X visual\n"));
++ log_error("Error: couldn't get X visual\n");
+ exit(1);
+ }
+ std::cerr << "X11 visual is: " << _vinfo->visual << std::endl;
+@@ -196,7 +196,7 @@
+ if (_display) {
+ XGetErrorText(_display, error, msg, 80);
+ } else {
+- log_error(_("The default Display is not set!"));
++ log_error("The default Display is not set!");
+ }
+
+ return msg;
+@@ -209,12 +209,12 @@
+ GNASH_REPORT_FUNCTION;
+
+ if (!_display) {
+- log_error(_("No Display device set!"));
++ log_error("No Display device set!");
+ return;
+ }
+
+ if (!_root) {
+- log_error(_("No drawable window set!"));
++ log_error("No drawable window set!");
+ return;
+ }
+
+@@ -279,11 +279,11 @@
+ case KeyPress:
+ {
+ char buffer[10];
+- int code;
++ int r, code;
+ code = XLookupKeysym(&event.xkey, 0);
+ if (!keyPress || !keyPress(code)) {
+- // int r = XLookupString(&event.xkey, buffer, sizeof(buffer),
+- // NULL, NULL);
++ r = XLookupString(&event.xkey, buffer, sizeof(buffer),
++ NULL, NULL);
+ if (buffer[0] == 27) {
+ // escape
+ return;
diff --git a/www-plugins/gnash/files/gnash-0.8.10-npapi-sdk.patch b/www-plugins/gnash/files/gnash-0.8.10-npapi-sdk.patch
new file mode 100644
index 00000000000..eb542959e3b
--- /dev/null
+++ b/www-plugins/gnash/files/gnash-0.8.10-npapi-sdk.patch
@@ -0,0 +1,29 @@
+From 983a675c94ecec54ae14593744aa9a2198466499 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
+Date: Thu, 15 Sep 2011 12:59:55 +0200
+Subject: [PATCH] Support building against NPAPI-SDK as well.
+
+---
+ macros/npapi.m4 | 6 +++++-
+ 1 files changed, 5 insertions(+), 1 deletions(-)
+
+diff --git a/macros/npapi.m4 b/macros/npapi.m4
+index e3bde2f..522bbb1 100644
+--- a/macros/npapi.m4
++++ b/macros/npapi.m4
+@@ -34,7 +34,11 @@ AC_DEFUN([GNASH_PATH_NPAPI],
+
+ if test x$cross_compiling = xno; then
+ if test x"$PKG_CONFIG" != x -a x"${ac_cv_path_npapi_incl}" = x; then
+- $PKG_CONFIG --exists mozilla-plugin && NPAPI_CFLAGS="`$PKG_CONFIG --cflags mozilla-plugin`"
++ if $PKG_CONFIG --exists npapi-sdk; then
++ NPAPI_CFLAGS="`$PKG_CONFIG --cflags npapi-sdk`"
++ elif $PKG_CONFIG --exists mozilla-plugin; then
++ NPAPI_CFLAGS="`$PKG_CONFIG --cflags mozilla-plugin`"
++ fi
+ fi
+ fi
+
+--
+1.7.3.4
+
diff --git a/www-plugins/gnash/files/gnash-0.8.10_p20120903-bytesfmt.patch b/www-plugins/gnash/files/gnash-0.8.10_p20120903-bytesfmt.patch
new file mode 100644
index 00000000000..918be74369f
--- /dev/null
+++ b/www-plugins/gnash/files/gnash-0.8.10_p20120903-bytesfmt.patch
@@ -0,0 +1,32 @@
+commit 80989fcd47d33e30336785422ded17f4c607a113
+Author: Alexis Ballier <aballier@gentoo.org>
+Date: Thu Feb 14 17:21:50 2013 -0300
+
+ Use av_get_bytes_per_sample in SampleFormatToSampleSize (#38333)
+
+ This is more future proof against the addition of sample formats.
+
+ Signed-off-by: Sandro Santilli <strk@keybit.net>
+
+diff --git a/libmedia/ffmpeg/MediaParserFfmpeg.cpp b/libmedia/ffmpeg/MediaParserFfmpeg.cpp
+index 136cc08..83b1d74 100644
+--- a/libmedia/ffmpeg/MediaParserFfmpeg.cpp
++++ b/libmedia/ffmpeg/MediaParserFfmpeg.cpp
+@@ -646,6 +646,9 @@ MediaParserFfmpeg::seekMedia(boost::int64_t offset, int whence)
+ boost::uint16_t
+ MediaParserFfmpeg::SampleFormatToSampleSize(AVSampleFormat fmt)
+ {
++#if LIBAVUTIL_VERSION_INT > AV_VERSION_INT(51,4,0)
++ return av_get_bytes_per_sample(fmt);
++#else
+ switch (fmt)
+ {
+ case AV_SAMPLE_FMT_U8: // unsigned 8 bits
+@@ -668,6 +671,7 @@ MediaParserFfmpeg::SampleFormatToSampleSize(AVSampleFormat fmt)
+ default:
+ return 8; // arbitrary value
+ }
++#endif
+ }
+
+
diff --git a/www-plugins/gnash/files/gnash-0.8.10_p20120903-ffmpeg1.patch b/www-plugins/gnash/files/gnash-0.8.10_p20120903-ffmpeg1.patch
new file mode 100644
index 00000000000..0759e443255
--- /dev/null
+++ b/www-plugins/gnash/files/gnash-0.8.10_p20120903-ffmpeg1.patch
@@ -0,0 +1,252 @@
+commit 4b3dae970549d42723c2528c250a1f95248145c7
+Author: Alexis Ballier <aballier@gentoo.org>
+Date: Wed Feb 13 14:38:44 2013 -0300
+
+ Fix build with latest FFmpeg (second attempt)
+
+ Add ifdefery to be compatible with older versions.
+ See ticket #38122
+
+ Signed-off-by: Sandro Santilli <strk@keybit.net>
+
+diff --git a/libmedia/ffmpeg/AudioDecoderFfmpeg.cpp b/libmedia/ffmpeg/AudioDecoderFfmpeg.cpp
+index 067e418..5c8e1ad 100644
+--- a/libmedia/ffmpeg/AudioDecoderFfmpeg.cpp
++++ b/libmedia/ffmpeg/AudioDecoderFfmpeg.cpp
+@@ -84,8 +84,10 @@ AudioDecoderFfmpeg::~AudioDecoderFfmpeg()
+
+ void AudioDecoderFfmpeg::setup(SoundInfo& info)
+ {
+- // Init the avdecoder-decoder
++#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(52,6,2)
++ // Starting from this version avcodec_register calls avcodec_init
+ avcodec_init();
++#endif
+ avcodec_register_all();// change this to only register need codec?
+
+ enum CodecID codec_id;
+@@ -158,14 +160,14 @@ void AudioDecoderFfmpeg::setup(SoundInfo& info)
+ case CODEC_ID_PCM_U16LE:
+ _audioCodecCtx->channels = (info.isStereo() ? 2 : 1);
+ _audioCodecCtx->sample_rate = info.getSampleRate();
+- _audioCodecCtx->sample_fmt = SAMPLE_FMT_S16; // ?! arbitrary ?
++ _audioCodecCtx->sample_fmt = AV_SAMPLE_FMT_S16; // ?! arbitrary ?
+ _audioCodecCtx->frame_size = 1;
+ break;
+
+ default:
+ _audioCodecCtx->channels = (info.isStereo() ? 2 : 1);
+ _audioCodecCtx->sample_rate = info.getSampleRate();
+- _audioCodecCtx->sample_fmt = SAMPLE_FMT_S16; // ?! arbitrary ?
++ _audioCodecCtx->sample_fmt = AV_SAMPLE_FMT_S16; // ?! arbitrary ?
+ break;
+ }
+ }
+@@ -173,7 +175,10 @@ void AudioDecoderFfmpeg::setup(SoundInfo& info)
+ void AudioDecoderFfmpeg::setup(const AudioInfo& info)
+ {
+ // Init the avdecoder-decoder
++#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(52,6,2)
++ // Starting from this version avcodec_register calls avcodec_init
+ avcodec_init();
++#endif
+ avcodec_register_all();// change this to only register need codec?
+
+ enum CodecID codec_id = CODEC_ID_NONE;
+@@ -297,7 +302,7 @@ void AudioDecoderFfmpeg::setup(const AudioInfo& info)
+ _audioCodecCtx->channels = (info.stereo ? 2 : 1);
+ _audioCodecCtx->sample_rate = info.sampleRate;
+ // was commented out (why?):
+- _audioCodecCtx->sample_fmt = SAMPLE_FMT_S16;
++ _audioCodecCtx->sample_fmt = AV_SAMPLE_FMT_S16;
+ break;
+ }
+
+diff --git a/libmedia/ffmpeg/MediaParserFfmpeg.cpp b/libmedia/ffmpeg/MediaParserFfmpeg.cpp
+index d6e6902..136cc08 100644
+--- a/libmedia/ffmpeg/MediaParserFfmpeg.cpp
++++ b/libmedia/ffmpeg/MediaParserFfmpeg.cpp
+@@ -344,8 +344,10 @@ MediaParserFfmpeg::initializeParser()
+ {
+ av_register_all(); // TODO: needs to be invoked only once ?
+
++#if LIBAVFORMAT_VERSION_INT < AV_VERSION_INT(52,107,0)
+ _byteIOCxt.buffer = NULL;
+-
++#endif
++
+ _inputFmt = probeStream();
+
+ #ifdef GNASH_ALLOW_VCODEC_ENV
+@@ -366,7 +368,11 @@ MediaParserFfmpeg::initializeParser()
+ // which isn't needed.
+ _byteIOBuffer.reset(new unsigned char[byteIOBufferSize]);
+
++#if LIBAVFORMAT_VERSION_INT < AV_VERSION_INT(52,107,0)
+ init_put_byte(&_byteIOCxt,
++#else
++ _avIOCxt = avio_alloc_context(
++#endif
+ _byteIOBuffer.get(), // buffer
+ byteIOBufferSize, // buffer size
+ 0, // write flags
+@@ -376,7 +382,11 @@ MediaParserFfmpeg::initializeParser()
+ MediaParserFfmpeg::seekMediaWrapper // seeker callback
+ );
+
++#if LIBAVFORMAT_VERSION_INT < AV_VERSION_INT(52,107,0)
+ _byteIOCxt.is_streamed = 1;
++#else
++ _avIOCxt->seekable = 0;
++#endif
+
+ #if !defined(LIBAVCODEC_VERSION_MAJOR) || LIBAVCODEC_VERSION_MAJOR < 52
+ // Needed for Lenny.
+@@ -387,12 +397,19 @@ MediaParserFfmpeg::initializeParser()
+
+ assert(_formatCtx);
+
++#if LIBAVFORMAT_VERSION_INT < AV_VERSION_INT(52,107,0)
+ // Otherwise av_open_input_stream will reallocate the context.
+ AVFormatParameters ap;
+ std::memset(&ap, 0, sizeof ap);
+ ap.prealloced_context = 1;
+
+ if (av_open_input_stream(&_formatCtx, &_byteIOCxt, "", _inputFmt, &ap) < 0)
++#else
++
++ _formatCtx->pb = _avIOCxt;
++
++ if (avformat_open_input(&_formatCtx, "", _inputFmt, NULL) < 0)
++#endif
+ {
+ throw IOException("MediaParserFfmpeg couldn't open input stream");
+ }
+@@ -400,10 +417,17 @@ MediaParserFfmpeg::initializeParser()
+ #if defined(LIBAVCODEC_VERSION_MAJOR) && LIBAVCODEC_VERSION_MAJOR >= 52
+ // Note: in at least some versions of ffmpeg, av_open_input_stream does
+ // not parse metadata; not sure why.
++#if LIBAVUTIL_VERSION_INT < AV_VERSION_INT(51,5,0)
+ AVMetadata* md = _formatCtx->metadata;
+ if (md) {
+ AVMetadataTag* tag = av_metadata_get(md, "album", 0,
+ AV_METADATA_MATCH_CASE);
++#else
++ AVDictionary* md = _formatCtx->metadata;
++ if (md) {
++ AVDictionaryEntry* tag = av_dict_get(md, "album", 0,
++ AV_DICT_MATCH_CASE);
++#endif
+ if (tag && tag->value) {
+ setId3Info(&Id3Info::album, std::string(tag->value),
+ _id3Object);
+@@ -620,27 +644,27 @@ MediaParserFfmpeg::seekMedia(boost::int64_t offset, int whence)
+ }
+
+ boost::uint16_t
+-MediaParserFfmpeg::SampleFormatToSampleSize(SampleFormat fmt)
++MediaParserFfmpeg::SampleFormatToSampleSize(AVSampleFormat fmt)
+ {
+ switch (fmt)
+ {
+- case SAMPLE_FMT_U8: // unsigned 8 bits
++ case AV_SAMPLE_FMT_U8: // unsigned 8 bits
+ return 1;
+
+- case SAMPLE_FMT_S16: // signed 16 bits
+- case SAMPLE_FMT_FLT: // float
++ case AV_SAMPLE_FMT_S16: // signed 16 bits
++ case AV_SAMPLE_FMT_FLT: // float
+ return 2;
+
+ #if !defined (LIBAVCODEC_VERSION_MAJOR) || LIBAVCODEC_VERSION_MAJOR < 52
+ // Was dropped for version 52.0.0
+- case SAMPLE_FMT_S24: // signed 24 bits
++ case AV_SAMPLE_FMT_S24: // signed 24 bits
+ return 3;
+ #endif
+
+- case SAMPLE_FMT_S32: // signed 32 bits
++ case AV_SAMPLE_FMT_S32: // signed 32 bits
+ return 4;
+
+- case SAMPLE_FMT_NONE:
++ case AV_SAMPLE_FMT_NONE:
+ default:
+ return 8; // arbitrary value
+ }
+diff --git a/libmedia/ffmpeg/MediaParserFfmpeg.h b/libmedia/ffmpeg/MediaParserFfmpeg.h
+index 4e410d8..a14cfb6 100644
+--- a/libmedia/ffmpeg/MediaParserFfmpeg.h
++++ b/libmedia/ffmpeg/MediaParserFfmpeg.h
+@@ -154,7 +154,13 @@ private:
+ AVStream* _audioStream;
+
+ /// ?
+- ByteIOContext _byteIOCxt;
++#if LIBAVFORMAT_VERSION_INT < AV_VERSION_INT(52,107,0)
++// AVIOContext was introduced a bit earlier but without version bump, so let's
++// be safe
++ ByteIOContext _byteIOCxt;
++#else
++ AVIOContext* _avIOCxt;
++#endif
+
+ /// Size of the ByteIO context buffer
+ //
+@@ -172,7 +178,7 @@ private:
+ //
+ /// TODO: move somewhere in ffmpeg utils..
+ ///
+- boost::uint16_t SampleFormatToSampleSize(SampleFormat fmt);
++ boost::uint16_t SampleFormatToSampleSize(AVSampleFormat fmt);
+
+ /// Make an EncodedVideoFrame from an AVPacket and push to buffer
+ //
+diff --git a/libmedia/ffmpeg/VideoDecoderFfmpeg.cpp b/libmedia/ffmpeg/VideoDecoderFfmpeg.cpp
+index 40a5c80..eeefafe 100644
+--- a/libmedia/ffmpeg/VideoDecoderFfmpeg.cpp
++++ b/libmedia/ffmpeg/VideoDecoderFfmpeg.cpp
+@@ -171,7 +171,10 @@ VideoDecoderFfmpeg::init(enum CodecID codecId, int /*width*/, int /*height*/,
+ boost::uint8_t* extradata, int extradataSize)
+ {
+ // Init the avdecoder-decoder
++#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(52,6,2)
++ // Starting from this version avcodec_register calls avcodec_init
+ avcodec_init();
++#endif
+ avcodec_register_all();// change this to only register need codec?
+
+ _videoCodec = avcodec_find_decoder(codecId);
+@@ -529,7 +532,11 @@ get_buffer(AVCodecContext* avctx, AVFrame* pic)
+
+ static unsigned int pic_num = 0;
+ pic->type = FF_BUFFER_TYPE_USER;
++#if LIBAVCODEC_VERSION_MAJOR < 54
++ // This field has been unused for longer but has been removed with
++ // libavcodec 54.
+ pic->age = ++pic_num - surface->getPicNum();
++#endif
+ surface->setPicNum(pic_num);
+ return 0;
+ #endif
+diff --git a/libmedia/ffmpeg/ffmpegHeaders.h b/libmedia/ffmpeg/ffmpegHeaders.h
+index 65a8d0c..7710121 100644
+--- a/libmedia/ffmpeg/ffmpegHeaders.h
++++ b/libmedia/ffmpeg/ffmpegHeaders.h
+@@ -83,5 +83,15 @@ extern "C" {
+ #define HAVE_SWSCALE_H 1
+ #endif
+
++#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(52,94,1)
++#define AV_SAMPLE_FMT_NONE SAMPLE_FMT_NONE
++#define AV_SAMPLE_FMT_U8 SAMPLE_FMT_U8
++#define AV_SAMPLE_FMT_S16 SAMPLE_FMT_S16
++#define AV_SAMPLE_FMT_S32 SAMPLE_FMT_S32
++#define AV_SAMPLE_FMT_FLT SAMPLE_FMT_FLT
++#define AV_SAMPLE_FMT_DBL SAMPLE_FMT_DBL
++
++#define AVSampleFormat SampleFormat
++#endif
+
+ #endif // GNASH_MEDIA_FFMPEG_HEADERS_H
diff --git a/www-plugins/gnash/files/gnash-0.8.10_p20120903-libav9.patch b/www-plugins/gnash/files/gnash-0.8.10_p20120903-libav9.patch
new file mode 100644
index 00000000000..ab6baa7673d
--- /dev/null
+++ b/www-plugins/gnash/files/gnash-0.8.10_p20120903-libav9.patch
@@ -0,0 +1,85 @@
+commit dfba5258dc230669a7e1ad309e25ef190c77e854
+Author: Alexis Ballier <aballier@gentoo.org>
+Date: Thu Feb 14 16:54:08 2013 -0300
+
+ Fix build with libav-9 (#38333)
+
+ Signed-off-by: Sandro Santilli <strk@keybit.net>
+
+diff --git a/libmedia/ffmpeg/AudioDecoderFfmpeg.cpp b/libmedia/ffmpeg/AudioDecoderFfmpeg.cpp
+index 5c8e1ad..50947fb 100644
+--- a/libmedia/ffmpeg/AudioDecoderFfmpeg.cpp
++++ b/libmedia/ffmpeg/AudioDecoderFfmpeg.cpp
+@@ -133,12 +133,20 @@ void AudioDecoderFfmpeg::setup(SoundInfo& info)
+ }
+ }
+
++#if LIBAVCODEC_VERSION_INT > AV_VERSION_INT(53,8,0)
++ _audioCodecCtx = avcodec_alloc_context3(_audioCodec);
++#else
+ _audioCodecCtx = avcodec_alloc_context();
++#endif
+ if (!_audioCodecCtx) {
+ throw MediaException(_("libavcodec couldn't allocate context"));
+ }
+
++#if LIBAVCODEC_VERSION_INT > AV_VERSION_INT(53,8,0)
++ int ret = avcodec_open2(_audioCodecCtx, _audioCodec, NULL);
++#else
+ int ret = avcodec_open(_audioCodecCtx, _audioCodec);
++#endif
+ if (ret < 0) {
+ av_free(_audioCodecCtx);
+ _audioCodecCtx=0;
+@@ -259,7 +267,11 @@ void AudioDecoderFfmpeg::setup(const AudioInfo& info)
+ _needsParsing = (_parser != NULL);
+
+ // Create an audioCodecCtx from the ffmpeg parser if exists/possible
++#if LIBAVCODEC_VERSION_INT > AV_VERSION_INT(53,8,0)
++ _audioCodecCtx = avcodec_alloc_context3(_audioCodec);
++#else
+ _audioCodecCtx = avcodec_alloc_context();
++#endif
+ if (!_audioCodecCtx) {
+ throw MediaException(_("AudioDecoderFfmpeg: libavcodec couldn't "
+ "allocate context"));
+@@ -310,7 +322,11 @@ void AudioDecoderFfmpeg::setup(const AudioInfo& info)
+ #ifdef GNASH_DEBUG_AUDIO_DECODING
+ log_debug(" Opening codec");
+ #endif // GNASH_DEBUG_AUDIO_DECODING
++#if LIBAVCODEC_VERSION_INT > AV_VERSION_INT(53,8,0)
++ int ret = avcodec_open2(_audioCodecCtx, _audioCodec, NULL);
++#else
+ int ret = avcodec_open(_audioCodecCtx, _audioCodec);
++#endif
+ if (ret < 0) {
+ //avcodec_close(_audioCodecCtx);
+ av_free(_audioCodecCtx);
+diff --git a/libmedia/ffmpeg/VideoDecoderFfmpeg.cpp b/libmedia/ffmpeg/VideoDecoderFfmpeg.cpp
+index eeefafe..e5263c6 100644
+--- a/libmedia/ffmpeg/VideoDecoderFfmpeg.cpp
++++ b/libmedia/ffmpeg/VideoDecoderFfmpeg.cpp
+@@ -183,7 +183,11 @@ VideoDecoderFfmpeg::init(enum CodecID codecId, int /*width*/, int /*height*/,
+ throw MediaException(_("libavcodec can't decode this video format"));
+ }
+
++#if LIBAVCODEC_VERSION_INT > AV_VERSION_INT(53,8,0)
++ _videoCodecCtx.reset(new CodecContextWrapper(avcodec_alloc_context3(_videoCodec)));
++#else
+ _videoCodecCtx.reset(new CodecContextWrapper(avcodec_alloc_context()));
++#endif
+ if (!_videoCodecCtx->getContext()) {
+ throw MediaException(_("libavcodec couldn't allocate context"));
+ }
+@@ -206,7 +210,11 @@ VideoDecoderFfmpeg::init(enum CodecID codecId, int /*width*/, int /*height*/,
+ }
+ #endif
+
++#if LIBAVCODEC_VERSION_INT > AV_VERSION_INT(53,8,0)
++ int ret = avcodec_open2(ctx, _videoCodec, NULL);
++#else
+ int ret = avcodec_open(ctx, _videoCodec);
++#endif
+ if (ret < 0) {
+ boost::format msg = boost::format(_("libavcodec "
+ "failed to initialize FFMPEG "
diff --git a/www-plugins/gnash/files/gnash-0.8.11-gettext-macro.patch b/www-plugins/gnash/files/gnash-0.8.11-gettext-macro.patch
new file mode 100644
index 00000000000..7461cc2ec6e
--- /dev/null
+++ b/www-plugins/gnash/files/gnash-0.8.11-gettext-macro.patch
@@ -0,0 +1,29 @@
+diff -ur a/libdevice/vaapi/VaapiSurfaceGLX.cpp b/libdevice/vaapi/VaapiSurfaceGLX.cpp
+--- a/libdevice/vaapi/VaapiSurfaceGLX.cpp 2013-08-22 19:50:20.000000000 +0200
++++ b/libdevice/vaapi/VaapiSurfaceGLX.cpp 2013-08-22 22:43:55.060296748 +0200
+@@ -202,14 +202,14 @@
+
+ reset(reinterpret_cast<uintptr_t>(surface));
+
+- log_debug(_(" -> surface %p\n", this->surface()));
++ log_debug(_(" -> surface %p\n"), this->surface());
+ }
+
+ VaapiSurfaceGLXImpl::~VaapiSurfaceGLXImpl()
+ {
+ // GNASH_REPORT_FUNCTION;
+
+- log_debug(_("VaapiSurface::~VaapiSurface(): surface %p\n", surface()));
++ log_debug(_("VaapiSurface::~VaapiSurface(): surface %p\n"), surface());
+
+ if (!surface()) {
+ return;
+@@ -263,7 +263,7 @@
+
+ bool VaapiSurfaceGLX::update(boost::shared_ptr<VaapiSurface> surface)
+ {
+- log_debug(_("VaapiSurfaceGLX::update(): from surface 0x%08x\n", surface->get()));
++ log_debug(_("VaapiSurfaceGLX::update(): from surface 0x%08x\n"), surface->get());
+
+ return dynamic_cast<VaapiSurfaceGLXImpl *>(_impl.get())->update(surface);
+ }
diff --git a/www-plugins/gnash/files/gnash-0.8.9-external-dejagnu.patch b/www-plugins/gnash/files/gnash-0.8.9-external-dejagnu.patch
new file mode 100644
index 00000000000..eaffda77bc0
--- /dev/null
+++ b/www-plugins/gnash/files/gnash-0.8.9-external-dejagnu.patch
@@ -0,0 +1,24 @@
+diff -ur a/plugin/npapi/test.cpp b/plugin/npapi/test.cpp
+--- a/plugin/npapi/test.cpp 2011-03-13 17:47:36.000000000 +0100
++++ b/plugin/npapi/test.cpp 2011-03-20 23:52:20.369998096 +0100
+@@ -35,7 +35,7 @@
+ #include "npfunctions.h"
+ #endif
+ #include "pluginbase.h"
+-#include "dejagnu.h"
++#include <dejagnu.h>
+ #include "../../testsuite/check.h"
+ #include <regex.h>
+
+diff -ur a/testsuite/check.h b/testsuite/check.h
+--- a/testsuite/check.h 2011-02-26 19:11:08.000000000 +0100
++++ b/testsuite/check.h 2011-03-20 23:52:32.570998094 +0100
+@@ -29,7 +29,7 @@
+
+ #define HAVE_DEJAGNU_H 1 // we ship our own now...
+ #ifdef HAVE_DEJAGNU_H
+-#include "dejagnu.h"
++#include <dejagnu.h>
+
+ #define info(x) note x
+
diff --git a/www-plugins/gnash/files/gnash-0.8.9-kde4-libdir.patch b/www-plugins/gnash/files/gnash-0.8.9-kde4-libdir.patch
new file mode 100644
index 00000000000..b3279441d2f
--- /dev/null
+++ b/www-plugins/gnash/files/gnash-0.8.9-kde4-libdir.patch
@@ -0,0 +1,12 @@
+diff -ur a/macros/kde4.m4 b/macros/kde4.m4
+--- a/macros/kde4.m4 2011-02-26 19:11:08.000000000 +0100
++++ b/macros/kde4.m4 2011-11-25 18:09:25.000000000 +0100
+@@ -198,7 +198,7 @@
+ if test -d ${KDE4_PREFIX}/lib64 -a -f /etc/redhat-release; then
+ KDE4_PLUGINDIR="${KDE4_PREFIX}/lib64/kde4"
+ else
+- KDE4_PLUGINDIR="${KDE4_PREFIX}/lib/kde4"
++ KDE4_PLUGINDIR="${KDE4_PREFIX}/${acl_libdirstem}/kde4"
+ fi
+ fi
+ if test x"${with_kde4_servicesdir}" != x ; then
diff --git a/www-plugins/gnash/files/gnash-0.8.9-klash.patch b/www-plugins/gnash/files/gnash-0.8.9-klash.patch
new file mode 100644
index 00000000000..e6afec04d29
--- /dev/null
+++ b/www-plugins/gnash/files/gnash-0.8.9-klash.patch
@@ -0,0 +1,12 @@
+diff -ur a/macros/kde4.m4 b/macros/kde4.m4
+--- a/macros/kde4.m4 2011-02-26 19:11:08.000000000 +0100
++++ b/macros/kde4.m4 2011-03-21 00:04:38.845997945 +0100
+@@ -210,7 +210,7 @@
+ KDE4_CONFIGDIR="${KDE4_PREFIX}/share/kde4/config"
+ fi
+ if test x"${KDE4_APPSDATADIR}" = x ; then
+- KDE4_APPSDATADIR="${KDE4_PREFIX}/share/kde4/apps/klash"
++ KDE4_APPSDATADIR="${KDE4_PREFIX}/share/apps/klash"
+ fi
+
+ if test x"${ac_cv_path_kde4_incl}" != x ; then
diff --git a/www-plugins/gnash/gnash-0.8.10_p20131019.ebuild b/www-plugins/gnash/gnash-0.8.10_p20131019.ebuild
new file mode 100644
index 00000000000..bc768b1b6bd
--- /dev/null
+++ b/www-plugins/gnash/gnash-0.8.10_p20131019.ebuild
@@ -0,0 +1,284 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+CMAKE_REQUIRED="never"
+KDE_REQUIRED="optional"
+AT_M4DIR="cygnal"
+# won't build with python-3, bug #392969
+PYTHON_COMPAT=( python2_7 )
+
+inherit autotools eutils kde4-base multilib nsplugins python-any-r1 flag-o-matic
+
+DESCRIPTION="GNU Flash movie player that supports many SWF v7,8,9 features"
+HOMEPAGE="http://www.gnu.org/software/gnash/"
+
+if [[ ${PV} = 9999* ]]; then
+ SRC_URI=""
+ EGIT_REPO_URI="git://git.savannah.gnu.org/gnash.git"
+ inherit git-2
+else
+# Release tarball is b0rked, upstream #35612
+# SRC_URI="mirror://gnu/${PN}/${PV}/${P}.tar.bz2"
+ SRC_URI="mirror://gentoo/${P}.tar.xz"
+fi
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="amd64 ppc ~ppc64 ~sparc x86"
+IUSE="X +agg cairo cygnal dbus directfb doc dump egl fbcon +ffmpeg gconf gnome gstreamer gtk harden jemalloc kde lirc mysql +nls nsplugin opengl openvg python sdl +sdl-sound ssh ssl test vaapi"
+REQUIRED_USE="dump? ( agg ffmpeg )
+ fbcon? ( agg )
+ nsplugin? ( gtk )
+ openvg? ( egl )
+ python? ( gtk )
+ vaapi? ( agg ffmpeg )
+ || ( agg cairo opengl openvg )
+ || ( dump fbcon gtk kde sdl )
+ "
+
+RDEPEND=">=dev-libs/boost-1.41.0:0=
+ dev-libs/expat
+ dev-libs/libxml2
+ virtual/jpeg
+ media-libs/libpng
+ net-misc/curl
+ x11-libs/libX11
+ x11-libs/libXi
+ x11-libs/libXmu
+ x11-libs/libXt
+ media-libs/giflib
+ x11-proto/xproto
+ agg? ( x11-libs/agg )
+ cairo? ( x11-libs/cairo )
+ directfb? (
+ dev-libs/DirectFB
+ )
+ doc? (
+ >=app-text/docbook2X-0.8.8
+ app-text/docbook-sgml-utils
+ )
+ egl? (
+ media-libs/mesa[egl]
+ )
+ fbcon? (
+ x11-libs/tslib
+ )
+ ffmpeg? (
+ virtual/ffmpeg[vaapi?]
+ )
+ gconf? (
+ gnome-base/gconf
+ )
+ gstreamer? (
+ media-plugins/gst-plugins-ffmpeg
+ media-plugins/gst-plugins-mad
+ media-plugins/gst-plugins-meta
+ )
+ gtk? (
+ x11-libs/gtk+:2
+ python? ( dev-python/pygtk:2 )
+ )
+ jemalloc? ( dev-libs/jemalloc )
+ kde? ( $(add_kdebase_dep kdebase-startkde) )
+ opengl? (
+ virtual/glu
+ virtual/opengl
+ gtk? ( x11-libs/gtkglext )
+ )
+ openvg? (
+ media-libs/mesa[openvg]
+ )
+ sdl? ( media-libs/libsdl[X] )
+ sdl-sound? ( media-libs/libsdl )
+ media-libs/speex[ogg]
+ sys-libs/zlib
+ >=sys-devel/libtool-2.2
+ mysql? ( virtual/mysql )
+ lirc? ( app-misc/lirc )
+ dbus? ( sys-apps/dbus )
+ ssh? ( >=net-libs/libssh-0.4[server] )
+ ssl? ( dev-libs/openssl )
+ vaapi? ( x11-libs/libva[opengl?] )
+ "
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+ nls? ( sys-devel/gettext )
+ gnome? ( app-text/rarian )
+ nsplugin? ( net-misc/npapi-sdk )
+ test? ( dev-util/dejagnu )"
+# Tests hang with sandbox, bug #321017
+RESTRICT="test"
+
+pkg_setup() {
+ kde4-base_pkg_setup
+ python-any-r1_pkg_setup
+
+ if use !ffmpeg && use !gstreamer; then
+ ewarn "You are trying to build Gnash without choosing a media handler."
+ ewarn "Sound and video playback will not work."
+ fi
+}
+
+src_unpack() {
+ default
+ # rename git snapshot directory to what portage expects
+ mv ${PN}-*/ ${P} || die
+}
+
+src_prepare() {
+ # Fix paths for klash, bug #339610
+ epatch "${FILESDIR}"/${PN}-0.8.9-klash.patch
+
+ # Use external dejagnu for tests, bug #321017
+ epatch "${FILESDIR}"/${PN}-0.8.9-external-dejagnu.patch
+
+ # Fix building on ppc64, bug #342535
+ use ppc64 && append-flags -mminimal-toc
+
+ # Fix kde multilib library path, bug #391283
+ epatch "${FILESDIR}"/${PN}-0.8.9-kde4-libdir.patch
+
+ # Fix libamf includes
+ epatch "${FILESDIR}"/${PN}-0.8.10-amf-include.patch
+
+ # Allow building against npapi-sdk, bug #383071
+ epatch "${FILESDIR}"/${PN}-0.8.10-npapi-sdk.patch
+
+ eautoreconf
+}
+src_configure() {
+ local device gui input media myconf myext renderers
+
+ # Set nsplugin install directory.
+ use nsplugin && myconf="${myconf} --with-npapi-plugindir=/usr/$(get_libdir)/gnash/npapi/"
+
+ # Set hardware acceleration.
+ use X && device+=",x11"
+ use directfb && device+=",directfb"
+ use egl && device+=",egl"
+ use fbcon && device+=",rawfb"
+ use vaapi && device+=",vaapi"
+ [[ "${device}x" == "x" ]] && device+=",none"
+
+ # Set rendering engine.
+ use agg && renderers+=",agg"
+ use cairo && renderers+=",cairo"
+ use opengl && renderers+=",opengl"
+ use openvg && renderers+=",openvg"
+
+ # Set kde and konqueror plugin directories.
+ if use kde; then
+ myconf="${myconf}
+ --with-plugins-install=system
+ --with-kde4-incl=${KDEDIR}/include
+ --with-kde4-configdir=${KDEDIR}/share/config
+ --with-kde4-prefix=${KDEDIR}
+ --with-kde4-lib=${KDEDIR}/$(get_libdir)
+ --with-kde-appsdatadir=${KDEDIR}/share/apps/klash
+ --with-kde4-servicesdir=${KDEDIR}/share/kde4/services
+ --with-kde4-plugindir=${KDEDIR}/$(get_libdir)/kde4"
+ fi
+
+ # Set media handler.
+ use ffmpeg || use gstreamer || media+=",none"
+ use ffmpeg && media+=",ffmpeg"
+ use gstreamer && media+=",gst"
+
+ # Set gui.
+ use dump && gui="${gui},dump"
+ use fbcon && gui="${gui},fb"
+ use gtk && gui=",gtk"
+ use kde && gui="${gui},kde4"
+ use sdl && gui="${gui},sdl"
+
+ if use sdl-sound; then
+ myconf="${myconf} --enable-sound=sdl"
+ else
+ myconf="${myconf} --enable-sound=none"
+ fi
+
+ # Set extensions
+ use mysql && myext=",mysql"
+ use gtk && myext="${myext},gtk"
+ use lirc && myext="${myext},lirc"
+ use dbus && myext="${myext},dbus"
+
+ # Strip extra comma from gui, myext, hwaccel and renderers.
+ device=$( echo $device | sed -e 's/,//' )
+ gui=$( echo $gui | sed -e 's/,//' )
+ myext=$( echo $myext | sed -e 's/,//' )
+ renderers=$( echo $renderers | sed -e 's/,//' )
+ media=$( echo $media | sed -e 's/,//' )
+
+ econf \
+ --docdir=/usr/share/doc/${PF} \
+ --disable-dependency-tracking \
+ --disable-kparts3 \
+ $(use_enable cygnal) \
+ $(use_enable cygnal cgibins) \
+ $(use_enable doc docbook) \
+ $(use_enable gnome ghelp) \
+ $(use_enable harden) \
+ $(use_enable jemalloc) \
+ $(use_enable kde kparts4) \
+ $(use_enable nls) \
+ $(use_enable nsplugin npapi) \
+ $(use_enable python) \
+ $(use_enable ssh) \
+ $(use_enable ssl) \
+ $(use_enable test testsuite) \
+ $(use_with gconf) \
+ --enable-gui=${gui} \
+ --enable-device=${device} \
+ --enable-extensions=${myext} \
+ --enable-renderer=${renderers} \
+ --enable-media=${media} \
+ ${myconf}
+}
+src_test() {
+ local log=testsuite-results.txt
+ cd testsuite
+ emake check || die "make check failed"
+ ./anaylse-results.sh > $log || die "results analyze failed"
+ cat $log
+}
+src_install() {
+ emake DESTDIR="${D}" install || die "emake install failed"
+
+ # Install nsplugin in directory set by --with-npapi-plugindir.
+ if use nsplugin; then
+ emake DESTDIR="${D}" install-plugin || die "install plugins failed"
+ fi
+
+ # Install kde konqueror plugin.
+ if use kde; then
+ pushd "${S}/plugin/klash4" >& /dev/null || die
+ emake DESTDIR="${D}" install-plugin || die "install kde plugins failed"
+ popd >& /dev/null
+ fi
+ # Create a symlink in /usr/$(get_libdir)/nsbrowser/plugins to the nsplugin install directory.
+ use nsplugin && inst_plugin /usr/$(get_libdir)/gnash/npapi/libgnashplugin.so
+
+ # Remove eglinfo, bug #463654
+ if use egl; then
+ rm -f "${D}"/usr/bin/eglinfo || die
+ fi
+
+ dodoc AUTHORS ChangeLog NEWS README || die "dodoc failed"
+}
+pkg_postinst() {
+ if use !gnome || use !gstreamer && use !ffmpeg ; then
+ ewarn ""
+ ewarn "Gnash was built without a media handler and or http handler !"
+ ewarn ""
+ ewarn "If you want Gnash to support video then you will need to"
+ ewarn "rebuild Gnash with either the ffmpeg or gstreamer and gnome use flags set."
+ ewarn ""
+ fi
+ ewarn "${PN} is still in heavy development"
+ ewarn "Please first report bugs on upstream gnashdevs and deal with them"
+ ewarn "And then report a Gentoo bug to the maintainer"
+ use kde && kde4-base_pkg_postinst
+}
diff --git a/www-plugins/gnash/gnash-0.8.10_p20150316.ebuild b/www-plugins/gnash/gnash-0.8.10_p20150316.ebuild
new file mode 100644
index 00000000000..d13a38b9020
--- /dev/null
+++ b/www-plugins/gnash/gnash-0.8.10_p20150316.ebuild
@@ -0,0 +1,281 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+CMAKE_REQUIRED="never"
+KDE_REQUIRED="optional"
+AT_M4DIR="cygnal"
+# won't build with python-3, bug #392969
+PYTHON_COMPAT=( python2_7 )
+
+inherit autotools eutils kde4-base multilib nsplugins python-any-r1 flag-o-matic
+
+DESCRIPTION="GNU Flash movie player that supports many SWF v7,8,9 features"
+HOMEPAGE="http://www.gnu.org/software/gnash/"
+
+if [[ ${PV} = 9999* ]]; then
+ SRC_URI=""
+ EGIT_REPO_URI="git://git.savannah.gnu.org/gnash.git"
+ inherit git-2
+else
+# Release tarball is b0rked, upstream #35612
+# SRC_URI="mirror://gnu/${PN}/${PV}/${P}.tar.bz2"
+ SRC_URI="mirror://gentoo/${P}.tar.xz"
+fi
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~ppc64 ~sparc ~x86"
+IUSE="X +agg cairo cygnal dbus directfb doc dump egl fbcon +ffmpeg gconf gnome gstreamer gtk harden jemalloc kde lirc mysql +nls nsplugin opengl openvg python sdl +sdl-sound ssh ssl test vaapi"
+REQUIRED_USE="dump? ( agg ffmpeg )
+ fbcon? ( agg )
+ nsplugin? ( gtk )
+ openvg? ( egl )
+ python? ( gtk )
+ vaapi? ( agg ffmpeg )
+ || ( agg cairo opengl openvg )
+ || ( dump fbcon gtk kde sdl )
+ "
+
+RDEPEND=">=dev-libs/boost-1.41.0:0=
+ dev-libs/expat
+ dev-libs/libxml2
+ virtual/jpeg
+ media-libs/libpng
+ net-misc/curl
+ x11-libs/libX11
+ x11-libs/libXi
+ x11-libs/libXmu
+ x11-libs/libXt
+ media-libs/giflib
+ x11-proto/xproto
+ agg? ( x11-libs/agg )
+ cairo? ( x11-libs/cairo )
+ directfb? (
+ dev-libs/DirectFB
+ )
+ doc? (
+ >=app-text/docbook2X-0.8.8
+ app-text/docbook-sgml-utils
+ )
+ egl? (
+ media-libs/mesa[egl]
+ )
+ fbcon? (
+ x11-libs/tslib
+ )
+ ffmpeg? (
+ virtual/ffmpeg[vaapi?]
+ )
+ gconf? (
+ gnome-base/gconf
+ )
+ gstreamer? (
+ media-plugins/gst-plugins-ffmpeg
+ media-plugins/gst-plugins-mad
+ media-plugins/gst-plugins-meta
+ )
+ gtk? (
+ x11-libs/gtk+:2
+ python? ( dev-python/pygtk:2 )
+ )
+ jemalloc? ( dev-libs/jemalloc )
+ kde? ( $(add_kdebase_dep kdebase-startkde) )
+ opengl? (
+ virtual/glu
+ virtual/opengl
+ gtk? ( x11-libs/gtkglext )
+ )
+ openvg? (
+ media-libs/mesa[openvg]
+ )
+ sdl? ( media-libs/libsdl[X] )
+ sdl-sound? ( media-libs/libsdl )
+ media-libs/speex[ogg]
+ sys-libs/zlib
+ >=sys-devel/libtool-2.2
+ mysql? ( virtual/mysql )
+ lirc? ( app-misc/lirc )
+ dbus? ( sys-apps/dbus )
+ ssh? ( >=net-libs/libssh-0.4[server] )
+ ssl? ( dev-libs/openssl )
+ vaapi? ( x11-libs/libva[opengl?] )
+ "
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+ nls? ( sys-devel/gettext )
+ gnome? ( app-text/rarian )
+ nsplugin? ( net-misc/npapi-sdk )
+ test? ( dev-util/dejagnu )"
+# Tests hang with sandbox, bug #321017
+RESTRICT="test"
+
+pkg_setup() {
+ kde4-base_pkg_setup
+ python-any-r1_pkg_setup
+
+ if use !ffmpeg && use !gstreamer; then
+ ewarn "You are trying to build Gnash without choosing a media handler."
+ ewarn "Sound and video playback will not work."
+ fi
+}
+
+src_unpack() {
+ default
+ # rename git snapshot directory to what portage expects
+ mv ${PN}-*/ ${P} || die
+}
+
+src_prepare() {
+ # Fix paths for klash, bug #339610
+ epatch "${FILESDIR}"/${PN}-0.8.9-klash.patch
+
+ # Use external dejagnu for tests, bug #321017
+ epatch "${FILESDIR}"/${PN}-0.8.9-external-dejagnu.patch
+
+ # Fix building on ppc64, bug #342535
+ use ppc64 && append-flags -mminimal-toc
+
+ # Fix kde multilib library path, bug #391283
+ epatch "${FILESDIR}"/${PN}-0.8.9-kde4-libdir.patch
+
+ # Fix libamf includes
+ epatch "${FILESDIR}"/${PN}-0.8.10-amf-include.patch
+
+ eautoreconf
+}
+src_configure() {
+ local device gui input media myconf myext renderers
+
+ # Set nsplugin install directory.
+ use nsplugin && myconf="${myconf} --with-npapi-plugindir=/usr/$(get_libdir)/gnash/npapi/"
+
+ # Set hardware acceleration.
+ use X && device+=",x11"
+ use directfb && device+=",directfb"
+ use egl && device+=",egl"
+ use fbcon && device+=",rawfb"
+ use vaapi && device+=",vaapi"
+ [[ "${device}x" == "x" ]] && device+=",none"
+
+ # Set rendering engine.
+ use agg && renderers+=",agg"
+ use cairo && renderers+=",cairo"
+ use opengl && renderers+=",opengl"
+ use openvg && renderers+=",openvg"
+
+ # Set kde and konqueror plugin directories.
+ if use kde; then
+ myconf="${myconf}
+ --with-plugins-install=system
+ --with-kde4-incl=${KDEDIR}/include
+ --with-kde4-configdir=${KDEDIR}/share/config
+ --with-kde4-prefix=${KDEDIR}
+ --with-kde4-lib=${KDEDIR}/$(get_libdir)
+ --with-kde-appsdatadir=${KDEDIR}/share/apps/klash
+ --with-kde4-servicesdir=${KDEDIR}/share/kde4/services
+ --with-kde4-plugindir=${KDEDIR}/$(get_libdir)/kde4"
+ fi
+
+ # Set media handler.
+ use ffmpeg || use gstreamer || media+=",none"
+ use ffmpeg && media+=",ffmpeg"
+ use gstreamer && media+=",gst"
+
+ # Set gui.
+ use dump && gui="${gui},dump"
+ use fbcon && gui="${gui},fb"
+ use gtk && gui=",gtk"
+ use kde && gui="${gui},kde4"
+ use sdl && gui="${gui},sdl"
+
+ if use sdl-sound; then
+ myconf="${myconf} --enable-sound=sdl"
+ else
+ myconf="${myconf} --enable-sound=none"
+ fi
+
+ # Set extensions
+ use mysql && myext=",mysql"
+ use gtk && myext="${myext},gtk"
+ use lirc && myext="${myext},lirc"
+ use dbus && myext="${myext},dbus"
+
+ # Strip extra comma from gui, myext, hwaccel and renderers.
+ device=$( echo $device | sed -e 's/,//' )
+ gui=$( echo $gui | sed -e 's/,//' )
+ myext=$( echo $myext | sed -e 's/,//' )
+ renderers=$( echo $renderers | sed -e 's/,//' )
+ media=$( echo $media | sed -e 's/,//' )
+
+ econf \
+ --docdir=/usr/share/doc/${PF} \
+ --disable-dependency-tracking \
+ --disable-kparts3 \
+ $(use_enable cygnal) \
+ $(use_enable cygnal cgibins) \
+ $(use_enable doc docbook) \
+ $(use_enable gnome ghelp) \
+ $(use_enable harden) \
+ $(use_enable jemalloc) \
+ $(use_enable kde kparts4) \
+ $(use_enable nls) \
+ $(use_enable nsplugin npapi) \
+ $(use_enable python) \
+ $(use_enable ssh) \
+ $(use_enable ssl) \
+ $(use_enable test testsuite) \
+ $(use_with gconf) \
+ --enable-gui=${gui} \
+ --enable-device=${device} \
+ --enable-extensions=${myext} \
+ --enable-renderer=${renderers} \
+ --enable-media=${media} \
+ ${myconf}
+}
+src_test() {
+ local log=testsuite-results.txt
+ cd testsuite
+ emake check || die "make check failed"
+ ./anaylse-results.sh > $log || die "results analyze failed"
+ cat $log
+}
+src_install() {
+ emake DESTDIR="${D}" install || die "emake install failed"
+
+ # Install nsplugin in directory set by --with-npapi-plugindir.
+ if use nsplugin; then
+ emake DESTDIR="${D}" install-plugin || die "install plugins failed"
+ fi
+
+ # Install kde konqueror plugin.
+ if use kde; then
+ pushd "${S}/plugin/klash4" >& /dev/null || die
+ emake DESTDIR="${D}" install-plugin || die "install kde plugins failed"
+ popd >& /dev/null
+ fi
+ # Create a symlink in /usr/$(get_libdir)/nsbrowser/plugins to the nsplugin install directory.
+ use nsplugin && inst_plugin /usr/$(get_libdir)/gnash/npapi/libgnashplugin.so
+
+ # Remove eglinfo, bug #463654
+ if use egl; then
+ rm -f "${D}"/usr/bin/eglinfo || die
+ fi
+
+ dodoc AUTHORS ChangeLog NEWS README || die "dodoc failed"
+}
+pkg_postinst() {
+ if use !gnome || use !gstreamer && use !ffmpeg ; then
+ ewarn ""
+ ewarn "Gnash was built without a media handler and or http handler !"
+ ewarn ""
+ ewarn "If you want Gnash to support video then you will need to"
+ ewarn "rebuild Gnash with either the ffmpeg or gstreamer and gnome use flags set."
+ ewarn ""
+ fi
+ ewarn "${PN} is still in heavy development"
+ ewarn "Please first report bugs on upstream gnashdevs and deal with them"
+ ewarn "And then report a Gentoo bug to the maintainer"
+ use kde && kde4-base_pkg_postinst
+}
diff --git a/www-plugins/gnash/metadata.xml b/www-plugins/gnash/metadata.xml
new file mode 100644
index 00000000000..9461ad4a46b
--- /dev/null
+++ b/www-plugins/gnash/metadata.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>chithanh@gentoo.org</email>
+ <name>Chí-Thanh Christopher Nguyễn</name>
+ </maintainer>
+ <use>
+ <flag name='agg'>Rendering based on the Anti-Grain Geometry Rendering Engine library</flag>
+ <flag name='cygnal'>Enable building of the cygnal server</flag>
+ <flag name='dump'>Enable dump output module for creating video from SWF</flag>
+ <flag name='egl'>Enable EGL support for the OpenVG, OpenGL and X11 renderers</flag>
+ <flag name='gconf'>Enable GConf configuration backend</flag>
+ <flag name='harden'>Enable upstream recommended hardening build flags (may conflict with system ones)</flag>
+ <flag name='jemalloc'>Use dev-libs/jemalloc for allocations</flag>
+ <flag name='openvg'>Rendering based on the OpenVG graphics acceleration API</flag>
+ <flag name='sdl-sound'>Enable SDL audio output for the standalone player</flag>
+ <flag name='ssh'>Enable using SSH for network authentication in libnet</flag>
+ <flag name='ssl'>Enable directly using OpenSSL in libnet (not needed for nsplugin ssl support)</flag>
+ </use>
+</pkgmetadata>
diff --git a/www-plugins/google-talkplugin/Manifest b/www-plugins/google-talkplugin/Manifest
new file mode 100644
index 00000000000..48247e450d5
--- /dev/null
+++ b/www-plugins/google-talkplugin/Manifest
@@ -0,0 +1,8 @@
+DIST google-talkplugin_5.38.6.0-1_amd64.deb 7301206 SHA256 516c68c9f3bd0786e0d8ed03a36d2d82395d41b4c69342ba6879803f111ef332 SHA512 82b255ab8023d125c22a9b334c3ef98fe17e7cf657f173c35743bd06c397a11c59136d4e7ff9eeb352e72d745077882ea6ad7122ed33f2467dc8d32586c4290b WHIRLPOOL af52119b6b57699737cb8326b274625d731f28087586701a6ee24852220e89a482f49df7298d57ee26d527ea2a3ecb61c432e791e38a1dc8426a8911d01669d6
+DIST google-talkplugin_5.38.6.0-1_i386.deb 7175006 SHA256 c1752d2c76a1a93a0cc21783b5721a76b41da3cc92c9ba497f66a5e5175b5d84 SHA512 e06e987dbb48daadf18dd394e18e0203cefa787c17429079d0c448ca5a77517b79b2603078defbb52edaccb46a0dfeb56141d50a659ddb3511e83e3ca002de56 WHIRLPOOL cc85caa837e82e376d77d26735f213429c5abe46f4cded4d83164771df8eb200d03cea18a107ce0358fee17cbd6fc565794b125e0036794f87eb50423b69ae74
+DIST google-talkplugin_5.4.2.0-1_amd64.deb 8012042 SHA256 e5921ac2a1117358663d0603601d95770055de78cb2cc3a362bc50b04fa1bb93 SHA512 b6fa75d9e5d7dadc7d4bf5c732fe5587f3a5e2312a6ad0675f3b44f593b449e612aa0f9c72ab89afce9907363c4bbd48e19917ef3efb63e42c6dfbef71e6530f WHIRLPOOL b5b8cb2d6755da81e4fd487fa0962f96096b81b35a7633359a20a74fedb42b6148428a17f7a636d328109c4460987a344953b86bdfcd5fcf27f0829684aba3cd
+DIST google-talkplugin_5.4.2.0-1_i386.deb 7305310 SHA256 0942302742cc7f4d96a62c606765f3f4304a304987ebb44cc574fbd276fef8d9 SHA512 82cde8262d12ff9c36cbce57e5ebc55ffd30fd16e846af3433bf6cd8340b47b1c9784660468d271a5907beb50fba71917ad685d2212f92642f32dbbe170ae082 WHIRLPOOL dea482abb3b0d9c310ad7047a8951ce3589d5c247c565cb444051a22e5e38a71ffabee00dac2d5b4e76dd107c844339bbd0df6913c38674f6fa999748b4c3a2c
+DIST google-talkplugin_5.40.2.0-1_amd64.deb 7723806 SHA256 598874e41c2993e2a89c7ea1b063aef1b770c0ba6b34fb019dccb412ac7cb8d4 SHA512 a76760e7cad0584fb18aab065d1beae57c6f83681498643e09955f3f14bd0b0b3de8ca57cfe3f68641154a52f5d41840d51128aa1059eb342c56f662bab54e7d WHIRLPOOL ef671d05e36fbe1360ca7bd4f900404d295e69811c791f4b2ca231b2c9548becf4c02291c5e468801f7fde91b3ce5e0dee374b4eca78eb436fbbd80dbce9cc13
+DIST google-talkplugin_5.40.2.0-1_i386.deb 7621704 SHA256 7d0a0a0e7e7f375442b31d70feea96d0fbd573ce505ef6f32b8bb5d640e22486 SHA512 cb593a89de2129b5205f08382d5fe39f47351ed5c821e379bcbb0bdc2d62174e7c609c779ff5103795c8177862a9e8d017f2a7d711f5633f50a5b5fa2d251775 WHIRLPOOL 0e042dd1b9469cb7fce543cba2653602f8307d385dcdabb3405ff5591827eaed815812b994fe5b0c0c8a87a2e77da02b38d86fbb5f45a5b518a77f05d3515f38
+DIST google-talkplugin_5.41.0.0-1_amd64.deb 7813320 SHA256 9d878736e0c7a386dcd1abba237d28cfc76c44b933943cb6e9c0bcf10d5fa11d SHA512 cfeed6384fee1f25c12a90c3b39081f058dbcc1043a4692450f143569ce1fe6b94f0978f76362eafac87a15820b806fd01cc9975d80c076d35456533f9486cb1 WHIRLPOOL 0f54965e30738e6fec274412c8d8bb38b3add28946cef1b9fe6acc2b4c5639cb6b1bf84f6a187bb3e4f1afdc00b311da0771610c6a56f12582efded7c88ddcbb
+DIST google-talkplugin_5.41.0.0-1_i386.deb 7659028 SHA256 de1fcc0fc614a91df30a0a185a0b620abf44152e30a9ba5004f6b52abd0d8fd1 SHA512 ca5cd6b296791de471151710558d6fb501d584620703817ba5de769d639b653fd67ed30ae6d3aff3411b69c39a22232f2af9067d8b771677d26c561ffe958533 WHIRLPOOL 1cfef503cd74b3e814a528463f0a42865672efbb6faaad63aadbc538428b75fc8ce1520d2ef8a0e22505702da54b087ded94fb05a3d31086317821be4a8dce82
diff --git a/www-plugins/google-talkplugin/google-talkplugin-5.38.6.0.ebuild b/www-plugins/google-talkplugin/google-talkplugin-5.38.6.0.ebuild
new file mode 100644
index 00000000000..fcbe3ee389f
--- /dev/null
+++ b/www-plugins/google-talkplugin/google-talkplugin-5.38.6.0.ebuild
@@ -0,0 +1,129 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit eutils multilib nsplugins unpacker
+
+if [ "${PV}" != "9999" ]; then
+ DEB_PATCH="1"
+ #http://dl.google.com/linux/talkplugin/deb/dists/stable/main/binary-i386/Packages
+ MY_URL="http://dl.google.com/linux/talkplugin/deb/pool/main/${P:0:1}/${PN}"
+ MY_PKG="${PN}_${PV}-${DEB_PATCH}_i386.deb"
+ SRC_URI="x86? ( ${MY_URL}/${MY_PKG} )
+ amd64? ( ${MY_URL}/${MY_PKG/i386/amd64} )"
+ KEYWORDS="-* ~amd64 ~x86"
+else
+ inherit cvs #hack to make it part of @live-rebuild
+ MY_URL="http://dl.google.com/linux/direct"
+ MY_PKG="${PN}_current_i386.deb"
+ SRC_URI=""
+fi
+
+DESCRIPTION="Video chat browser plug-in for Google Talk"
+
+HOMEPAGE="http://www.google.com/chat/video"
+IUSE="libnotify selinux"
+SLOT="0"
+
+#GoogleTalkPlugin binary contains openssl and celt
+LICENSE="Google-TOS openssl BSD"
+
+OBSOLETE="yes"
+[[ $OBSOLETE = yes ]] && RESTRICT="fetch strip" || RESTRICT="strip mirror"
+
+RDEPEND="|| ( media-sound/pulseaudio media-libs/alsa-lib )
+ dev-libs/expat
+ dev-libs/glib:2
+ dev-libs/nspr
+ dev-libs/nss
+ sys-libs/glibc
+ x11-libs/cairo
+ x11-libs/gdk-pixbuf
+ x11-libs/gtk+:2
+ x11-libs/libX11
+ x11-libs/libXcomposite
+ x11-libs/libXext
+ x11-libs/libXfixes
+ x11-libs/libXrandr
+ x11-libs/libXrender
+ x11-libs/pango
+ sys-apps/lsb-release
+ selinux? ( sec-policy/selinux-googletalk )
+ libnotify? ( x11-libs/libnotify )"
+
+DEPEND=""
+
+INSTALL_BASE="opt/google/talkplugin"
+
+QA_PREBUILT="${INSTALL_BASE}/*"
+
+S="${WORKDIR}"
+
+LANGS="ar cs en et fr hu lt ms pl ru sv tl vi bg da fa gu id ja lv nl
+sk ta tr bn de es fi hi is kn ml no sl te uk ca el fil hr it ko mr or
+ro sr th ur"
+
+for X in ${LANGS} ; do
+ IUSE="${IUSE} linguas_${X}"
+done
+
+# nofetch means upstream bumped and thus needs version bump
+pkg_nofetch() {
+ if [[ ${OBSOLETE} = yes ]]; then
+ elog "This version is no longer available from Google and the license prevents mirroring."
+ elog "This ebuild is intended for users who already downloaded it previously and have problems"
+ elog "with ${PV}+. If you can get the distfile from e.g. another computer of yours, or search"
+ use amd64 && MY_PKG="${MY_PKG/i386/amd64}"
+ elog "it with google: http://www.google.com/search?q=intitle:%22index+of%22+${MY_PKG}"
+ elog "and copy the file ${MY_PKG} to ${DISTDIR}."
+ else
+ einfo "This version is no longer available from Google."
+ einfo "Note that Gentoo cannot mirror the distfiles due to license reasons, so we have to follow the bump."
+ einfo "Please file a version bump bug on http://bugs.gentoo.org (search existing bugs for ${PN} first!)."
+ fi
+}
+
+src_unpack() {
+ local pkg="${A:=${MY_PKG}}"
+ if [ "${PV}" = "9999" ]; then
+ use amd64 && pkg="${pkg/i386/amd64}"
+ einfo "Fetching ${pkg}"
+ wget "${MY_URL}/${pkg}" || die
+ fi
+ unpacker ${pkg}
+}
+
+src_install() {
+ local plugindir i l
+ local ppapi_plugindirs=( /opt/google/chrome{,-beta,-unstable}/pepper
+ /usr/$(get_libdir)/chromium-browser/pepper )
+
+ unpacker usr/share/doc/google-talkplugin/changelog.Debian.gz
+ dodoc changelog.Debian
+
+ exeinto "/${INSTALL_BASE}"
+ doexe "${INSTALL_BASE}"/GoogleTalkPlugin
+ for i in "${INSTALL_BASE}"/lib*.so; do
+ doexe "${i}"
+ [[ ${i##*/} = libnp* ]] && inst_plugin "/${i}"
+ if [[ ${i##*/} = libpp* ]] ; then
+ for plugindir in "${ppapi_plugindirs[@]}"; do
+ dosym "/${i}" "${plugindir}/${i##*/}"
+ done
+ fi
+ done
+
+ #install screen-sharing stuff - bug #397463
+ insinto "/${INSTALL_BASE}"
+ doins "${INSTALL_BASE}"/windowpicker.glade
+ doins "${INSTALL_BASE}"/remoting24x24.png
+ doins -r "${INSTALL_BASE}"/data
+
+ strip-linguas ${LANGS}
+ for l in ${LINGUAS}; do
+ insinto "/${INSTALL_BASE}"/locale/$l/LC_MESSAGES/
+ doins "${INSTALL_BASE}"/locale/$l/LC_MESSAGES/windowpicker.mo
+ done
+}
diff --git a/www-plugins/google-talkplugin/google-talkplugin-5.4.2.0.ebuild b/www-plugins/google-talkplugin/google-talkplugin-5.4.2.0.ebuild
new file mode 100644
index 00000000000..131dfd95bce
--- /dev/null
+++ b/www-plugins/google-talkplugin/google-talkplugin-5.4.2.0.ebuild
@@ -0,0 +1,125 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit eutils multilib nsplugins unpacker
+
+if [ "${PV}" != "9999" ]; then
+ DEB_PATCH="1"
+ #http://dl.google.com/linux/talkplugin/deb/dists/stable/main/binary-i386/Packages
+ MY_URL="http://dl.google.com/linux/talkplugin/deb/pool/main/${P:0:1}/${PN}"
+ MY_PKG="${PN}_${PV}-${DEB_PATCH}_i386.deb"
+ SRC_URI="x86? ( ${MY_URL}/${MY_PKG} )
+ amd64? ( ${MY_URL}/${MY_PKG/i386/amd64} )"
+else
+ inherit cvs #hack to make it part of @live-rebuild
+ MY_URL="http://dl.google.com/linux/direct"
+ MY_PKG="${PN}_current_i386.deb"
+ SRC_URI=""
+fi
+
+DESCRIPTION="Video chat browser plug-in for Google Talk"
+
+HOMEPAGE="http://www.google.com/chat/video"
+IUSE="libnotify selinux"
+SLOT="0"
+
+KEYWORDS="-* amd64 x86"
+#GoogleTalkPlugin binary contains openssl and celt
+LICENSE="Google-TOS openssl BSD"
+
+OBSOLETE="yes"
+[[ $OBSOLETE = yes ]] && RESTRICT="fetch strip" || RESTRICT="strip mirror"
+
+RDEPEND="|| ( media-sound/pulseaudio media-libs/alsa-lib )
+ dev-libs/glib:2
+ sys-libs/glibc
+ x11-libs/cairo
+ x11-libs/gdk-pixbuf
+ x11-libs/gtk+:2
+ x11-libs/libX11
+ x11-libs/libXcomposite
+ x11-libs/libXfixes
+ x11-libs/libXrandr
+ x11-libs/libXrender
+ x11-libs/pango
+ sys-apps/lsb-release
+ selinux? ( sec-policy/selinux-googletalk )
+ libnotify? ( x11-libs/libnotify )"
+
+DEPEND=""
+
+INSTALL_BASE="opt/google/talkplugin"
+
+QA_PREBUILT="${INSTALL_BASE}/*"
+
+S="${WORKDIR}"
+
+LANGS="ar cs en et fr hu lt ms pl ru sv tl vi bg da fa gu id ja lv nl
+sk ta tr bn de es fi hi is kn ml no sl te uk ca el fil hr it ko mr or
+ro sr th ur"
+
+for X in ${LANGS} ; do
+ IUSE="${IUSE} linguas_${X}"
+done
+
+# nofetch means upstream bumped and thus needs version bump
+pkg_nofetch() {
+ if [[ ${OBSOLETE} = yes ]]; then
+ elog "This version is no longer available from Google and the license prevents mirroring."
+ elog "This ebuild is intended for users who already downloaded it previously and have problems"
+ elog "with ${PV}+. If you can get the distfile from e.g. another computer of yours, or search"
+ use amd64 && MY_PKG="${MY_PKG/i386/amd64}"
+ elog "it with google: http://www.google.com/search?q=intitle:%22index+of%22+${MY_PKG}"
+ elog "and copy the file ${MY_PKG} to ${DISTDIR}."
+ else
+ einfo "This version is no longer available from Google."
+ einfo "Note that Gentoo cannot mirror the distfiles due to license reasons, so we have to follow the bump."
+ einfo "Please file a version bump bug on http://bugs.gentoo.org (search existing bugs for ${PN} first!)."
+ fi
+}
+
+src_unpack() {
+ local pkg="${A:=${MY_PKG}}"
+ if [ "${PV}" = "9999" ]; then
+ use amd64 && pkg="${pkg/i386/amd64}"
+ einfo "Fetching ${pkg}"
+ wget "${MY_URL}/${pkg}" || die
+ fi
+ unpacker ${pkg}
+}
+
+src_install() {
+ local plugindir i l
+ local ppapi_plugindirs=( /opt/google/chrome{,-beta,-unstable}/pepper
+ /usr/$(get_libdir)/chromium-browser/pepper )
+
+ unpacker usr/share/doc/google-talkplugin/changelog.Debian.gz
+ dodoc changelog.Debian
+
+ exeinto "/${INSTALL_BASE}"
+ doexe "${INSTALL_BASE}"/GoogleTalkPlugin
+ for i in "${INSTALL_BASE}"/lib*.so; do
+ doexe "${i}"
+ [[ ${i##*/} = libnp* ]] && inst_plugin "/${i}"
+ if [[ ${i##*/} = libpp* ]] ; then
+ for plugindir in "${ppapi_plugindirs[@]}"; do
+ dosym "/${i}" "${plugindir}/${i##*/}"
+ done
+ fi
+ done
+
+ #install screen-sharing stuff - bug #397463
+ insinto "/${INSTALL_BASE}"
+ doins "${INSTALL_BASE}"/windowpicker.glade
+ doins "${INSTALL_BASE}"/remoting24x24.png
+ doins -r "${INSTALL_BASE}"/data
+
+ strip-linguas ${LANGS}
+ for l in ${LINGUAS}; do
+ insinto "/${INSTALL_BASE}"/locale/$l/LC_MESSAGES/
+ doins "${INSTALL_BASE}"/locale/$l/LC_MESSAGES/windowpicker.mo
+ done
+}
diff --git a/www-plugins/google-talkplugin/google-talkplugin-5.40.2.0.ebuild b/www-plugins/google-talkplugin/google-talkplugin-5.40.2.0.ebuild
new file mode 100644
index 00000000000..027aa396da7
--- /dev/null
+++ b/www-plugins/google-talkplugin/google-talkplugin-5.40.2.0.ebuild
@@ -0,0 +1,127 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit eutils multilib nsplugins unpacker
+
+if [ "${PV}" != "9999" ]; then
+ DEB_PATCH="1"
+ #http://dl.google.com/linux/talkplugin/deb/dists/stable/main/binary-i386/Packages
+ MY_URL="http://dl.google.com/linux/talkplugin/deb/pool/main/${P:0:1}/${PN}"
+ MY_PKG="${PN}_${PV}-${DEB_PATCH}_i386.deb"
+ SRC_URI="x86? ( ${MY_URL}/${MY_PKG} )
+ amd64? ( ${MY_URL}/${MY_PKG/i386/amd64} )"
+ KEYWORDS="-* ~amd64 ~x86"
+else
+ inherit cvs #hack to make it part of @live-rebuild
+ MY_URL="http://dl.google.com/linux/direct"
+ MY_PKG="${PN}_current_i386.deb"
+ SRC_URI=""
+fi
+
+DESCRIPTION="Video chat browser plug-in for Google Talk"
+
+HOMEPAGE="http://www.google.com/chat/video"
+IUSE="libnotify selinux"
+SLOT="0"
+
+#GoogleTalkPlugin binary contains openssl and celt
+LICENSE="Google-TOS openssl BSD"
+
+OBSOLETE="yes"
+[[ $OBSOLETE = yes ]] && RESTRICT="fetch strip" || RESTRICT="strip mirror"
+
+RDEPEND="|| ( media-sound/pulseaudio media-libs/alsa-lib )
+ dev-libs/expat
+ dev-libs/glib:2
+ sys-libs/glibc
+ x11-libs/cairo
+ x11-libs/gdk-pixbuf
+ x11-libs/gtk+:2
+ x11-libs/libX11
+ x11-libs/libXcomposite
+ x11-libs/libXext
+ x11-libs/libXfixes
+ x11-libs/libXrandr
+ x11-libs/libXrender
+ x11-libs/pango
+ sys-apps/lsb-release
+ selinux? ( sec-policy/selinux-googletalk )
+ libnotify? ( x11-libs/libnotify )"
+
+DEPEND=""
+
+INSTALL_BASE="opt/google/talkplugin"
+
+QA_PREBUILT="${INSTALL_BASE}/*"
+
+S="${WORKDIR}"
+
+LANGS="ar cs en et fr hu lt ms pl ru sv tl vi bg da fa gu id ja lv nl
+sk ta tr bn de es fi hi is kn ml no sl te uk ca el fil hr it ko mr or
+ro sr th ur"
+
+for X in ${LANGS} ; do
+ IUSE="${IUSE} linguas_${X}"
+done
+
+# nofetch means upstream bumped and thus needs version bump
+pkg_nofetch() {
+ if [[ ${OBSOLETE} = yes ]]; then
+ elog "This version is no longer available from Google and the license prevents mirroring."
+ elog "This ebuild is intended for users who already downloaded it previously and have problems"
+ elog "with ${PV}+. If you can get the distfile from e.g. another computer of yours, or search"
+ use amd64 && MY_PKG="${MY_PKG/i386/amd64}"
+ elog "it with google: http://www.google.com/search?q=intitle:%22index+of%22+${MY_PKG}"
+ elog "and copy the file ${MY_PKG} to ${DISTDIR}."
+ else
+ einfo "This version is no longer available from Google."
+ einfo "Note that Gentoo cannot mirror the distfiles due to license reasons, so we have to follow the bump."
+ einfo "Please file a version bump bug on http://bugs.gentoo.org (search existing bugs for ${PN} first!)."
+ fi
+}
+
+src_unpack() {
+ local pkg="${A:=${MY_PKG}}"
+ if [ "${PV}" = "9999" ]; then
+ use amd64 && pkg="${pkg/i386/amd64}"
+ einfo "Fetching ${pkg}"
+ wget "${MY_URL}/${pkg}" || die
+ fi
+ unpacker ${pkg}
+}
+
+src_install() {
+ local plugindir i l
+ local ppapi_plugindirs=( /opt/google/chrome{,-beta,-unstable}/pepper
+ /usr/$(get_libdir)/chromium-browser/pepper )
+
+ unpacker usr/share/doc/google-talkplugin/changelog.Debian.gz
+ dodoc changelog.Debian
+
+ exeinto "/${INSTALL_BASE}"
+ doexe "${INSTALL_BASE}"/GoogleTalkPlugin
+ for i in "${INSTALL_BASE}"/lib*.so; do
+ doexe "${i}"
+ [[ ${i##*/} = libnp* ]] && inst_plugin "/${i}"
+ if [[ ${i##*/} = libpp* ]] ; then
+ for plugindir in "${ppapi_plugindirs[@]}"; do
+ dosym "/${i}" "${plugindir}/${i##*/}"
+ done
+ fi
+ done
+
+ #install screen-sharing stuff - bug #397463
+ insinto "/${INSTALL_BASE}"
+ doins "${INSTALL_BASE}"/windowpicker.glade
+ doins "${INSTALL_BASE}"/remoting24x24.png
+ doins -r "${INSTALL_BASE}"/data
+
+ strip-linguas ${LANGS}
+ for l in ${LINGUAS}; do
+ insinto "/${INSTALL_BASE}"/locale/$l/LC_MESSAGES/
+ doins "${INSTALL_BASE}"/locale/$l/LC_MESSAGES/windowpicker.mo
+ done
+}
diff --git a/www-plugins/google-talkplugin/google-talkplugin-5.41.0.0.ebuild b/www-plugins/google-talkplugin/google-talkplugin-5.41.0.0.ebuild
new file mode 100644
index 00000000000..fcb938ae042
--- /dev/null
+++ b/www-plugins/google-talkplugin/google-talkplugin-5.41.0.0.ebuild
@@ -0,0 +1,127 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit eutils multilib nsplugins unpacker
+
+if [ "${PV}" != "9999" ]; then
+ DEB_PATCH="1"
+ #http://dl.google.com/linux/talkplugin/deb/dists/stable/main/binary-i386/Packages
+ MY_URL="http://dl.google.com/linux/talkplugin/deb/pool/main/${P:0:1}/${PN}"
+ MY_PKG="${PN}_${PV}-${DEB_PATCH}_i386.deb"
+ SRC_URI="x86? ( ${MY_URL}/${MY_PKG} )
+ amd64? ( ${MY_URL}/${MY_PKG/i386/amd64} )"
+ KEYWORDS="-* ~amd64 ~x86"
+else
+ inherit cvs #hack to make it part of @live-rebuild
+ MY_URL="http://dl.google.com/linux/direct"
+ MY_PKG="${PN}_current_i386.deb"
+ SRC_URI=""
+fi
+
+DESCRIPTION="Video chat browser plug-in for Google Talk"
+
+HOMEPAGE="http://www.google.com/chat/video"
+IUSE="libnotify selinux"
+SLOT="0"
+
+#GoogleTalkPlugin binary contains openssl and celt
+LICENSE="Google-TOS openssl BSD"
+
+OBSOLETE="no"
+[[ $OBSOLETE = yes ]] && RESTRICT="fetch strip" || RESTRICT="strip mirror"
+
+RDEPEND="|| ( media-sound/pulseaudio media-libs/alsa-lib )
+ dev-libs/expat
+ dev-libs/glib:2
+ sys-libs/glibc
+ x11-libs/cairo
+ x11-libs/gdk-pixbuf
+ x11-libs/gtk+:2
+ x11-libs/libX11
+ x11-libs/libXcomposite
+ x11-libs/libXext
+ x11-libs/libXfixes
+ x11-libs/libXrandr
+ x11-libs/libXrender
+ x11-libs/pango
+ sys-apps/lsb-release
+ selinux? ( sec-policy/selinux-googletalk )
+ libnotify? ( x11-libs/libnotify )"
+
+DEPEND=""
+
+INSTALL_BASE="opt/google/talkplugin"
+
+QA_PREBUILT="${INSTALL_BASE}/*"
+
+S="${WORKDIR}"
+
+LANGS="ar cs en et fr hu lt ms pl ru sv tl vi bg da fa gu id ja lv nl
+sk ta tr bn de es fi hi is kn ml no sl te uk ca el fil hr it ko mr or
+ro sr th ur"
+
+for X in ${LANGS} ; do
+ IUSE="${IUSE} linguas_${X}"
+done
+
+# nofetch means upstream bumped and thus needs version bump
+pkg_nofetch() {
+ if [[ ${OBSOLETE} = yes ]]; then
+ elog "This version is no longer available from Google and the license prevents mirroring."
+ elog "This ebuild is intended for users who already downloaded it previously and have problems"
+ elog "with ${PV}+. If you can get the distfile from e.g. another computer of yours, or search"
+ use amd64 && MY_PKG="${MY_PKG/i386/amd64}"
+ elog "it with google: http://www.google.com/search?q=intitle:%22index+of%22+${MY_PKG}"
+ elog "and copy the file ${MY_PKG} to ${DISTDIR}."
+ else
+ einfo "This version is no longer available from Google."
+ einfo "Note that Gentoo cannot mirror the distfiles due to license reasons, so we have to follow the bump."
+ einfo "Please file a version bump bug on http://bugs.gentoo.org (search existing bugs for ${PN} first!)."
+ fi
+}
+
+src_unpack() {
+ local pkg="${A:=${MY_PKG}}"
+ if [ "${PV}" = "9999" ]; then
+ use amd64 && pkg="${pkg/i386/amd64}"
+ einfo "Fetching ${pkg}"
+ wget "${MY_URL}/${pkg}" || die
+ fi
+ unpacker ${pkg}
+}
+
+src_install() {
+ local plugindir i l
+ local ppapi_plugindirs=( /opt/google/chrome{,-beta,-unstable}/pepper
+ /usr/$(get_libdir)/chromium-browser/pepper )
+
+ unpacker usr/share/doc/google-talkplugin/changelog.Debian.gz
+ dodoc changelog.Debian
+
+ exeinto "/${INSTALL_BASE}"
+ doexe "${INSTALL_BASE}"/GoogleTalkPlugin
+ for i in "${INSTALL_BASE}"/lib*.so; do
+ doexe "${i}"
+ [[ ${i##*/} = libnp* ]] && inst_plugin "/${i}"
+ if [[ ${i##*/} = libpp* ]] ; then
+ for plugindir in "${ppapi_plugindirs[@]}"; do
+ dosym "/${i}" "${plugindir}/${i##*/}"
+ done
+ fi
+ done
+
+ #install screen-sharing stuff - bug #397463
+ insinto "/${INSTALL_BASE}"
+ doins "${INSTALL_BASE}"/windowpicker.glade
+ doins "${INSTALL_BASE}"/remoting24x24.png
+ doins -r "${INSTALL_BASE}"/data
+
+ strip-linguas ${LANGS}
+ for l in ${LINGUAS}; do
+ insinto "/${INSTALL_BASE}"/locale/$l/LC_MESSAGES/
+ doins "${INSTALL_BASE}"/locale/$l/LC_MESSAGES/windowpicker.mo
+ done
+}
diff --git a/www-plugins/google-talkplugin/google-talkplugin-9999.ebuild b/www-plugins/google-talkplugin/google-talkplugin-9999.ebuild
new file mode 100644
index 00000000000..fcb938ae042
--- /dev/null
+++ b/www-plugins/google-talkplugin/google-talkplugin-9999.ebuild
@@ -0,0 +1,127 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit eutils multilib nsplugins unpacker
+
+if [ "${PV}" != "9999" ]; then
+ DEB_PATCH="1"
+ #http://dl.google.com/linux/talkplugin/deb/dists/stable/main/binary-i386/Packages
+ MY_URL="http://dl.google.com/linux/talkplugin/deb/pool/main/${P:0:1}/${PN}"
+ MY_PKG="${PN}_${PV}-${DEB_PATCH}_i386.deb"
+ SRC_URI="x86? ( ${MY_URL}/${MY_PKG} )
+ amd64? ( ${MY_URL}/${MY_PKG/i386/amd64} )"
+ KEYWORDS="-* ~amd64 ~x86"
+else
+ inherit cvs #hack to make it part of @live-rebuild
+ MY_URL="http://dl.google.com/linux/direct"
+ MY_PKG="${PN}_current_i386.deb"
+ SRC_URI=""
+fi
+
+DESCRIPTION="Video chat browser plug-in for Google Talk"
+
+HOMEPAGE="http://www.google.com/chat/video"
+IUSE="libnotify selinux"
+SLOT="0"
+
+#GoogleTalkPlugin binary contains openssl and celt
+LICENSE="Google-TOS openssl BSD"
+
+OBSOLETE="no"
+[[ $OBSOLETE = yes ]] && RESTRICT="fetch strip" || RESTRICT="strip mirror"
+
+RDEPEND="|| ( media-sound/pulseaudio media-libs/alsa-lib )
+ dev-libs/expat
+ dev-libs/glib:2
+ sys-libs/glibc
+ x11-libs/cairo
+ x11-libs/gdk-pixbuf
+ x11-libs/gtk+:2
+ x11-libs/libX11
+ x11-libs/libXcomposite
+ x11-libs/libXext
+ x11-libs/libXfixes
+ x11-libs/libXrandr
+ x11-libs/libXrender
+ x11-libs/pango
+ sys-apps/lsb-release
+ selinux? ( sec-policy/selinux-googletalk )
+ libnotify? ( x11-libs/libnotify )"
+
+DEPEND=""
+
+INSTALL_BASE="opt/google/talkplugin"
+
+QA_PREBUILT="${INSTALL_BASE}/*"
+
+S="${WORKDIR}"
+
+LANGS="ar cs en et fr hu lt ms pl ru sv tl vi bg da fa gu id ja lv nl
+sk ta tr bn de es fi hi is kn ml no sl te uk ca el fil hr it ko mr or
+ro sr th ur"
+
+for X in ${LANGS} ; do
+ IUSE="${IUSE} linguas_${X}"
+done
+
+# nofetch means upstream bumped and thus needs version bump
+pkg_nofetch() {
+ if [[ ${OBSOLETE} = yes ]]; then
+ elog "This version is no longer available from Google and the license prevents mirroring."
+ elog "This ebuild is intended for users who already downloaded it previously and have problems"
+ elog "with ${PV}+. If you can get the distfile from e.g. another computer of yours, or search"
+ use amd64 && MY_PKG="${MY_PKG/i386/amd64}"
+ elog "it with google: http://www.google.com/search?q=intitle:%22index+of%22+${MY_PKG}"
+ elog "and copy the file ${MY_PKG} to ${DISTDIR}."
+ else
+ einfo "This version is no longer available from Google."
+ einfo "Note that Gentoo cannot mirror the distfiles due to license reasons, so we have to follow the bump."
+ einfo "Please file a version bump bug on http://bugs.gentoo.org (search existing bugs for ${PN} first!)."
+ fi
+}
+
+src_unpack() {
+ local pkg="${A:=${MY_PKG}}"
+ if [ "${PV}" = "9999" ]; then
+ use amd64 && pkg="${pkg/i386/amd64}"
+ einfo "Fetching ${pkg}"
+ wget "${MY_URL}/${pkg}" || die
+ fi
+ unpacker ${pkg}
+}
+
+src_install() {
+ local plugindir i l
+ local ppapi_plugindirs=( /opt/google/chrome{,-beta,-unstable}/pepper
+ /usr/$(get_libdir)/chromium-browser/pepper )
+
+ unpacker usr/share/doc/google-talkplugin/changelog.Debian.gz
+ dodoc changelog.Debian
+
+ exeinto "/${INSTALL_BASE}"
+ doexe "${INSTALL_BASE}"/GoogleTalkPlugin
+ for i in "${INSTALL_BASE}"/lib*.so; do
+ doexe "${i}"
+ [[ ${i##*/} = libnp* ]] && inst_plugin "/${i}"
+ if [[ ${i##*/} = libpp* ]] ; then
+ for plugindir in "${ppapi_plugindirs[@]}"; do
+ dosym "/${i}" "${plugindir}/${i##*/}"
+ done
+ fi
+ done
+
+ #install screen-sharing stuff - bug #397463
+ insinto "/${INSTALL_BASE}"
+ doins "${INSTALL_BASE}"/windowpicker.glade
+ doins "${INSTALL_BASE}"/remoting24x24.png
+ doins -r "${INSTALL_BASE}"/data
+
+ strip-linguas ${LANGS}
+ for l in ${LINGUAS}; do
+ insinto "/${INSTALL_BASE}"/locale/$l/LC_MESSAGES/
+ doins "${INSTALL_BASE}"/locale/$l/LC_MESSAGES/windowpicker.mo
+ done
+}
diff --git a/www-plugins/google-talkplugin/metadata.xml b/www-plugins/google-talkplugin/metadata.xml
new file mode 100644
index 00000000000..f3b1b0184f8
--- /dev/null
+++ b/www-plugins/google-talkplugin/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>desktop-misc</herd>
+ <maintainer>
+ <email>ottxor@gentoo.org</email>
+ <name>Christoph Junghans</name>
+ </maintainer>
+</pkgmetadata>
diff --git a/www-plugins/kaffeine-mozilla-plugin/Manifest b/www-plugins/kaffeine-mozilla-plugin/Manifest
new file mode 100644
index 00000000000..b56fc942611
--- /dev/null
+++ b/www-plugins/kaffeine-mozilla-plugin/Manifest
@@ -0,0 +1 @@
+DIST kaffeine-mozilla-0.2.tar.bz2 223559 SHA256 10cdc4019d8a6babb350a5b8ca184631c9e0c33bc03c4163d272dfaf1c2155bb SHA512 e3e0b2d23b7a2b21181e1b88445936dcced3244f60099447e2d7a4fd46d0e2ba4127ae051dfe548e5de3756beb7188886c2e86e322ab09d085847e584762d6e8 WHIRLPOOL e303d22bae1460ea9ae2b73f47e3c5c4fa3518e0048a2d847c10dd8c0e497fd5d649add0ecd92b8bc2edf785a47f2924cffce05e23ac7ccf4da22b0e9e5a8239
diff --git a/www-plugins/kaffeine-mozilla-plugin/kaffeine-mozilla-plugin-0.2-r1.ebuild b/www-plugins/kaffeine-mozilla-plugin/kaffeine-mozilla-plugin-0.2-r1.ebuild
new file mode 100644
index 00000000000..5f25b84d19c
--- /dev/null
+++ b/www-plugins/kaffeine-mozilla-plugin/kaffeine-mozilla-plugin-0.2-r1.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit eutils multilib nsplugins
+
+MY_P=${P/-plugin/}
+
+DESCRIPTION="The Kaffeine Mozilla starter plugin"
+HOMEPAGE="http://kaffeine.sourceforge.net/"
+SRC_URI="mirror://sourceforge/kaffeine/${MY_P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86"
+IUSE=""
+
+DEPEND="x11-libs/libICE
+ x11-libs/libSM
+ x11-libs/libX11
+ x11-libs/libXaw
+ x11-libs/libXt"
+RDEPEND="${DEPEND}
+ media-video/kaffeine"
+
+S=${WORKDIR}/${MY_P}
+
+src_install() {
+ emake prefix="${D}"/usr/$(get_libdir)/${PLUGINS_DIR%plugins} install
+ dodoc AUTHORS ChangeLog README
+ prune_libtool_files --modules
+}
diff --git a/www-plugins/kaffeine-mozilla-plugin/kaffeine-mozilla-plugin-0.2.ebuild b/www-plugins/kaffeine-mozilla-plugin/kaffeine-mozilla-plugin-0.2.ebuild
new file mode 100644
index 00000000000..ac539a1504e
--- /dev/null
+++ b/www-plugins/kaffeine-mozilla-plugin/kaffeine-mozilla-plugin-0.2.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+inherit nsplugins multilib
+
+MY_P=${P/-plugin/}
+S=${WORKDIR}/${MY_P}
+
+DESCRIPTION="The Kaffeine Mozilla starter plugin"
+HOMEPAGE="http://kaffeine.sourceforge.net/"
+SRC_URI="mirror://sourceforge/kaffeine/${MY_P}.tar.bz2"
+
+SLOT="0"
+KEYWORDS="~amd64 ~ppc x86"
+LICENSE="GPL-2"
+IUSE=""
+
+RDEPEND=">=media-video/kaffeine-0.4.3
+ x11-libs/libXaw"
+DEPEND="${RDEPEND}"
+
+src_compile() {
+ econf \
+ --prefix=/usr/$(get_libdir)/${PLUGINS_DIR}
+ --libdir=/usr/$(get_libdir)/${PLUGINS_DIR%plugins}
+
+ emake || die
+}
+
+src_install() {
+ einstall prefix="${D}"/usr/$(get_libdir)/${PLUGINS_DIR%plugins} || die
+ dodoc AUTHORS ChangeLog README
+}
diff --git a/www-plugins/kaffeine-mozilla-plugin/metadata.xml b/www-plugins/kaffeine-mozilla-plugin/metadata.xml
new file mode 100644
index 00000000000..62c56c83007
--- /dev/null
+++ b/www-plugins/kaffeine-mozilla-plugin/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>video</herd>
+ <herd>kde</herd>
+ <upstream>
+ <remote-id type="sourceforge">kaffeine</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/www-plugins/kpartsplugin/Manifest b/www-plugins/kpartsplugin/Manifest
new file mode 100644
index 00000000000..0c367f187b5
--- /dev/null
+++ b/www-plugins/kpartsplugin/Manifest
@@ -0,0 +1 @@
+DIST kpartsplugin-20120723.tar.bz2 34786 SHA256 dfdc7a9c810ce380e742b1911dce8b2f59136c6a17b0b1ca13d6f6c190c7f851 SHA512 49896ca4569368c35c8b82e1882c7f4e98ccbc8f2726cfa9cdb9cd5d839732a87de7f2d087f77ed0d91b0832747e64392af92a1bee2462c8aa086990c60163ba WHIRLPOOL 6ec7519264a34e221a5685b2694cb9c0a4dd82b18d0f4fa46a381bd6dc4b6c0bb3d25ef7fae30b700c8389e57073ad4b13978b5fb8c0dd78115aba982da8481e
diff --git a/www-plugins/kpartsplugin/files/kpartsplugin-20120723-segfault.patch b/www-plugins/kpartsplugin/files/kpartsplugin-20120723-segfault.patch
new file mode 100644
index 00000000000..9ac0aeef0d2
--- /dev/null
+++ b/www-plugins/kpartsplugin/files/kpartsplugin-20120723-segfault.patch
@@ -0,0 +1,21 @@
+commit e883f236c476830fec2306b6b4ad90ec27f643a1
+Author: Mario Kicherer <kicherer@kit.edu>
+Date: Fri Jun 26 11:34:21 2015 +0200
+
+ fix crash after kpart selection dialog
+
+diff --git a/src/kpartsplugin.cpp b/src/kpartsplugin.cpp
+index a9ee9df..56c4aa4 100644
+--- a/src/kpartsplugin.cpp
++++ b/src/kpartsplugin.cpp
+@@ -120,8 +120,8 @@ public:
+ dlg.exec();
+ rememberChoice = dlg.checkBoxRemember->checkState() == Qt::Checked;
+ /// fetch first (and only) selected item in list
+- QList<QListWidgetItem *>::ConstIterator it(dlg.listWidget->selectedItems().constBegin());
+- return (*it)->text();
++ QList<QListWidgetItem *> it(dlg.listWidget->selectedItems());
++ return it.at(0)->text();
+ }
+
+ };
diff --git a/www-plugins/kpartsplugin/kpartsplugin-20120723-r1.ebuild b/www-plugins/kpartsplugin/kpartsplugin-20120723-r1.ebuild
new file mode 100644
index 00000000000..7651db27a2d
--- /dev/null
+++ b/www-plugins/kpartsplugin/kpartsplugin-20120723-r1.ebuild
@@ -0,0 +1,22 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit kde4-base nsplugins
+
+DESCRIPTION="Plugin using KDE's KParts technology to embed file viewers into non-KDE browsers"
+HOMEPAGE="http://www.unix-ag.uni-kl.de/~fischer/kpartsplugin/"
+SRC_URI="http://www.unix-ag.uni-kl.de/~fischer/kpartsplugin/${P}.tar.bz2"
+
+LICENSE="GPL-3 BSD"
+SLOT="0"
+KEYWORDS="amd64 x86"
+
+IUSE="debug"
+
+src_prepare() {
+ echo "set( PLUGIN_INSTALL_DIR \"/usr/$(get_libdir)/${PLUGINS_DIR}/\" )" >> CMakeLists.txt || die
+ kde4-base_src_prepare
+}
diff --git a/www-plugins/kpartsplugin/kpartsplugin-20120723-r2.ebuild b/www-plugins/kpartsplugin/kpartsplugin-20120723-r2.ebuild
new file mode 100644
index 00000000000..c847c777f47
--- /dev/null
+++ b/www-plugins/kpartsplugin/kpartsplugin-20120723-r2.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit kde4-base nsplugins
+
+DESCRIPTION="Plugin using KDE's KParts technology to embed file viewers into non-KDE browsers"
+HOMEPAGE="http://www.unix-ag.uni-kl.de/~fischer/kpartsplugin/"
+SRC_URI="http://www.unix-ag.uni-kl.de/~fischer/kpartsplugin/${P}.tar.bz2"
+
+LICENSE="GPL-3 BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+IUSE="debug"
+
+PATCHES=( "${FILESDIR}/${P}-segfault.patch" )
+
+src_prepare() {
+ echo "set( PLUGIN_INSTALL_DIR \"/usr/$(get_libdir)/${PLUGINS_DIR}/\" )" >> CMakeLists.txt || die
+ kde4-base_src_prepare
+}
diff --git a/www-plugins/kpartsplugin/metadata.xml b/www-plugins/kpartsplugin/metadata.xml
new file mode 100644
index 00000000000..8d1e86a9cef
--- /dev/null
+++ b/www-plugins/kpartsplugin/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>kde</herd>
+</pkgmetadata>
diff --git a/www-plugins/lightspark/Manifest b/www-plugins/lightspark/Manifest
new file mode 100644
index 00000000000..5c946be1876
--- /dev/null
+++ b/www-plugins/lightspark/Manifest
@@ -0,0 +1,3 @@
+DIST lightspark-0.7.1.tar.gz 920218 SHA256 a6f9ef13ddf3ebd700d4daaeeb4e9497889c18697aeca1ddcb30ac8cdc20e931 SHA512 a8c10782f144cf4b9a39d32ca4c78f441957550f790161671fa52fec686672f22ab977b41c55b5e33d1e65eaa28e78bf48e729ce01f51b56ef24d2d09e62eeae WHIRLPOOL 0842b113070cc679d8e960e558bf4d7562f6796f60b923fc4fe41f3e20f4cb86da0340d8f27543d86c2cf6aefaf1232990c9ef51bcdcb765dc89befee16823cc
+DIST lightspark-0.7.2.tar.gz 955952 SHA256 70479bac90f3455a5ff6d0aaf6bccaedfbaac3c70bd602680f68ce75eab2dd1b SHA512 90442d92b54bef18c20952aefd4dcd5cab446213cf9c186b340c9c8e0dd3ef28d034e888ca26f5b9ffe93d0cfd6e1a3c696fbd6f561aa21ff909d463abd27d29 WHIRLPOOL 9465424e2d8b46adb5aadc54239b6d58105703c519f5073ffbc3eb7a03dacca68cf64d57864de3c0aefd6d7cd4c3a88b0deb8417917980a8b60fa49397dc0631
+DIST lightspark-0.7.2_p20150318.tar.gz 1039961 SHA256 92e4fa23e9760ebc73efd269a373c7e566eb1550ccf1c7cc7cff58b0d53d048a SHA512 2deb55a9ab7f00d0469b8fd5b053f43155d63c12f4b40bd40d6aa802501b5c7d4d3fe5d442f6ddb67eb1f592d48ccd1490b92e738359e78c162a39eb1605f9a5 WHIRLPOOL 72b471f193ffeba8e2078cad35917eac2d5c8d399cc18a177c1da0a88f85506025f28c86cb22a4dac6dd92feb0a32bc202c60cfe8ca334407f1d1fa6ba2f305f
diff --git a/www-plugins/lightspark/files/lightspark-0.7.2-ffmpeg20.patch b/www-plugins/lightspark/files/lightspark-0.7.2-ffmpeg20.patch
new file mode 100644
index 00000000000..c0a1f5f3610
--- /dev/null
+++ b/www-plugins/lightspark/files/lightspark-0.7.2-ffmpeg20.patch
@@ -0,0 +1,155 @@
+From fff7e63650c1569908bf80f11a123e051e993f31 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Ludger=20Kr=C3=A4mer?= <dbluelle@blau-weissoedingen.de>
+Date: Fri, 16 Aug 2013 20:30:28 +0200
+Subject: [PATCH] fix compilation with ffmpeg 2.0 avcodec_decode_audio4 seems
+ not to deliver data in AV_SAMPLE_FMT_S16 format, so we have to use
+ libavresample for resampling
+
+---
+ CMakeLists.txt | 2 +-
+ conf/FindFFMpeg.cmake | 6 ++++-
+ src/backends/decoder.cpp | 64 ++++++++++++++++++++++++++++++++++++++++++------
+ src/backends/decoder.h | 8 ++++++
+ 4 files changed, 70 insertions(+), 10 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 33dbb85..d3a964b 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -286,7 +286,7 @@ IF(AUDIO_BACKEND)
+ ENDIF(AUDIO_BACKEND)
+
+ IF(ENABLE_LIBAVCODEC)
+- pkg_check_modules(FFMPEG libavcodec libavutil libavformat)
++ pkg_check_modules(FFMPEG libavcodec libavutil libavformat libavresample)
+ IF(NOT(FFMPEG_FOUND))
+ INCLUDE(FindFFMpeg REQUIRED)
+ ENDIF(NOT(FFMPEG_FOUND))
+diff --git a/conf/FindFFMpeg.cmake b/conf/FindFFMpeg.cmake
+index 2b4dd98..8246c15 100644
+--- a/conf/FindFFMpeg.cmake
++++ b/conf/FindFFMpeg.cmake
+@@ -23,7 +23,11 @@ FIND_LIBRARY(FFMPEG_AVFORMAT_LIBRARY NAMES
+ avformat
+ )
+
+-SET(FFMPEG_LIBRARY ${FFMPEG_AVCODEC_LIBRARY} ${FFMPEG_AVUTIL_LIBRARY} ${FFMPEG_AVFORMAT_LIBRARY})
++FIND_LIBRARY(FFMPEG_AVRESAMPLE_LIBRARY NAMES
++ avresample
++)
++
++SET(FFMPEG_LIBRARY ${FFMPEG_AVCODEC_LIBRARY} ${FFMPEG_AVUTIL_LIBRARY} ${FFMPEG_AVFORMAT_LIBRARY} ${FFMPEG_AVRESAMPLE_LIBRARY})
+ MARK_AS_ADVANCED(FFMPEG_LIBRARY)
+
+ # handle the QUIETLY and REQUIRED arguments and set FFMPEG_FOUND to TRUE if
+diff --git a/src/backends/decoder.cpp b/src/backends/decoder.cpp
+index 22eac2e..4b3148c 100755
+--- a/src/backends/decoder.cpp
++++ b/src/backends/decoder.cpp
+@@ -295,6 +295,8 @@ bool FFMpegVideoDecoder::decodePacket(AVPacket* pkt, uint32_t time)
+ #else
+ int ret=avcodec_decode_video(codecContext, frameIn, &frameOk, pkt->data, pkt->size);
+ #endif
++ if (ret < 0)
++ return false;
+
+ assert_and_throw(ret==(int)pkt->size);
+ if(frameOk)
+@@ -612,10 +614,33 @@ uint32_t FFMpegAudioDecoder::decodeData(uint8_t* data, int32_t datalen, uint32_t
+ ret=-1;
+ else
+ {
+- //This is suboptimal but equivalent to what libavcodec
+- //does for the compatibility version of avcodec_decode_audio3
+- memcpy(curTail.samples, frameIn->extended_data[0], frameIn->linesize[0]);
+- maxLen=frameIn->linesize[0];
++ if (frameIn->format != AV_SAMPLE_FMT_S16)
++ {
++ AVAudioResampleContext * avr = avresample_alloc_context();
++ av_opt_set_int(avr, "in_channel_layout", frameIn->channel_layout, 0);
++ av_opt_set_int(avr, "out_channel_layout", frameIn->channel_layout, 0);
++ av_opt_set_int(avr, "in_sample_rate", frameIn->sample_rate, 0);
++ av_opt_set_int(avr, "out_sample_rate", frameIn->sample_rate, 0);
++ av_opt_set_int(avr, "in_sample_fmt", frameIn->format, 0);
++ av_opt_set_int(avr, "out_sample_fmt", AV_SAMPLE_FMT_S16, 0);
++ avresample_open(avr);
++
++ uint8_t *output;
++ int out_linesize;
++ int out_samples = avresample_available(avr) + av_rescale_rnd(avresample_get_delay(avr) + frameIn->linesize[0], frameIn->sample_rate, frameIn->sample_rate, AV_ROUND_UP);
++ av_samples_alloc(&output, &out_linesize, frameIn->nb_samples, out_samples, AV_SAMPLE_FMT_S16, 0);
++ maxLen = avresample_convert(avr, &output, out_linesize, out_samples, frameIn->extended_data, frameIn->linesize[0], frameIn->nb_samples)*4;
++ memcpy(curTail.samples, output, maxLen);
++ av_freep(&output);
++ avresample_free(&avr);
++ }
++ else
++ {
++ //This is suboptimal but equivalent to what libavcodec
++ //does for the compatibility version of avcodec_decode_audio3
++ memcpy(curTail.samples, frameIn->extended_data[0], frameIn->linesize[0]);
++ maxLen=frameIn->linesize[0];
++ }
+ }
+ #else
+ int32_t ret=avcodec_decode_audio3(codecContext, curTail.samples, &maxLen, &pkt);
+@@ -660,10 +685,33 @@ uint32_t FFMpegAudioDecoder::decodePacket(AVPacket* pkt, uint32_t time)
+ ret=-1;
+ else
+ {
+- //This is suboptimal but equivalent to what libavcodec
+- //does for the compatibility version of avcodec_decode_audio3
+- memcpy(curTail.samples, frameIn->extended_data[0], frameIn->linesize[0]);
+- maxLen=frameIn->linesize[0];
++ if (frameIn->format != AV_SAMPLE_FMT_S16)
++ {
++ AVAudioResampleContext * avr = avresample_alloc_context();
++ av_opt_set_int(avr, "in_channel_layout", frameIn->channel_layout, 0);
++ av_opt_set_int(avr, "out_channel_layout", frameIn->channel_layout, 0);
++ av_opt_set_int(avr, "in_sample_rate", frameIn->sample_rate, 0);
++ av_opt_set_int(avr, "out_sample_rate", frameIn->sample_rate, 0);
++ av_opt_set_int(avr, "in_sample_fmt", frameIn->format, 0);
++ av_opt_set_int(avr, "out_sample_fmt", AV_SAMPLE_FMT_S16, 0);
++ avresample_open(avr);
++
++ uint8_t *output;
++ int out_linesize;
++ int out_samples = avresample_available(avr) + av_rescale_rnd(avresample_get_delay(avr) + frameIn->linesize[0], frameIn->sample_rate, frameIn->sample_rate, AV_ROUND_UP);
++ av_samples_alloc(&output, &out_linesize, frameIn->nb_samples, out_samples, AV_SAMPLE_FMT_S16, 0);
++ maxLen = avresample_convert(avr, &output, out_linesize, out_samples, frameIn->extended_data, frameIn->linesize[0], frameIn->nb_samples)*4;
++ memcpy(curTail.samples, output, maxLen);
++ av_freep(&output);
++ avresample_free(&avr);
++ }
++ else
++ {
++ //This is suboptimal but equivalent to what libavcodec
++ //does for the compatibility version of avcodec_decode_audio3
++ memcpy(curTail.samples, frameIn->extended_data[0], frameIn->linesize[0]);
++ maxLen=frameIn->linesize[0];
++ }
+ }
+ #elif HAVE_AVCODEC_DECODE_AUDIO3
+ int ret=avcodec_decode_audio3(codecContext, curTail.samples, &maxLen, pkt);
+diff --git a/src/backends/decoder.h b/src/backends/decoder.h
+index 93950ad..28bd232 100644
+--- a/src/backends/decoder.h
++++ b/src/backends/decoder.h
+@@ -28,6 +28,14 @@
+ {
+ #include <libavcodec/avcodec.h>
+ #include <libavformat/avformat.h>
++#include <libavresample/avresample.h>
++#include <libavutil/opt.h>
++#ifndef AVCODEC_MAX_AUDIO_FRAME_SIZE
++#define AVCODEC_MAX_AUDIO_FRAME_SIZE 192000 // 1 second of 48khz 32bit audio
++#endif
++#ifndef CodecID
++#define CodecID AVCodecID
++#endif
+ #define MAX_AUDIO_FRAME_SIZE AVCODEC_MAX_AUDIO_FRAME_SIZE
+ }
+ #else
+--
+1.8.4
+
diff --git a/www-plugins/lightspark/files/lightspark-0.7.2-llvm33.patch b/www-plugins/lightspark/files/lightspark-0.7.2-llvm33.patch
new file mode 100644
index 00000000000..2e452331ce3
--- /dev/null
+++ b/www-plugins/lightspark/files/lightspark-0.7.2-llvm33.patch
@@ -0,0 +1,103 @@
+diff -up lightspark-0.7.2/conf/FindLLVM.cmake.llvm33 lightspark-0.7.2/conf/FindLLVM.cmake
+--- lightspark-0.7.2/conf/FindLLVM.cmake.llvm33 2013-03-16 12:19:18.000000000 +0100
++++ lightspark-0.7.2/conf/FindLLVM.cmake 2013-05-11 11:57:36.455450049 +0200
+@@ -168,11 +168,16 @@ else (LLVM_INCLUDE_DIR)
+
+ set(CMAKE_REQUIRED_INCLUDES ${LLVM_INCLUDE_DIR})
+ check_include_file_cxx("llvm/DataLayout.h" HAVE_DATALAYOUT_H)
++ check_include_file_cxx("llvm/IR/DataLayout.h" HAVE_IR_DATALAYOUT_H)
+ unset(CMAKE_REQUIRED_INCLUDES)
+ MESSAGE(STATUS "HAVE_DATALAYOUT_H: " ${HAVE_DATALAYOUT_H})
++ MESSAGE(STATUS "HAVE_IR_DATALAYOUT_H: " ${HAVE_IR_DATALAYOUT_H})
+ IF(HAVE_DATALAYOUT_H)
+ ADD_DEFINITIONS(-DHAVE_DATALAYOUT_H)
+ ENDIF(HAVE_DATALAYOUT_H)
++ IF(HAVE_IR_DATALAYOUT_H)
++ ADD_DEFINITIONS(-DHAVE_IR_DATALAYOUT_H)
++ ENDIF(HAVE_IR_DATALAYOUT_H)
+
+ exec_program(${LLVM_CONFIG_EXECUTABLE} ARGS --cxxflags OUTPUT_VARIABLE LLVM_COMPILE_FLAGS )
+ MESSAGE(STATUS "LLVM CXX flags: " ${LLVM_COMPILE_FLAGS})
+diff -up lightspark-0.7.2/src/scripting/abc.cpp.llvm33 lightspark-0.7.2/src/scripting/abc.cpp
+--- lightspark-0.7.2/src/scripting/abc.cpp.llvm33 2013-03-16 12:19:18.000000000 +0100
++++ lightspark-0.7.2/src/scripting/abc.cpp 2013-05-11 11:57:36.451450048 +0200
+@@ -23,12 +23,19 @@
+
+ #include "compat.h"
+
+-#include <llvm/Module.h>
+ #include <llvm/ExecutionEngine/ExecutionEngine.h>
+ #include <llvm/ExecutionEngine/JIT.h>
+ #include <llvm/PassManager.h>
+-#include <llvm/LLVMContext.h>
+-#ifdef HAVE_DATALAYOUT_H
++#ifdef HAVE_IR_DATALAYOUT_H
++# include <llvm/IR/Module.h>
++# include <llvm/IR/LLVMContext.h>
++#else
++# include <llvm/Module.h>
++# include <llvm/LLVMContext.h>
++#endif
++#ifdef HAVE_IR_DATALAYOUT_H
++# include <llvm/IR/DataLayout.h>
++#elif defined HAVE_DATALAYOUT_H
+ # include <llvm/DataLayout.h>
+ #else
+ # include <llvm/Target/TargetData.h>
+@@ -1489,7 +1496,7 @@ void ABCVm::Run(ABCVm* th)
+ assert_and_throw(th->ex);
+
+ th->FPM=new llvm::FunctionPassManager(th->module);
+-#ifdef HAVE_DATALAYOUT_H
++#if defined HAVE_DATALAYOUT_H || defined HAVE_IR_DATALAYOUT_H
+ th->FPM->add(new llvm::DataLayout(*th->ex->getDataLayout()));
+ #else
+ th->FPM->add(new llvm::TargetData(*th->ex->getTargetData()));
+diff -up lightspark-0.7.2/src/scripting/abc_codesynt.cpp.llvm33 lightspark-0.7.2/src/scripting/abc_codesynt.cpp
+--- lightspark-0.7.2/src/scripting/abc_codesynt.cpp.llvm33 2013-03-16 12:19:18.000000000 +0100
++++ lightspark-0.7.2/src/scripting/abc_codesynt.cpp 2013-05-11 11:59:23.066458300 +0200
+@@ -25,18 +25,29 @@
+ #endif
+
+ #include "compat.h"
+-#include <llvm/Module.h>
+-#include <llvm/DerivedTypes.h>
+ #include <llvm/ExecutionEngine/ExecutionEngine.h>
+ #include <llvm/PassManager.h>
+-#include <llvm/Constants.h>
+-#ifdef HAVE_IRBUILDER_H
++#ifdef HAVE_IR_DATALAYOUT_H
++# include <llvm/IR/Constants.h>
++# include <llvm/IR/DerivedTypes.h>
++# include <llvm/IR/Module.h>
++# include <llvm/IR/LLVMContext.h>
++#else
++# include <llvm/Constants.h>
++# include <llvm/DerivedTypes.h>
++# include <llvm/Module.h>
++# include <llvm/LLVMContext.h>
++#endif
++#ifdef HAVE_IR_DATALAYOUT_H
++# include <llvm/IR/IRBuilder.h>
++#elif defined HAVE_IRBUILDER_H
+ # include <llvm/IRBuilder.h>
+ #else
+ # include <llvm/Support/IRBuilder.h>
+ #endif
+-#include <llvm/LLVMContext.h>
+-#ifdef HAVE_DATALAYOUT_H
++#ifdef HAVE_IR_DATALAYOUT_H
++# include <llvm/IR/DataLayout.h>
++#elif defined HAVE_DATALAYOUT_H
+ # include <llvm/DataLayout.h>
+ #else
+ # include <llvm/Target/TargetData.h>
+@@ -279,7 +290,7 @@ void ABCVm::registerFunctions()
+ llvm::FunctionType* FT=NULL;
+
+ //Create types
+-#ifdef HAVE_DATALAYOUT_H
++#if defined HAVE_DATALAYOUT_H || defined HAVE_IR_DATALAYOUT_H
+ ptr_type=ex->getDataLayout()->getIntPtrType(llvm_context());
+ #else
+ ptr_type=ex->getTargetData()->getIntPtrType(llvm_context());
diff --git a/www-plugins/lightspark/lightspark-0.7.1.ebuild b/www-plugins/lightspark/lightspark-0.7.1.ebuild
new file mode 100644
index 00000000000..5c9fe64f209
--- /dev/null
+++ b/www-plugins/lightspark/lightspark-0.7.1.ebuild
@@ -0,0 +1,108 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=4
+inherit cmake-utils nsplugins multilib toolchain-funcs
+
+DESCRIPTION="High performance flash player"
+HOMEPAGE="http://lightspark.sourceforge.net/"
+SRC_URI="http://launchpad.net/${PN}/trunk/${P}/+download/${P}.tar.gz"
+
+LICENSE="LGPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="curl ffmpeg gles nsplugin profile pulseaudio rtmp sdl"
+
+RDEPEND=">=dev-cpp/libxmlpp-2.33.1:2.6
+ >=dev-libs/boost-1.42
+ dev-libs/libpcre[cxx]
+ media-fonts/liberation-fonts
+ media-libs/libpng
+ media-libs/libsdl
+ >=sys-devel/gcc-4.6.0[cxx]
+ >=sys-devel/llvm-3
+ <sys-devel/llvm-3.3
+ x11-libs/cairo
+ x11-libs/gtk+:2
+ x11-libs/libX11
+ x11-libs/pango
+ curl? (
+ net-misc/curl
+ )
+ ffmpeg? (
+ virtual/ffmpeg
+ )
+ !gles? (
+ >=media-libs/glew-1.5.3
+ virtual/opengl
+ )
+ gles? (
+ media-libs/mesa[gles2]
+ )
+ pulseaudio? (
+ media-sound/pulseaudio
+ )
+ rtmp? (
+ media-video/rtmpdump
+ )
+ virtual/jpeg"
+DEPEND="${RDEPEND}
+ amd64? ( dev-lang/nasm )
+ x86? ( dev-lang/nasm )
+ virtual/pkgconfig"
+
+S=${WORKDIR}/${P/_rc*/}
+
+pkg_pretend() {
+ if [[ ${MERGE_TYPE} != binary ]]; then
+ if [[ $(gcc-major-version) == 4 && $(gcc-minor-version) -lt 6 || $(gcc-major-version) -lt 4 ]] ; then
+ eerror "You need at least sys-devel/gcc-4.6.0"
+ die "You need at least sys-devel/gcc-4.6.0"
+ fi
+ fi
+}
+
+src_configure() {
+ local audiobackends
+ use pulseaudio && audiobackends+="pulse"
+ use sdl && audiobackends+="sdl"
+
+ local mycmakeargs=(
+ $(cmake-utils_use curl ENABLE_CURL)
+ $(cmake-utils_use gles ENABLE_GLES2)
+ $(cmake-utils_use ffmpeg ENABLE_LIBAVCODEC)
+ $(cmake-utils_use nsplugin COMPILE_PLUGIN)
+ $(cmake-utils_use profile ENABLE_MEMORY_USAGE_PROFILING)
+ $(cmake-utils_use profile ENABLE_PROFILING)
+ $(cmake-utils_use rtmp ENABLE_RTMP)
+ -DAUDIO_BACKEND="${audiobackends}"
+ -DPLUGIN_DIRECTORY="${EPREFIX}"/usr/$(get_libdir)/${PN}/plugins
+ )
+
+ cmake-utils_src_configure
+}
+
+src_install() {
+ cmake-utils_src_install
+
+ use nsplugin && inst_plugin /usr/$(get_libdir)/${PN}/plugins/liblightsparkplugin.so
+
+ # default to sdl audio if pulseaudio plugin is not built, bug #406197
+ if use sdl && ! use pulseaudio; then
+ sed -i 's/backend = pulseaudio/backend = sdl/' "${ED}/etc/xdg/${PN}.conf" || die
+ fi
+}
+
+pkg_postinst() {
+ if use nsplugin && ! has_version www-plugins/gnash; then
+ elog "Lightspark now supports gnash fallback for its browser plugin."
+ elog "Install www-plugins/gnash to take advantage of it."
+ fi
+ if use nsplugin && has_version www-plugins/gnash[nsplugin]; then
+ elog "Having two plugins installed for the same MIME type may confuse"
+ elog "Mozilla based browsers. It is recommended to disable the nsplugin"
+ elog "USE flag for either gnash or lightspark. For details, see"
+ elog "https://bugzilla.mozilla.org/show_bug.cgi?id=581848"
+ fi
+}
diff --git a/www-plugins/lightspark/lightspark-0.7.2-r1.ebuild b/www-plugins/lightspark/lightspark-0.7.2-r1.ebuild
new file mode 100644
index 00000000000..84dedd7858c
--- /dev/null
+++ b/www-plugins/lightspark/lightspark-0.7.2-r1.ebuild
@@ -0,0 +1,108 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=4
+inherit cmake-utils nsplugins multilib toolchain-funcs
+
+DESCRIPTION="High performance flash player"
+HOMEPAGE="http://lightspark.sourceforge.net/"
+SRC_URI="http://launchpad.net/${PN}/trunk/${P}/+download/${P}.tar.gz"
+
+LICENSE="LGPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="curl ffmpeg gles nsplugin profile pulseaudio rtmp sdl"
+
+RDEPEND=">=dev-cpp/libxmlpp-2.33.1:2.6
+ >=dev-libs/boost-1.42
+ dev-libs/libpcre[cxx]
+ media-fonts/liberation-fonts
+ media-libs/libpng
+ media-libs/libsdl
+ >=sys-devel/gcc-4.6.0[cxx]
+ (
+ <sys-devel/llvm-3.4
+ >=sys-devel/llvm-3
+ )
+ x11-libs/cairo
+ x11-libs/gtk+:2
+ x11-libs/libX11
+ x11-libs/pango
+ curl? (
+ net-misc/curl
+ )
+ ffmpeg? (
+ virtual/ffmpeg
+ )
+ !gles? (
+ >=media-libs/glew-1.5.3
+ virtual/opengl
+ )
+ gles? (
+ media-libs/mesa[gles2]
+ )
+ pulseaudio? (
+ media-sound/pulseaudio
+ )
+ rtmp? (
+ media-video/rtmpdump
+ )
+ virtual/jpeg"
+DEPEND="${RDEPEND}
+ amd64? ( dev-lang/nasm )
+ x86? ( dev-lang/nasm )
+ virtual/pkgconfig"
+
+S=${WORKDIR}/${P/_rc*/}
+
+PATCHES=(
+ "${FILESDIR}/${P}-llvm33.patch"
+ "${FILESDIR}/${P}-ffmpeg20.patch"
+)
+pkg_pretend() {
+ if [[ ${MERGE_TYPE} != binary ]]; then
+ if [[ $(gcc-major-version) == 4 && $(gcc-minor-version) -lt 6 || $(gcc-major-version) -lt 4 ]] ; then
+ eerror "You need at least sys-devel/gcc-4.6.0"
+ die "You need at least sys-devel/gcc-4.6.0"
+ fi
+ fi
+}
+
+src_configure() {
+ local audiobackends
+ use pulseaudio && audiobackends+="pulse"
+ use sdl && audiobackends+="sdl"
+
+ local mycmakeargs=(
+ $(cmake-utils_use curl ENABLE_CURL)
+ $(cmake-utils_use gles ENABLE_GLES2)
+ $(cmake-utils_use ffmpeg ENABLE_LIBAVCODEC)
+ $(cmake-utils_use nsplugin COMPILE_PLUGIN)
+ $(cmake-utils_use profile ENABLE_MEMORY_USAGE_PROFILING)
+ $(cmake-utils_use profile ENABLE_PROFILING)
+ $(cmake-utils_use rtmp ENABLE_RTMP)
+ -DAUDIO_BACKEND="${audiobackends}"
+ -DPLUGIN_DIRECTORY="${EPREFIX}"/usr/$(get_libdir)/${PN}/plugins
+ )
+
+ cmake-utils_src_configure
+}
+
+src_install() {
+ cmake-utils_src_install
+
+ use nsplugin && inst_plugin /usr/$(get_libdir)/${PN}/plugins/liblightsparkplugin.so
+
+ # default to sdl audio if pulseaudio plugin is not built, bug #406197
+ if use sdl && ! use pulseaudio; then
+ sed -i 's/backend = pulseaudio/backend = sdl/' "${ED}/etc/xdg/${PN}.conf" || die
+ fi
+}
+
+pkg_postinst() {
+ if use nsplugin && ! has_version www-plugins/gnash; then
+ elog "Lightspark now supports gnash fallback for its browser plugin."
+ elog "Install www-plugins/gnash to take advantage of it."
+ fi
+}
diff --git a/www-plugins/lightspark/lightspark-0.7.2.ebuild b/www-plugins/lightspark/lightspark-0.7.2.ebuild
new file mode 100644
index 00000000000..5c9fe64f209
--- /dev/null
+++ b/www-plugins/lightspark/lightspark-0.7.2.ebuild
@@ -0,0 +1,108 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=4
+inherit cmake-utils nsplugins multilib toolchain-funcs
+
+DESCRIPTION="High performance flash player"
+HOMEPAGE="http://lightspark.sourceforge.net/"
+SRC_URI="http://launchpad.net/${PN}/trunk/${P}/+download/${P}.tar.gz"
+
+LICENSE="LGPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="curl ffmpeg gles nsplugin profile pulseaudio rtmp sdl"
+
+RDEPEND=">=dev-cpp/libxmlpp-2.33.1:2.6
+ >=dev-libs/boost-1.42
+ dev-libs/libpcre[cxx]
+ media-fonts/liberation-fonts
+ media-libs/libpng
+ media-libs/libsdl
+ >=sys-devel/gcc-4.6.0[cxx]
+ >=sys-devel/llvm-3
+ <sys-devel/llvm-3.3
+ x11-libs/cairo
+ x11-libs/gtk+:2
+ x11-libs/libX11
+ x11-libs/pango
+ curl? (
+ net-misc/curl
+ )
+ ffmpeg? (
+ virtual/ffmpeg
+ )
+ !gles? (
+ >=media-libs/glew-1.5.3
+ virtual/opengl
+ )
+ gles? (
+ media-libs/mesa[gles2]
+ )
+ pulseaudio? (
+ media-sound/pulseaudio
+ )
+ rtmp? (
+ media-video/rtmpdump
+ )
+ virtual/jpeg"
+DEPEND="${RDEPEND}
+ amd64? ( dev-lang/nasm )
+ x86? ( dev-lang/nasm )
+ virtual/pkgconfig"
+
+S=${WORKDIR}/${P/_rc*/}
+
+pkg_pretend() {
+ if [[ ${MERGE_TYPE} != binary ]]; then
+ if [[ $(gcc-major-version) == 4 && $(gcc-minor-version) -lt 6 || $(gcc-major-version) -lt 4 ]] ; then
+ eerror "You need at least sys-devel/gcc-4.6.0"
+ die "You need at least sys-devel/gcc-4.6.0"
+ fi
+ fi
+}
+
+src_configure() {
+ local audiobackends
+ use pulseaudio && audiobackends+="pulse"
+ use sdl && audiobackends+="sdl"
+
+ local mycmakeargs=(
+ $(cmake-utils_use curl ENABLE_CURL)
+ $(cmake-utils_use gles ENABLE_GLES2)
+ $(cmake-utils_use ffmpeg ENABLE_LIBAVCODEC)
+ $(cmake-utils_use nsplugin COMPILE_PLUGIN)
+ $(cmake-utils_use profile ENABLE_MEMORY_USAGE_PROFILING)
+ $(cmake-utils_use profile ENABLE_PROFILING)
+ $(cmake-utils_use rtmp ENABLE_RTMP)
+ -DAUDIO_BACKEND="${audiobackends}"
+ -DPLUGIN_DIRECTORY="${EPREFIX}"/usr/$(get_libdir)/${PN}/plugins
+ )
+
+ cmake-utils_src_configure
+}
+
+src_install() {
+ cmake-utils_src_install
+
+ use nsplugin && inst_plugin /usr/$(get_libdir)/${PN}/plugins/liblightsparkplugin.so
+
+ # default to sdl audio if pulseaudio plugin is not built, bug #406197
+ if use sdl && ! use pulseaudio; then
+ sed -i 's/backend = pulseaudio/backend = sdl/' "${ED}/etc/xdg/${PN}.conf" || die
+ fi
+}
+
+pkg_postinst() {
+ if use nsplugin && ! has_version www-plugins/gnash; then
+ elog "Lightspark now supports gnash fallback for its browser plugin."
+ elog "Install www-plugins/gnash to take advantage of it."
+ fi
+ if use nsplugin && has_version www-plugins/gnash[nsplugin]; then
+ elog "Having two plugins installed for the same MIME type may confuse"
+ elog "Mozilla based browsers. It is recommended to disable the nsplugin"
+ elog "USE flag for either gnash or lightspark. For details, see"
+ elog "https://bugzilla.mozilla.org/show_bug.cgi?id=581848"
+ fi
+}
diff --git a/www-plugins/lightspark/lightspark-0.7.2_p20150318.ebuild b/www-plugins/lightspark/lightspark-0.7.2_p20150318.ebuild
new file mode 100644
index 00000000000..063226e5f09
--- /dev/null
+++ b/www-plugins/lightspark/lightspark-0.7.2_p20150318.ebuild
@@ -0,0 +1,113 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+inherit cmake-utils nsplugins multilib toolchain-funcs
+
+DESCRIPTION="High performance flash player"
+HOMEPAGE="http://lightspark.sourceforge.net/"
+SRC_URI="mirror://gentoo/${P}.tar.gz"
+
+LICENSE="LGPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="curl ffmpeg gles nsplugin profile pulseaudio rtmp sdl"
+
+RDEPEND=">=dev-cpp/libxmlpp-2.33.1:2.6
+ >=dev-libs/boost-1.42
+ dev-libs/libpcre[cxx]
+ media-fonts/liberation-fonts
+ media-libs/libpng
+ media-libs/libsdl
+ >=sys-devel/gcc-4.6.0[cxx]
+ >=sys-devel/llvm-3.4
+ x11-libs/cairo
+ x11-libs/gtk+:2
+ x11-libs/libX11
+ x11-libs/pango
+ curl? (
+ net-misc/curl
+ )
+ ffmpeg? (
+ virtual/ffmpeg
+ )
+ !gles? (
+ >=media-libs/glew-1.5.3
+ virtual/opengl
+ )
+ gles? (
+ media-libs/mesa[gles2]
+ )
+ pulseaudio? (
+ media-sound/pulseaudio
+ )
+ rtmp? (
+ media-video/rtmpdump
+ )
+ virtual/jpeg"
+DEPEND="${RDEPEND}
+ amd64? ( dev-lang/nasm )
+ x86? ( dev-lang/nasm )
+ virtual/pkgconfig"
+
+S=${WORKDIR}/${P/_rc*/}
+
+pkg_pretend() {
+ if [[ ${MERGE_TYPE} != binary ]]; then
+ if [[ $(gcc-major-version) == 4 && $(gcc-minor-version) -lt 6 || $(gcc-major-version) -lt 4 ]] ; then
+ eerror "You need at least sys-devel/gcc-4.6.0"
+ die "You need at least sys-devel/gcc-4.6.0"
+ fi
+ fi
+}
+
+src_unpack() {
+ default
+ # rename snapshot directory
+ mv "${WORKDIR}"/${PN}-* "${WORKDIR}"/${P} || die
+}
+
+src_configure() {
+ local audiobackends
+ use pulseaudio && audiobackends+="pulse"
+ use sdl && audiobackends+="sdl"
+
+ local mycmakeargs=(
+ $(cmake-utils_use curl ENABLE_CURL)
+ $(cmake-utils_use gles ENABLE_GLES2)
+ $(cmake-utils_use ffmpeg ENABLE_LIBAVCODEC)
+ $(cmake-utils_use nsplugin COMPILE_PLUGIN)
+ $(cmake-utils_use profile ENABLE_MEMORY_USAGE_PROFILING)
+ $(cmake-utils_use profile ENABLE_PROFILING)
+ $(cmake-utils_use rtmp ENABLE_RTMP)
+ -DAUDIO_BACKEND="${audiobackends}"
+ -DPLUGIN_DIRECTORY="${EPREFIX}"/usr/$(get_libdir)/${PN}/plugins
+ )
+
+ cmake-utils_src_configure
+}
+
+src_install() {
+ cmake-utils_src_install
+
+ use nsplugin && inst_plugin /usr/$(get_libdir)/${PN}/plugins/liblightsparkplugin.so
+
+ # default to sdl audio if pulseaudio plugin is not built, bug #406197
+ if use sdl && ! use pulseaudio; then
+ sed -i 's/backend = pulseaudio/backend = sdl/' "${ED}/etc/xdg/${PN}.conf" || die
+ fi
+}
+
+pkg_postinst() {
+ if use nsplugin && ! has_version www-plugins/gnash; then
+ elog "Lightspark now supports gnash fallback for its browser plugin."
+ elog "Install www-plugins/gnash to take advantage of it."
+ fi
+ if use nsplugin && has_version www-plugins/gnash[nsplugin]; then
+ elog "Having two plugins installed for the same MIME type may confuse"
+ elog "Mozilla based browsers. It is recommended to disable the nsplugin"
+ elog "USE flag for either gnash or lightspark. For details, see"
+ elog "https://bugzilla.mozilla.org/show_bug.cgi?id=581848"
+ fi
+}
diff --git a/www-plugins/lightspark/metadata.xml b/www-plugins/lightspark/metadata.xml
new file mode 100644
index 00000000000..c2b52fa628f
--- /dev/null
+++ b/www-plugins/lightspark/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>chithanh@gentoo.org</email>
+ <name>Chí-Thanh Christopher Nguyễn</name>
+ </maintainer>
+ <use>
+ <flag name="gles">Replace default OpenGL renderer with GLESv2</flag>
+ <flag name="rtmp">Enable Real Time Messaging Protocol using librtmp</flag>
+ </use>
+ <upstream>
+ <remote-id type="launchpad">lightspark</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/www-plugins/metadata.xml b/www-plugins/metadata.xml
new file mode 100644
index 00000000000..b10aa1dfd1d
--- /dev/null
+++ b/www-plugins/metadata.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE catmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<catmetadata>
+<longdescription lang="en">
+ The www-plugins category contains plug-ins for Web browsers.
+</longdescription>
+<longdescription lang="de">
+ Die Kategorie www-plugins enthält Plug-ins für Webbrowser.
+</longdescription>
+<longdescription lang="es">
+ La categoría www-plugins contiene plug-ins para navegadores Web.
+</longdescription>
+<longdescription lang="fr">
+ La catégorie www-plugins contient des plugins pour navigateurs Web.
+</longdescription>
+<longdescription lang="it">
+ La categoria www-plugins contiene plugins per i browser web.
+</longdescription>
+<longdescription lang="nl">
+ De www-plugins categorie bevat webbrowserplugins.
+</longdescription>
+<longdescription lang="pl">
+ Kategoria www-plugins zawiera wtyczki dla przeglądarek internetowych.
+</longdescription>
+<longdescription lang="pt">
+ A categoria www-plugins contém plugins para navegadores da Web.
+</longdescription>
+</catmetadata>
diff --git a/www-plugins/mozplugger/Manifest b/www-plugins/mozplugger/Manifest
new file mode 100644
index 00000000000..1c65d78d93c
--- /dev/null
+++ b/www-plugins/mozplugger/Manifest
@@ -0,0 +1 @@
+DIST mozplugger-2.1.6.tar.gz 153183 SHA256 294cf06ad37b8d89e57ee9c4dc9e7549fd1b0dcec9769171d65dad36099e5fef SHA512 4585986de5ee7eb66c168e784606ac273197d5d8f8ebfe683c9eb63de2c4457f2f5403dc140555a6a262ff3abfd194e58ac5fa77a58f199c44d23f851b57612e WHIRLPOOL 012928ce867dafb0fb01fd3ffbe916bd25b98689c44472699e1c68b7e5d1bae6e846576e70d266fd5e42233727b56f61d44afd86dd8ed9d722fed0a9c2f342f7
diff --git a/www-plugins/mozplugger/metadata.xml b/www-plugins/mozplugger/metadata.xml
new file mode 100644
index 00000000000..5b80fb94c39
--- /dev/null
+++ b/www-plugins/mozplugger/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer>
+<email>xmw@gentoo.org</email>
+<name>Michael Weber</name>
+</maintainer>
+</pkgmetadata>
diff --git a/www-plugins/mozplugger/mozplugger-2.1.6.ebuild b/www-plugins/mozplugger/mozplugger-2.1.6.ebuild
new file mode 100644
index 00000000000..329cdf4edac
--- /dev/null
+++ b/www-plugins/mozplugger/mozplugger-2.1.6.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+inherit toolchain-funcs
+
+DESCRIPTION="Streaming media plugin for Mozilla, based on netscape-plugger"
+HOMEPAGE="http://mozplugger.mozdev.org/"
+SRC_URI="http://${PN}.mozdev.org/files/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND="x11-libs/libX11"
+DEPEND="${RDEPEND}"
+
+src_install() {
+ dobin ${PN}-{helper,controller,linker,update}
+
+ insinto /etc
+ doins ${PN}rc
+
+ insinto /usr/$(get_libdir)/nsbrowser/plugins
+ doins ${PN}.so
+
+ doman ${PN}.7
+ dodoc ChangeLog README
+}
diff --git a/www-plugins/nspluginwrapper/Manifest b/www-plugins/nspluginwrapper/Manifest
new file mode 100644
index 00000000000..eecd2b78ffc
--- /dev/null
+++ b/www-plugins/nspluginwrapper/Manifest
@@ -0,0 +1 @@
+DIST nspluginwrapper-1.4.4.tar.gz 412513 SHA256 f2ed94d42dbbb5370b000a3f30d2b601eb2b09d5742b2842cd0d70e862fab2bb SHA512 41126d98284cae6d25d23233b08ccca0dea841d457d4e41210282c6ab4c0fbf020f2ab4173ce39db8a47a1db20840bcc856f9c7309aa2e6ef2a777e3f2ebf503 WHIRLPOOL 537325919cbba8ce456c30a466f6e2c9fe546da829538afc7807f4201a06ebd7d89f9671b46fac09944a76d8064289530790ccf1ff2b6e5d596b2116447c991e
diff --git a/www-plugins/nspluginwrapper/files/nspluginwrapper-1.3.0-gdk-native-windows.patch b/www-plugins/nspluginwrapper/files/nspluginwrapper-1.3.0-gdk-native-windows.patch
new file mode 100644
index 00000000000..977af6c97e8
--- /dev/null
+++ b/www-plugins/nspluginwrapper/files/nspluginwrapper-1.3.0-gdk-native-windows.patch
@@ -0,0 +1,13 @@
+diff -up nspluginwrapper-1.3.0/src/npw-viewer.sh.old nspluginwrapper-1.3.0/src/npw-viewer.sh
+--- nspluginwrapper-1.3.0/src/npw-viewer.sh.old 2009-11-16 12:57:53.000000000 +0100
++++ nspluginwrapper-1.3.0/src/npw-viewer.sh 2009-12-04 16:16:27.000000000 +0100
+@@ -77,6 +77,9 @@ NPW_USE_XSHM=${NPW_USE_XSHM:-yes}
+ NPW_USE_VALGRIND=${NPW_USE_VALGRIND:-no}
+ can_use_valgrind="no"
+
++# Compiz/Flash workaround (rhbz#542424)
++export GDK_NATIVE_WINDOWS=1
++
+ if test "$ARCH" != "$TARGET_ARCH"; then
+ case $TARGET_ARCH in
+ i386)
diff --git a/www-plugins/nspluginwrapper/files/nspluginwrapper-1.4.4-compile-on-hardened.patch b/www-plugins/nspluginwrapper/files/nspluginwrapper-1.4.4-compile-on-hardened.patch
new file mode 100644
index 00000000000..6d9adc20e9b
--- /dev/null
+++ b/www-plugins/nspluginwrapper/files/nspluginwrapper-1.4.4-compile-on-hardened.patch
@@ -0,0 +1,12 @@
+diff -ur nspluginwrapper-1.4.4.orig2//Makefile nspluginwrapper-1.4.4/Makefile
+--- nspluginwrapper-1.4.4.orig2//Makefile 2011-07-14 11:56:52.674790086 -0400
++++ nspluginwrapper-1.4.4/Makefile 2011-07-14 12:01:00.281197722 -0400
+@@ -337,7 +337,7 @@
+ @[ -d $(LSB_OBJ_DIR) ] || mkdir $(LSB_OBJ_DIR) > /dev/null 2>&1
+
+ $(LSB_OBJ_DIR)/%.o: $(LSB_SRC_DIR)/%.c $(LSB_OBJ_DIR)
+- $(CC) $(CFLAGS_32) -nostdinc -fno-builtin -I. -I$(LSB_INC_DIR) -c $< -o $@
++ $(CC) $(CFLAGS_32) -nostdinc -fno-builtin -I. -I$(LSB_INC_DIR) -c -fno-stack-protector $< -o $@
+
+ $(LSB_OBJ_DIR)/%.a: $(LSB_OBJ_DIR)/%.o
+ $(AR) rc $@ $<
diff --git a/www-plugins/nspluginwrapper/files/nspluginwrapper-1.4.4-dont-include-gthread.patch b/www-plugins/nspluginwrapper/files/nspluginwrapper-1.4.4-dont-include-gthread.patch
new file mode 100644
index 00000000000..c1d404ab75d
--- /dev/null
+++ b/www-plugins/nspluginwrapper/files/nspluginwrapper-1.4.4-dont-include-gthread.patch
@@ -0,0 +1,12 @@
+diff --git a/src/npw-player.c b/src/npw-player.c
+index a99b8f7..217b5ba 100644
+--- a/src/npw-player.c
++++ b/src/npw-player.c
+@@ -25,7 +25,6 @@
+ #include <unistd.h>
+ #include <glib.h>
+ #include <glib/gstdio.h>
+-#include <glib/gthread.h>
+ #include <gtk/gtk.h>
+ #include <gdk/gdkx.h>
+ #include <gdk/gdkkeysyms.h>
diff --git a/www-plugins/nspluginwrapper/files/nspluginwrapper-1.4.4-dont-unload-libraries.patch b/www-plugins/nspluginwrapper/files/nspluginwrapper-1.4.4-dont-unload-libraries.patch
new file mode 100644
index 00000000000..70793f9e762
--- /dev/null
+++ b/www-plugins/nspluginwrapper/files/nspluginwrapper-1.4.4-dont-unload-libraries.patch
@@ -0,0 +1,14 @@
+diff --git a/src/npw-config.c b/src/npw-config.c
+index e9e8007..4ad4bc1 100644
+--- a/src/npw-config.c
++++ b/src/npw-config.c
+@@ -534,7 +534,8 @@ static bool is_wrapper_plugin(const char *plugin_path, NPW_PluginInfo *out_plugi
+ return false;
+
+ bool ret = is_wrapper_plugin_handle(handle, out_plugin_info);
+- dlclose(handle);
++ /* Intentionally leak the handle; many libraries crash when unloaded. */
++ /* dlclose(handle); */
+ return ret;
+ }
+
diff --git a/www-plugins/nspluginwrapper/files/nspluginwrapper-1.4.4-link-to-libdl.patch b/www-plugins/nspluginwrapper/files/nspluginwrapper-1.4.4-link-to-libdl.patch
new file mode 100644
index 00000000000..28e8f65cf74
--- /dev/null
+++ b/www-plugins/nspluginwrapper/files/nspluginwrapper-1.4.4-link-to-libdl.patch
@@ -0,0 +1,13 @@
+diff --git a/Makefile b/Makefile
+index e36a991..2a40671 100644
+--- a/Makefile
++++ b/Makefile
+@@ -142,7 +142,7 @@ npplayer_CFLAGS += $(GTK_CFLAGS) $(GLIB_CFLAGS) $(MOZILLA_CFLAGS) $(CURL_CFLAGS
+ npplayer_LDFLAGS = $(LDFLAGS)
+ npplayer_LDFLAGS += $(libpthread_LDFLAGS)
+ npplayer_LIBS = $(GTK_LIBS) $(GLIB_LIBS) $(CURL_LIBS) $(X_LIBS)
+-npplayer_LIBS += $(libpthread_LIBS) $(libsocket_LIBS)
++npplayer_LIBS += $(libdl_LIBS) $(libpthread_LIBS) $(libsocket_LIBS)
+
+ libnoxshm_LIBRARY = libnoxshm.so
+ libnoxshm_RAWSRCS = libnoxshm.c
diff --git a/www-plugins/nspluginwrapper/files/nspluginwrapper-1.4.4-link-to-libgthread.patch b/www-plugins/nspluginwrapper/files/nspluginwrapper-1.4.4-link-to-libgthread.patch
new file mode 100644
index 00000000000..56030c473c4
--- /dev/null
+++ b/www-plugins/nspluginwrapper/files/nspluginwrapper-1.4.4-link-to-libgthread.patch
@@ -0,0 +1,15 @@
+diff --git a/configure b/configure
+index 5f3dd86..09c400a 100755
+--- a/configure
++++ b/configure
+@@ -499,8 +499,8 @@ fi
+
+ # check for Glib 2.0 compile CFLAGS
+ if $pkgconfig --exists glib-2.0; then
+- GLIB_CFLAGS=`$pkgconfig --cflags glib-2.0`
+- GLIB_LIBS=`$pkgconfig --libs glib-2.0`
++ GLIB_CFLAGS=`$pkgconfig --cflags glib-2.0 gthread-2.0`
++ GLIB_LIBS=`$pkgconfig --libs glib-2.0 gthread-2.0`
+ GLIB_VERSION=`$pkgconfig --modversion glib-2.0`
+ else
+ echo "GLIB 2.0 environment not found"
diff --git a/www-plugins/nspluginwrapper/files/nspluginwrapper-1.4.4-parallel-make.patch b/www-plugins/nspluginwrapper/files/nspluginwrapper-1.4.4-parallel-make.patch
new file mode 100644
index 00000000000..95a7e49d6af
--- /dev/null
+++ b/www-plugins/nspluginwrapper/files/nspluginwrapper-1.4.4-parallel-make.patch
@@ -0,0 +1,91 @@
+diff -ur nspluginwrapper-1.4.2.orig//Makefile nspluginwrapper-1.4.2/Makefile
+--- nspluginwrapper-1.4.2.orig//Makefile 2011-06-04 14:41:40.000000000 -0400
++++ nspluginwrapper-1.4.2/Makefile 2011-06-16 22:11:07.059551179 -0400
+@@ -14,7 +14,7 @@
+ endif
+
+ ifeq ($(INSTALL),)
+-INSTALL = install
++INSTALL = install -D
+ ifneq (,$(findstring $(OS),solaris))
+ INSTALL = $(SRC_PATH)/utils/install.sh
+ endif
+@@ -236,44 +236,40 @@
+ uninstall.mkruntime:
+ rm -f $(DESTDIR)$(npcommondir)/mkruntime
+
+-install: install.dirs install.player install.wrapper install.viewer install.libnoxshm install.loader install.config
+-install.dirs:
+- mkdir -p $(DESTDIR)$(npcommondir) || :
+- mkdir -p $(DESTDIR)$(nphostdir) || :
+- mkdir -p $(DESTDIR)$(nptargetdir) || :
++install: install.player install.wrapper install.viewer install.libnoxshm install.loader install.config
+ ifeq ($(build_player),yes)
+-install.player: install.dirs $(npplayer_PROGRAM)
++install.player: $(npplayer_PROGRAM)
+ $(INSTALL) -m 755 $(STRIP_OPT) $(npplayer_PROGRAM) $(DESTDIR)$(nphostdir)/$(npplayer_PROGRAM)
+ mkdir -p $(DESTDIR)$(bindir)
+ $(LN_S) $(nphostdir)/$(npplayer_PROGRAM) $(DESTDIR)$(bindir)/nspluginplayer
+ else
+ install.player:
+ endif
+-install.wrapper: install.dirs $(npwrapper_LIBRARY)
++install.wrapper: $(npwrapper_LIBRARY)
+ $(INSTALL) -m 755 $(STRIP_OPT) $(npwrapper_LIBRARY) $(DESTDIR)$(nphostdir)/$(npwrapper_LIBRARY)
+ ifeq ($(build_viewer),yes)
+-install.viewer: install.dirs install.viewer.bin install.viewer.glue
+-install.libnoxshm: install.dirs do.install.libnoxshm
++install.viewer: install.viewer.bin install.viewer.glue
++install.libnoxshm: do.install.libnoxshm
+ else
+ install.viewer:
+ install.libnoxshm:
+ endif
+-install.viewer.bin: install.dirs $(npviewer_PROGRAM)
++install.viewer.bin: $(npviewer_PROGRAM)
+ $(INSTALL) -m 755 $(STRIP_OPT) $(npviewer_PROGRAM) $(DESTDIR)$(nptargetdir)/$(npviewer_PROGRAM)
+-install.viewer.glue:: install.dirs
++install.viewer.glue:: install.viewer.bin
+ p=$(DESTDIR)$(nptargetdir)/$(npviewer_PROGRAM:%.bin=%); \
+ echo "#!/bin/sh" > $$p; \
+ echo "TARGET_OS=$(TARGET_OS)" >> $$p; \
+ echo "TARGET_ARCH=$(TARGET_ARCH)" >> $$p; \
+ echo ". $(npcommondir)/$(nploader_PROGRAM)" >> $$p; \
+ chmod 755 $$p
+-do.install.libnoxshm: install.dirs $(libnoxshm_LIBRARY)
++do.install.libnoxshm: $(libnoxshm_LIBRARY)
+ $(INSTALL) -m 755 $(STRIP_OPT) $(libnoxshm_LIBRARY) $(DESTDIR)$(nptargetdir)/$(libnoxshm_LIBRARY)
+-install.config: install.dirs $(npconfig_PROGRAM)
++install.config: $(npconfig_PROGRAM)
+ $(INSTALL) -m 755 $(STRIP_OPT) $(npconfig_PROGRAM) $(DESTDIR)$(nphostdir)/$(npconfig_PROGRAM)
+ mkdir -p $(DESTDIR)$(bindir)
+ $(LN_S) $(nphostdir)/$(npconfig_PROGRAM) $(DESTDIR)$(bindir)/nspluginwrapper
+-install.loader: install.dirs $(nploader_PROGRAM)
++install.loader: $(nploader_PROGRAM)
+ $(INSTALL) -m 755 $(nploader_PROGRAM) $(DESTDIR)$(npcommondir)/$(nploader_PROGRAM)
+ install.mkruntime: $(SRC_PATH)/utils/mkruntime.sh
+ $(INSTALL) -m 755 $< $(DESTDIR)$(npcommondir)/mkruntime
+Only in nspluginwrapper-1.4.4: .Makefile.swp
+diff -ur nspluginwrapper-1.4.4.orig//Makefile nspluginwrapper-1.4.4/Makefile
+--- nspluginwrapper-1.4.4.orig//Makefile 2011-06-30 23:18:57.000000000 -0400
++++ nspluginwrapper-1.4.4/Makefile 2011-07-14 11:56:52.674790086 -0400
+@@ -333,16 +333,16 @@
+ sed -e 's|%NPW_VIEWER_DIR%|$(nptargetdir_var)|' $< > $@
+ chmod 755 $@
+
+-$(LSB_OBJ_DIR)::
++$(LSB_OBJ_DIR):
+ @[ -d $(LSB_OBJ_DIR) ] || mkdir $(LSB_OBJ_DIR) > /dev/null 2>&1
+
+-$(LSB_OBJ_DIR)/%.o: $(LSB_SRC_DIR)/%.c
++$(LSB_OBJ_DIR)/%.o: $(LSB_SRC_DIR)/%.c $(LSB_OBJ_DIR)
+ $(CC) $(CFLAGS_32) -nostdinc -fno-builtin -I. -I$(LSB_INC_DIR) -c $< -o $@
+
+ $(LSB_OBJ_DIR)/%.a: $(LSB_OBJ_DIR)/%.o
+ $(AR) rc $@ $<
+
+-$(LSB_OBJ_DIR)/libc.so: $(LSB_OBJ_DIR)/libc_main.so $(LSB_OBJ_DIR)/libc_nonshared.a
++$(LSB_OBJ_DIR)/libc.so: $(LSB_OBJ_DIR)/libc_main.so $(LSB_OBJ_DIR)/libc_nonshared.a $(LSB_OBJ_DIR)
+ @echo "OUTPUT_FORMAT($(TARGET_ELF_ARCH))" > $@
+ @echo "GROUP ( $(LSB_OBJ_DIR)/libc_main.so $(LSB_OBJ_DIR)/libc_nonshared.a )" >> $@
+
diff --git a/www-plugins/nspluginwrapper/metadata.xml b/www-plugins/nspluginwrapper/metadata.xml
new file mode 100644
index 00000000000..195e9883808
--- /dev/null
+++ b/www-plugins/nspluginwrapper/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>amd64</herd>
+<maintainer>
+ <email>chutzpah@gentoo.org</email>
+ <name>Patrick McLean</name>
+</maintainer>
+</pkgmetadata>
+
diff --git a/www-plugins/nspluginwrapper/nspluginwrapper-1.4.4-r3.ebuild b/www-plugins/nspluginwrapper/nspluginwrapper-1.4.4-r3.ebuild
new file mode 100644
index 00000000000..f0b9a86c2d7
--- /dev/null
+++ b/www-plugins/nspluginwrapper/nspluginwrapper-1.4.4-r3.ebuild
@@ -0,0 +1,111 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit eutils multilib nsplugins flag-o-matic toolchain-funcs
+
+DESCRIPTION="Netscape Plugin Wrapper - Load 32bit plugins on 64bit browser"
+HOMEPAGE="http://nspluginwrapper.org/"
+SRC_URI="http://web.mit.edu/davidben/Public/nspluginwrapper/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64"
+IUSE=""
+
+RDEPEND=">=x11-libs/gtk+-2:2
+ net-misc/curl
+ >=sys-apps/util-linux-2.13
+ >=dev-libs/glib-2.34.3[abi_x86_32(-)]
+ >=x11-libs/gtk+-2.24.23:2[abi_x86_32(-)]
+ >=x11-libs/libX11-1.6.2[abi_x86_32(-)]
+ >=x11-libs/libXt-1.1.4[abi_x86_32(-)]"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
+
+autoinstall() {
+ if [[ -x /usr/bin/${PN} ]]; then
+ einfo "Auto installing 32bit plugins..."
+ ${PN} -a -i
+ ls /usr/$(get_libdir)/nsbrowser/plugins
+
+ # Remove wrappers if equivalent 64-bit plugins exist
+ # TODO: May be better to patch nspluginwrapper so it doesn't create
+ # duplicate wrappers in the first place...
+ local DIR64="${ROOT}/usr/$(get_libdir)/nsbrowser/plugins/"
+ for f in "${DIR64}"/npwrapper.*.so; do
+ local PLUGIN=${f##*/npwrapper.}
+ if [[ -f ${DIR64}/${PLUGIN} ]]; then
+ einfo " Removing duplicate wrapper for native 64-bit ${PLUGIN}"
+ ${PN} -r "${f}"
+ fi
+ done
+ fi
+}
+
+src_prepare() {
+ epatch "${FILESDIR}/${PN}-1.3.0-gdk-native-windows.patch"
+
+ epatch "${FILESDIR}/${P}-parallel-make.patch"
+ epatch "${FILESDIR}/${P}-compile-on-hardened.patch"
+ epatch "${FILESDIR}/${P}-dont-unload-libraries.patch"
+ epatch "${FILESDIR}/${P}-dont-include-gthread.patch"
+ epatch "${FILESDIR}/${P}-link-to-libdl.patch"
+ epatch "${FILESDIR}/${P}-link-to-libgthread.patch"
+
+ sed -i -r "s:^libnoxshm_LDFLAGS = :libnoxshm_LDFLAGS = -L/usr/$(ABI=x86 get_libdir)/ :" \
+ Makefile || die "sed failed"
+}
+
+src_configure() {
+ replace-flags -O3 -O2
+
+ ./configure \
+ --with-cc="$(tc-getCC)" \
+ --with-cxx="$(tc-getCXX)" \
+ --enable-biarch \
+ --target-cpu=i386 \
+ --with-lib32=$(ABI=x86 get_libdir) \
+ --with-lib64=$(get_libdir) \
+ --pkglibdir=/usr/$(get_libdir)/${PN} \
+ || die "configure failed"
+}
+
+src_compile() {
+ emake LDFLAGS_32="$(get_abi_CFLAGS x86) ${LDFLAGS}"
+}
+
+src_install() {
+ emake DESTDIR="${D}" install
+
+ dosym "/usr/$(get_libdir)/${PN}/x86_64/linux/npconfig" "/usr/bin/${PN}"
+
+ keepdir "/usr/$(get_libdir)/${PLUGINS_DIR}"
+
+ dodoc NEWS README TODO
+}
+
+pkg_postinst() {
+ autoinstall
+ elog "Any 32bit plugins you currently have installed have now been"
+ elog "configured to work in a 64bit browser. Any plugins you install in"
+ elog "the future will first need to be setup with:"
+ elog " \"nspluginwrapper -i <path-to-32bit-plugin>\""
+ elog "before they will function in a 64bit browser"
+ elog
+}
+
+# this is terribly ugly, but without a way to query portage as to whether
+# we are upgrading/reinstalling a package versus unmerging, I can't think of
+# a better way
+
+pkg_prerm() {
+ einfo "Removing wrapper plugins..."
+ ${PN} --auto --remove
+}
+
+pkg_postrm() {
+ autoinstall
+}
diff --git a/www-plugins/pipelight/Manifest b/www-plugins/pipelight/Manifest
new file mode 100644
index 00000000000..6a74563e071
--- /dev/null
+++ b/www-plugins/pipelight/Manifest
@@ -0,0 +1,2 @@
+DIST pipelight-0.2.7.3.tar.gz 161967 SHA256 db4585f44874c0b647e7cf611b5bf8efe308fe11573891cd74dd4fa5867e2e52 SHA512 162b5f95b30c022a7f3bd821c7ba8e8af33ef0a4e2f38dff6a5da0a36725251a45b07c22c827c5a97b2320e395391f8d5c6702d3ed596e7cf66b064b2f9c8285 WHIRLPOOL 435bfb3f4fcb63b15af078da4765b0b0f1200e4691dcb3b92360cfda5f70f23c76458ff849c4a54ffab3f3f75c8d475c86c7ede6127cd57e6d34c50e1d07c367
+DIST pipelight-0.2.8.tar.gz 153492 SHA256 ae543d6eb95b3f681bf5807de63208e42c3be2ada1d2661017ad3a215c0684c4 SHA512 927fea510912879d0c976a20088dbbbadb3a1185e248d9a2ebb0afc4219bf4bcf4691f1ada678f4ccd24ea722e108615a04764ba664d66a6e03855aa663ae373 WHIRLPOOL 16d9b8460cb1d0f00097cf92d9c4d010a3f18b4d0c8c667b03b3b613bb80931b6fcf3d19d2ee96ae405375ee60e72aa4d6e84b9137ace7c7ac7d4d139e41eaff
diff --git a/www-plugins/pipelight/metadata.xml b/www-plugins/pipelight/metadata.xml
new file mode 100644
index 00000000000..e72ebc43b80
--- /dev/null
+++ b/www-plugins/pipelight/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>ryao@gentoo.org</email>
+ <name>Richard Yao</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="launchpad">pipelight</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/www-plugins/pipelight/pipelight-0.2.7.3.ebuild b/www-plugins/pipelight/pipelight-0.2.7.3.ebuild
new file mode 100644
index 00000000000..fcd901a9c71
--- /dev/null
+++ b/www-plugins/pipelight/pipelight-0.2.7.3.ebuild
@@ -0,0 +1,87 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit multilib
+
+if [ ${PV} == "9999" ] ; then
+ inherit git-2
+ EGIT_REPO_URI="https://bitbucket.org/mmueller2012/${PN}.git"
+else
+ inherit vcs-snapshot
+ SRC_URI="https://bitbucket.org/mmueller2012/${PN}/get/v${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~amd64"
+fi
+
+DESCRIPTION="Wine-based wrapper for running Windows plugins on POSIX systems"
+HOMEPAGE="https://launchpad.net/pipelight"
+
+LICENSE="|| ( GPL-2+ LGPL-2.1+ MPL-1.1 )"
+SLOT="0"
+IUSE=""
+
+DEPEND="app-emulation/wine[X,abi_x86_32,pipelight]"
+RDEPEND="${DEPEND}
+ app-arch/cabextract
+ gnome-extra/zenity"
+
+QA_FLAGS_IGNORED="usr/share/pipelight/pluginloader.exe
+ usr/share/pipelight/winecheck.exe"
+
+src_configure() {
+ econf --wine-path="${EPREFIX}/usr/bin/wine"
+}
+
+src_install() {
+ default_src_install
+
+ # Ideally, every wrapped plugin could be a symlink to pipelight's wrapper
+ # plugin, but some browsers do not like this. Upstream provides a script to
+ # duplicate the wrapper plugin as a hack to work around it. That script
+ # does not support DESTDIR, so we use sed to adjust it before running it to
+ # properly duplicate the plugins.
+ # XXX: Patch the script to support DESTDIR and send the patch upstream.
+ sed -e "s:^\(PIPELIGHT_LIBRARY_PATH=\"\)\\(.*\):\1${ED}usr/$(get_libdir)/${PN}\":" \
+ -e "s:^\(PLUGIN_PATH=\"\)\\(.*\):\1${ED}usr/$(get_libdir)/${PN}\":" \
+ "${ED}/usr/bin/pipelight-plugin" > "${T}/pipelight-plugin" \
+ || die "Generating temporary pipelight-plugin failed"
+ chmod u+x "${T}/pipelight-plugin" \
+ || die "Setting permissions on temporary pipelight-plugin failed"
+
+ # Create Plugins
+ "${T}/pipelight-plugin" --create-mozilla-plugins \
+ || die "Creating plugins failed"
+
+}
+
+postinst() {
+ # Obligatory warnings about proprietary software
+ ewarn "Neither the Gentoo developers nor the Pipelight developers can"
+ ewarn "patch security vulnerabilities in Windows plugins. Use them at your"
+ ewarn "own risk."
+ # Warn about missing pipelight-sandbox
+ ewarn
+ ewarn "The pipelight sandbox has not been packaged yet. Plugins will have"
+ ewarn "full privileges as Windows programs running inside wine."
+
+ # Helpful information for those willing to live dangerously
+ einfo "Using Windows plugins on certain websites might require a useragent"
+ einfo "switcher. See the upstream tutorial for more details."
+ einfo
+ einfo "http://www.pipelight.net/cms/installation-user-agent.html"
+ einfo
+ einfo "End users should use the pipelight-plugin utility to install and"
+ einfo "manage plugins. Updates are done at plugin initialization whenever"
+ einfo "/usr/share/pipelight/install-dependency has been updated. This can"
+ einfo "be done either by doing updates via portage or by running"
+ einfo "pipelight-plugin --update as root. Browsers like Chrome (all"
+ einfo "versions before 35) will initialize plugins at boot while browsers"
+ einfo "like Firefox will initialize plugins on demand."
+ einfo
+ # Users must be in the video group for video acceleration
+ einfo "Membership in the video group is required for using plugins that"
+ einfo "feature hardware acceleration for video decoding. This is important"
+ einfo "for video streaming sites that use Silverlight."
+}
diff --git a/www-plugins/pipelight/pipelight-0.2.8.ebuild b/www-plugins/pipelight/pipelight-0.2.8.ebuild
new file mode 100644
index 00000000000..54746af60ca
--- /dev/null
+++ b/www-plugins/pipelight/pipelight-0.2.8.ebuild
@@ -0,0 +1,87 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit multilib
+
+if [ ${PV} == "9999" ] ; then
+ inherit git-2
+ EGIT_REPO_URI="https://bitbucket.org/mmueller2012/${PN}.git"
+else
+ inherit vcs-snapshot
+ SRC_URI="https://bitbucket.org/mmueller2012/${PN}/get/v${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~amd64"
+fi
+
+DESCRIPTION="Wine-based wrapper for running Windows plugins on POSIX systems"
+HOMEPAGE="https://launchpad.net/pipelight"
+
+LICENSE="|| ( GPL-2+ LGPL-2.1+ MPL-1.1 )"
+SLOT="0"
+IUSE=""
+
+DEPEND="app-emulation/wine[X,abi_x86_32,pipelight]"
+RDEPEND="${DEPEND}
+ app-arch/cabextract
+ gnome-extra/zenity"
+
+QA_FLAGS_IGNORED="usr/share/pipelight/pluginloader.exe
+ usr/share/pipelight/winecheck.exe"
+
+src_configure() {
+ econf --wine-path="${EPREFIX}/usr/bin/wine"
+}
+
+src_install() {
+ default_src_install
+
+ # Ideally, every wrapped plugin could be a symlink to pipelight's wrapper
+ # plugin, but some browsers do not like this. Upstream provides a script to
+ # duplicate the wrapper plugin as a hack to work around it. That script
+ # does not support DESTDIR, so we use sed to adjust it before running it to
+ # properly duplicate the plugins.
+ # XXX: Patch the script to support DESTDIR and send the patch upstream.
+ sed -e "s:^\(PIPELIGHT_LIBRARY_PATH=\"\)\\(.*\):\1${ED}usr/$(get_libdir)/${PN}\":" \
+ -e "s:^\(PLUGIN_PATH=\"\)\\(.*\):\1${ED}usr/$(get_libdir)/${PN}\":" \
+ "${ED}/usr/bin/pipelight-plugin" > "${T}/pipelight-plugin" \
+ || die "Generating temporary pipelight-plugin failed"
+ chmod u+x "${T}/pipelight-plugin" \
+ || die "Setting permissions on temporary pipelight-plugin failed"
+
+ # Create Plugins
+ "${T}/pipelight-plugin" --create-mozilla-plugins \
+ || die "Creating plugins failed"
+
+}
+
+postinst() {
+ # Obligatory warnings about proprietary software
+ ewarn "Neither the Gentoo developers nor the Pipelight developers can"
+ ewarn "patch security vulnerabilities in Windows plugins. Use them at your"
+ ewarn "own risk."
+ # Warn about missing pipelight-sandbox
+ ewarn
+ ewarn "The pipelight sandbox has not been packaged yet. Plugins will have"
+ ewarn "full privileges as Windows programs running inside wine."
+
+ # Helpful information for those willing to live dangerously
+ einfo "Using Windows plugins on certain websites might require a useragent"
+ einfo "switcher. See the upstream tutorial for more details."
+ einfo
+ einfo "http://www.pipelight.net/cms/installation-user-agent.html"
+ einfo
+ einfo "End users should use the pipelight-plugin utility to install and"
+ einfo "manage plugins. Updates are done at plugin initialization whenever"
+ einfo "/usr/share/pipelight/install-dependency has been updated. This can"
+ einfo "be done either by doing updates via portage or by running"
+ einfo "pipelight-plugin --update as root. Browsers like Chrome (all"
+ einfo "versions before 35) will initialize plugins at boot while browsers"
+ einfo "like Firefox will initialize plugins on demand."
+ einfo
+ # Users must be in the video group for video acceleration
+ einfo "Membership in the video group is required for using plugins that"
+ einfo "feature hardware acceleration for video decoding. This is important"
+ einfo "for video streaming sites that use Silverlight."
+}
diff --git a/www-plugins/pipelight/pipelight-9999.ebuild b/www-plugins/pipelight/pipelight-9999.ebuild
new file mode 100644
index 00000000000..8f1557d5005
--- /dev/null
+++ b/www-plugins/pipelight/pipelight-9999.ebuild
@@ -0,0 +1,88 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit multilib
+
+if [ ${PV} == "9999" ] ; then
+ inherit git-2
+ EGIT_REPO_URI="https://bitbucket.org/mmueller2012/${PN}.git"
+else
+ inherit vcs-snapshot
+ SRC_URI="https://bitbucket.org/mmueller2012/${PN}/get/v${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~amd64"
+fi
+
+DESCRIPTION="Wine-based wrapper for running Windows plugins on POSIX systems"
+HOMEPAGE="https://launchpad.net/pipelight"
+
+LICENSE="|| ( GPL-2+ LGPL-2.1+ MPL-1.1 )"
+SLOT="0"
+KEYWORDS=""
+IUSE=""
+
+DEPEND="app-emulation/wine[X,abi_x86_32,pipelight]"
+RDEPEND="${DEPEND}
+ app-arch/cabextract
+ gnome-extra/zenity"
+
+QA_FLAGS_IGNORED="usr/share/pipelight/pluginloader.exe
+ usr/share/pipelight/winecheck.exe"
+
+src_configure() {
+ econf --wine-path="${EPREFIX}/usr/bin/wine"
+}
+
+src_install() {
+ default_src_install
+
+ # Ideally, every wrapped plugin could be a symlink to pipelight's wrapper
+ # plugin, but some browsers do not like this. Upstream provides a script to
+ # duplicate the wrapper plugin as a hack to work around it. That script
+ # does not support DESTDIR, so we use sed to adjust it before running it to
+ # properly duplicate the plugins.
+ # XXX: Patch the script to support DESTDIR and send the patch upstream.
+ sed -e "s:^\(PIPELIGHT_LIBRARY_PATH=\"\)\\(.*\):\1${ED}usr/$(get_libdir)/${PN}\":" \
+ -e "s:^\(PLUGIN_PATH=\"\)\\(.*\):\1${ED}usr/$(get_libdir)/${PN}\":" \
+ "${ED}/usr/bin/pipelight-plugin" > "${T}/pipelight-plugin" \
+ || die "Generating temporary pipelight-plugin failed"
+ chmod u+x "${T}/pipelight-plugin" \
+ || die "Setting permissions on temporary pipelight-plugin failed"
+
+ # Create Plugins
+ "${T}/pipelight-plugin" --create-mozilla-plugins \
+ || die "Creating plugins failed"
+
+}
+
+postinst() {
+ # Obligatory warnings about proprietary software
+ ewarn "Neither the Gentoo developers nor the Pipelight developers can"
+ ewarn "patch security vulnerabilities in Windows plugins. Use them at your"
+ ewarn "own risk."
+ # Warn about missing pipelight-sandbox
+ ewarn
+ ewarn "The pipelight sandbox has not been packaged yet. Plugins will have"
+ ewarn "full privileges as Windows programs running inside wine."
+
+ # Helpful information for those willing to live dangerously
+ einfo "Using Windows plugins on certain websites might require a useragent"
+ einfo "switcher. See the upstream tutorial for more details."
+ einfo
+ einfo "http://www.pipelight.net/cms/installation-user-agent.html"
+ einfo
+ einfo "End users should use the pipelight-plugin utility to install and"
+ einfo "manage plugins. Updates are done at plugin initialization whenever"
+ einfo "/usr/share/pipelight/install-dependency has been updated. This can"
+ einfo "be done either by doing updates via portage or by running"
+ einfo "pipelight-plugin --update as root. Browsers like Chrome (all"
+ einfo "versions before 35) will initialize plugins at boot while browsers"
+ einfo "like Firefox will initialize plugins on demand."
+ einfo
+ # Users must be in the video group for video acceleration
+ einfo "Membership in the video group is required for using plugins that"
+ einfo "feature hardware acceleration for video decoding. This is important"
+ einfo "for video streaming sites that use Silverlight."
+}