www-client/chromium: Restore widevine support in the dev channel (47)
authorMike Gilbert <floppym@gentoo.org>
Fri, 11 Sep 2015 16:22:48 +0000 (12:22 -0400)
committerMike Gilbert <floppym@gentoo.org>
Fri, 11 Sep 2015 16:30:29 +0000 (12:30 -0400)
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
www-client/chromium/files/chromium-widevine-r1.patch [new file with mode: 0644]
www-client/chromium/metadata.xml

index a29ad8655d79c970dcf4cd2b3be65d42d3fa0ddf..346ae3ab12742e809bb70cc16bcaab73db305ac6 100644 (file)
@@ -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 (file)
index 0000000..f206878
--- /dev/null
@@ -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_
index 1022e5d5f2bfab72000d5a3365f566aee3997990..86d5ae4b030869f57c03a3f9480efbe7e25617ce 100644 (file)
@@ -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>