{ stdenv, lib, callPackage, fetchurl, fetchpatch, nixosTests, buildMozillaMach }: { firefox = buildMozillaMach rec { pname = "firefox"; version = "117.0.1"; src = fetchurl { url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz"; sha512 = "1583b0ad3b3b17c59bfbfb3e416074766327d0b926ef4f6c6b1e3b2d7cf6a18dec592b7d17fab9493ba1506f3540a02277096d28616dd29b6e7b9e93905f2071"; }; meta = { changelog = "https://www.mozilla.org/en-US/firefox/${version}/releasenotes/"; description = "A web browser built from Firefox source tree"; homepage = "http://www.mozilla.com/en-US/firefox/"; maintainers = with lib.maintainers; [ lovesegfault hexa ]; 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; mainProgram = "firefox"; }; tests = [ nixosTests.firefox ]; updateScript = callPackage ./update.nix { attrPath = "firefox-unwrapped"; }; }; firefox-beta = buildMozillaMach rec { pname = "firefox-beta"; version = "117.0b9"; applicationName = "Mozilla Firefox Beta"; src = fetchurl { url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz"; sha512 = "95e215f4280e177c3f763c6a8ab7ff56d6e0ca4aca2ac5eec8a3be7a461257e3aba236f3d122200e031d8e75ae2486779fb89d398defeefdb52589cb98a131b4"; }; meta = { description = "A web browser built from Firefox Beta Release source tree"; homepage = "http://www.mozilla.com/en-US/firefox/"; maintainers = with lib.maintainers; [ jopejoe1 ]; 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; mainProgram = "firefox"; }; tests = [ nixosTests.firefox-beta ]; updateScript = callPackage ./update.nix { attrPath = "firefox-beta-unwrapped"; versionSuffix = "b[0-9]*"; }; }; firefox-devedition = (buildMozillaMach rec { pname = "firefox-devedition"; version = "117.0b9"; applicationName = "Mozilla Firefox Developer Edition"; branding = "browser/branding/aurora"; src = fetchurl { url = "mirror://mozilla/devedition/releases/${version}/source/firefox-${version}.source.tar.xz"; sha512 = "ab034e31467a7c9a57f5c32d486fb69a250d4293513babeeea8ff2042b0eac858be2c46c69469c700a7271f46a0c297ecdaa5ff651434adc8f9c157f80a97e43"; }; meta = { description = "A web browser built from Firefox Developer Edition source tree"; homepage = "http://www.mozilla.com/en-US/firefox/"; maintainers = with lib.maintainers; [ jopejoe1 ]; 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; mainProgram = "firefox"; }; tests = [ nixosTests.firefox-devedition ]; updateScript = callPackage ./update.nix { attrPath = "firefox-devedition-unwrapped"; versionSuffix = "b[0-9]*"; baseUrl = "https://archive.mozilla.org/pub/devedition/releases/"; }; }).overrideAttrs (prev: { env.MOZ_REQUIRE_SIGNING = ""; }); firefox-esr-115 = buildMozillaMach rec { pname = "firefox-esr-115"; version = "115.2.1esr"; applicationName = "Mozilla Firefox ESR"; src = fetchurl { url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz"; sha512 = "5f9ff96996e3c482fa4d2e2861fdf14d2154bf0277d412bf9c9435204c7e2e2539ce7ef0891d8dafc74d5a12650a5ccd33d79547aa1bbb2c2a0972aaeb755edf"; }; meta = { changelog = "https://www.mozilla.org/en-US/firefox/${lib.removeSuffix "esr" version}/releasenotes/"; description = "A web browser built from Firefox Extended Support Release source tree"; homepage = "http://www.mozilla.com/en-US/firefox/"; maintainers = with lib.maintainers; [ hexa ]; 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. license = lib.licenses.mpl20; mainProgram = "firefox"; }; tests = [ nixosTests.firefox-esr-115 ]; updateScript = callPackage ./update.nix { attrPath = "firefox-esr-115-unwrapped"; versionPrefix = "115"; versionSuffix = "esr"; }; }; }