commit:     bc7b92e875db316b8b81055c21334dcd0dcbd16c
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Fri Sep 11 16:22:48 2015 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Fri Sep 11 16:30:29 2015 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=bc7b92e8

www-client/chromium: Restore widevine support in the dev channel (47)

This includes a minimal patch to get chromium to compile. The widevine
version is reported as "unknown" in chrome://plugins. A more robust
solution should really be implemented upstream.

Tested by viewing a video on Netflix.

Based on work by Greg Turner and Ari Entlich.

Closes #37.

Bug: https://bugs.gentoo.org/547630
Bug: https://crbug.com/473866

Package-Manager: portage-2.2.20

 www-client/chromium/chromium-47.0.2503.0.ebuild      | 10 +++++++---
 www-client/chromium/files/chromium-widevine-r1.patch | 14 ++++++++++++++
 www-client/chromium/metadata.xml                     |  1 +
 3 files changed, 22 insertions(+), 3 deletions(-)

diff --git a/www-client/chromium/chromium-47.0.2503.0.ebuild 
b/www-client/chromium/chromium-47.0.2503.0.ebuild
index a29ad86..346ae3a 100644
--- a/www-client/chromium/chromium-47.0.2503.0.ebuild
+++ b/www-client/chromium/chromium-47.0.2503.0.ebuild
@@ -19,7 +19,7 @@ 
SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}
 LICENSE="BSD hotwording? ( no-source-code )"
 SLOT="0"
 KEYWORDS="~amd64 ~arm ~x86"
-IUSE="cups gnome gnome-keyring hidpi hotwording kerberos neon pic 
+proprietary-codecs pulseaudio selinux +tcmalloc"
+IUSE="cups gnome gnome-keyring hidpi hotwording kerberos neon pic 
+proprietary-codecs pulseaudio selinux +tcmalloc widevine"
 RESTRICT="proprietary-codecs? ( bindist )"
 
 # Native Client binaries are compiled with different set of flags, bug #452066.
@@ -100,7 +100,8 @@ RDEPEND+="
        virtual/opengl
        virtual/ttf-fonts
        selinux? ( sec-policy/selinux-chromium )
-       tcmalloc? ( !<x11-drivers/nvidia-drivers-331.20 )"
+       tcmalloc? ( !<x11-drivers/nvidia-drivers-331.20 )
+       widevine? ( www-plugins/chrome-binary-plugins[widevine(-)] )"
 
 # Python dependencies. The DEPEND part needs to be kept in sync
 # with python_check_deps.
@@ -190,6 +191,7 @@ src_prepare() {
        # fi
 
        epatch "${FILESDIR}/${PN}-system-jinja-r7.patch"
+       epatch "${FILESDIR}/chromium-widevine-r1.patch"
 
        epatch_user
 
@@ -370,7 +372,8 @@ src_configure() {
                $(gyp_use hotwording enable_hotwording)
                $(gyp_use kerberos)
                $(gyp_use pulseaudio)
-               $(gyp_use tcmalloc use_allocator tcmalloc none)"
+               $(gyp_use tcmalloc use_allocator tcmalloc none)
+               $(gyp_use widevine enable_widevine)"
 
        # Use explicit library dependencies instead of dlopen.
        # This makes breakages easier to detect by revdep-rebuild.
@@ -546,6 +549,7 @@ src_install() {
        fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
 
        doexe out/Release/chromedriver || die
+       use widevine && doexe out/Release/libwidevinecdmadapter.so
 
        # if ! use arm; then
        #       doexe out/Release/nacl_helper{,_bootstrap} || die

diff --git a/www-client/chromium/files/chromium-widevine-r1.patch 
b/www-client/chromium/files/chromium-widevine-r1.patch
new file mode 100644
index 0000000..f206878
--- /dev/null
+++ b/www-client/chromium/files/chromium-widevine-r1.patch
@@ -0,0 +1,14 @@
+Minimal patch to get chromium to compile with widevine support
+
+https://bugs.gentoo.org/show_bug.cgi?id=547630
+
+--- a/third_party/widevine/cdm/stub/widevine_cdm_version.h
++++ b/third_party/widevine/cdm/stub/widevine_cdm_version.h
+@@ -10,6 +10,7 @@
+ 
+ #include "third_party/widevine/cdm/widevine_cdm_common.h"
+ 
++#define WIDEVINE_CDM_VERSION_STRING "unknown"
+ #define WIDEVINE_CDM_AVAILABLE
+ 
+ #endif  // WIDEVINE_CDM_VERSION_H_

diff --git a/www-client/chromium/metadata.xml b/www-client/chromium/metadata.xml
index 1022e5d..86d5ae4 100644
--- a/www-client/chromium/metadata.xml
+++ b/www-client/chromium/metadata.xml
@@ -9,5 +9,6 @@
                <flag name="pic">Disable optimized assembly code that is not 
PIC friendly</flag>
                <flag name="proprietary-codecs">Enable proprietary codecs like 
H.264, MP3</flag>
                <flag name="tcmalloc">Use bundled tcmalloc instead of system 
malloc</flag>
+               <flag name="widevine">Unsupported closed-source DRM capability 
(required by Netflix VOD)</flag>
        </use>
 </pkgmetadata>

Reply via email to