Accepting request 977879 from home:tiwai:branches:devel:tools

- Update to criu 3.17:
  New features:
  * Introduced mount-v2 engine
  * Added support for MAP_HUGETLB mappings
  * Added support for Linux Restartable Sequences
  * Added support for SOCK_SEQPACKET unix sockets
  * CRIU AMD GPU plugin
  Bugfixes:
  * GCC 12 compatibility fixes
  * cgroup: fix --manage-cgroups=ignore
  * several memory leaks fixed in net, files, mount, tun and config
    subsystems
  * Improvements:
  * bpf: switch from deprecated bpf_create_map_xattr to bpf_map_create
  * bpfmap: handle map_extra field
  * setsockopt(SO_BUF_LOCK) support for tcp sockets
- New criu-plugin-amdgpu sub-package for AMDGPU ROCm plugin, enabled
  only for x86_64 and aarch64.
- Build fixes for plugins:
  criu-amdgpu-plugin-fix.patch
- Change the plugin install path to $libdir/criu:
  plugin-dir-path.patch

OBS-URL: https://build.opensuse.org/request/show/977879
OBS-URL: https://build.opensuse.org/package/show/devel:tools/criu?expand=0&rev=109
This commit is contained in:
Takashi Iwai 2022-05-18 07:36:00 +00:00 committed by Git OBS Bridge
parent f3a23015e4
commit fd3d011d18
7 changed files with 165 additions and 9 deletions

View File

@ -12,7 +12,7 @@ Signed-off-by: Takashi Iwai <tiwai@suse.de>
--- a/Makefile.config
+++ b/Makefile.config
@@ -30,13 +30,16 @@ else
@@ -38,13 +38,16 @@ else
endif
ifeq ($(call pkg-config-check,libnftables),y)
@ -31,7 +31,7 @@ Signed-off-by: Takashi Iwai <tiwai@suse.de>
else
$(warning Warn: you have libnftables installed but it has incompatible API)
$(warning Warn: Building without nftables support)
@@ -67,7 +70,7 @@ endif
@@ -75,7 +78,7 @@ endif
endif
export DEFINES += $(FEATURE_DEFINES)
@ -39,4 +39,4 @@ Signed-off-by: Takashi Iwai <tiwai@suse.de>
+export CFLAGS += $(FEATURE_DEFINES) $(FEATURE_CFLAGS)
FEATURES_LIST := TCP_REPAIR STRLCPY STRLCAT PTRACE_PEEKSIGINFO \
SETPROCTITLE_INIT MEMFD TCP_REPAIR_WINDOW FSCONFIG MEMFD_CREATE
SETPROCTITLE_INIT MEMFD TCP_REPAIR_WINDOW FSCONFIG MEMFD_CREATE OPENAT2

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:13d6e2f99a34abf83ec2b9777af5bd069e739bf38582857c7f4c19a355a2b0b5
size 1228535

3
criu-3.17.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:79744c938e33032951a41af45724be7ee9004445be8b4e4f3c59e0f7438168e7
size 1321713

View File

