nixpkgs/pkgs/applications/networking/browsers/librewolf/default.nix
colin 6c8f82937f librewolf: build with MOZ_REQUIRE_SIGNING = ""
this allows sideloading unsigned browser extensions (via the
`nixExtensions` option in the [firefox-wrapper]). i believe librewolf
is meant to allow unsigned sideloading, based on upstream discussions
and this bit that already exists in ./librewolf.nix:

```nix
extraConfigureFlags = [
    "--with-unsigned-addon-scopes=app,system"
    "--allow-addon-sideload"
];
```

but Mozilla changed some defaults over the years. this `MOZ_REQUIRE_SIGNING`
option is mentioned [upstream] and we can see that the arch [[pkgbuild]]
clears it in a similar manner.

[upstream]: https://gitlab.com/librewolf-community/browser/arch/-/issues/49
[pkgbuild]: https://gitlab.com/librewolf-community/browser/arch/-/blob/master/PKGBUILD#L95
[firefox-wrapper]: pkgs/applications/networking/browsers/firefox/wrapper.nix
2022-11-07 21:35:00 -08:00

36 lines
1.3 KiB
Nix

{ stdenv, lib, callPackage, buildMozillaMach, nixosTests }:
let
librewolf-src = callPackage ./librewolf.nix { };
in
((buildMozillaMach rec {
pname = "librewolf";
applicationName = "LibreWolf";
binaryName = "librewolf";
version = librewolf-src.packageVersion;
src = librewolf-src.firefox;
inherit (librewolf-src) extraConfigureFlags extraPatches extraPostPatch extraPassthru;
meta = {
description = "A fork of Firefox, focused on privacy, security and freedom";
homepage = "https://librewolf.net/";
maintainers = with lib.maintainers; [ squalus ];
platforms = lib.platforms.unix;
badPlatforms = lib.platforms.darwin;
broken = stdenv.buildPlatform.is32bit; # since Firefox 60, build on 32-bit platforms fails with "out of memory".
# not in `badPlatforms` because cross-compilation on 64-bit machine might work.
maxSilent = 14400; # 4h, double the default of 7200s (c.f. #129212, #129115)
license = lib.licenses.mpl20;
};
tests = [ nixosTests.librewolf ];
updateScript = callPackage ./update.nix {
attrPath = "librewolf-unwrapped";
};
}).override {
crashreporterSupport = false;
enableOfficialBranding = false;
pgoSupport = false; # Profiling gets stuck and doesn't terminate.
}).overrideAttrs (prev: {
MOZ_REQUIRE_SIGNING = "";
})