about summary refs log tree commit diff
path: root/pkgs/applications
diff options
context:
space:
mode:
authorGraham Christensen <graham@grahamc.com>2019-09-19 18:01:06 -0400
committerGitHub <noreply@github.com>2019-09-19 18:01:06 -0400
commit8dbca5e3ca41787b3af3d3695062577f3b855a21 (patch)
treecc18924c944e2de73994f35115bdeaff3aae9d4f /pkgs/applications
parenta81f8304d830830f266a0d458ec5b4a8e29916a9 (diff)
parent5456def6b33dd215043a8b710ee52384309a3833 (diff)
downloadnixlib-8dbca5e3ca41787b3af3d3695062577f3b855a21.tar
nixlib-8dbca5e3ca41787b3af3d3695062577f3b855a21.tar.gz
nixlib-8dbca5e3ca41787b3af3d3695062577f3b855a21.tar.bz2
nixlib-8dbca5e3ca41787b3af3d3695062577f3b855a21.tar.lz
nixlib-8dbca5e3ca41787b3af3d3695062577f3b855a21.tar.xz
nixlib-8dbca5e3ca41787b3af3d3695062577f3b855a21.tar.zst
nixlib-8dbca5e3ca41787b3af3d3695062577f3b855a21.zip
Merge pull request #69054 from ivan/chromium-77.0.3865.90
chromium: 77.0.3865.75 -> 77.0.3865.90
Diffstat (limited to 'pkgs/applications')
-rw-r--r--pkgs/applications/networking/browsers/chromium/common.nix5
-rw-r--r--pkgs/applications/networking/browsers/chromium/default.nix44
-rw-r--r--pkgs/applications/networking/browsers/chromium/upstream-info.nix18
3 files changed, 41 insertions, 26 deletions
diff --git a/pkgs/applications/networking/browsers/chromium/common.nix b/pkgs/applications/networking/browsers/chromium/common.nix
index 744ad79062b9..4353d2958f58 100644
--- a/pkgs/applications/networking/browsers/chromium/common.nix
+++ b/pkgs/applications/networking/browsers/chromium/common.nix
@@ -234,8 +234,9 @@ let
       use_gold = true;
       gold_path = "${stdenv.cc}/bin";
       is_debug = false;
-      # at least 2X compilation speedup
-      use_jumbo_build = true;
+      # Use jumbo for a 2x (at least) compilation speedup, except where it is currently broken:
+      # https://gist.github.com/ivan/6fe7014c1b1cc35dec133fa6de0549d9
+      use_jumbo_build = (version != "78.0.3904.17");
 
       proprietary_codecs = false;
       use_sysroot = false;
