From f53812a11ebfcb7ccb46df998147048e8f2a27a3 Mon Sep 17 00:00:00 2001 From: Wong Hoi Sing Edison Date: Wed, 27 May 2020 14:30:40 +0800 Subject: Cleanup nix derivation for static builds Signed-off-by: Wong Hoi Sing Edison --- nix/default.nix | 73 ++++++++++++++++++++++++++------------------------------ nix/nixpkgs.json | 10 ++++---- 2 files changed, 38 insertions(+), 45 deletions(-) (limited to 'nix') diff --git a/nix/default.nix b/nix/default.nix index cf607c0ad..4fe818b39 100644 --- a/nix/default.nix +++ b/nix/default.nix @@ -1,53 +1,48 @@ +{ system ? builtins.currentSystem }: let - pkgs = import ./nixpkgs.nix { + pkgs = (import ./nixpkgs.nix { config = { packageOverrides = pkg: { - go_1_12 = pkg.go_1_14; + gpgme = (static pkg.gpgme); + libassuan = (static pkg.libassuan); + libgpgerror = (static pkg.libgpgerror); + libseccomp = (static pkg.libseccomp); }; }; - }; + }); - static = pkg: pkg.overrideAttrs(old: { - configureFlags = (old.configureFlags or []) ++ - [ "--without-shared" "--disable-shared" ]; + static = pkg: pkg.overrideAttrs(x: { + doCheck = false; + configureFlags = (x.configureFlags or []) ++ [ + "--without-shared" + "--disable-shared" + ]; dontDisableStatic = true; enableSharedExecutables = false; enableStatic = true; }); - patchLvm2 = pkg: pkg.overrideAttrs(old: { - configureFlags = [ - "--disable-cmdlib" "--disable-readline" "--disable-udev_rules" - "--disable-udev_sync" "--enable-pkgconfig" "--enable-static_link" - ]; - preConfigure = old.preConfigure + '' - substituteInPlace libdm/Makefile.in --replace \ - SUBDIRS=dm-tools SUBDIRS= - substituteInPlace tools/Makefile.in --replace \ - "TARGETS += lvm.static" "" - substituteInPlace tools/Makefile.in --replace \ - "INSTALL_LVM_TARGETS += install_tools_static" "" + self = with pkgs; buildGoModule rec { + name = "podman"; + src = ./..; + vendorSha256 = null; + doCheck = false; + enableParallelBuilding = true; + outputs = [ "out" ]; + nativeBuildInputs = [ bash git go-md2man installShellFiles makeWrapper pkg-config which ]; + buildInputs = [ glibc glibc.static gpgme libassuan libgpgerror libseccomp libapparmor libselinux ]; + prePatch = '' + export CFLAGS='-static' + export LDFLAGS='-s -w -static-libgcc -static' + export EXTRA_LDFLAGS='-s -w -linkmode external -extldflags "-static -lm"' + export BUILDTAGS='static netgo exclude_graphdriver_btrfs exclude_graphdriver_devicemapper seccomp apparmor selinux' + ''; + buildPhase = '' + patchShebangs . + make bin/podman + ''; + installPhase = '' + install -Dm755 bin/podman $out/bin/podman ''; - postInstall = ""; - }); - - self = { - podman-static = (pkgs.podman.overrideAttrs(old: { - name = "podman-static"; - buildInputs = old.buildInputs ++ (with pkgs; [ - (static pkgs.libassuan) - (static pkgs.libgpgerror) - git - glibc - glibc.static - ]); - src = ./..; - EXTRA_LDFLAGS = ''-linkmode external -extldflags "-static -lm"''; - BUILDTAGS = ''static netgo apparmor selinux seccomp systemd varlink containers_image_ostree_stub''; - })).override { - gpgme = (static pkgs.gpgme); - libseccomp = (static pkgs.libseccomp); - lvm2 = (patchLvm2 (static pkgs.lvm2)); - }; }; in self diff --git a/nix/nixpkgs.json b/nix/nixpkgs.json index fbc774373..98ed710a4 100644 --- a/nix/nixpkgs.json +++ b/nix/nixpkgs.json @@ -1,9 +1,7 @@ { "url": "https://github.com/nixos/nixpkgs", - "rev": "a08d4f605bca62c282ce9955d5ddf7d824e89809", - "date": "2020-03-20T10:10:15+01:00", - "sha256": "1bniq08dlmrmrz4aga1cj0d7rqbaq9xapm5ar15wdv2c6431z2m8", - "fetchSubmodules": false, - "deepClone": false, - "leaveDotGit": false + "rev": "02591d02a910b3b92092153c5f3419a8d696aa1d", + "date": "2020-07-09T03:52:28+02:00", + "sha256": "1pp9v4rqmgx1b298gxix8b79m8pvxy1rcf8l25rxxxxnkr5ls1ng", + "fetchSubmodules": false } -- cgit v1.2.3-54-g00ecf