diff options
author | Adam C. Stephens <2071575+adamcstephens@users.noreply.github.com> | 2023-12-25 08:54:08 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-12-25 08:54:08 -0500 |
commit | c52e9de9aecd6e1cdf3704131d0512225d492ec0 (patch) | |
tree | da9ccd026414553644b9d3265608785ca1386de4 /pkgs/os-specific | |
parent | efb542a5c62ab559a53bd69dee1d549b618836ff (diff) | |
parent | 56e9ca19b3f8f353c374c662fa909db86eea925c (diff) |
Merge pull request #275895 from adamcstephens/lxcfs/5
lxcfs: 4.0.12 -> 5.0.4
Diffstat (limited to 'pkgs/os-specific')
-rw-r--r-- | pkgs/os-specific/linux/lxcfs/default.nix | 61 | ||||
-rw-r--r-- | pkgs/os-specific/linux/lxcfs/no-spec.patch | 24 | ||||
-rw-r--r-- | pkgs/os-specific/linux/lxcfs/pidfd.patch | 29 | ||||
-rw-r--r-- | pkgs/os-specific/linux/lxcfs/skip-init.patch | 12 |
4 files changed, 106 insertions, 20 deletions
diff --git a/pkgs/os-specific/linux/lxcfs/default.nix b/pkgs/os-specific/linux/lxcfs/default.nix index 28777d36e6beb..ee923786c2952 100644 --- a/pkgs/os-specific/linux/lxcfs/default.nix +++ b/pkgs/os-specific/linux/lxcfs/default.nix @@ -1,41 +1,58 @@ -{ config, lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config, help2man, fuse -, util-linux, makeWrapper -, enableDebugBuild ? config.lxcfs.enableDebugBuild or false }: +{ + lib, + stdenv, + fetchFromGitHub, + fuse3, + help2man, + makeWrapper, + meson, + ninja, + nixosTests, + pkg-config, + python3, + util-linux, +}: stdenv.mkDerivation rec { pname = "lxcfs"; - version = "4.0.12"; + version = "5.0.4"; src = fetchFromGitHub { owner = "lxc"; repo = "lxcfs"; rev = "lxcfs-${version}"; - sha256 = "sha256-+wp29GD+toXGfQbPGYbDJ7/P+FY1uQY4uK3OQxTE9GM="; + sha256 = "sha256-vusxbFV7cnQVBOOo7E+fSyaE63f5QiE2xZhYavc8jJU="; }; - postPatch = '' - sed -i -e '1i #include <sys/pidfd.h>' src/bindings.c - ''; + patches = [ + # skip RPM spec generation + ./no-spec.patch - nativeBuildInputs = [ pkg-config help2man autoreconfHook makeWrapper ]; - buildInputs = [ fuse ]; + # skip installing systemd files + ./skip-init.patch + + # fix pidfd checks and include + ./pidfd.patch + ]; - preConfigure = lib.optionalString enableDebugBuild '' - sed -i 's,#AM_CFLAGS += -DDEBUG,AM_CFLAGS += -DDEBUG,' Makefile.am - ''; - configureFlags = [ - "--with-init-script=systemd" - "--sysconfdir=/etc" - "--localstatedir=/var" + nativeBuildInputs = [ + meson + help2man + makeWrapper + ninja + (python3.withPackages (p: [ p.jinja2 ])) + pkg-config ]; + buildInputs = [ fuse3 ]; - installFlags = [ "SYSTEMD_UNIT_DIR=\${out}/lib/systemd" ]; + preConfigure = '' + patchShebangs tools/ + ''; postInstall = '' # `mount` hook requires access to the `mount` command from `util-linux`: - wrapProgram "$out/share/lxcfs/lxc.mount.hook" \ - --prefix PATH : "${util-linux}/bin" + wrapProgram "$out/share/lxcfs/lxc.mount.hook" --prefix PATH : "${util-linux}/bin" ''; postFixup = '' @@ -43,6 +60,10 @@ stdenv.mkDerivation rec { patchelf --set-rpath "$(patchelf --print-rpath "$out/bin/lxcfs"):$out/lib" "$out/bin/lxcfs" ''; + passthru.tests = { + incus-container = nixosTests.incus.container; + }; + meta = { description = "FUSE filesystem for LXC"; homepage = "https://linuxcontainers.org/lxcfs"; diff --git a/pkgs/os-specific/linux/lxcfs/no-spec.patch b/pkgs/os-specific/linux/lxcfs/no-spec.patch new file mode 100644 index 0000000000000..ead4bfcf80f75 --- /dev/null +++ b/pkgs/os-specific/linux/lxcfs/no-spec.patch @@ -0,0 +1,24 @@ +diff --git a/meson.build b/meson.build +index a0289ad..93fc61a 100644 +--- a/meson.build ++++ b/meson.build +@@ -253,19 +253,6 @@ if want_tests == true + c_args: '-DRELOADTEST -DDEBUG') + endif + +-# RPM spec. +-lxcfs_spec = custom_target( +- 'lxcfs.spec', +- build_by_default: true, +- input: 'lxcfs.spec.in', +- output: 'lxcfs.spec', +- command: [ +- meson_render_jinja2, +- config_h, +- '@INPUT@', +- '@OUTPUT@', +- ]) +- + # Man pages + if want_docs == true + help2man = find_program('help2man') diff --git a/pkgs/os-specific/linux/lxcfs/pidfd.patch b/pkgs/os-specific/linux/lxcfs/pidfd.patch new file mode 100644 index 0000000000000..3d9b6faa57f9e --- /dev/null +++ b/pkgs/os-specific/linux/lxcfs/pidfd.patch @@ -0,0 +1,29 @@ +diff --git a/meson.build b/meson.build +index a0289ad..211b01b 100644 +--- a/meson.build ++++ b/meson.build +@@ -134,11 +134,13 @@ foreach ident: [ + '''#include <stdlib.h> + #include <unistd.h> + #include <signal.h> ++ #include <sys/pidfd.h> + #include <sys/wait.h>'''], + ['pidfd_open', + '''#include <stdlib.h> + #include <unistd.h> + #include <signal.h> ++ #include <sys/pidfd.h> + #include <sys/wait.h>'''], + ] + have = cc.has_function(ident[0], prefix: ident[1], args: '-D_GNU_SOURCE') +diff --git a/src/bindings.c b/src/bindings.c +index 13259c1..e760330 100644 +--- a/src/bindings.c ++++ b/src/bindings.c +@@ -1,5 +1,6 @@ + /* SPDX-License-Identifier: LGPL-2.1+ */ + ++#include <sys/pidfd.h> + #include "config.h" + + #include <dirent.h> diff --git a/pkgs/os-specific/linux/lxcfs/skip-init.patch b/pkgs/os-specific/linux/lxcfs/skip-init.patch new file mode 100644 index 0000000000000..6e7cdc90d706f --- /dev/null +++ b/pkgs/os-specific/linux/lxcfs/skip-init.patch @@ -0,0 +1,12 @@ +diff --git a/meson.build b/meson.build +index a0289ad..10c0a28 100644 +--- a/meson.build ++++ b/meson.build +@@ -285,7 +285,6 @@ endif + + + # Include sub-directories. +-subdir('config/init') + subdir('share') + subdir('tests') + |