{ stdenv, lib, callPackage, fetchurl, fetchpatch, nixosTests, buildMozillaMach }: { firefox = buildMozillaMach rec { pname = "firefox"; version = "124.0.1"; src = fetchurl { url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz"; sha512 = "282c45e5c468419536dd8b81c8ea687b10d8002d7521403330e6eeef49207143bee88a44c3785748d461ed9a72687606f5da14f4dfb98eb40a5cd08a4a12722b"; }; extraPatches = [ ]; 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 = "125.0b3"; applicationName = "Mozilla Firefox Beta"; src = fetchurl { url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz"; sha512 = "7743cda6eed1274591243718dab2d85c0c84ebcaa97283eaded5293243c1c4a40712d3a4b66da4cd18e0eeb50296f3fc9b91a61a4a744b20dd70bd3b3291973d"; }; meta = { changelog = "https://www.mozilla.org/en-US/firefox/${lib.versions.majorMinor version}beta/releasenotes/"; 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 = "125.0b3"; applicationName = "Mozilla Firefox Developer Edition"; requireSigning = false; branding = "browser/branding/aurora"; src = fetchurl { url = "mirror://mozilla/devedition/releases/${version}/source/firefox-${version}.source.tar.xz"; sha512 = "9c452aa0358f227ec988058dc27cd4e3345dc2febea295fe1f061fa4a8d1d118c180e554836c647f4c82ab7a26a9ec9eeb8a73543ba1e23a511842b900ce56e5"; }; meta = { changelog = "https://www.mozilla.org/en-US/firefox/${lib.versions.majorMinor version}beta/releasenotes/"; 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/"; }; }; firefox-esr-115 = buildMozillaMach rec { pname = "firefox-esr-115"; version = "115.9.1esr"; applicationName = "Mozilla Firefox ESR"; src = fetchurl { url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz"; sha512 = "9ccaede2fcda13a07f98a2110bb8f99c7324601d66bff311f3070a669576a1598fe1d7de2d005d725d1f44dbe3934a9c0fd0b7950f60686047d4ce8d9d812310"; }; 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"; }; }; }