diff options
author | SLNOS <anonymous@wired> | 2019-01-01 00:00:00 +0000 |
---|---|---|
committer | Jan Malakhovski <oxij@oxij.org> | 2019-01-31 17:02:45 +0000 |
commit | ff6cc1ac0e3f4ece8634aea5cb2ab19757089800 (patch) | |
tree | 8144dfe011f69fd29f73226d8dc7745f1070260d /pkgs/applications/networking/browsers/firefox/common.nix | |
parent | ab118f384727637fa635d18268f00e8b6eface0e (diff) | |
download | nixlib-ff6cc1ac0e3f4ece8634aea5cb2ab19757089800.tar nixlib-ff6cc1ac0e3f4ece8634aea5cb2ab19757089800.tar.gz nixlib-ff6cc1ac0e3f4ece8634aea5cb2ab19757089800.tar.bz2 nixlib-ff6cc1ac0e3f4ece8634aea5cb2ab19757089800.tar.lz nixlib-ff6cc1ac0e3f4ece8634aea5cb2ab19757089800.tar.xz nixlib-ff6cc1ac0e3f4ece8634aea5cb2ab19757089800.tar.zst nixlib-ff6cc1ac0e3f4ece8634aea5cb2ab19757089800.zip |
firefoxPackages.icecat: init at 60.3.0, 52.6.0
It works, but this state is far from ideal: GNU guys update generated source tarballs very infrequently. Ideally, src needs to be generated by running makeicecat over firefox src. Will do later.
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; |