{ config, stdenv, lib, callPackage, fetchurl, nss_3_44, firefoxCommon }: rec { firefox = firefoxCommon rec { pname = "firefox"; ffversion = "79.0"; src = fetchurl { url = "mirror://mozilla/firefox/releases/${ffversion}/source/firefox-${ffversion}.source.tar.xz"; sha512 = "0zgf7wdcz992a4dy1rj0ax0k65an7h9p9iihka3jy4jd7w4g2d0x4mxz5iqn2y26hmgnkvjb921zh28biikahgygqja3z2pcx26ic0r"; }; patches = [ ./no-buildconfig-ffx76.patch ]; meta = { description = "A web browser built from Firefox source tree"; homepage = "http://www.mozilla.com/en-US/firefox/"; maintainers = with lib.maintainers; [ eelco andir ]; 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; }; updateScript = callPackage ./update.nix { attrPath = "firefox-unwrapped"; versionKey = "ffversion"; }; }; firefox-esr-78 = firefoxCommon rec { pname = "firefox-esr"; ffversion = "78.1.0esr"; src = fetchurl { url = "mirror://mozilla/firefox/releases/${ffversion}/source/firefox-${ffversion}.source.tar.xz"; sha512 = "223v796vjsvgs3yw442c8qbsbh43l1aniial05rl70hx44rh9sg108ripj8q83p5l9m0sp67x6ixd2xvifizv6461a1zra1rvbb1caa"; }; patches = [ ./no-buildconfig-ffx76.patch ]; 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 andir ]; 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; }; updateScript = callPackage ./update.nix { attrPath = "firefox-esr-78-unwrapped"; versionKey = "ffversion"; }; }; firefox-esr-68 = (firefoxCommon rec { pname = "firefox-esr"; ffversion = "68.11.0esr"; src = fetchurl { url = "mirror://mozilla/firefox/releases/${ffversion}/source/firefox-${ffversion}.source.tar.xz"; sha512 = "0zg41jnbnpsa07xaizwfsmfav0cgxdqnh8i4yanxy49a45gigk895zqrx2if7pfsmdnj9zpwj9prj8cpnpsfhv6p62f3g2596aa9kvx"; }; patches = [ ./no-buildconfig-ffx65.patch ]; meta = firefox.meta // { description = "A web browser built from Firefox Extended Support Release source tree"; }; updateScript = callPackage ./update.nix { attrPath = "firefox-esr-68-unwrapped"; versionSuffix = "esr"; versionKey = "ffversion"; }; }).override { # Mozilla unfortunately doesn't support building with latest NSS anymore; # instead they provide ESR releases for NSS: # https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/NSS_Releases nss = nss_3_44; }; firefox-beta = firefoxCommon rec { pname = "firefox"; ffversion = "66.0b5"; src = fetchurl { url = "mirror://mozilla/firefox/releases/${ffversion}/source/firefox-${ffversion}.source.tar.xz"; sha512 = "2cnv8pnl220dxqfpcdnwibwidc8b9zg3bj9wkzc83r4cdsfcjy3hqyw01gpc30a4qwbbabsgask3hl3dg7d3d8qqw4c588b00z67mvs"; }; patches = [ ./no-buildconfig-ffx65.patch ]; meta = firefox.meta // { description = "A web browser built from Firefox Beta source tree"; }; updateScript = callPackage ./update.nix { attrPath = "firefox-beta"; versionKey = "ffversion"; }; }; }