python312Packages.types-aiobotocore: 2.15.2 -> 2.15.2.post3 (#361801)
[NixPkgs.git] / pkgs / by-name / lx / lxcfs / package.nix
blob5082bc395136934ae3169e8757f9b4e52bbe67e7
2   lib,
3   stdenv,
4   fetchFromGitHub,
5   fuse3,
6   help2man,
7   makeWrapper,
8   meson,
9   ninja,
10   nix-update-script,
11   nixosTests,
12   pkg-config,
13   python3,
14   util-linux,
15   coreutils,
18 stdenv.mkDerivation rec {
19   pname = "lxcfs";
20   version = "6.0.2";
22   src = fetchFromGitHub {
23     owner = "lxc";
24     repo = "lxcfs";
25     rev = "v${version}";
26     hash = "sha256-5r1X/yUXTMC/2dNhpI+BVYeClIydefg2lurCGt7iA8Y=";
27   };
29   patches = [
30     # skip RPM spec generation
31     ./no-spec.patch
33     # skip installing systemd files
34     ./skip-init.patch
36     # fix pidfd checks and include
37     ./pidfd.patch
38   ];
40   nativeBuildInputs = [
41     meson
42     help2man
43     makeWrapper
44     ninja
45     (python3.withPackages (p: [ p.jinja2 ]))
46     pkg-config
47   ];
48   buildInputs = [ fuse3 ];
50   preConfigure = ''
51     patchShebangs tools/
52   '';
54   postInstall = ''
55     # `mount` hook requires access to the `mount` command from `util-linux` and `readlink` from `coreutils`:
56     wrapProgram "$out/share/lxcfs/lxc.mount.hook" --prefix PATH : ${
57       lib.makeBinPath [
58         coreutils
59         util-linux
60       ]
61     }
62   '';
64   postFixup = ''
65     # liblxcfs.so is reloaded with dlopen()
66     patchelf --set-rpath "$(patchelf --print-rpath "$out/bin/lxcfs"):$out/lib" "$out/bin/lxcfs"
67   '';
69   passthru = {
70     tests = {
71       incus-container-legacy-init = nixosTests.incus.container-legacy-init;
72       incus-container-systemd-init = nixosTests.incus.container-systemd-init;
73     };
75     updateScript = nix-update-script { };
76   };
78   meta = {
79     description = "FUSE filesystem for LXC";
80     mainProgram = "lxcfs";
81     homepage = "https://linuxcontainers.org/lxcfs";
82     changelog = "https://linuxcontainers.org/lxcfs/news/";
83     license = lib.licenses.asl20;
84     platforms = lib.platforms.linux;
85     maintainers = lib.teams.lxc.members;
86   };