diff options
Diffstat (limited to 'pkgs/applications/networking/browsers/firefox/wrapper.nix')
-rw-r--r-- | pkgs/applications/networking/browsers/firefox/wrapper.nix | 37 |
1 files changed, 32 insertions, 5 deletions
diff --git a/pkgs/applications/networking/browsers/firefox/wrapper.nix b/pkgs/applications/networking/browsers/firefox/wrapper.nix index 6a00dfcd8c1..c8457427945 100644 --- a/pkgs/applications/networking/browsers/firefox/wrapper.nix +++ b/pkgs/applications/networking/browsers/firefox/wrapper.nix @@ -1,5 +1,5 @@ -{ stdenv, lib, browser, makeDesktopItem, makeWrapper, plugins, libs, gtk_modules -, browserName, desktopName, nameSuffix, icon +{ stdenv, lib, browser, makeDesktopItem, makeWrapper, plugins, gst_plugins, libs, gtk_modules +, browserName, desktopName, nameSuffix, icon, libtrick ? true }: let p = builtins.parseDrvName browser.name; in @@ -10,14 +10,23 @@ stdenv.mkDerivation { desktopItem = makeDesktopItem { name = browserName; exec = browserName + " %U"; - icon = icon; + icon = browserName; comment = ""; desktopName = desktopName; genericName = "Web Browser"; categories = "Application;Network;WebBrowser;"; + mimeType = stdenv.lib.concatStringsSep ";" [ + "text/html" + "text/xml" + "application/xhtml+xml" + "application/vnd.mozilla.xul+xml" + "x-scheme-handler/http" + "x-scheme-handler/https" + "x-scheme-handler/ftp" + ]; }; - buildInputs = [makeWrapper]; + buildInputs = [makeWrapper] ++ gst_plugins; buildCommand = '' if [ ! -x "${browser}/bin/${browserName}" ] @@ -32,7 +41,25 @@ stdenv.mkDerivation { --suffix-each 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))" + --prefix GST_PLUGIN_SYSTEM_PATH : "$GST_PLUGIN_SYSTEM_PATH" \ + --prefix-contents PATH ':' "$(filterExisting $(addSuffix /extra-bin-path $plugins))" \ + --set MOZ_OBJDIR "$(ls -d "${browser}/lib/${browserName}*")" + + ${ lib.optionalString libtrick + '' + sed -e "s@exec @exec -a '$out/bin/${browserName}${nameSuffix}' @" -i "$out/bin/${browserName}${nameSuffix}" + 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}" + '' + } + + mkdir -p $out/share/icons + ln -s $out/lib/${browserName}/browser/icons/mozicon128.png $out/share/icons/${browserName}.png mkdir -p $out/share/applications cp $desktopItem/share/applications/* $out/share/applications |