mirror of
https://github.com/containers/podman.git
synced 2025-10-20 04:34:01 +08:00

Prior to this commit, the "Static Build" task only produced a `bin/podman`. Update this to also include a `bin/podman-remote` binary. Update the pr-should-include-tests checker to ignore the `nix` directory, which isn't applicable. Lastly, restore the static build task to 'required' for CI success. Leaving the comment inplace in case it needs to be bypassed in the future on short notice. Signed-off-by: Chris Evich <cevich@redhat.com>
60 lines
1.8 KiB
Nix
60 lines
1.8 KiB
Nix
{ system ? builtins.currentSystem }:
|
|
let
|
|
pkgs = (import ./nixpkgs.nix {
|
|
config = {
|
|
packageOverrides = pkg: {
|
|
gpgme = (static pkg.gpgme);
|
|
libassuan = (static pkg.libassuan);
|
|
libgpgerror = (static pkg.libgpgerror);
|
|
libseccomp = (static pkg.libseccomp);
|
|
glib = (static pkg.glib).overrideAttrs(x: {
|
|
outputs = [ "bin" "out" "dev" ];
|
|
mesonFlags = [
|
|
"-Ddefault_library=static"
|
|
"-Ddevbindir=${placeholder ''dev''}/bin"
|
|
"-Dgtk_doc=false"
|
|
"-Dnls=disabled"
|
|
];
|
|
});
|
|
};
|
|
};
|
|
});
|
|
|
|
static = pkg: pkg.overrideAttrs(x: {
|
|
doCheck = false;
|
|
configureFlags = (x.configureFlags or []) ++ [
|
|
"--without-shared"
|
|
"--disable-shared"
|
|
];
|
|
dontDisableStatic = true;
|
|
enableSharedExecutables = false;
|
|
enableStatic = true;
|
|
});
|
|
|
|
self = with pkgs; buildGoModule rec {
|
|
name = "podman";
|
|
src = ./..;
|
|
vendorSha256 = null;
|
|
doCheck = false;
|
|
enableParallelBuilding = true;
|
|
outputs = [ "out" ];
|
|
nativeBuildInputs = [ bash gitMinimal go-md2man installShellFiles makeWrapper pkg-config which ];
|
|
buildInputs = [ glibc glibc.static gpgme libassuan libgpgerror libseccomp libapparmor libselinux ];
|
|
prePatch = ''
|
|
export CFLAGS='-static -pthread'
|
|
export LDFLAGS='-s -w -static-libgcc -static'
|
|
export EXTRA_LDFLAGS='-s -w -linkmode external -extldflags "-static -lm"'
|
|
export BUILDTAGS='static netgo osusergo exclude_graphdriver_btrfs exclude_graphdriver_devicemapper seccomp apparmor selinux'
|
|
'';
|
|
buildPhase = ''
|
|
patchShebangs .
|
|
make bin/podman
|
|
make bin/podman-remote
|
|
'';
|
|
installPhase = ''
|
|
install -Dm755 bin/podman $out/bin/podman
|
|
install -Dm755 bin/podman-remote $out/bin/podman-remote
|
|
'';
|
|
};
|
|
in self
|