1
0
Fork 0
mirror of https://github.com/NixOS/nix synced 2024-09-20 23:28:26 -04:00

Setup static building of nix

This commit is contained in:
Matthew Bauer 2020-06-25 17:19:11 -04:00 committed by John Ericson
parent 88cf6ffce3
commit 07dae2ff77
2 changed files with 85 additions and 69 deletions

View file

@ -1,4 +1,4 @@
{ pkgs }:
{ pkgs, enableStatic }:
with pkgs;
@ -30,35 +30,42 @@ rec {
});
configureFlags =
lib.optionals stdenv.isLinux [
lib.optionals (!enableStatic && stdenv.isLinux) [
"--with-sandbox-shell=${sh}/bin/busybox"
];
nativeBuildDeps =
[
buildPackages.bison
buildPackages.flex
buildPackages.libxml2
buildPackages.libxslt
buildPackages.docbook5
buildPackages.docbook_xsl_ns
buildPackages.autoreconfHook
buildPackages.pkgconfig
# Tests
buildPackages.git
buildPackages.mercurial
buildPackages.ipfs
];
buildDeps =
[ bison
flex
libxml2
libxslt
docbook5
docbook_xsl_ns
[ autoreconfHook
autoconf-archive
autoreconfHook
curl
bzip2 xz brotli zlib editline
openssl pkgconfig sqlite
openssl sqlite
libarchive
boost
nlohmann_json
# Tests
git
mercurial
gmock
]
++ lib.optionals stdenv.isLinux [libseccomp utillinuxMinimal]
++ lib.optional (stdenv.isLinux || stdenv.isDarwin) libsodium
++ lib.optional (stdenv.isLinux || stdenv.isDarwin)
++ lib.optional (!enableStatic && (stdenv.isLinux || stdenv.isDarwin))
((aws-sdk-cpp.override {
apis = ["s3" "transfer"];
customMemoryManagement = false;

View file

@ -12,16 +12,8 @@ let
builtins.readFile ./.version
+ (if officialRelease then "" else "pre${toString nix.revCount}_${nix.shortRev}");
jobs = rec {
build = pkgs.lib.genAttrs systems (system:
let pkgs = import nixpkgs { inherit system; }; in
with pkgs;
with import ./release-common.nix { inherit pkgs; };
buildFun = pkgs: enableStatic:
with pkgs; with import ./release-common.nix { inherit pkgs enableStatic; };
stdenv.mkDerivation {
name = "nix-${version}";
@ -31,10 +23,12 @@ let
buildInputs = buildDeps;
nativeBuildInputs = nativeBuildDeps;
propagatedBuildInputs = propagatedDeps;
preConfigure =
''
lib.optionalString (!enableStatic) ''
# Copy libboost_context so we don't get all of Boost in our closure.
# https://github.com/NixOS/nixpkgs/issues/45462
mkdir -p $out/lib
@ -51,9 +45,11 @@ let
configureFlags = configureFlags ++
[ "--sysconfdir=/etc" ];
dontUpdateAutotoolsGnuConfigScripts = true;
enableParallelBuilding = true;
makeFlags = "profiledir=$(out)/etc/profile.d";
makeFlags = [ "profiledir=$(out)/etc/profile.d" "PRECOMPILE_HEADERS=0" ];
installFlags = "sysconfdir=$(out)/etc";
@ -67,8 +63,21 @@ let
doInstallCheck = true;
installCheckFlags = "sysconfdir=$(out)/etc";
separateDebugInfo = true;
});
separateDebugInfo = !enableStatic;
stripAllList = ["bin"];
};
jobs = rec {
build-static = pkgs.lib.genAttrs systems (system:
buildFun (import nixpkgs { inherit system; }).pkgsStatic true);
build = pkgs.lib.genAttrs systems (system:
buildFun (import nixpkgs { inherit system; }) false);
perlBindings = pkgs.lib.genAttrs systems (system: