summaryrefslogtreecommitdiffstats
path: root/pkgs
diff options
context:
space:
mode:
authorMatthew Bauer <mjbauer95@gmail.com>2020-12-08 15:55:22 -0600
committerGitHub <noreply@github.com>2020-12-08 15:55:22 -0600
commit1fb6bb97910a035544943a2e1f636d4ebbd3ff89 (patch)
tree3e73da8cf7f7c251904f6f239fd9fcaa96896ad8 /pkgs
parentd84bd749392097a976eda01896635e627254d648 (diff)
parent805c9d4847b565784d6d00f4379ce6661fea7619 (diff)
Merge pull request #106115 from matthewbauer/static-nix-darwin
Improve static Nix Darwin support
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/top-level/static.nix15
1 files changed, 10 insertions, 5 deletions
diff --git a/pkgs/top-level/static.nix b/pkgs/top-level/static.nix
index b3851ba20f09..b8d0d16e97ba 100644
--- a/pkgs/top-level/static.nix
+++ b/pkgs/top-level/static.nix
@@ -34,14 +34,18 @@ self: super: let
});
};
- staticAdapters = [ makeStaticLibraries propagateBuildInputs ]
+ staticAdapters =
+ # makeStaticDarwin must go first so that the extraBuildInputs
+ # override does not recreate mkDerivation, removing subsequent
+ # adapters.
+ optional super.stdenv.hostPlatform.isDarwin makeStaticDarwin
+
+ ++ [ makeStaticLibraries propagateBuildInputs ]
# Apple does not provide a static version of libSystem or crt0.o
# So we can’t build static binaries without extensive hacks.
++ optional (!super.stdenv.hostPlatform.isDarwin) makeStaticBinaries
- ++ optional super.stdenv.hostPlatform.isDarwin makeStaticDarwin
-
# Glibc doesn’t come with static runtimes by default.
# ++ optional (super.stdenv.hostPlatform.libc == "glibc") ((flip overrideInStdenv) [ self.stdenv.glibc.static ])
;
@@ -163,6 +167,7 @@ in {
};
mkl = super.mkl.override { enableStatic = true; };
nix = super.nix.override { enableStatic = true; };
+ nixUnstable = super.nixUnstable.override { enableStatic = true; };
openssl = (super.openssl_1_1.override { static = true; }).overrideAttrs (o: {
# OpenSSL doesn't like the `--enable-static` / `--disable-shared` flags.
configureFlags = (removeUnknownConfigureFlags o.configureFlags);
@@ -281,8 +286,8 @@ in {
python39 = super.python39.override { static = true; };
python3Minimal = super.python3Minimal.override { static = true; };
-
- libev = super.libev.override { static = true; };
+ # Note: -static doesn’t work on darwin
+ libev = super.libev.override { static = !super.stdenv.hostPlatform.isDarwin; };
libexecinfo = super.libexecinfo.override { enableShared = false; };