From d2e60d1f93c037dd337f32e5d80f1b70915eca57 Mon Sep 17 00:00:00 2001 From: aszlig Date: Tue, 8 Nov 2016 20:18:15 +0100 Subject: chromium: Fix building with WineVine components Before version 54, the WideVine CDM plugin was built unconditionally and it seems since version 54 this now is dependent upon a GYP/GN flag on whether to include the CDM shared library or not. Also, we now use a patch from Gentoo which should hopefully get the CDM plugin to work properly, at least according to their bugtracker: https://bugs.gentoo.org/show_bug.cgi?id=547630 Signed-off-by: aszlig --- .../networking/browsers/chromium/browser.nix | 5 +++++ .../networking/browsers/chromium/common.nix | 5 +++-- .../networking/browsers/chromium/default.nix | 3 ++- .../browsers/chromium/patches/widevine.patch | 24 +++++++++++++--------- 4 files changed, 24 insertions(+), 13 deletions(-) (limited to 'pkgs') diff --git a/pkgs/applications/networking/browsers/chromium/browser.nix b/pkgs/applications/networking/browsers/chromium/browser.nix index 9eb25c316f9..58e5ab98c16 100644 --- a/pkgs/applications/networking/browsers/chromium/browser.nix +++ b/pkgs/applications/networking/browsers/chromium/browser.nix @@ -18,6 +18,11 @@ mkChromiumDerivation (base: rec { cp -vLR "$buildPath/locales" "$buildPath/resources" "$libExecPath/" cp -v "$buildPath/chrome" "$libExecPath/$packageName" + if [ -e "$buildPath/libwidevinecdmadapter.so" ]; then + cp -v "$buildPath/libwidevinecdmadapter.so" \ + "$libExecPath/libwidevinecdmadapter.so" + fi + mkdir -p "$sandbox/bin" cp -v "$buildPath/chrome_sandbox" "$sandbox/bin/${sandboxExecutableName}" diff --git a/pkgs/applications/networking/browsers/chromium/common.nix b/pkgs/applications/networking/browsers/chromium/common.nix index ce3b0f84cbb..e70f180f489 100644 --- a/pkgs/applications/networking/browsers/chromium/common.nix +++ b/pkgs/applications/networking/browsers/chromium/common.nix @@ -23,6 +23,7 @@ , enableSELinux ? false, libselinux ? null , enableNaCl ? false , enableHotwording ? false +, enableWideVine ? false , gnomeSupport ? false, gnome ? null , gnomeKeyringSupport ? false, libgnome_keyring3 ? null , proprietaryCodecs ? true @@ -102,10 +103,9 @@ let ++ optional pulseSupport libpulseaudio; patches = [ - ./patches/widevine.patch ./patches/glibc-2.24.patch ./patches/nix_plugin_paths_52.patch - ]; + ] ++ optional enableWideVine ./patches/widevine.patch; postPatch = '' # We want to be able to specify where the sandbox is via CHROME_DEVEL_SANDBOX @@ -147,6 +147,7 @@ let use_gio = gnomeSupport; enable_nacl = enableNaCl; enable_hotwording = enableHotwording; + enable_widevine = enableWideVine; selinux = enableSELinux; use_cups = cupsSupport; } // { diff --git a/pkgs/applications/networking/browsers/chromium/default.nix b/pkgs/applications/networking/browsers/chromium/default.nix index b59cda875b6..1556603db2c 100644 --- a/pkgs/applications/networking/browsers/chromium/default.nix +++ b/pkgs/applications/networking/browsers/chromium/default.nix @@ -22,7 +22,8 @@ let mkChromiumDerivation = callPackage ./common.nix { inherit enableSELinux enableNaCl enableHotwording gnomeSupport gnome - gnomeKeyringSupport proprietaryCodecs cupsSupport pulseSupport; + gnomeKeyringSupport proprietaryCodecs cupsSupport pulseSupport + enableWideVine; }; browser = callPackage ./browser.nix { inherit channel; }; diff --git a/pkgs/applications/networking/browsers/chromium/patches/widevine.patch b/pkgs/applications/networking/browsers/chromium/patches/widevine.patch index 45048cada87..90a13928e3b 100644 --- a/pkgs/applications/networking/browsers/chromium/patches/widevine.patch +++ b/pkgs/applications/networking/browsers/chromium/patches/widevine.patch @@ -1,12 +1,16 @@ -diff -upr chromium-42.0.2311.90.orig/third_party/widevine/cdm/widevine_cdm_version.h chromium-42.0.2311.90/third_party/widevine/cdm/widevine_cdm_version.h ---- chromium-42.0.2311.90.orig/third_party/widevine/cdm/widevine_cdm_version.h 2015-04-15 01:18:59.000000000 +0300 -+++ chromium-42.0.2311.90/third_party/widevine/cdm/widevine_cdm_version.h 2015-04-15 09:09:49.157260050 +0300 -@@ -14,4 +14,8 @@ - // - WIDEVINE_CDM_VERSION_STRING (with the version of the CDM that's available - // as a string, e.g., "1.0.123.456"). +Minimal WideVine patch from Gentoo: + +https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/chromium-widevine-r1.patch + +BTS: 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 -+#include "third_party/widevine/cdm/widevine_cdm_common.h" -+#define WIDEVINE_CDM_AVAILABLE -+#define WIDEVINE_CDM_VERSION_STRING "@WIDEVINE_VERSION@" -+ #endif // WIDEVINE_CDM_VERSION_H_ -- cgit 1.4.1