[packages/lxc] - updated to 5.0.2, now uses meson - removed outdated no-Werror,glibc2_36 patches

qboosh qboosh at pld-linux.org
Sun Feb 5 20:04:05 CET 2023


commit 039619aee9cd79d4755c80e6f2e2a513c4a61511
Author: Jakub Bogusz <qboosh at pld-linux.org>
Date:   Sun Feb 5 20:05:29 2023 +0100

    - updated to 5.0.2, now uses meson
    - removed outdated no-Werror,glibc2_36 patches

 glibc2_36.patch | 142 --------------------------------------------------------
 lxc-pld.patch   |  30 ++++++++++++
 lxc.spec        |  84 +++++++++++++++------------------
 no-Werror.patch |  20 --------
 4 files changed, 67 insertions(+), 209 deletions(-)
---
diff --git a/lxc.spec b/lxc.spec
index fa58d95..70f1eb8 100644
--- a/lxc.spec
+++ b/lxc.spec
@@ -7,28 +7,26 @@
 %bcond_without	seccomp		# SecComp syscall filter
 %bcond_without	static		# static init.lxc variant
 %bcond_with	selinux		# SELinux support
+%bcond_with	uring		# io-uring based event loop
 %bcond_without	pam		# cgfs PAM module
 
 Summary:	Linux Containers userspace tools
 Summary(pl.UTF-8):	Narzędzia do kontenerów linuksowych (LXC)
 Name:		lxc
-Version:	4.0.12
+Version:	5.0.2
 Release:	1
 License:	LGPL v2.1+
 Group:		Applications/System
 Source0:	https://linuxcontainers.org/downloads/lxc/%{name}-%{version}.tar.gz
-# Source0-md5:	4818cb60b1418ca97a8d7c159f9f872b
+# Source0-md5:	e4e4aada334fb282f9af9b3bd2aa3ad7
 Source1:	%{name}-pld.in.sh
 # lxc-net based on bridge, macvlan is an alternative/supported lxc network
 Source2:	%{name}_macvlan.sysconfig
 Source3:	%{name}_macvlan
+Patch0:		%{name}-pld.patch
 Patch1:		%{name}-net.patch
 Patch2:		x32.patch
-Patch3:		no-Werror.patch
-Patch4:		glibc2_36.patch
 URL:		https://www.linuxcontainers.org/
-BuildRequires:	autoconf >= 2.50
-BuildRequires:	automake
 BuildRequires:	docbook-dtd45-xml
 BuildRequires:	docbook2X >= 0.8
 BuildRequires:	doxygen
@@ -38,12 +36,14 @@ BuildRequires:	gnutls-devel
 %{?with_apparmor:BuildRequires:	libapparmor-devel}
 BuildRequires:	libcap-devel
 %{?with_static:BuildRequires:	libcap-static}
-%{?with_seccomp:BuildRequires:	libseccomp-devel}
-BuildRequires:	libtool >= 2:2
+%{?with_seccomp:BuildRequires:	libseccomp-devel >= 2.5.0}
+%{?with_uring:BuildRequires:	liburing-devel}
 BuildRequires:	libxslt-progs
+BuildRequires:	meson >= 0.61
+BuildRequires:	ninja >= 1.5
 %{?with_pam:BuildRequires:	pam-devel}
 BuildRequires:	pkgconfig
-BuildRequires:	rpmbuild(macros) >= 1.671
+BuildRequires:	rpmbuild(macros) >= 1.736
 BuildRequires:	sed >= 4.0
 Requires(post):	/sbin/ldconfig
 Requires(post,preun):	/sbin/chkconfig
@@ -105,6 +105,7 @@ użytkownik może administrować.
 Summary:	liblxc library
 Summary(pl.UTF-8):	Biblioteka liblxc
 Group:		Libraries
+%{?with_seccomp:Requires:	libseccomp >= 2.5.0}
 Conflicts:	lxc < 2.0.4-2
 
 %description libs
