From 4ecc9488d1df262c70e784dabfcf8329ba8fa60c Mon Sep 17 00:00:00 2001 From: Bruce Ashfield Date: Thu, 3 Aug 2023 15:18:33 +0000 Subject: lxcfs: update to 5.0.4 and convert to meson This is a large update to lxcfs, that includes a move to meson as the build backend. We drop a couple of uneeded patches, and add a new meson specific one as the detection of pid_* functions is failing. Signed-off-by: Bruce Ashfield --- ...ystemd-allow-for-distinct-build-directory.patch | 49 ---------------------- .../systemd-ensure-var-lib-lxcfs-exists.patch | 26 ------------ ...uild-force-pid-open-send_signal-detection.patch | 38 +++++++++++++++++ recipes-containers/lxcfs/lxcfs_4.0.7.bb | 26 ------------ recipes-containers/lxcfs/lxcfs_5.0.4.bb | 25 +++++++++++ 5 files changed, 63 insertions(+), 101 deletions(-) delete mode 100644 recipes-containers/lxcfs/files/systemd-allow-for-distinct-build-directory.patch delete mode 100644 recipes-containers/lxcfs/files/systemd-ensure-var-lib-lxcfs-exists.patch create mode 100644 recipes-containers/lxcfs/lxcfs/0001-meson.build-force-pid-open-send_signal-detection.patch delete mode 100644 recipes-containers/lxcfs/lxcfs_4.0.7.bb create mode 100644 recipes-containers/lxcfs/lxcfs_5.0.4.bb diff --git a/recipes-containers/lxcfs/files/systemd-allow-for-distinct-build-directory.patch b/recipes-containers/lxcfs/files/systemd-allow-for-distinct-build-directory.patch deleted file mode 100644 index 4d93cc3e..00000000 --- a/recipes-containers/lxcfs/files/systemd-allow-for-distinct-build-directory.patch +++ /dev/null @@ -1,49 +0,0 @@ -From 66a71fbf94020651880f1dbb6e4663d93391b47c Mon Sep 17 00:00:00 2001 -From: Mark Asselstine -Date: Mon, 10 Sep 2018 13:14:07 -0400 -Subject: [PATCH] systemd: allow for distinct build directory - -The Makefile.am is currently written in a way that doesn't allow for a -distinct build directory. As such we get the error: - - install: cannot stat 'lxcfs.service': No such file or directory - -Make use of $(srcdir) to correct this. - -Upstream-Status: Inappropriate [embedded specific] - -Signed-off-by: Mark Asselstine ---- - config/init/systemd/Makefile.am | 2 +- - config/init/systemd/Makefile.in | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/config/init/systemd/Makefile.am b/config/init/systemd/Makefile.am -index 79e96f5..d6933f9 100644 ---- a/config/init/systemd/Makefile.am -+++ b/config/init/systemd/Makefile.am -@@ -5,7 +5,7 @@ SYSTEMD_UNIT_DIR = /lib/systemd/system - - install-systemd: lxcfs.service - $(MKDIR_P) $(DESTDIR)$(SYSTEMD_UNIT_DIR) -- $(INSTALL_DATA) lxcfs.service $(DESTDIR)$(SYSTEMD_UNIT_DIR)/ -+ $(INSTALL_DATA) $(srcdir)/lxcfs.service $(DESTDIR)$(SYSTEMD_UNIT_DIR)/ - - uninstall-systemd: - rm -f $(DESTDIR)$(SYSTEMD_UNIT_DIR)/lxcfs.service -diff --git a/config/init/systemd/Makefile.in b/config/init/systemd/Makefile.in -index d433e8a..430190c 100644 ---- a/config/init/systemd/Makefile.in -+++ b/config/init/systemd/Makefile.in -@@ -450,7 +450,7 @@ uninstall-am: uninstall-local - - @INIT_SCRIPT_SYSTEMD_TRUE@install-systemd: lxcfs.service - @INIT_SCRIPT_SYSTEMD_TRUE@ $(MKDIR_P) $(DESTDIR)$(SYSTEMD_UNIT_DIR) --@INIT_SCRIPT_SYSTEMD_TRUE@ $(INSTALL_DATA) lxcfs.service $(DESTDIR)$(SYSTEMD_UNIT_DIR)/ -+@INIT_SCRIPT_SYSTEMD_TRUE@ $(INSTALL_DATA) $(srcdir)/lxcfs.service $(DESTDIR)$(SYSTEMD_UNIT_DIR)/ - - @INIT_SCRIPT_SYSTEMD_TRUE@uninstall-systemd: - @INIT_SCRIPT_SYSTEMD_TRUE@ rm -f $(DESTDIR)$(SYSTEMD_UNIT_DIR)/lxcfs.service --- -2.7.4 - diff --git a/recipes-containers/lxcfs/files/systemd-ensure-var-lib-lxcfs-exists.patch b/recipes-containers/lxcfs/files/systemd-ensure-var-lib-lxcfs-exists.patch deleted file mode 100644 index 9f6f338d..00000000 --- a/recipes-containers/lxcfs/files/systemd-ensure-var-lib-lxcfs-exists.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 89bf4b64e810e174068e7861490e6d6ab2d14854 Mon Sep 17 00:00:00 2001 -From: Mark Asselstine -Date: Mon, 10 Sep 2018 15:01:54 -0400 -Subject: [PATCH] systemd: ensure /var/lib/lxcfs exists - -If the directory doesn't exist the service will fail to start. - -Upstream-Status: Inappropriate [embedded specific] - -Signed-off-by: Mark Asselstine ---- - config/init/systemd/lxcfs.service | 1 + - 1 file changed, 1 insertion(+) - -Index: lxcfs-4.0.7/config/init/systemd/lxcfs.service -=================================================================== ---- lxcfs-4.0.7.orig/config/init/systemd/lxcfs.service -+++ lxcfs-4.0.7/config/init/systemd/lxcfs.service -@@ -5,6 +5,7 @@ - Documentation=man:lxcfs(1) - - [Service] -+ExecStartPre=-/bin/mkdir /var/lib/lxcfs - ExecStart=/usr/bin/lxcfs /usr/local/var/lib/lxcfs - KillMode=process - Restart=on-failure diff --git a/recipes-containers/lxcfs/lxcfs/0001-meson.build-force-pid-open-send_signal-detection.patch b/recipes-containers/lxcfs/lxcfs/0001-meson.build-force-pid-open-send_signal-detection.patch new file mode 100644 index 00000000..5f21a956 --- /dev/null +++ b/recipes-containers/lxcfs/lxcfs/0001-meson.build-force-pid-open-send_signal-detection.patch @@ -0,0 +1,38 @@ +From 65fcb73cdef34609f28461424672551a6e65327e Mon Sep 17 00:00:00 2001 +From: Bruce Ashfield +Date: Thu, 3 Aug 2023 15:01:42 +0000 +Subject: [PATCH] meson.build: force pid open/send_signal detection + +meson is not correctly detecting that our cross build environment +has the pid* definitions, which leads to compile errors when internal +definitions conflict: + + lxcfs-5.0.4/src/utils.h:45:19: error: static declaration of 'pidfd_open' follows non-static declaration + +We could possibly generate a meson.cross file, and specify it via +--cross-file, but we can just force the detection to 'true' as we +don't have to support configurations without the functionality. + +Upstream-Status: Inappropriate [OE-Specific] + +Signed-off-by: Bruce Ashfield +--- + meson.build | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/meson.build b/meson.build +index a0289ad..9480c30 100644 +--- a/meson.build ++++ b/meson.build +@@ -143,6 +143,8 @@ foreach ident: [ + ] + have = cc.has_function(ident[0], prefix: ident[1], args: '-D_GNU_SOURCE') + conf.set10('HAVE_' + ident[0].to_upper(), have) ++ conf.set10('HAVE_PIDFD_OPEN', true) ++ conf.set10('HAVE_PIDFD_SEND_SIGNAL', true) + endforeach + + fuse_version = get_option('fuse-version') +-- +2.39.2 + diff --git a/recipes-containers/lxcfs/lxcfs_4.0.7.bb b/recipes-containers/lxcfs/lxcfs_4.0.7.bb deleted file mode 100644 index 364f9200..00000000 --- a/recipes-containers/lxcfs/lxcfs_4.0.7.bb +++ /dev/null @@ -1,26 +0,0 @@ -SUMMARY = "LXCFS is a userspace filesystem created to avoid kernel limitations" -LICENSE = "LGPL-2.1-or-later" - -inherit autotools pkgconfig systemd - -SRC_URI = " \ - https://linuxcontainers.org/downloads/lxcfs/lxcfs-${PV}.tar.gz \ - file://systemd-allow-for-distinct-build-directory.patch \ - file://systemd-ensure-var-lib-lxcfs-exists.patch \ - file://0001-bindings-fix-build-with-newer-linux-libc-headers.patch \ -" - -LIC_FILES_CHKSUM = "file://COPYING;md5=29ae50a788f33f663405488bc61eecb1" -SRC_URI[md5sum] = "9d963976207fb0ca4701428ae0587aeb" -SRC_URI[sha256sum] = "3f28e2f4b04c0090aaf88b72666505f0313768a5254dd48a14c43cf78c543ec8" - -DEPENDS += "fuse" -RDEPENDS:${PN} += "fuse" - -FILES:${PN} += "${datadir}/lxc/config/common.conf.d/*" - -CACHED_CONFIGUREVARS += "ac_cv_path_HELP2MAN='false // No help2man //'" -EXTRA_OECONF += "--with-distro=unknown --with-init-script=${VIRTUAL-RUNTIME_init_manager}" - -SYSTEMD_PACKAGES = "${PN}" -SYSTEMD_SERVICE:${PN} = "lxcfs.service" diff --git a/recipes-containers/lxcfs/lxcfs_5.0.4.bb b/recipes-containers/lxcfs/lxcfs_5.0.4.bb new file mode 100644 index 00000000..73ed97a7 --- /dev/null +++ b/recipes-containers/lxcfs/lxcfs_5.0.4.bb @@ -0,0 +1,25 @@ +SUMMARY = "LXCFS is a userspace filesystem created to avoid kernel limitations" +LICENSE = "LGPL-2.1-or-later" + +inherit meson pkgconfig systemd + +SRC_URI = " \ + https://linuxcontainers.org/downloads/lxcfs/lxcfs-${PV}.tar.gz \ + file://0001-bindings-fix-build-with-newer-linux-libc-headers.patch \ + file://0001-meson.build-force-pid-open-send_signal-detection.patch \ +" + +LIC_FILES_CHKSUM = "file://COPYING;md5=29ae50a788f33f663405488bc61eecb1" +SRC_URI[md5sum] = "00a6632e094d0a2f2308c8365ac91912" +SRC_URI[sha256sum] = "c2b361edc881d5ca8fa2cd3260a4999b8f87afce8d937be2160e5cf0b482c52f" + +DEPENDS += "fuse python3-jinja2-native help2man-native systemd" +RDEPENDS:${PN} += "fuse" + +FILES:${PN} += "${datadir}/lxc/config/common.conf.d/*" + +# help2man doesn't work, so we disable docs +EXTRA_OEMESON += "-Dinit-script=${VIRTUAL-RUNTIME_init_manager} -Ddocs=false" + +SYSTEMD_PACKAGES = "${PN}" +SYSTEMD_SERVICE:${PN} = "lxcfs.service" -- cgit v1.2.3-54-g00ecf