{ stdenv, lib, callPackage, fetchurl, fetchpatch, nixosTests, firefoxCommon }: rec { firefox = firefoxCommon rec { pname = "firefox"; version = "92.0.1"; src = fetchurl { url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz"; sha512 = "53361c231a4ac93a1808c9ccb29893d85b5e516fe939a770aac7f178abb4f43cbe3571097e5c5bf91b11fd95fc62b61f2aa215a45048357bfc9dad9eabdee9ef"; }; meta = { description = "A web browser built from Firefox source tree"; homepage = "http://www.mozilla.com/en-US/firefox/"; maintainers = with lib.maintainers; [ eelco 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; }; tests = [ nixosTests.firefox ]; updateScript = callPackage ./update.nix { attrPath = "firefox-unwrapped"; }; }; firefox-esr-91 = firefoxCommon rec { pname = "firefox-esr"; version = "91.1.0esr"; src = fetchurl { url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz"; sha512 = "dad0249eb2ce66eb90ff5daf0dfb63105a19790dd45661d977f7cc889644e86b33b9b0c472f46d4032ae2e4fe02c2cf69d552156fb0ad4cf77a15b3542556ed3"; }; meta = { 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; }; tests = [ nixosTests.firefox-esr-91 ]; updateScript = callPackage ./update.nix { attrPath = "firefox-esr-91-unwrapped"; versionSuffix = "esr"; }; }; firefox-esr-78 = firefoxCommon rec { pname = "firefox-esr"; version = "78.14.0esr"; src = fetchurl { url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz"; sha512 = "5d5e4b1197f87b458a8ab14a62701fa0f3071e9facbb4fba71a64ef69abf31edbb4c5efa6c20198de573216543b5289270b5929c6e917f01bb165ce8c139c1ac"; }; meta = { description = "A web browser built from Firefox Extended Support Release source tree"; homepage = "http://www.mozilla.com/en-US/firefox/"; maintainers = with lib.maintainers; [ eelco 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; }; tests = [ nixosTests.firefox-esr-78 ]; updateScript = callPackage ./update.nix { attrPath = "firefox-esr-78-unwrapped"; versionSuffix = "esr"; }; }; firefox-beta = (firefoxCommon rec { pname = "firefox"; ffversion = "83.0b10"; src = fetchurl { url = "mirror://mozilla/firefox/releases/${ffversion}/source/firefox-${ffversion}.source.tar.xz"; sha512 = "1div55x8c9qw8ck7njpf1c9kl1l0hi6fn8gnrj2irbiwhvl5cfxqp84sn7yq9saj46wzicxmczn32w3a1vs5xzjfp454zggg8wllhcx"; }; patches = [ ./no-buildconfig-ffx76.patch ]; meta = firefox.meta // { description = "A web browser built from Firefox Beta source tree"; }; updateScript = callPackage ./update.nix { attrPath = "firefox-beta"; versionKey = "ffversion"; }; }).override { pipewireSupport = false; }; }