diff options
Diffstat (limited to 'pkgs/applications/networking/browsers/firefox/common.nix')
-rw-r--r-- | pkgs/applications/networking/browsers/firefox/common.nix | 28 |
1 files changed, 19 insertions, 9 deletions
diff --git a/pkgs/applications/networking/browsers/firefox/common.nix b/pkgs/applications/networking/browsers/firefox/common.nix index 933d16c027ee..62074441d8cc 100644 --- a/pkgs/applications/networking/browsers/firefox/common.nix +++ b/pkgs/applications/networking/browsers/firefox/common.nix @@ -1,6 +1,7 @@ { pname, ffversion, meta, updateScript ? null , src, unpackPhase ? null, patches ? [] , extraNativeBuildInputs ? [], extraConfigureFlags ? [], extraMakeFlags ? [] +, isIceCatLike ? false, icversion ? null , isTorBrowserLike ? false, tbversion ? null }: { lib, stdenv, pkgconfig, pango, perl, python2, zip, libIDL @@ -25,7 +26,7 @@ ## privacy-related options -, privacySupport ? isTorBrowserLike +, privacySupport ? isTorBrowserLike || isIceCatLike # WARNING: NEVER set any of the options below to `true` by default. # Set to `privacySupport` or `false`. @@ -75,15 +76,23 @@ let default-toolkit = if stdenv.isDarwin then "cairo-cocoa" else "cairo-gtk${if gtk3Support then "3" else "2"}"; + binaryName = if isIceCatLike then "icecat" else "firefox"; + binaryNameCapitalized = lib.toUpper (lib.substring 0 1 binaryName) + lib.substring 1 (-1) binaryName; + + browserName = if stdenv.isDarwin then binaryNameCapitalized else binaryName; + execdir = if stdenv.isDarwin - then "/Applications/${browserName}.app/Contents/MacOS" + then "/Applications/${binaryNameCapitalized}.app/Contents/MacOS" else "/bin"; - browserName = if stdenv.isDarwin then "Firefox" else "firefox"; + + browserVersion = if isIceCatLike then icversion + else if isTorBrowserLike then tbversion + else ffversion; in stdenv.mkDerivation rec { name = "${pname}-unwrapped-${version}"; - version = if !isTorBrowserLike then ffversion else tbversion; + version = browserVersion; inherit src unpackPhase patches meta; @@ -270,22 +279,22 @@ stdenv.mkDerivation rec { installPhase = if stdenv.isDarwin then '' mkdir -p $out/Applications - cp -LR dist/Firefox.app $out/Applications + cp -LR dist/${binaryNameCapitalized}.app $out/Applications '' else null; postInstall = lib.optionalString stdenv.isLinux '' # Remove SDK cruft. FIXME: move to a separate output? - rm -rf $out/share/idl $out/include $out/lib/firefox-devel-* + rm -rf $out/share/idl $out/include $out/lib/${binaryName}-devel-* # Needed to find Mozilla runtime - gappsWrapperArgs+=(--argv0 "$out/bin/.firefox-wrapped") + gappsWrapperArgs+=(--argv0 "$out/bin/.${binaryName}-wrapped") ''; postFixup = lib.optionalString stdenv.isLinux '' # Fix notifications. LibXUL uses dlopen for this, unfortunately; see #18712. patchelf --set-rpath "${lib.getLib libnotify - }/lib:$(patchelf --print-rpath "$out"/lib/firefox*/libxul.so)" \ - "$out"/lib/firefox*/libxul.so + }/lib:$(patchelf --print-rpath "$out"/lib/${binaryName}*/libxul.so)" \ + "$out"/lib/${binaryName}*/libxul.so ''; doInstallCheck = true; @@ -297,6 +306,7 @@ stdenv.mkDerivation rec { passthru = { inherit version updateScript; isFirefox3Like = true; + inherit isIceCatLike; inherit isTorBrowserLike; gtk = gtk2; inherit nspr; |