diff --git a/pkgs/applications/networking/browsers/chromium/default.nix b/pkgs/applications/networking/browsers/chromium/default.nix
index f099ddbff737..5fb0d67a4809 100644
--- a/pkgs/applications/networking/browsers/chromium/default.nix
+++ b/pkgs/applications/networking/browsers/chromium/default.nix
@@ -50,6 +50,7 @@ in let
   widevine = let upstream-info = chromium.upstream-info; in stdenv.mkDerivation {
     name = "chromium-binary-plugin-widevine";
 
+    # The .deb file for Google Chrome
     src = upstream-info.binary;
 
     nativeBuildInputs = [ patchelfUnstable ];
@@ -57,14 +58,21 @@ in let
     phases = [ "unpackPhase" "patchPhase" "installPhase" "checkPhase" ];
 
     unpackCmd = let
-      chan = if upstream-info.channel == "dev"    then "chrome-unstable"
-        else if upstream-info.channel == "stable" then "chrome"
-        else if upstream-info.channel == "beta" then "chrome-beta"
-        else throw "Unknown chromium channel.";
+      soPath =
+        if upstream-info.channel == "stable" then
+          "./opt/google/chrome/libwidevinecdm.so"
+        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 ''
       mkdir -p plugins
-      ar p "$src" data.tar.xz | tar xJ -C plugins --strip-components=4 \
-        ./opt/google/${chan}/libwidevinecdm.so
+      # Extract just libwidevinecdm.so from upstream's .deb file
+      ar p "$src" data.tar.xz | tar xJ -C plugins ${soPath}
+      mv plugins/${soPath} plugins/
+      rm -rf plugins/opt
     '';
 
     doCheck = true;
@@ -83,7 +91,10 @@ in let
         "$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 "";
@@ -92,18 +103,21 @@ in let
 
   version = chromium.browser.version;
 
-  # This is here because we want to add the widevine shared object at the last
-  # minute in order to avoid a full rebuild of chromium. Additionally, this
-  # isn't in `browser.nix` so we can avoid having to re-expose attributes of
-  # the chromium derivation (see above: we introspect `sandboxExecutableName`).
+  # We want users to be able to enableWideVine without rebuilding all of
+  # chromium, so we have a separate derivation here that copies chromium
+  # and adds the unfree libwidevinecdm.so.
   chromiumWV = let browser = chromium.browser; in if enableWideVine then
     runCommand (browser.name + "-wv") { version = browser.version; }
       ''
         mkdir -p $out
-        cp -R ${browser}/* $out/
-        chmod u+w $out/libexec/chromium*
-        cp ${widevine}/lib/libwidevinecdm.so $out/libexec/chromium/
-        # patchelf?
+        cp -a ${browser}/* $out/
+        chmod u+w $out/libexec/chromium
+        if [[ ${channel} != "dev" ]]; then
+          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;
 in stdenv.mkDerivation {
diff --git a/pkgs/applications/networking/browsers/chromium/upstream-info.nix b/pkgs/applications/networking/browsers/chromium/upstream-info.nix
index df2ce798f1fb..b641d1163bc4 100644
--- a/pkgs/applications/networking/browsers/chromium/upstream-info.nix
+++ b/pkgs/applications/networking/browsers/chromium/upstream-info.nix
@@ -1,18 +1,18 @@
 # This file is autogenerated from update.sh in the same directory.
 {
   beta = {
-    sha256 = "12cp24h93b48pwfywf5b6qvjdlhxrhp87qdaqbfcn6g787r2z5gb";
-    sha256bin64 = "0d9w869qqwbmw3qjvxkfm37i7dvrgmrwm5y96sm1dg2jnxqj4bdz";
-    version = "77.0.3865.75";
+    sha256 = "1hzgzmrn0d6cqvqnqayl048zwlcx0f7azg2rhvm7p13lvyqzsk00";
+    sha256bin64 = "0p3275ii8800swlfmljbdrvyqjd5nlw0vgv2my4r8ccszgbhidbd";
+    version = "77.0.3865.90";
   };
   dev = {
-    sha256 = "0x5r6xqwiggwyzbinm252xc1n3f9r7cmmzj6assi4v1nsispdh2k";
-    sha256bin64 = "03yymhbpd1snycmcv7wkg5j6zbydvyc365gy5myp7wgas7cd0mb6";
-    version = "78.0.3887.7";
+    sha256 = "0zka01ml3hbximswzkkqbqq8wpiz8f4fq4wx5fys002hi69l296l";
+    sha256bin64 = "0nrip45s0ylri34vlpf16xlwv3ybmy2jg7dz8l9rvgbdwwdzdb75";
+    version = "78.0.3904.17";
   };
   stable = {
-    sha256 = "12cp24h93b48pwfywf5b6qvjdlhxrhp87qdaqbfcn6g787r2z5gb";
-    sha256bin64 = "1wp5g09czyslkkhw3nhbp39fxfcz0pprsgj8h0aggghpdbvzph3d";
-    version = "77.0.3865.75";
+    sha256 = "1hzgzmrn0d6cqvqnqayl048zwlcx0f7azg2rhvm7p13lvyqzsk00";
+    sha256bin64 = "1npx867j39mdyivf8nlkcfwgq7j34hl7s948vf6h2kqni0y50hzl";
+    version = "77.0.3865.90";
   };
 }