summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorzimbatm <zimbatm@zimbatm.com>2020-11-30 14:20:28 +0100
committerzimbatm <zimbatm@zimbatm.com>2020-11-30 14:24:40 +0100
commitbbc9af1f0a30fe8106d6fb90f15ebb01845b3008 (patch)
tree7918ef3e7e2c99f923b401c7145644fcdfb33bf4
parentc5d33689da8a287ebe50a6d8e07a553e8aa4b316 (diff)
tree-wide: do not use pkgs.extend in nixpkgs
Each invocation of pkgs.extends adds 130MB of allocation to the hydra evaluator. We are already struggling with the amount of memory nixpkgs requires. `pkgs.extend` is a useful escape-hatch, but should be not be used inside of nixpkgs directly.
-rw-r--r--doc/using/overlays.xml1
-rw-r--r--pkgs/applications/audio/cadence/default.nix2
-rw-r--r--pkgs/applications/gis/qgis/unwrapped.nix3
-rw-r--r--pkgs/applications/video/openshot-qt/default.nix3
-rw-r--r--pkgs/top-level/all-packages.nix44
-rw-r--r--pkgs/top-level/stage.nix3
6 files changed, 17 insertions, 39 deletions
diff --git a/doc/using/overlays.xml b/doc/using/overlays.xml
index 4937e9508857..caacb0a04622 100644
--- a/doc/using/overlays.xml
+++ b/doc/using/overlays.xml
@@ -28,6 +28,7 @@
</para>
<para>
+ NOTE: DO NOT USE THIS in nixpkgs.
Further overlays can be added by calling the <literal>pkgs.extend</literal> or <literal>pkgs.appendOverlays</literal>, although it is often preferable to avoid these functions, because they recompute the Nixpkgs fixpoint, which is somewhat expensive to do.
</para>
</section>
diff --git a/pkgs/applications/audio/cadence/default.nix b/pkgs/applications/audio/cadence/default.nix
index 53adb3f146f1..ea8a52696254 100644
--- a/pkgs/applications/audio/cadence/default.nix
+++ b/pkgs/applications/audio/cadence/default.nix
@@ -96,5 +96,7 @@ mkDerivation rec {
license = stdenv.lib.licenses.gpl2Plus;
maintainers = with stdenv.lib.maintainers; [ worldofpeace ];
platforms = [ "x86_64-linux" ];
+ # Needs QT 5.14
+ broken = true;
};
}
diff --git a/pkgs/applications/gis/qgis/unwrapped.nix b/pkgs/applications/gis/qgis/unwrapped.nix
index 13990c338751..54d3d5987597 100644
--- a/pkgs/applications/gis/qgis/unwrapped.nix
+++ b/pkgs/applications/gis/qgis/unwrapped.nix
@@ -53,5 +53,8 @@ in mkDerivation rec {
license = lib.licenses.gpl2Plus;
platforms = with lib.platforms; linux;
maintainers = with lib.maintainers; [ lsix ];
+ # Our 3.10 LTS cannot use a newer Qt (5.15) version because it requires qtwebkit
+ # and our qtwebkit fails to build with 5.15. 01bcfd3579219d60e5d07df309a000f96b2b658b
+ broken = true;
};
}
diff --git a/pkgs/applications/video/openshot-qt/default.nix b/pkgs/applications/video/openshot-qt/default.nix
index ede47ad061f6..9245bdf03e43 100644
--- a/pkgs/applications/video/openshot-qt/default.nix
+++ b/pkgs/applications/video/openshot-qt/default.nix
@@ -55,5 +55,8 @@ mkDerivationWith python3Packages.buildPythonApplication rec {
license = with licenses; gpl3Plus;
maintainers = with maintainers; [ AndersonTorres ];
platforms = with platforms; unix;
+ # Cannot use a newer Qt (5.15) version because it requires qtwebkit
+ # and our qtwebkit fails to build with 5.15. 01bcfd3579219d60e5d07df309a000f96b2b658b
+ broken = true;
};
}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index a0af82b8b145..56dfda43310f 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -9543,15 +9543,7 @@ in
graalvm8-ee
graalvm11-ee;
- # Cannot use a newer Qt (5.15) version because it requires qtwebkit
- # and our qtwebkit fails to build with 5.15. 01bcfd3579219d60e5d07df309a000f96b2b658b
- openshot-qt = (pkgs.extend (final: prev: rec {
- qt5 = if stdenv.isDarwin then prev.qt5 else prev.qt514;
- libsForQt5 = if stdenv.isDarwin then prev.libsForQt5 else prev.libsForQt514;
- pythonInterpreters = prev.pythonInterpreters.override {
- pkgs = final;
- };
- })).libsForQt5.callPackage ../applications/video/openshot-qt { };
+ openshot-qt = libsForQt5.callPackage ../applications/video/openshot-qt { };
openspin = callPackage ../development/compilers/openspin { };
@@ -10541,12 +10533,7 @@ in
python2Packages = python2.pkgs;
python3Packages = python3.pkgs;
- pythonInterpreters = callPackage ./../development/interpreters/python {
- # Overrides that apply to all Python interpreters and their packages
- # Generally, this should be avoided.
- pkgs = pkgs.extend (final: _: {
- });
- };
+ pythonInterpreters = callPackage ./../development/interpreters/python { };
inherit (pythonInterpreters) python27 python36 python37 python38 python39 python310 python3Minimal pypy27 pypy36;
# Python package sets.
@@ -20227,17 +20214,7 @@ in
bambootracker = libsForQt5.callPackage ../applications/audio/bambootracker { };
- cadence = let
- # Use Qt 5.14 consistently
- pkgs_ = pkgs.extend(_: prev: {
- pythonInterpreters = prev.pythonInterpreters.override(oldAttrs: {
- pkgs = oldAttrs.pkgs.extend(_: _: {
- qt5 = pkgs.qt514;
- libsForQt5 = pkgs.libsForQt514;
- });
- });
- });
- in pkgs_.libsForQt514.callPackage ../applications/audio/cadence { };
+ cadence = libsForQt5.callPackage ../applications/audio/cadence { };
cheesecutter = callPackage ../applications/audio/cheesecutter { };
@@ -23355,19 +23332,8 @@ in
qemu-utils = callPackage ../applications/virtualization/qemu/utils.nix {};
- # Our 3.10 LTS cannot use a newer Qt (5.15) version because it requires qtwebkit
- # and our qtwebkit fails to build with 5.15. 01bcfd3579219d60e5d07df309a000f96b2b658b
- qgis-unwrapped = let
- pkgs_ = pkgs.extend(_: prev: {
- pythonInterpreters = prev.pythonInterpreters.override(oldAttrs: {
- pkgs = oldAttrs.pkgs.extend(_: _: {
- qt5 = pkgs.qt514;
- libsForQt5 = pkgs.libsForQt514;
- });
- });
- });
- in pkgs_.libsForQt514.callPackage ../applications/gis/qgis/unwrapped.nix {
- withGrass = false;
+ qgis-unwrapped = libsForQt5.callPackage ../applications/gis/qgis/unwrapped.nix {
+ withGrass = false;
};
qgis = callPackage ../applications/gis/qgis { };
diff --git a/pkgs/top-level/stage.nix b/pkgs/top-level/stage.nix
index 58b0300cc79c..8fc460ca5227 100644
--- a/pkgs/top-level/stage.nix
+++ b/pkgs/top-level/stage.nix
@@ -200,6 +200,9 @@ let
then self
else import ./stage.nix (args // { overlays = args.overlays ++ extraOverlays; });
+ # NOTE: each call to extend causes a full nixpkgs rebuild, adding ~130MB
+ # of allocations. DO NOT USE THIS IN NIXPKGS.
+ #
# Extend the package set with a single overlay. This preserves
# preexisting overlays. Prefer to initialize with the right overlays
# in one go when calling Nixpkgs, for performance and simplicity.