Merge pull request #23516 from layus/fix-wrapFirefox-default-browser

wrapFirefox: fix default-browser update
This commit is contained in:
Michael Raskin 2017-03-05 21:54:18 +00:00 committed by GitHub
commit 9788dded2f
1 changed files with 9 additions and 22 deletions

View File

@ -17,7 +17,7 @@ browser:
, desktopName ? # browserName with first letter capitalized , desktopName ? # browserName with first letter capitalized
(lib.toUpper (lib.substring 0 1 browserName) + lib.substring 1 (-1) browserName) (lib.toUpper (lib.substring 0 1 browserName) + lib.substring 1 (-1) browserName)
, nameSuffix ? "" , nameSuffix ? ""
, icon ? browserName, libtrick ? true , icon ? browserName
}: }:
let 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 ]; gst-plugins = with gst_all; [ gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly gst-ffmpeg ];
gtk_modules = [ libcanberra_gtk2 ]; gtk_modules = [ libcanberra_gtk2 ];
in in stdenv.mkDerivation {
stdenv.mkDerivation {
inherit name; inherit name;
desktopItem = makeDesktopItem { desktopItem = makeDesktopItem {
name = browserName; name = browserName;
exec = browserName + " %U"; exec = "${browserName}${nameSuffix} %U";
inherit icon; inherit icon;
comment = ""; comment = "";
desktopName = desktopName; desktopName = "${desktopName}${nameSuffix}";
genericName = "Web Browser"; genericName = "Web Browser";
categories = "Application;Network;WebBrowser;"; categories = "Application;Network;WebBrowser;";
mimeType = stdenv.lib.concatStringsSep ";" [ mimeType = stdenv.lib.concatStringsSep ";" [
@ -84,39 +83,27 @@ stdenv.mkDerivation {
exit 1 exit 1
fi fi
makeWrapper "${browser}/bin/${browserName}" \ makeWrapper "$(readlink -v --canonicalize-existing "${browser}/bin/${browserName}")" \
"$out/bin/${browserName}${nameSuffix}" \ "$out/bin/${browserName}${nameSuffix}" \
--suffix-each MOZ_PLUGIN_PATH ':' "$plugins" \ --suffix-each MOZ_PLUGIN_PATH ':' "$plugins" \
--suffix LD_LIBRARY_PATH ':' "$libs" \ --suffix LD_LIBRARY_PATH ':' "$libs" \
--suffix-each GTK_PATH ':' "$gtk_modules" \ --suffix-each GTK_PATH ':' "$gtk_modules" \
--suffix-each LD_PRELOAD ':' "$(cat $(filterExisting $(addSuffix /extra-ld-preload $plugins)))" \ --suffix-each LD_PRELOAD ':' "$(cat $(filterExisting $(addSuffix /extra-ld-preload $plugins)))" \
--prefix-contents PATH ':' "$(filterExisting $(addSuffix /extra-bin-path $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 (!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 if [ -e "${browser}/share/icons" ]; then
mkdir -p "$out/share" mkdir -p "$out/share"
ln -s "${browser}/share/icons" "$out/share/icons" ln -s "${browser}/share/icons" "$out/share/icons"
else else
mkdir -p "$out/share/icons/hicolor/128x128/apps" 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" "$out/share/icons/hicolor/128x128/apps/${browserName}.png"
fi fi
mkdir -p $out/share/applications install -D -t $out/share/applications $desktopItem/share/applications/*
cp $desktopItem/share/applications/* $out/share/applications
# For manpages, in case the program supplies them # For manpages, in case the program supplies them
mkdir -p $out/nix-support mkdir -p $out/nix-support