summary refs log tree commit diff
path: root/pkgs/applications/networking/browsers/chromium
diff options
context:
space:
mode:
authorobadz <obadz-git@obadz.com>2016-08-19 19:18:14 +0100
committerobadz <obadz-git@obadz.com>2016-08-19 19:18:23 +0100
commit4574f22841d23a12fc135af74f198c4313002f4a (patch)
treee5e360dab437154de4520617fb29996a29f71927 /pkgs/applications/networking/browsers/chromium
parentb0e11652f4b21759471a133a5a2a6ab2517e3837 (diff)
downloadnixlib-4574f22841d23a12fc135af74f198c4313002f4a.tar
nixlib-4574f22841d23a12fc135af74f198c4313002f4a.tar.gz
nixlib-4574f22841d23a12fc135af74f198c4313002f4a.tar.bz2
nixlib-4574f22841d23a12fc135af74f198c4313002f4a.tar.lz
nixlib-4574f22841d23a12fc135af74f198c4313002f4a.tar.xz
nixlib-4574f22841d23a12fc135af74f198c4313002f4a.tar.zst
nixlib-4574f22841d23a12fc135af74f198c4313002f4a.zip
chromium: remove one layer of wrapper by using ed
Diffstat (limited to 'pkgs/applications/networking/browsers/chromium')
-rw-r--r--pkgs/applications/networking/browsers/chromium/default.nix40
1 files changed, 19 insertions, 21 deletions
diff --git a/pkgs/applications/networking/browsers/chromium/default.nix b/pkgs/applications/networking/browsers/chromium/default.nix
index f2c37d9e9737..e55a599267a0 100644
--- a/pkgs/applications/networking/browsers/chromium/default.nix
+++ b/pkgs/applications/networking/browsers/chromium/default.nix
@@ -1,4 +1,4 @@
-{ newScope, stdenv, makeWrapper, makeDesktopItem, writeScript
+{ newScope, stdenv, makeWrapper, makeDesktopItem, ed
 
 # package customization
 , channel ? "stable"
@@ -66,38 +66,36 @@ let
 in stdenv.mkDerivation {
   name = "chromium${suffix}-${chromium.browser.version}";
 
-  buildInputs = [ makeWrapper ];
+  buildInputs = [ makeWrapper ed ];
 
   outputs = ["out" "sandbox"];
 
   buildCommand = let
     browserBinary = "${chromium.browser}/libexec/chromium/chromium";
     getWrapperFlags = plugin: "$(< \"${plugin}/nix-support/wrapper-flags\")";
-    launchScript = writeScript "chromium" ''
-      #! ${stdenv.shell}
-
-      if [ -x "/var/setuid-wrappers/${sandboxExecutableName}" ]
-      then
-        export CHROME_DEVEL_SANDBOX="/var/setuid-wrappers/${sandboxExecutableName}"
-      else
-        export CHROME_DEVEL_SANDBOX="@sandbox@/bin/${sandboxExecutableName}"
-      fi
-
-      # libredirect causes chromium to deadlock on startup
-      export LD_PRELOAD="$(echo -n "$LD_PRELOAD" | tr ':' '\n' | grep -v /lib/libredirect\\.so$ | tr '\n' ':')"
-
-      exec @out@/bin/.chromium-wrapped "''${extraFlagsArray[@]}" "$@"
-    '';
   in with stdenv.lib; ''
     mkdir -p "$out/bin" "$out/share/applications"
 
     ln -s "${chromium.browser}/share" "$out/share"
-    eval makeWrapper "${browserBinary}" "$out/bin/.chromium-wrapped" \
+    eval makeWrapper "${browserBinary}" "$out/bin/chromium" \
       ${concatMapStringsSep " " getWrapperFlags chromium.plugins.enabled}
 
-    cp -v "${launchScript}" "$out/bin/chromium"
-    substituteInPlace $out/bin/chromium --subst-var out --subst-var sandbox
-    chmod 755 "$out/bin/chromium"
+    ed -v -s "$out/bin/chromium" << EOF
+    2i
+
+    if [ -x "/var/setuid-wrappers/${sandboxExecutableName}" ]
+    then
+      export CHROME_DEVEL_SANDBOX="/var/setuid-wrappers/${sandboxExecutableName}"
+    else
+      export CHROME_DEVEL_SANDBOX="$sandbox/bin/${sandboxExecutableName}"
+    fi
+
+    # libredirect causes chromium to deadlock on startup
+    export LD_PRELOAD="\$(echo -n "\$LD_PRELOAD" | tr ':' '\n' | grep -v /lib/libredirect\\\\.so$ | tr '\n' ':')"
+
+    .
+    w
+    EOF
 
     ln -sv "${chromium.browser.sandbox}" "$sandbox"