chromiumDev: fix widevine support
Upstream moved libwidevinecdm.so from ./opt/google/chrome-unstable/libwidevinecdm.so to ./opt/google/chrome-unstable/WidevineCdm/_platform_specific/linux_x64/libwidevinecdm.so
This commit is contained in:
parent
44957a9f30
commit
5456def6b3
|
@ -50,6 +50,7 @@ in let
|
||||||
widevine = let upstream-info = chromium.upstream-info; in stdenv.mkDerivation {
|
widevine = let upstream-info = chromium.upstream-info; in stdenv.mkDerivation {
|
||||||
name = "chromium-binary-plugin-widevine";
|
name = "chromium-binary-plugin-widevine";
|
||||||
|
|
||||||
|
# The .deb file for Google Chrome
|
||||||
src = upstream-info.binary;
|
src = upstream-info.binary;
|
||||||
|
|
||||||
nativeBuildInputs = [ patchelfUnstable ];
|
nativeBuildInputs = [ patchelfUnstable ];
|
||||||
|
@ -57,14 +58,21 @@ in let
|
||||||
phases = [ "unpackPhase" "patchPhase" "installPhase" "checkPhase" ];
|
phases = [ "unpackPhase" "patchPhase" "installPhase" "checkPhase" ];
|
||||||
|
|
||||||
unpackCmd = let
|
unpackCmd = let
|
||||||
chan = if upstream-info.channel == "dev" then "chrome-unstable"
|
soPath =
|
||||||
else if upstream-info.channel == "stable" then "chrome"
|
if upstream-info.channel == "stable" then
|
||||||
else if upstream-info.channel == "beta" then "chrome-beta"
|
"./opt/google/chrome/libwidevinecdm.so"
|
||||||
else throw "Unknown chromium channel.";
|
else if upstream-info.channel == "beta" then
|
||||||
|
"./opt/google/chrome-beta/libwidevinecdm.so"
|
||||||
|
else if upstream-info.channel == "dev" then
|
||||||
|
"./opt/google/chrome-unstable/WidevineCdm/_platform_specific/linux_x64/libwidevinecdm.so"
|
||||||
|
else
|
||||||
|
throw "Unknown chromium channel.";
|
||||||
in ''
|
in ''
|
||||||
mkdir -p plugins
|
mkdir -p plugins
|
||||||
ar p "$src" data.tar.xz | tar xJ -C plugins --strip-components=4 \
|
# Extract just libwidevinecdm.so from upstream's .deb file
|
||||||
./opt/google/${chan}/libwidevinecdm.so
|
ar p "$src" data.tar.xz | tar xJ -C plugins ${soPath}
|
||||||
|
mv plugins/${soPath} plugins/
|
||||||
|
rm -rf plugins/opt
|
||||||
'';
|
'';
|
||||||
|
|
||||||
doCheck = true;
|
doCheck = true;
|
||||||
|
@ -83,7 +91,10 @@ in let
|
||||||
"$out/lib/libwidevinecdm.so"
|
"$out/lib/libwidevinecdm.so"
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta.platforms = lib.platforms.x86_64;
|
meta = {
|
||||||
|
platforms = [ "x86_64-linux" ];
|
||||||
|
license = lib.licenses.unfree;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
suffix = if channel != "stable" then "-" + channel else "";
|
suffix = if channel != "stable" then "-" + channel else "";
|
||||||
|
@ -92,18 +103,21 @@ in let
|
||||||
|
|
||||||
version = chromium.browser.version;
|
version = chromium.browser.version;
|
||||||
|
|
||||||
# This is here because we want to add the widevine shared object at the last
|
# We want users to be able to enableWideVine without rebuilding all of
|
||||||
# minute in order to avoid a full rebuild of chromium. Additionally, this
|
# chromium, so we have a separate derivation here that copies chromium
|
||||||
# isn't in `browser.nix` so we can avoid having to re-expose attributes of
|
# and adds the unfree libwidevinecdm.so.
|
||||||
# the chromium derivation (see above: we introspect `sandboxExecutableName`).
|
|
||||||
chromiumWV = let browser = chromium.browser; in if enableWideVine then
|
chromiumWV = let browser = chromium.browser; in if enableWideVine then
|
||||||
runCommand (browser.name + "-wv") { version = browser.version; }
|
runCommand (browser.name + "-wv") { version = browser.version; }
|
||||||
''
|
''
|
||||||
mkdir -p $out
|
mkdir -p $out
|
||||||
cp -R ${browser}/* $out/
|
cp -a ${browser}/* $out/
|
||||||
chmod u+w $out/libexec/chromium*
|
chmod u+w $out/libexec/chromium
|
||||||
cp ${widevine}/lib/libwidevinecdm.so $out/libexec/chromium/
|
if [[ ${channel} != "dev" ]]; then
|
||||||
# patchelf?
|
cp ${widevine}/lib/libwidevinecdm.so $out/libexec/chromium/
|
||||||
|
else
|
||||||
|
mkdir -p $out/libexec/chromium/WidevineCdm/_platform_specific/linux_x64
|
||||||
|
cp ${widevine}/lib/libwidevinecdm.so $out/libexec/chromium/WidevineCdm/_platform_specific/linux_x64/
|
||||||
|
fi
|
||||||
''
|
''
|
||||||
else browser;
|
else browser;
|
||||||
in stdenv.mkDerivation {
|
in stdenv.mkDerivation {
|
||||||
|
|
Loading…
Reference in a new issue