@@ -153,52 +154,37 @@ bashowe uzupełnianie nazw dla LXC.
 
 %prep
 %setup -q
+%patch0 -p1
 %patch1 -p1
 %patch2 -p1
-%patch3 -p1
-%patch4 -p1
 
 cp -p %{SOURCE1} templates/lxc-pld.in
 
+%{__sed} -i -e "/^pam_security =/ s!libdir,!'/', '%{_lib}',!" meson.build
+
 %build
-%{__libtoolize}
-%{__aclocal} -I config
-%{__autoconf}
-%{__autoheader}
-%{__automake}
-%configure \
-	bashcompdir=%{bash_compdir} \
-	db2xman=docbook2X2man \
-	--disable-rpath \
-	%{__enable_disable apparmor} \
-	--enable-bash \
-	--enable-doc \
-	--enable-examples \
-	%{?with_pam:--enable-pam} \
-	%{__enable_disable seccomp} \
-	%{__enable_disable selinux} \
-	--with-config-path=%{configpath} \
-	--with-distro=pld \
-	--with-init-script=sysvinit,systemd \
-	--with-runtime-path=/var/run
-
-%{__make}
-%{__make} -C doc
+%meson build \
+	%{!?with_apparmor:-Dapparmor=false} \
+	-Ddata-path=%{configpath} \
+	-Ddistrosysconfdir=/etc/sysconfig \
+	-Dinit-script=sysvinit,systemd \
+	%{?with_uring:-Dio-uring-event-loop} \
+	%{?with_pam:-Dpam-cgroup=true} \
+	-Druntime-path=/var/run \
+	%{!?with_seccomp:-Dseccomp=false} \
+	%{!?with_selinux:-Dselinux=false} \
+	-Dsystemd-unitdir=%{systemdunitdir}
+
+%ninja_build -C build
 
 %install
 rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT{%{configpath},%{configpath}snap,/var/{cache,log}/lxc} \
-        -d $RPM_BUILD_ROOT/etc/{rc.d/init.d,sysconfig}
-
-%{__make} install \
-	SYSTEMD_UNIT_DIR=%{systemdunitdir} \
-	pcdatadir=%{_pkgconfigdir} \
-	DESTDIR=$RPM_BUILD_ROOT
+install -d $RPM_BUILD_ROOT{%{configpath},%{configpath}snap,/var/log/lxc}
 
-%{__make} -C doc install \
-	DESTDIR=$RPM_BUILD_ROOT
+%ninja_install -C build
 
-%{__rm} $RPM_BUILD_ROOT%{_libdir}/liblxc.la
+# keep compatible name
+%{__mv} $RPM_BUILD_ROOT/etc/rc.d/init.d/{lxc-containers,lxc}
 
 %{__rm} -r $RPM_BUILD_ROOT%{_docdir}
 
@@ -236,7 +222,7 @@ fi
 
 %files
 %defattr(644,root,root,755)
