uboot: (firmwareOdroidC2/C4) don't invoke patch tool, use patches = [] instead
https://github.com/NixOS/nixpkgs/blob/master/pkgs/stdenv/generic/setup.sh#L948 this can do it nicely. Signed-off-by: Anton Arapov <anton@deadbeef.mx>
This commit is contained in:
commit
56de2bcd43
30691 changed files with 3076956 additions and 0 deletions
104
pkgs/applications/virtualization/podman/default.nix
Normal file
104
pkgs/applications/virtualization/podman/default.nix
Normal file
|
|
@ -0,0 +1,104 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, pkg-config
|
||||
, installShellFiles
|
||||
, buildGoModule
|
||||
, gpgme
|
||||
, lvm2
|
||||
, btrfs-progs
|
||||
, libapparmor
|
||||
, libseccomp
|
||||
, libselinux
|
||||
, systemd
|
||||
, go-md2man
|
||||
, nixosTests
|
||||
}:
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "podman";
|
||||
version = "4.1.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "containers";
|
||||
repo = "podman";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-3MR4ZhkhMLAK3KHu7JEV9z1/wlyCkxfx1i267TGxwt8=";
|
||||
};
|
||||
|
||||
vendorSha256 = null;
|
||||
|
||||
doCheck = false;
|
||||
|
||||
outputs = [ "out" "man" ] ++ lib.optionals stdenv.isLinux [ "rootlessport" ];
|
||||
|
||||
nativeBuildInputs = [ pkg-config go-md2man installShellFiles ];
|
||||
|
||||
buildInputs = lib.optionals stdenv.isLinux [
|
||||
btrfs-progs
|
||||
gpgme
|
||||
libapparmor
|
||||
libseccomp
|
||||
libselinux
|
||||
lvm2
|
||||
systemd
|
||||
];
|
||||
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
patchShebangs .
|
||||
${if stdenv.isDarwin then ''
|
||||
make podman-remote # podman-mac-helper uses FHS paths
|
||||
'' else ''
|
||||
make bin/podman bin/rootlessport
|
||||
''}
|
||||
make docs
|
||||
runHook postBuild
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
mkdir -p {$out/{bin,etc,lib,share},$man} # ensure paths exist for the wrapper
|
||||
${if stdenv.isDarwin then ''
|
||||
mv bin/{darwin/podman,podman}
|
||||
'' else ''
|
||||
install -Dm644 cni/87-podman-bridge.conflist -t $out/etc/cni/net.d
|
||||
install -Dm644 contrib/tmpfile/podman.conf -t $out/lib/tmpfiles.d
|
||||
for s in contrib/systemd/**/*.in; do
|
||||
substituteInPlace "$s" --replace "@@PODMAN@@" "podman" # don't use unwrapped binary
|
||||
done
|
||||
PREFIX=$out make install.systemd
|
||||
install -Dm555 bin/rootlessport -t $rootlessport/bin
|
||||
''}
|
||||
install -Dm555 bin/podman -t $out/bin
|
||||
PREFIX=$out make install.completions
|
||||
MANDIR=$man/share/man make install.man
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
postFixup = lib.optionalString stdenv.isLinux ''
|
||||
RPATH=$(patchelf --print-rpath $out/bin/podman)
|
||||
patchelf --set-rpath "${lib.makeLibraryPath [ systemd ]}":$RPATH $out/bin/podman
|
||||
'';
|
||||
|
||||
passthru.tests = {
|
||||
inherit (nixosTests) podman;
|
||||
# related modules
|
||||
inherit (nixosTests)
|
||||
podman-tls-ghostunnel
|
||||
podman-dnsname
|
||||
;
|
||||
oci-containers-podman = nixosTests.oci-containers.podman;
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://podman.io/";
|
||||
description = "A program for managing pods, containers and container images";
|
||||
changelog = "https://github.com/containers/podman/blob/v${version}/RELEASE_NOTES.md";
|
||||
license = licenses.asl20;
|
||||
maintainers = with maintainers; [ marsam ] ++ teams.podman.members;
|
||||
# requires >= 10.13 SDK https://github.com/NixOS/nixpkgs/issues/101229
|
||||
# Undefined symbols for architecture x86_64: "_utimensat"
|
||||
broken = stdenv.isDarwin && stdenv.isx86_64;
|
||||
};
|
||||
}
|
||||
80
pkgs/applications/virtualization/podman/wrapper.nix
Normal file
80
pkgs/applications/virtualization/podman/wrapper.nix
Normal file
|
|
@ -0,0 +1,80 @@
|
|||
{ podman-unwrapped
|
||||
, runCommand
|
||||
, makeWrapper
|
||||
, symlinkJoin
|
||||
, lib
|
||||
, stdenv
|
||||
, extraPackages ? []
|
||||
, podman # Docker compat
|
||||
, runc # Default container runtime
|
||||
, crun # Container runtime (default with cgroups v2 for podman/buildah)
|
||||
, conmon # Container runtime monitor
|
||||
, slirp4netns # User-mode networking for unprivileged namespaces
|
||||
, fuse-overlayfs # CoW for images, much faster than default vfs
|
||||
, util-linux # nsenter
|
||||
, cni-plugins # not added to path
|
||||
, iptables
|
||||
, iproute2
|
||||
, catatonit
|
||||
, gvproxy
|
||||
}:
|
||||
|
||||
# do not add qemu to this wrapper, store paths get written to the podman vm config and break when GCed
|
||||
|
||||
# adding aardvark-dns/netavark to `helpersBin` requires changes to the modules and tests
|
||||
|
||||
let
|
||||
podman = podman-unwrapped;
|
||||
|
||||
binPath = lib.makeBinPath ([
|
||||
] ++ lib.optionals stdenv.isLinux [
|
||||
runc
|
||||
crun
|
||||
conmon
|
||||
slirp4netns
|
||||
fuse-overlayfs
|
||||
util-linux
|
||||
iptables
|
||||
iproute2
|
||||
] ++ extraPackages);
|
||||
|
||||
helpersBin = symlinkJoin {
|
||||
name = "${podman.pname}-helper-binary-wrapper-${podman.version}";
|
||||
|
||||
# this only works for some binaries, others may need to be be added to `binPath` or in the modules
|
||||
paths = [
|
||||
gvproxy
|
||||
] ++ lib.optionals stdenv.isLinux [
|
||||
catatonit # added here for the pause image and also set in `containersConf` for `init_path`
|
||||
podman.rootlessport
|
||||
];
|
||||
};
|
||||
|
||||
in runCommand podman.name {
|
||||
name = "${podman.pname}-wrapper-${podman.version}";
|
||||
inherit (podman) pname version passthru;
|
||||
|
||||
preferLocalBuild = true;
|
||||
|
||||
meta = builtins.removeAttrs podman.meta [ "outputsToInstall" ];
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
"man"
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
makeWrapper
|
||||
];
|
||||
|
||||
} ''
|
||||
ln -s ${podman.man} $man
|
||||
|
||||
mkdir -p $out/bin
|
||||
ln -s ${podman-unwrapped}/etc $out/etc
|
||||
ln -s ${podman-unwrapped}/lib $out/lib
|
||||
ln -s ${podman-unwrapped}/share $out/share
|
||||
makeWrapper ${podman-unwrapped}/bin/podman $out/bin/podman \
|
||||
--set CONTAINERS_HELPER_BINARY_DIR ${helpersBin}/bin \
|
||||
--prefix PATH : ${lib.escapeShellArg binPath}
|
||||
''
|
||||
Loading…
Add table
Add a link
Reference in a new issue