From: mis Date: Tue, 22 Nov 2022 10:58:48 +0000 (+0100) Subject: - up to 4.24 X-Git-Tag: auto/th/lxd-4.24-1 X-Git-Url: http://git.pld-linux.org/gitweb.cgi?a=commitdiff_plain;h=158095497d4b3831b1e10199509db9fdfc1ce155;p=packages%2Flxd.git - up to 4.24 --- diff --git a/glibc2_36.patch b/glibc2_36.patch new file mode 100644 index 0000000..cfef656 --- /dev/null +++ b/glibc2_36.patch @@ -0,0 +1,69 @@ +--- a/shared/idmap/shift_linux.go 2022-03-11 04:52:20.000000000 +0100 ++++ b/shared/idmap/shift_linux.go 2022-11-22 09:18:23.513333279 +0100 +@@ -314,7 +314,7 @@ + static int create_detached_idmapped_mount(const char *path) + { + __do_close int fd_tree = -EBADF, fd_userns = -EBADF; +- struct lxc_mount_attr attr = { ++ struct mount_attr attr = { + .attr_set = MOUNT_ATTR_IDMAP, + .propagation = MS_SLAVE, + +--- a/lxd/include/syscall_wrappers.h 2022-11-22 09:10:03.053333289 +0100 ++++ b/lxd/include/syscall_wrappers.h 2022-11-22 09:20:55.586666611 +0100 +@@ -11,7 +11,7 @@ + #include + #include + #include +- ++#include + #include "syscall_numbers.h" + + #ifndef CLOSE_RANGE_UNSHARE +@@ -27,7 +27,7 @@ + return syscall(__NR_close_range, fd, max_fd, flags); + } + +-static inline int open_tree(int dfd, const char *filename, unsigned int flags) ++static inline int xopen_tree(int dfd, const char *filename, unsigned int flags) + { + return syscall(__NR_open_tree, dfd, filename, flags); + } +@@ -42,13 +42,13 @@ + __u64 userns_fd; + }; + +-static inline int mount_setattr(int dfd, const char *path, unsigned int flags, ++static inline int xmount_setattr(int dfd, const char *path, unsigned int flags, + struct lxc_mount_attr *attr, size_t size) + { + return syscall(__NR_mount_setattr, dfd, path, flags, attr, size); + } + +-static inline int move_mount(int from_dfd, const char *from_pathname, int to_dfd, ++static inline int xmove_mount(int from_dfd, const char *from_pathname, int to_dfd, + const char *to_pathname, unsigned int flags) + { + return syscall(__NR_move_mount, from_dfd, from_pathname, to_dfd, +--- a/lxd/main_checkfeature.go 2022-03-11 04:52:20.000000000 +0100 ++++ b/lxd/main_checkfeature.go 2022-11-22 10:54:47.506666609 +0100 +@@ -563,7 +563,7 @@ + static bool kernel_supports_idmapped_mounts(void) + { + __do_close int fd_devnull = -EBADF, fd_tree = -EBADF; +- struct lxc_mount_attr attr = { ++ struct mount_attr attr = { + .attr_set = MOUNT_ATTR_IDMAP, + + }; +--- a/lxd/main_nsexec.go 2022-03-11 04:52:20.000000000 +0100 ++++ b/lxd/main_nsexec.go 2022-11-22 10:59:03.776666604 +0100 +@@ -298,7 +298,7 @@ + int mount_detach_idmap(const char *path, int fd_userns) + { + __do_close int fd_tree = -EBADF; +- struct lxc_mount_attr attr = { ++ struct mount_attr attr = { + .attr_set = MOUNT_ATTR_IDMAP, + + }; diff --git a/lxd.init b/lxd.init index 1ed4147..1404f8c 100755 --- a/lxd.init +++ b/lxd.init @@ -43,14 +43,11 @@ start() { # lxd does not write pidfile, so create one show "Checking lxd daemon status" busy - pid="" - ntry=0 - while [ -z "$pid" -a $ntry -lt 5 ]; do - [ -z "$pid" ] && sleep 1 - pid=$(lxc info 2>/dev/null | awk '/server_pid:/{print $2}') - [ -n "$pid" ] && echo $pid > $pidfile - ntry=$(($ntry+1)) - done + + if lxd waitready --timeout=16 2>/dev/null; then + pid=$(lxc info 2>/dev/null | awk '/server_pid:/{print $2}') + [ -n "$pid" ] && echo $pid > $pidfile + fi if [ -n "$pid" ]; then touch /var/lock/subsys/lxd diff --git a/lxd.spec b/lxd.spec index ef5066c..8ade43d 100644 --- a/lxd.spec +++ b/lxd.spec @@ -1,27 +1,28 @@ Summary: Fast, dense and secure container and virtual machine management Name: lxd -Version: 3.22 +Version: 4.24 Release: 1 License: Apache v2.0 Group: Applications/System Source0: https://linuxcontainers.org/downloads/lxd/%{name}-%{version}.tar.gz -# Source0-md5: 3bbcfd764058f0383dfb599df635e0bb +# Source0-md5: 85313ed5ded11aad00e6376a8f140cc7 Source1: %{name}.service Source2: %{name}.init Source3: %{name}.sysconfig Source4: %{name}.sh +Patch1: glibc2_36.patch URL: http://linuxcontainers.org/ BuildRequires: acl-devel %ifarch %{x8664} arm aarch64 ppc64 BuildRequires: criu-devel >= 1.7 %endif -BuildRequires: dqlite-devel >= 1.4.0 -BuildRequires: golang >= 1.5 +BuildRequires: dqlite-devel >= 1.10.0 +BuildRequires: golang >= 1.18 BuildRequires: libco-devel BuildRequires: libuv-devel BuildRequires: lxc-devel >= 3.0 BuildRequires: pkgconfig -BuildRequires: raft-devel +BuildRequires: raft-devel >= 0.14.0 BuildRequires: rpmbuild(macros) >= 1.228 BuildRequires: udev-devel Requires(post,preun): /sbin/chkconfig @@ -37,6 +38,7 @@ Requires: squashfs # for sqfs2tar Requires: squashfs-tools-ng Requires: tar +Requires: uidmap Requires: uname(release) >= 4.1 Requires: xz Provides: group(lxd) @@ -45,7 +47,7 @@ BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) %define _enable_debug_packages 0 %define gobuild(o:) go build -ldflags "${LDFLAGS:-} -B 0x$(head -c20 /dev/urandom|od -An -tx1|tr -d ' \\n')" -a -v -x %{?**}; -%define goinstall go install -ldflags "${LDFLAGS:-} -B 0x$(head -c20 /dev/urandom|od -An -tx1|tr -d ' \\n')" -a -v -x +%define goinstall go install -ldflags "${LDFLAGS:-} -B 0x$(head -c20 /dev/urandom|od -An -tx1|tr -d ' \\n')" -a -v %define gopath %{_libdir}/golang %define import_path github.com/lxc/lxd %define _libexecdir %{_prefix}/lib @@ -77,6 +79,12 @@ Summary: LXD Agent This package contains lxd-agent program to be used inside virtual machines (not containers) managed by LXD. +%package tools +Summary: LXD Tools + +%description tools +This package contains lxd extra tools + %package -n bash-completion-%{name} Summary: bash-completion for %{name} Summary(pl.UTF-8): Bashowe dopełnianie parametrów dla %{name} @@ -93,14 +101,21 @@ Bashowe dopełnianie parametrów dla %{name} %prep %setup -q +%patch1 -p1 %build export GOPATH=$(pwd)/_dist export GOBIN=$GOPATH/bin +# flags from ArchLinux package +export GOFLAGS="-buildmode=pie -trimpath" +export CGO_LDFLAGS_ALLOW="-Wl,-z,now" %goinstall -tags libsqlite3 ./... -CGO_ENABLED=0 %goinstall -tags netgo ./lxd-p2c -%goinstall -tags agent ./lxd-agent +CGO_ENABLED=0 %goinstall -tags netgo ./lxd-migrate/... +%goinstall -tags agent ./lxd-agent/... + +# conflict +mv doc/README.md doc/README.doc.md %install rm -rf $RPM_BUILD_ROOT @@ -113,8 +128,8 @@ install -d $RPM_BUILD_ROOT{%{_bindir},%{_sbindir},%{_mandir}/man1,/etc/{rc.d/ini # lxd refuses to start containter without this directory install -d $RPM_BUILD_ROOT%{_libdir}/%{name}/rootfs -install -p _dist/bin/{lxd,lxd-agent,lxc-to-lxd,lxd-p2c} $RPM_BUILD_ROOT%{_sbindir} -install -p _dist/bin/{lxc,fuidshift} $RPM_BUILD_ROOT%{_bindir} +install -p _dist/bin/{lxd,lxd-user,lxd-agent} $RPM_BUILD_ROOT%{_sbindir} +install -p _dist/bin/{lxc,fuidshift,lxc-to-lxd,lxd-benchmark,lxd-migrate} $RPM_BUILD_ROOT%{_bindir} # FIXME: it seems that bash completions must be named as command (lxc), so # it conflicts with lxc completions (bash-completion-lxc) @@ -157,10 +172,8 @@ rm -rf $RPM_BUILD_ROOT %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/%{name} %attr(754,root,root) /etc/rc.d/init.d/%{name} %attr(755,root,root) %{_bindir}/lxc -%attr(755,root,root) %{_bindir}/fuidshift %attr(755,root,root) %{_sbindir}/lxd -%attr(755,root,root) %{_sbindir}/lxd-p2c -%attr(755,root,root) %{_sbindir}/lxc-to-lxd +%attr(755,root,root) %{_sbindir}/lxd-user %{systemdunitdir}/%{name}.service %dir %attr(750,root,root) %{_libdir}/%{name} %dir %attr(750,root,root) %{_libdir}/%{name}/rootfs @@ -179,6 +192,13 @@ rm -rf $RPM_BUILD_ROOT %defattr(644,root,root,755) %attr(755,root,root) %{_sbindir}/lxd-agent +%files tools +%defattr(644,root,root,755) +%attr(755,root,root) %{_bindir}/fuidshift +%attr(755,root,root) %{_bindir}/lxc-to-lxd +%attr(755,root,root) %{_bindir}/lxd-benchmark +%attr(755,root,root) %{_bindir}/lxd-migrate + %files -n bash-completion-%{name} %defattr(644,root,root,755) %{bash_compdir}/lxc