@ -0,0 +1,48 @@
---
plugins/amdgpu/Makefile | 9 +++++----
plugins/amdgpu/kfd_ioctl.h | 2 +-
2 files changed, 6 insertions(+), 5 deletions(-)
--- a/plugins/amdgpu/Makefile
+++ b/plugins/amdgpu/Makefile
@@ -5,7 +5,8 @@ PLUGIN_SOBJ := amdgpu_plugin.so
PLUGIN_INCLUDE := -iquote../../../criu/include
PLUGIN_INCLUDE += -iquote../../criu/include
PLUGIN_INCLUDE += -iquote../../criu/arch/$(ARCH)/include/
-PLUGIN_INCLUDE += -iquote../../
+PLUGIN_INCLUDE += -iquote../../include
+PLUGIN_INCLUDE += -iquote../..
COMPEL := ../../compel/compel-host
LIBDRM_INC := -I/usr/include/libdrm
@@ -50,16 +51,16 @@ clean: amdgpu_plugin_clean amdgpu_plugin
mrproper: clean
install:
- $(Q) mkdir -p $(PLUGINDIR)
+ $(Q) mkdir -p $(DESTDIR)$(PLUGINDIR)
ifeq ($(CONFIG_AMDGPU),y)
$(E) " INSTALL " $(PLUGIN_NAME)
- $(Q) install -m 644 $(PLUGIN_SOBJ) $(PLUGINDIR)
+ $(Q) install -m 644 $(PLUGIN_SOBJ) $(DESTDIR)$(PLUGINDIR)
endif
.PHONY: install
uninstall:
ifeq ($(CONFIG_AMDGPU),y)
$(E) " UNINSTALL" $(PLUGIN_NAME)
- $(Q) $(RM) $(PLUGINDIR)/$(PLUGIN_SOBJ)
+ $(Q) $(RM) $(DESTDIR)$(PLUGINDIR)/$(PLUGIN_SOBJ)
endif
.PHONY: uninstall
--- a/plugins/amdgpu/kfd_ioctl.h
+++ b/plugins/amdgpu/kfd_ioctl.h
@@ -23,7 +23,7 @@
#ifndef KFD_IOCTL_H_INCLUDED
#define KFD_IOCTL_H_INCLUDED
-#include <drm/drm.h>
+#include <libdrm/drm.h>
#include <linux/ioctl.h>
/*

View File

@ -1,3 +1,29 @@
-------------------------------------------------------------------
Wed May 18 07:01:20 UTC 2022 - Takashi Iwai <tiwai@suse.com>
- Update to criu 3.17:
New features:
* Introduced mount-v2 engine
* Added support for MAP_HUGETLB mappings
* Added support for Linux Restartable Sequences
* Added support for SOCK_SEQPACKET unix sockets
* CRIU AMD GPU plugin
Bugfixes:
* GCC 12 compatibility fixes
* cgroup: fix --manage-cgroups=ignore
* several memory leaks fixed in net, files, mount, tun and config
subsystems
* Improvements:
* bpf: switch from deprecated bpf_create_map_xattr to bpf_map_create
* bpfmap: handle map_extra field
* setsockopt(SO_BUF_LOCK) support for tcp sockets
- New criu-plugin-amdgpu sub-package for AMDGPU ROCm plugin, enabled
only for x86_64 and aarch64.
- Build fixes for plugins:
criu-amdgpu-plugin-fix.patch
- Change the plugin install path to $libdir/criu:
plugin-dir-path.patch
-------------------------------------------------------------------
Wed Dec 15 08:29:36 CET 2021 - tiwai@suse.de

View File

@ -1,7 +1,7 @@
#
# spec file for package criu
#
# Copyright (c) 2021 SUSE LLC
# Copyright (c) 2022 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@ -25,10 +25,16 @@
%define _lto_cflags %{nil}
%endif
%ifarch x86_64 aarch64
%define with_amdgpu_plugin 1
%else
%define with_amdgpu_plugin 0
%endif
%define proto_c_ver %(protoc-c --version | head -1 | awk '{print $2}')
Name: criu
Version: 3.16.1
Version: 3.17
Release: 0
Summary: Checkpoint/Restore In Userspace Tools
License: GPL-2.0-only
@ -37,7 +43,12 @@ URL: https://criu.org/
Source0: http://github.com/checkpoint-restore/criu/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz
Patch1: criu-py-install-fix.diff
Patch2: 0002-Fix-build-with-nftables-installed-in-different-direc.patch
Patch3: criu-amdgpu-plugin-fix.patch
Patch4: plugin-dir-path.patch
BuildRequires: libcap-devel
%if %{with_amdgpu_plugin}
BuildRequires: libdrm-devel
%endif
BuildRequires: libgnutls-devel
BuildRequires: libnet-devel
BuildRequires: libnl3-devel
@ -68,6 +79,17 @@ operating system. Using this tool, you can freeze a running application
files. You can then use the files to restore and run the application from
the point it was frozen at.
%if %{with_amdgpu_plugin}
%package plugin-amdgpu
Summary: AMDGPU plugin for CRIU
License: GPL-2.0-only
Group: System/Console
Requires: %{name} = %{version}
%description plugin-amdgpu
This package contains the AMDGPU ROCm support plugin for CRIU.
%endif
%package -n libcriu2
Summary: Library for CRIU
License: LGPL-2.1-only
@ -101,6 +123,8 @@ to develop applications with CRIU library.
%setup -q
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
# default off
echo "BINFMT_MISC_VIRTUALIZED" > .config
@ -111,7 +135,10 @@ export CFLAGS="%{optflags}"
export CFLAGS="$CFLAGS -Wno-error=deprecated"
%endif
# WERROR=0 is needed for avoiding warning due to doubly _GNU_SOURCE defines
make V=1 %{?_smp_mflags} %{?make_options} WERROR=0
make V=1 %{?_smp_mflags} %{?make_options} WERROR=0 \
PREFIX=%{_prefix} \
LIBDIR=%{_libdir} \
LIBEXECDIR=%{_libexecdir}
%install
%make_install V=1 %{?make_options} WERROR=0 \
@ -128,6 +155,10 @@ rm -f %{buildroot}%{_includedir}/compel/plugins/std/asm/.gitignore
ln -s criu %{buildroot}%{_sbindir}/crtools
ln -s criu.8 %{buildroot}%{_mandir}/man8/crtools.8
%if ! %{with_amdgpu_plugin}
rm -f %{buildroot}%{_mandir}/man1/amdgpu_plugin.1
%endif
%post -n libcriu2 -p /sbin/ldconfig
%postun -n libcriu2 -p /sbin/ldconfig
%post -n libcompel1 -p /sbin/ldconfig
@ -151,6 +182,14 @@ ln -s criu.8 %{buildroot}%{_mandir}/man8/crtools.8
%{python3_sitelib}/crit-*.egg-info
%{python3_sitelib}/pycriu
%if %{with_amdgpu_plugin}
%files plugin-amdgpu
%doc plugins/amdgpu/README.md
%{_mandir}/man1/amdgpu_plugin.1%{?ext_man}
%dir %{_libdir}/criu
%{_libdir}/criu/amdgpu_plugin.so
%endif
%files -n libcriu2
%{_libdir}/libcriu.so.*

43
plugin-dir-path.patch Normal file
View File

@ -0,0 +1,43 @@
---
Makefile.install | 3 ++-
criu/Makefile | 3 +++
criu/include/plugin.h | 2 +-
3 files changed, 6 insertions(+), 2 deletions(-)
--- a/Makefile.install
+++ b/Makefile.install
@@ -5,9 +5,10 @@ BINDIR ?= $(PREFIX)/bin
SBINDIR ?= $(PREFIX)/sbin
MANDIR ?= $(PREFIX)/share/man
INCLUDEDIR ?= $(PREFIX)/include
+LIBDIR ?= $(PREFIX)/lib
LIBEXECDIR ?= $(PREFIX)/libexec
RUNDIR ?= /run
-PLUGINDIR ?= /var/lib/criu
+PLUGINDIR ?= $(LIBDIR)/criu
#
# For recent Debian/Ubuntu with multiarch support.
--- a/criu/include/plugin.h
+++ b/criu/include/plugin.h
@@ -5,7 +5,7 @@
#include "common/compiler.h"
#include "common/list.h"
-#define CR_PLUGIN_DEFAULT "/var/lib/criu/"
+#define CR_PLUGIN_DEFAULT LIBDIR "/criu/"
void cr_plugin_fini(int stage, int err);
int cr_plugin_init(int stage);
--- a/criu/Makefile
+++ b/criu/Makefile
@@ -29,6 +29,9 @@ CFLAGS += -iquote $(ARCH_DIR)/include
CFLAGS += -iquote .
CFLAGS += $(shell $(PKG_CONFIG) --cflags libnl-3.0)
CFLAGS += $(CONFIG-DEFINES)
+CFLAGS += -DINCLUDEDIR=\"$(INCLUDEDIR)\"
+CFLAGS += -DLIBEXECDIR=\"$(LIBEXECDIR)\"
+CFLAGS += -DLIBDIR=\"$(LIBDIR)\"
ifeq ($(GMON),1)
CFLAGS += -pg