about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMichael Raskin <7c6f434c@mail.ru>2017-03-05 21:54:18 +0000
committerGitHub <noreply@github.com>2017-03-05 21:54:18 +0000
commit9788dded2f05a51ecd60023c770c9dae857560d2 (patch)
tree67f3353904231bfcec982c5f54625d4936ed9f25
parent947815f59f59fab8405af84d0a80df99dd8d6e9d (diff)
parent816beccf500708fe8e4ef2ff8918a6509789455a (diff)
downloadnixlib-9788dded2f05a51ecd60023c770c9dae857560d2.tar
nixlib-9788dded2f05a51ecd60023c770c9dae857560d2.tar.gz
nixlib-9788dded2f05a51ecd60023c770c9dae857560d2.tar.bz2
nixlib-9788dded2f05a51ecd60023c770c9dae857560d2.tar.lz
nixlib-9788dded2f05a51ecd60023c770c9dae857560d2.tar.xz
nixlib-9788dded2f05a51ecd60023c770c9dae857560d2.tar.zst
nixlib-9788dded2f05a51ecd60023c770c9dae857560d2.zip
Merge pull request #23516 from layus/fix-wrapFirefox-default-browser
wrapFirefox: fix default-browser update
-rw-r--r--pkgs/applications/networking/browsers/firefox/wrapper.nix31
1 files changed, 9 insertions, 22 deletions
diff --git a/pkgs/applications/networking/browsers/firefox/wrapper.nix b/pkgs/applications/networking/browsers/firefox/wrapper.nix
index ad1091c9d39e..f2ca9eaa622b 100644
--- a/pkgs/applications/networking/browsers/firefox/wrapper.nix
+++ b/pkgs/applications/networking/browsers/firefox/wrapper.nix
@@ -17,7 +17,7 @@ browser:
 , desktopName ? # browserName with first letter capitalized
   (lib.toUpper (lib.substring 0 1 browserName) + lib.substring 1 (-1) browserName)
 , nameSuffix ? ""
-, icon ? browserName, libtrick ? true
+, icon ? browserName
 }:
 
 let
@@ -52,16 +52,15 @@ let
   gst-plugins = with gst_all; [ gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly gst-ffmpeg ];
   gtk_modules = [ libcanberra_gtk2 ];
 
-in
-stdenv.mkDerivation {
+in stdenv.mkDerivation {
   inherit name;
 
   desktopItem = makeDesktopItem {
     name = browserName;
-    exec = browserName + " %U";
+    exec = "${browserName}${nameSuffix} %U";
     inherit icon;
     comment = "";
-    desktopName = desktopName;
+    desktopName = "${desktopName}${nameSuffix}";
     genericName = "Web Browser";
     categories = "Application;Network;WebBrowser;";
     mimeType = stdenv.lib.concatStringsSep ";" [
@@ -84,39 +83,27 @@ stdenv.mkDerivation {
         exit 1
     fi
 
-    makeWrapper "${browser}/bin/${browserName}" \
+    makeWrapper "$(readlink -v --canonicalize-existing "${browser}/bin/${browserName}")" \
         "$out/bin/${browserName}${nameSuffix}" \
         --suffix-each MOZ_PLUGIN_PATH ':' "$plugins" \
         --suffix LD_LIBRARY_PATH ':' "$libs" \
         --suffix-each GTK_PATH ':' "$gtk_modules" \
         --suffix-each LD_PRELOAD ':' "$(cat $(filterExisting $(addSuffix /extra-ld-preload $plugins)))" \
         --prefix-contents PATH ':' "$(filterExisting $(addSuffix /extra-bin-path $plugins))" \
-        --set MOZ_OBJDIR "$(ls -d "${browser}/lib/${browserName}"*)" \
+        --suffix PATH ':' "$out/bin" \
+        --set MOZ_APP_LAUNCHER "${browserName}${nameSuffix}" \
         ${lib.optionalString (!ffmpegSupport) ''--prefix GST_PLUGIN_SYSTEM_PATH : "$GST_PLUGIN_SYSTEM_PATH"''}
 
-    ${ lib.optionalString libtrick
-    ''
-    libdirname="$(echo "${browser}/lib/${browserName}"*)"
-    libdirbasename="$(basename "$libdirname")"
-    mkdir -p "$out/lib/$libdirbasename"
-    ln -s "$libdirname"/* "$out/lib/$libdirbasename"
-    script_location="$(mktemp "$out/lib/$libdirbasename/${browserName}${nameSuffix}.XXXXXX")"
-    mv "$out/bin/${browserName}${nameSuffix}" "$script_location"
-    ln -s "$script_location" "$out/bin/${browserName}${nameSuffix}"
-    ''
-    }
-
     if [ -e "${browser}/share/icons" ]; then
         mkdir -p "$out/share"
         ln -s "${browser}/share/icons" "$out/share/icons"
     else
         mkdir -p "$out/share/icons/hicolor/128x128/apps"
-        ln -s "$out/lib/$libdirbasename/browser/icons/mozicon128.png" \
+        ln -s "${browser}/lib/${browserName}-"*"/browser/icons/mozicon128.png" \
             "$out/share/icons/hicolor/128x128/apps/${browserName}.png"
     fi
 
-    mkdir -p $out/share/applications
-    cp $desktopItem/share/applications/* $out/share/applications
+    install -D -t $out/share/applications $desktopItem/share/applications/*
 
     # For manpages, in case the program supplies them
     mkdir -p $out/nix-support