From e6294cfb7eb9a2091615e62aa064c3e8001aa783 Mon Sep 17 00:00:00 2001 From: John Ericson Date: Fri, 2 Oct 2020 15:52:11 +0000 Subject: [PATCH 1/2] cmake: Tighten deps - OpenSSL is evidentally an optional dep. I guess pkg-config found it before because it was a transitive dep? - `zstd` and cross-built CMake can get by with a `cmakeMinimal that we use during bootstrapping, so let's restrict to that. --- .../development/tools/build-managers/cmake/default.nix | 10 +++++++--- pkgs/top-level/all-packages.nix | 6 +++--- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/pkgs/development/tools/build-managers/cmake/default.nix b/pkgs/development/tools/build-managers/cmake/default.nix index 559a4c191b6..40cc1810bf6 100644 --- a/pkgs/development/tools/build-managers/cmake/default.nix +++ b/pkgs/development/tools/build-managers/cmake/default.nix @@ -5,6 +5,7 @@ , ps , isBootstrap ? false , useSharedLibraries ? (!isBootstrap && !stdenv.isCygwin) +, useOpenSSL ? !isBootstrap, openssl , useNcurses ? false, ncurses , useQt4 ? false, qt4 , withQt5 ? false, qtbase @@ -47,6 +48,7 @@ stdenv.mkDerivation rec { buildInputs = [ setupHook pkgconfig ] ++ lib.optionals useSharedLibraries [ bzip2 curl expat libarchive xz zlib libuv rhash ] + ++ lib.optional useOpenSSL openssl ++ lib.optional useNcurses ncurses ++ lib.optional useQt4 qt4 ++ lib.optional withQt5 qtbase; @@ -91,13 +93,15 @@ stdenv.mkDerivation rec { "-DCMAKE_AR=${lib.getBin stdenv.cc.bintools.bintools}/bin/${stdenv.cc.targetPrefix}ar" "-DCMAKE_RANLIB=${lib.getBin stdenv.cc.bintools.bintools}/bin/${stdenv.cc.targetPrefix}ranlib" "-DCMAKE_STRIP=${lib.getBin stdenv.cc.bintools.bintools}/bin/${stdenv.cc.targetPrefix}strip" - ] + + "-DCMAKE_USE_OPENSSL=${if useOpenSSL then "ON" else "OFF"}" # Avoid depending on frameworks. - ++ lib.optional (!useNcurses) "-DBUILD_CursesDialog=OFF"; + "-DBUILD_CursesDialog=${if useNcurses then "ON" else "OFF"}" + ]; # make install attempts to use the just-built cmake preInstall = lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) '' - sed -i 's|bin/cmake|${buildPackages.cmake}/bin/cmake|g' Makefile + sed -i 's|bin/cmake|${buildPackages.cmakeMinimal}/bin/cmake|g' Makefile ''; dontUseCmakeConfigure = true; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 099b8b30537..b505030edc8 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -8331,9 +8331,7 @@ in zssh = callPackage ../tools/networking/zssh { }; zstd = callPackage ../tools/compression/zstd { - cmake = buildPackages.cmake.override { - libarchive = buildPackages.libarchive.override { zstd = null; }; - }; + cmake = buildPackages.cmakeMinimal; }; zsync = callPackage ../tools/compression/zsync { }; @@ -10825,6 +10823,8 @@ in cmake = libsForQt5.callPackage ../development/tools/build-managers/cmake { }; + cmakeMinimal = cmake.override { isBootstrap = true; }; + cmakeCurses = cmake.override { useNcurses = true; }; cmakeWithGui = cmakeCurses.override { withQt5 = true; }; From e75f863bd465af97dc1c5cc122d5ec3e804d21bb Mon Sep 17 00:00:00 2001 From: John Ericson Date: Tue, 13 Oct 2020 19:26:13 -0400 Subject: [PATCH 2/2] darwin bootstrapping: Dedup code a bit --- pkgs/stdenv/darwin/default.nix | 5 +---- pkgs/top-level/all-packages.nix | 4 +++- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/pkgs/stdenv/darwin/default.nix b/pkgs/stdenv/darwin/default.nix index 9de6ef63bfe..e100b2ac28b 100644 --- a/pkgs/stdenv/darwin/default.nix +++ b/pkgs/stdenv/darwin/default.nix @@ -190,10 +190,7 @@ in rec { stage1 = prevStage: let persistent = self: super: with prevStage; { - cmake = super.cmake.override { - isBootstrap = true; - useSharedLibraries = false; - }; + cmake = super.cmakeMinimal; python3 = super.python3Minimal; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index b505030edc8..b55e2ef2ee0 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -10823,7 +10823,9 @@ in cmake = libsForQt5.callPackage ../development/tools/build-managers/cmake { }; - cmakeMinimal = cmake.override { isBootstrap = true; }; + cmakeMinimal = libsForQt5.callPackage ../development/tools/build-managers/cmake { + isBootstrap = true; + }; cmakeCurses = cmake.override { useNcurses = true; };