-%doc AUTHORS CONTRIBUTING MAINTAINERS README  doc/FAQ.txt doc/examples/*.conf
+%doc AUTHORS COPYING MAINTAINERS README.md  doc/FAQ.txt build/doc/examples/*.conf
 %attr(755,root,root) %{_bindir}/lxc-attach
 %attr(755,root,root) %{_bindir}/lxc-autostart
 %attr(755,root,root) %{_bindir}/lxc-cgroup
@@ -271,6 +257,7 @@ fi
 
 %{systemdunitdir}/lxc.service
 %{systemdunitdir}/lxc at .service
+%{systemdunitdir}/lxc-monitord.service
 %{systemdunitdir}/lxc-net.service
 %dir %{_libdir}/%{name}
 %dir %{_libdir}/%{name}/rootfs
@@ -301,8 +288,11 @@ fi
 %{_datadir}/%{name}/config/oci.common.conf
 %{_datadir}/%{name}/config/userns.conf
 %dir %{_datadir}/%{name}/hooks
+%if %{with selinux}
 %dir %{_datadir}/%{name}/selinux
-%{_datadir}/%{name}/selinux/*
+%{_datadir}/%{name}/selinux/lxc.if
+%{_datadir}/%{name}/selinux/lxc.te
+%endif
 %dir %{_datadir}/%{name}/templates
 %attr(755,root,root) %{_datadir}/%{name}/hooks/clonehostname
 %attr(755,root,root) %{_datadir}/%{name}/hooks/dhclient
@@ -386,5 +376,5 @@ fi
 
 %files -n bash-completion-%{name}
 %defattr(644,root,root,755)
-%{bash_compdir}/lxc
+%{bash_compdir}/_lxc
 %{bash_compdir}/lxc-*
diff --git a/glibc2_36.patch b/glibc2_36.patch
deleted file mode 100644
index e18a3c2..0000000
--- a/glibc2_36.patch
+++ /dev/null
@@ -1,142 +0,0 @@
-From c1115e1503bf955c97f4cf3b925a6a9f619764c3 Mon Sep 17 00:00:00 2001
-From: Christian Brauner <brauner at kernel.org>
-Date: Tue, 9 Aug 2022 16:14:25 +0200
-Subject: [PATCH] build: detect where struct mount_attr is declared
-
-Fixes: #4176
-Signed-off-by: Christian Brauner (Microsoft) <christian.brauner at ubuntu.com>
-[Retrieved from:
-https://github.com/lxc/lxc/commit/c1115e1503bf955c97f4cf3b925a6a9f619764c3]
-Signed-off-by: Fabrice Fontaine <fontaine.fabrice at gmail.com>
----
- src/lxc/conf.c             |  6 +++---
- src/lxc/conf.h             |  2 +-
- src/lxc/mount_utils.c      |  6 +++---
- src/lxc/syscall_wrappers.h | 12 ++++++++++--
- 5 files changed, 45 insertions(+), 11 deletions(-)
-
-diff --git a/src/lxc/conf.c b/src/lxc/conf.c
-index ffbe74c2f6..4193cd07f5 100644
---- a/src/lxc/conf.c
-+++ b/src/lxc/conf.c
-@@ -2885,7 +2885,7 @@ static int __lxc_idmapped_mounts_child(struct lxc_handler *handler, FILE *f)
- 		struct lxc_mount_options opts = {};
- 		int dfd_from;
- 		const char *source_relative, *target_relative;
--		struct lxc_mount_attr attr = {};
-+		struct mount_attr attr = {};
- 
- 		ret = parse_lxc_mount_attrs(&opts, mntent.mnt_opts);
- 		if (ret < 0)
-@@ -3005,7 +3005,7 @@ static int __lxc_idmapped_mounts_child(struct lxc_handler *handler, FILE *f)
- 
- 		/* Set propagation mount options. */
- 		if (opts.attr.propagation) {
--			attr = (struct lxc_mount_attr) {
-+			attr = (struct mount_attr) {
- 				.propagation = opts.attr.propagation,
- 			};
- 
-@@ -4109,7 +4109,7 @@ int lxc_idmapped_mounts_parent(struct lxc_handler *handler)
- 
- 	for (;;) {
- 		__do_close int fd_from = -EBADF, fd_userns = -EBADF;
--		struct lxc_mount_attr attr = {};
-+		struct mount_attr attr = {};
- 		struct lxc_mount_options opts = {};
- 		ssize_t ret;
- 
-diff --git a/src/lxc/conf.h b/src/lxc/conf.h
-index 7dc2f15b60..772479f9e1 100644
---- a/src/lxc/conf.h
-+++ b/src/lxc/conf.h
-@@ -223,7 +223,7 @@ struct lxc_mount_options {
- 	unsigned long mnt_flags;
- 	unsigned long prop_flags;
- 	char *data;
--	struct lxc_mount_attr attr;
-+	struct mount_attr attr;
- 	char *raw_options;
- };
- 
-diff --git a/src/lxc/mount_utils.c b/src/lxc/mount_utils.c
-index bba75f933c..88dd73ee36 100644
---- a/src/lxc/mount_utils.c
-+++ b/src/lxc/mount_utils.c
-@@ -31,7 +31,7 @@ lxc_log_define(mount_utils, lxc);
-  * setting in @attr_set, but must also specify MOUNT_ATTR__ATIME in the
-  * @attr_clr field.
-  */
--static inline void set_atime(struct lxc_mount_attr *attr)
-+static inline void set_atime(struct mount_attr *attr)
- {
- 	switch (attr->attr_set & MOUNT_ATTR__ATIME) {
- 	case MOUNT_ATTR_RELATIME:
-@@ -272,7 +272,7 @@ int create_detached_idmapped_mount(const char *path, int userns_fd,
- {
- 	__do_close int fd_tree_from = -EBADF;
- 	unsigned int open_tree_flags = OPEN_TREE_CLONE | OPEN_TREE_CLOEXEC;
--	struct lxc_mount_attr attr = {
-+	struct mount_attr attr = {
- 		.attr_set	= MOUNT_ATTR_IDMAP | attr_set,
- 		.attr_clr	= attr_clr,
- 		.userns_fd	= userns_fd,
-@@ -335,7 +335,7 @@ int __fd_bind_mount(int dfd_from, const char *path_from, __u64 o_flags_from,
- 		    __u64 attr_clr, __u64 propagation, int userns_fd,
- 		    bool recursive)
- {
--	struct lxc_mount_attr attr = {
-+	struct mount_attr attr = {
- 		.attr_set	= attr_set,
- 		.attr_clr	= attr_clr,
- 		.propagation	= propagation,
-diff --git a/src/lxc/syscall_wrappers.h b/src/lxc/syscall_wrappers.h
-index a5e98b565c..c8a7d0c7b7 100644
---- a/src/lxc/syscall_wrappers.h
-+++ b/src/lxc/syscall_wrappers.h
-@@ -18,6 +18,12 @@
- #include "macro.h"
- #include "syscall_numbers.h"
- 
-+#if HAVE_STRUCT_MOUNT_ATTR
-+#include <sys/mount.h>
-+#elif HAVE_UAPI_STRUCT_MOUNT_ATTR
-+#include <linux/mount.h>
-+#endif
-+
- #ifdef HAVE_LINUX_MEMFD_H
- #include <linux/memfd.h>
- #endif
-@@ -210,16 +216,18 @@ extern int fsmount(int fs_fd, unsigned int flags, unsigned int attr_flags);
- /*
-  * mount_setattr()
-  */
--struct lxc_mount_attr {
-+#if !HAVE_STRUCT_MOUNT_ATTR && !HAVE_UAPI_STRUCT_MOUNT_ATTR
-+struct mount_attr {
- 	__u64 attr_set;
- 	__u64 attr_clr;
- 	__u64 propagation;
- 	__u64 userns_fd;
- };
-+#endif
- 
- #if !HAVE_MOUNT_SETATTR
- static inline int mount_setattr(int dfd, const char *path, unsigned int flags,
--				struct lxc_mount_attr *attr, size_t size)
-+				struct mount_attr *attr, size_t size)
- {
- 	return syscall(__NR_mount_setattr, dfd, path, flags, attr, size);
- }
---- a/configure.ac	2022-11-21 22:26:58.649999866 +0100
-+++ b/configure.ac	2022-11-21 23:13:32.826666552 +0100
-@@ -701,7 +701,8 @@
- # Check for some syscalls functions
- AC_CHECK_FUNCS([setns pivot_root sethostname unshare rand_r confstr faccessat gettid memfd_create move_mount open_tree execveat clone3 fsopen fspick fsconfig fsmount openat2 close_range statvfs mount_setattr sigdescr_np])
- AC_CHECK_TYPES([__aligned_u64], [], [], [[#include <linux/types.h>]])
--AC_CHECK_TYPES([struct mount_attr], [], [], [[#include <linux/mount.h>]])
-+AC_CHECK_TYPES([struct mount_attr], [], [], [[#include <sys/mount.h>]])
-+AC_CHECK_TYPES([struct mount_attr], AC_DEFINE(HAVE_UAPI_STRUCT_MOUNT_ATTR,1,[mount_attr from <linux/mount.h>]), [], [[#include <linux/mount.h>]])
- AC_CHECK_TYPES([struct open_how], [], [], [[#include <linux/openat2.h>]])
- AC_CHECK_TYPES([struct clone_args], [], [], [[#include <linux/sched.h>]])
- AC_CHECK_MEMBERS([struct clone_args.set_tid],[],[],[[#include <linux/sched.h>]])
diff --git a/lxc-pld.patch b/lxc-pld.patch
new file mode 100644
index 0000000..7fd7a96
--- /dev/null
+++ b/lxc-pld.patch
@@ -0,0 +1,30 @@
+--- lxc-5.0.2/config/init/sysvinit/meson.build.orig	2023-01-16 22:08:50.000000000 +0100
++++ lxc-5.0.2/config/init/sysvinit/meson.build	2023-02-03 21:59:16.701939506 +0100
+@@ -6,12 +6,12 @@ if 'sysvinit' in init_script
+         input: 'lxc-containers.in',
+         output: 'lxc-containers',
+         install: true,
+-        install_dir: join_paths(sysconfdir, 'init.d'))
++        install_dir: join_paths(sysconfdir, 'rc.d', 'init.d'))
+ 
+     configure_file(
+         configuration: conf,
+         input: 'lxc-net.in',
+         output: 'lxc-net',
+         install: true,
+-        install_dir: join_paths(sysconfdir, 'init.d'))
++        install_dir: join_paths(sysconfdir, 'rc.d', 'init.d'))
+ endif
+--- lxc-5.0.2/templates/meson.build.orig	2023-01-16 22:08:50.000000000 +0100
++++ lxc-5.0.2/templates/meson.build	2023-02-03 22:00:05.935006121 +0100
+@@ -27,3 +27,10 @@ template_scripts = configure_file(
+     output: 'lxc-oci',
+     install: true,
+     install_dir: lxctemplatedir)
++
++template_scripts = configure_file(
++    configuration: conf,
++    input: 'lxc-pld.in',
++    output: 'lxc-pld',
++    install: true,
++    install_dir: lxctemplatedir)
diff --git a/no-Werror.patch b/no-Werror.patch
deleted file mode 100644
index dddf1b7..0000000
--- a/no-Werror.patch
+++ /dev/null
@@ -1,20 +0,0 @@
---- lxc-4.0.8/configure.ac~	2021-04-30 20:16:25.000000000 +0200
-+++ lxc-4.0.8/configure.ac	2021-10-05 23:12:29.650523023 +0200
-@@ -39,7 +39,7 @@
- AC_CONFIG_SRCDIR([configure.ac])
- AC_CONFIG_AUX_DIR([config])
- AC_CONFIG_HEADERS([src/config.h])
--AM_INIT_AUTOMAKE([-Wall -Werror -Wno-portability subdir-objects])
-+AM_INIT_AUTOMAKE([-Wall -Wno-portability subdir-objects])
- AC_CANONICAL_HOST
- AM_PROG_CC_C_O
- AC_USE_SYSTEM_EXTENSIONS
-@@ -838,7 +838,7 @@
- 
- CFLAGS="$CFLAGS -Wvla -std=gnu11 -fms-extensions"
- if test "x$enable_werror" = "xyes"; then
--	CFLAGS="$CFLAGS -Werror"
-+	CFLAGS="$CFLAGS"
- fi
- 
- AC_ARG_ENABLE([thread-safety],
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/lxc.git/commitdiff/039619aee9cd79d4755c80e6f2e2a513c4a61511



More information about the pld-cvs-commit mailing list