{ stdenv, lib, callPackage, fetchurl, fetchpatch, nixosTests }: let common = opts: callPackage (import ./common.nix opts) {}; in rec { firefox = common rec { pname = "firefox"; ffversion = "90.0.1"; src = fetchurl { url = "mirror://mozilla/firefox/releases/${ffversion}/source/firefox-${ffversion}.source.tar.xz"; sha512 = "9f87c3f3dad33e42a7a9d2161d7f23ff2e7184b2274f9081511c7982957ae9954784bd844a2348ff4744231415aac195d1f12971392db90be0375b4738acb590"; }; 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. license = lib.licenses.mpl20; }; tests = [ nixosTests.firefox ]; updateScript = callPackage ./update.nix { attrPath = "firefox-unwrapped"; versionKey = "ffversion"; }; }; firefox-esr-78 = common rec { pname = "firefox-esr"; ffversion = "78.12.0esr"; src = fetchurl { url = "mirror://mozilla/firefox/releases/${ffversion}/source/firefox-${ffversion}.source.tar.xz"; sha512 = "646eb803e0d0e541773e3111708c7eaa85e784e4bae6e4a77dcecdc617ee29e2e349c9ef16ae7e663311734dd7491aebd904359124dda62672dbc18bfb608f0a"; }; 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 ]; updateScript = callPackage ./update.nix { attrPath = "firefox-esr-78-unwrapped"; versionSuffix = "esr"; versionKey = "ffversion"; }; }; }