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 <bruce.ashfield@gmail.com>
This commit is contained in:
Bruce Ashfield 2023-08-03 15:18:33 +00:00
parent 6b10588476
commit 4ecc9488d1
4 changed files with 45 additions and 83 deletions

View File

@ -1,49 +0,0 @@
From 66a71fbf94020651880f1dbb6e4663d93391b47c Mon Sep 17 00:00:00 2001
From: Mark Asselstine <mark.asselstine@windriver.com>
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 <mark.asselstine@windriver.com>
---
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

View File

@ -1,26 +0,0 @@
From 89bf4b64e810e174068e7861490e6d6ab2d14854 Mon Sep 17 00:00:00 2001
From: Mark Asselstine <mark.asselstine@windriver.com>
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 <mark.asselstine@windriver.com>
---
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

View File

@ -0,0 +1,38 @@
From 65fcb73cdef34609f28461424672551a6e65327e Mon Sep 17 00:00:00 2001
From: Bruce Ashfield <bruce.ashfield@gmail.com>
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 <bruce.ashfield@gmail.com>
---
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

View File

@ -1,26 +1,25 @@
SUMMARY = "LXCFS is a userspace filesystem created to avoid kernel limitations"
LICENSE = "LGPL-2.1-or-later"
inherit autotools pkgconfig systemd
inherit meson 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 \
file://0001-meson.build-force-pid-open-send_signal-detection.patch \
"
LIC_FILES_CHKSUM = "file://COPYING;md5=29ae50a788f33f663405488bc61eecb1"
SRC_URI[md5sum] = "9d963976207fb0ca4701428ae0587aeb"
SRC_URI[sha256sum] = "3f28e2f4b04c0090aaf88b72666505f0313768a5254dd48a14c43cf78c543ec8"
SRC_URI[md5sum] = "00a6632e094d0a2f2308c8365ac91912"
SRC_URI[sha256sum] = "c2b361edc881d5ca8fa2cd3260a4999b8f87afce8d937be2160e5cf0b482c52f"
DEPENDS += "fuse"
DEPENDS += "fuse python3-jinja2-native help2man-native systemd"
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}"
# 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"