darwin.stdenv: make sure curl cannot be used

Fetchers can use the `curl` binary from the bootstrap tools. Allowing packages in the Darwin bootstrap to link curl makes any curl update cause a full rebuild on Darwin, which is undesirable.
This commit is contained in:
Randy Eckenrode 2024-04-14 09:20:26 -04:00
parent 9f68d60b5c
commit 65a37e7b14
No known key found for this signature in database
GPG Key ID: 64C1CD4EC2A600D9

View File

@ -174,9 +174,6 @@ let
overrides = self: super: (overrides self super) // { overrides = self: super: (overrides self super) // {
fetchurl = thisStdenv.fetchurlBoot; fetchurl = thisStdenv.fetchurlBoot;
fetchpatch = super.fetchpatch.override { inherit (self) fetchurl; }; fetchpatch = super.fetchpatch.override { inherit (self) fetchurl; };
fetchgit = super.fetchgit.override {
git = super.git.override { curl = bootstrapTools; };
};
fetchzip = super.fetchzip.override { inherit (self) fetchurl; }; fetchzip = super.fetchzip.override { inherit (self) fetchurl; };
}; };
}; };
@ -505,7 +502,8 @@ in
inherit (prevStage) ccWrapperStdenv inherit (prevStage) ccWrapperStdenv
coreutils gnugrep; coreutils gnugrep;
binutils-unwrapped = builtins.throw "nothing in the bootstrap should depend on GNU binutils"; binutils-unwrapped = builtins.throw "nothing in the Darwin bootstrap should depend on GNU binutils";
curl = builtins.throw "nothing in the Darwin bootstrap can depend on curl";
# Use this stages CF to build CMake. Its required but cant be included in the stdenv. # Use this stages CF to build CMake. Its required but cant be included in the stdenv.
cmake = self.cmakeMinimal; cmake = self.cmakeMinimal;
@ -634,7 +632,7 @@ in
overrides = self: super: { overrides = self: super: {
inherit (prevStage) ccWrapperStdenv inherit (prevStage) ccWrapperStdenv
autoconf automake bash binutils binutils-unwrapped bison brotli cmake cmakeMinimal autoconf automake bash binutils binutils-unwrapped bison brotli cmake cmakeMinimal
coreutils cpio cyrus_sasl db ed expat flex gettext gmp gnugrep groff icu coreutils cpio curl cyrus_sasl db ed expat flex gettext gmp gnugrep groff icu
libedit libffi libidn2 libkrb5 libssh2 libtool libunistring libxml2 m4 libedit libffi libidn2 libkrb5 libssh2 libtool libunistring libxml2 m4
ncurses nghttp2 ninja openldap openssh openssl patchutils pbzx perl pkg-config ncurses nghttp2 ninja openldap openssh openssl patchutils pbzx perl pkg-config
python3Minimal scons sed serf sharutils sqlite subversion texinfo unzip which xz python3Minimal scons sed serf sharutils sqlite subversion texinfo unzip which xz
@ -727,7 +725,7 @@ in
overrides = self: super: { overrides = self: super: {
inherit (prevStage) ccWrapperStdenv inherit (prevStage) ccWrapperStdenv
atf autoconf automake bash binutils binutils-unwrapped bison brotli cmake cmakeMinimal atf autoconf automake bash binutils binutils-unwrapped bison brotli cmake cmakeMinimal
cpio cyrus_sasl db ed expat flex gettext gmp groff icu kyua libedit libffi libiconv cpio curl cyrus_sasl db ed expat flex gettext gmp groff icu kyua libedit libffi libiconv
libidn2 libkrb5 libssh2 libtool libunistring libxml2 m4 meson ncurses nghttp2 ninja libidn2 libkrb5 libssh2 libtool libunistring libxml2 m4 meson ncurses nghttp2 ninja
openldap openssh openssl patchutils pbzx perl pkg-config python3 python3Minimal openldap openssh openssl patchutils pbzx perl pkg-config python3 python3Minimal
scons sed serf sharutils sqlite subversion sysctl texinfo unzip which xz zlib zstd; scons sed serf sharutils sqlite subversion sysctl texinfo unzip which xz zlib zstd;
@ -830,7 +828,7 @@ in
overrides = self: super: { overrides = self: super: {
inherit (prevStage) ccWrapperStdenv inherit (prevStage) ccWrapperStdenv
atf autoconf automake binutils-unwrapped bison brotli cmake cmakeMinimal coreutils atf autoconf automake binutils-unwrapped bison brotli cmake cmakeMinimal coreutils
cpio cyrus_sasl db ed expat flex gettext gmp gnugrep groff icu kyua libedit libffi cpio curl cyrus_sasl db ed expat flex gettext gmp gnugrep groff icu kyua libedit libffi
libiconv libidn2 libkrb5 libssh2 libtool libunistring libxml2 m4 meson ncurses nghttp2 libiconv libidn2 libkrb5 libssh2 libtool libunistring libxml2 m4 meson ncurses nghttp2
ninja openbsm openldap openpam openssh openssl patchutils pbzx perl pkg-config ninja openbsm openldap openpam openssh openssl patchutils pbzx perl pkg-config
python3 python3Minimal scons serf sqlite subversion sysctl texinfo unzip which xz python3 python3Minimal scons serf sqlite subversion sysctl texinfo unzip which xz
@ -931,7 +929,7 @@ in
overrides = self: super: { overrides = self: super: {
inherit (prevStage) ccWrapperStdenv inherit (prevStage) ccWrapperStdenv
atf autoconf automake bash bison brotli cmake cmakeMinimal coreutils cpio atf autoconf automake bash bison brotli cmake cmakeMinimal coreutils cpio curl
cyrus_sasl db ed expat flex gettext gmp gnugrep groff kyua libedit libidn2 libkrb5 cyrus_sasl db ed expat flex gettext gmp gnugrep groff kyua libedit libidn2 libkrb5
libssh2 libtool libunistring m4 meson ncurses nghttp2 ninja openbsm openldap openpam libssh2 libtool libunistring m4 meson ncurses nghttp2 ninja openbsm openldap openpam
openssh openssl patchutils pbzx perl pkg-config python3 python3Minimal scons serf openssh openssl patchutils pbzx perl pkg-config python3 python3Minimal scons serf
@ -1048,7 +1046,7 @@ in
overrides = self: super: { overrides = self: super: {
inherit (prevStage) ccWrapperStdenv inherit (prevStage) ccWrapperStdenv
autoconf automake bash binutils binutils-unwrapped bison brotli cmake cmakeMinimal autoconf automake bash binutils binutils-unwrapped bison brotli cmake cmakeMinimal
coreutils cpio cyrus_sasl db ed expat flex gettext gmp gnugrep groff libedit coreutils cpio curl cyrus_sasl db ed expat flex gettext gmp gnugrep groff libedit
libidn2 libkrb5 libssh2 libtool libunistring m4 meson nghttp2 ninja openbsm openldap libidn2 libkrb5 libssh2 libtool libunistring m4 meson nghttp2 ninja openbsm openldap
openpam openssh openssl patchutils pbzx perl pkg-config python3 python3Minimal scons openpam openssh openssl patchutils pbzx perl pkg-config python3 python3Minimal scons
sed serf sharutils sqlite subversion sysctl texinfo unzip which xz zstd sed serf sharutils sqlite subversion sysctl texinfo unzip which xz zstd
@ -1129,7 +1127,7 @@ in
overrides = self: super: { overrides = self: super: {
inherit (prevStage) ccWrapperStdenv inherit (prevStage) ccWrapperStdenv
autoconf automake bash bison cmake cmakeMinimal cyrus_sasl db expat flex groff autoconf automake bash bison cmake cmakeMinimal curl cyrus_sasl db expat flex groff
libedit libtool m4 meson ninja openldap openssh patchutils perl pkg-config python3 scons libedit libtool m4 meson ninja openldap openssh patchutils perl pkg-config python3 scons
serf sqlite subversion sysctl texinfo unzip which serf sqlite subversion sysctl texinfo unzip which
@ -1457,6 +1455,7 @@ in
# Make sure these evaluate since they were disabled explicitly in the bootstrap. # Make sure these evaluate since they were disabled explicitly in the bootstrap.
assert isBuiltByNixpkgsCompiler prevStage.binutils-unwrapped; assert isBuiltByNixpkgsCompiler prevStage.binutils-unwrapped;
assert isFromNixpkgs prevStage.binutils-unwrapped.src; assert isFromNixpkgs prevStage.binutils-unwrapped.src;
assert isBuiltByNixpkgsCompiler prevStage.curl;
{ inherit (prevStage) config overlays stdenv; }) { inherit (prevStage) config overlays stdenv; })
] ]