Setup static building of nix
This commit is contained in:
parent
88cf6ffce3
commit
07dae2ff77
|
@ -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;
|
||||
|
|
37
release.nix
37
release.nix
|
@ -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:
|
||||
|
|
Loading…
Reference in a new issue