diff --git a/release-common.nix b/release-common.nix index f9df6fab9..0c12bc7ce 100644 --- a/release-common.nix +++ b/release-common.nix @@ -1,9 +1,11 @@ { pkgs }: +with pkgs; + rec { # Use "busybox-sandbox-shell" if present, # if not (legacy) fallback and hope it's sufficient. - sh = pkgs.busybox-sandbox-shell or (pkgs.busybox.override { + sh = pkgs.busybox-sandbox-shell or (busybox.override { useMusl = true; enableStatic = true; enableMinimal = true; @@ -30,7 +32,41 @@ rec { configureFlags = [ "--disable-init-state" "--enable-gc" - ] ++ pkgs.lib.optionals pkgs.stdenv.isLinux [ + ] ++ lib.optionals stdenv.isLinux [ "--with-sandbox-shell=${sh}/bin/busybox" ]; + + tarballDeps = + [ bison + flex + libxml2 + libxslt + docbook5 + docbook5_xsl + autoconf-archive + autoreconfHook + ]; + + buildDeps = + [ curl + bzip2 xz brotli + openssl pkgconfig sqlite boehmgc + boost + + # Tests + git + mercurial + ] + ++ lib.optional stdenv.isLinux libseccomp + ++ lib.optional (stdenv.isLinux || stdenv.isDarwin) libsodium + ++ lib.optional (stdenv.isLinux || stdenv.isDarwin) + (aws-sdk-cpp.override { + apis = ["s3"]; + customMemoryManagement = false; + }); + + perlDeps = + [ perl + perlPackages.DBDSQLite + ]; } diff --git a/release.nix b/release.nix index 2e9292955..7db5e20e1 100644 --- a/release.nix +++ b/release.nix @@ -14,6 +14,8 @@ let tarball = with pkgs; + with import ./release-common.nix { inherit pkgs; }; + releaseTools.sourceTarball { name = "nix-tarball"; version = builtins.readFile ./version; @@ -21,13 +23,7 @@ let src = nix; inherit officialRelease; - buildInputs = - [ curl bison flex libxml2 libxslt - bzip2 xz brotli - pkgconfig sqlite libsodium boehmgc - docbook5 docbook5_xsl - autoconf-archive - ] ++ lib.optional stdenv.isLinux libseccomp; + buildInputs = tarballDeps ++ buildDeps; configureFlags = "--enable-gc"; @@ -67,23 +63,7 @@ let name = "nix"; src = tarball; - buildInputs = - [ curl - bzip2 xz brotli - openssl pkgconfig sqlite boehmgc - boost - - # Tests - git - mercurial - ] - ++ lib.optional stdenv.isLinux libseccomp - ++ lib.optional (stdenv.isLinux || stdenv.isDarwin) libsodium - ++ lib.optional (stdenv.isLinux || stdenv.isDarwin) - (aws-sdk-cpp.override { - apis = ["s3"]; - customMemoryManagement = false; - }); + buildInputs = buildDeps; configureFlags = configureFlags ++ [ "--sysconfdir=/etc" ]; diff --git a/shell.nix b/shell.nix index 09318dfd0..20cf4133b 100644 --- a/shell.nix +++ b/shell.nix @@ -7,28 +7,7 @@ with import ./release-common.nix { inherit pkgs; }; (if useClang then clangStdenv else stdenv).mkDerivation { name = "nix"; - buildInputs = - [ curl bison flex libxml2 libxslt - bzip2 xz brotli - pkgconfig sqlite libsodium boehmgc - docbook5 docbook5_xsl - autoconf-archive - (aws-sdk-cpp.override { - apis = ["s3"]; - customMemoryManagement = false; - }) - autoreconfHook - boost - - # For nix-perl - perl - perlPackages.DBDSQLite - - # Tests - git - mercurial - ] - ++ lib.optional stdenv.isLinux libseccomp; + buildInputs = buildDeps ++ tarballDeps ++ perlDeps; inherit configureFlags;