From 41da2e7ce1e7898d3fc81afc95e134a36004c952 Mon Sep 17 00:00:00 2001 From: James Antill Date: Mon, 20 Feb 2023 01:56:44 -0500 Subject: [PATCH] Import rpm: 9812137483609abd63d2b0bf5887e3c178d4fbff --- .gitignore | 1 + 0001-Fix-building-with-annobin.patch | 57 ++++ criu-tmpfiles.conf | 1 + criu.pc.patch | 27 ++ criu.spec | 450 +++++++++++++++++++++++++ gating.yaml | 6 + rpminspect.yaml | 4 + sources | 1 + tests/run-podman-checkpoint-restore.sh | 32 ++ tests/run-zdtm.sh | 63 ++++ tests/tests.yml | 35 ++ 11 files changed, 677 insertions(+) create mode 100644 .gitignore create mode 100644 0001-Fix-building-with-annobin.patch create mode 100644 criu-tmpfiles.conf create mode 100644 criu.pc.patch create mode 100644 criu.spec create mode 100644 gating.yaml create mode 100644 rpminspect.yaml create mode 100644 sources create mode 100755 tests/run-podman-checkpoint-restore.sh create mode 100755 tests/run-zdtm.sh create mode 100644 tests/tests.yml diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5b3bf47 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/v3.15.tar.gz diff --git a/0001-Fix-building-with-annobin.patch b/0001-Fix-building-with-annobin.patch new file mode 100644 index 0000000..9083f83 --- /dev/null +++ b/0001-Fix-building-with-annobin.patch @@ -0,0 +1,57 @@ +From 4878775c8e0f2ea6869aff139d219f6eb0c4006c Mon Sep 17 00:00:00 2001 +From: Adrian Reber +Date: Fri, 28 Jan 2022 15:10:31 +0000 +Subject: [PATCH] Fix building with annobin + +Annobin (used at least in Fedora and RHEL) injects annotation into the +compiled objects which break the parasite and restorer. + +This removes the annobin flags as used in Fedora and RHEL and makes CRIU +work on Fedora and RHEL with annobin enabled. + +Signed-off-by: Adrian Reber +--- + compel/plugins/Makefile | 2 +- + criu/pie/Makefile | 2 +- + criu/pie/Makefile.library | 2 +- + 3 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/compel/plugins/Makefile b/compel/plugins/Makefile +index e5fa781ac..37630d438 100644 +--- a/compel/plugins/Makefile ++++ b/compel/plugins/Makefile +@@ -1,4 +1,4 @@ +-CFLAGS := $(filter-out -pg $(CFLAGS-GCOV) $(CFLAGS-ASAN),$(CFLAGS)) ++CFLAGS := $(filter-out -pg $(CFLAGS-GCOV) $(CFLAGS-ASAN) -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1,$(CFLAGS)) + CFLAGS += -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0 + CFLAGS += -Wp,-U_FORTIFY_SOURCE -Wp,-D_FORTIFY_SOURCE=0 + +diff --git a/criu/pie/Makefile b/criu/pie/Makefile +index 265dcf82b..386626334 100644 +--- a/criu/pie/Makefile ++++ b/criu/pie/Makefile +@@ -4,7 +4,7 @@ + + target := parasite restorer + +-CFLAGS := $(filter-out -pg $(CFLAGS-GCOV) $(CFLAGS-ASAN),$(CFLAGS)) ++CFLAGS := $(filter-out -pg $(CFLAGS-GCOV) $(CFLAGS-ASAN) -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1,$(CFLAGS)) + CFLAGS += $(CFLAGS_PIE) + ccflags-y += -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0 + ccflags-y += -Wp,-U_FORTIFY_SOURCE -Wp,-D_FORTIFY_SOURCE=0 +diff --git a/criu/pie/Makefile.library b/criu/pie/Makefile.library +index da2a2fab3..6247afe7e 100644 +--- a/criu/pie/Makefile.library ++++ b/criu/pie/Makefile.library +@@ -21,7 +21,7 @@ ifeq ($(ARCH),arm) + lib-y += ./$(ARCH_DIR)/pie-cacheflush.o + endif + +-CFLAGS := $(filter-out -pg $(CFLAGS-GCOV) $(CFLAGS-ASAN),$(CFLAGS)) ++CFLAGS := $(filter-out -pg $(CFLAGS-GCOV) $(CFLAGS-ASAN) -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1,$(CFLAGS)) + CFLAGS += $(CFLAGS_PIE) + + ifeq ($(ARCH),mips) +-- +2.34.1 + diff --git a/criu-tmpfiles.conf b/criu-tmpfiles.conf new file mode 100644 index 0000000..66cc5bf --- /dev/null +++ b/criu-tmpfiles.conf @@ -0,0 +1 @@ +d /run/criu 0755 root root - diff --git a/criu.pc.patch b/criu.pc.patch new file mode 100644 index 0000000..6211f2c --- /dev/null +++ b/criu.pc.patch @@ -0,0 +1,27 @@ +From 341ef149ee259d9432ea4c01507eefab2ef8b83c Mon Sep 17 00:00:00 2001 +From: Radostin Stoyanov +Date: Thu, 14 Oct 2021 12:58:56 +0100 +Subject: [PATCH] criu.pc: Add libprotobuf-c as a dependency + +CRIU has a dependency on protobuf-c-devel. We express this dependency +in pkgconfig to be auto-detected when building a package. + +Signed-off-by: Radostin Stoyanov +--- + lib/c/criu.pc.in | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/lib/c/criu.pc.in b/lib/c/criu.pc.in +index 33986d10d..bcced5033 100644 +--- a/lib/c/criu.pc.in ++++ b/lib/c/criu.pc.in +@@ -4,5 +4,6 @@ includedir=@includedir@ + Name: CRIU + Description: RPC library for userspace checkpoint and restore + Version: @version@ ++Requires.private: libprotobuf-c + Libs: -L${libdir} -lcriu + Cflags: -I${includedir} +-- +2.31.1 + diff --git a/criu.spec b/criu.spec new file mode 100644 index 0000000..f5b6845 --- /dev/null +++ b/criu.spec @@ -0,0 +1,450 @@ +%global py_prefix python3 +%global py_binary %{py_prefix} + +# With annobin enabled, CRIU does not work anymore. It seems CRIU's +# parasite code breaks if annobin is enabled. +%undefine _annotated_build + +%global git0 https://github.com/checkpoint-restore/criu/ +%global commit0 f68da4a86fee62af216e9e7520f4916aa29e797b +%global shortcommit0 %(c=%{commit0}; echo ${c:0:7}) + +Name: criu +Version: 3.15 +Release: 1%{?dist} +Provides: crtools = %{version}-%{release} +Obsoletes: crtools <= 1.0-2 +Summary: Tool for Checkpoint/Restore in User-space +License: GPLv2 +URL: http://criu.org/ +Source0: %{git0}/archive/%{commit0}/v%{version}.tar.gz +Source1: criu-tmpfiles.conf +BuildRequires: gcc +BuildRequires: systemd +BuildRequires: libnet-devel +BuildRequires: protobuf-devel protobuf-c-devel %{py_prefix}-devel libnl3-devel libcap-devel +BuildRequires: asciidoc xmlto +BuildRequires: perl-interpreter +BuildRequires: libselinux-devel +BuildRequires: git +# Checkpointing containers with a tmpfs requires tar +Recommends: tar + +# user-space and kernel changes are only available for x86_64, arm, +# ppc64le, aarch64 and s390x +# https://bugzilla.redhat.com/show_bug.cgi?id=902875 +ExclusiveArch: x86_64 %{arm} ppc64le aarch64 s390x + +%description +criu is the user-space part of Checkpoint/Restore in User-space +(CRIU), a project to implement checkpoint/restore functionality for +Linux in user-space. + +%package -n %{py_prefix}-%{name} +%{?python_provide:%python_provide %{py_prefix}-%{name}} +Summary: Python bindings for %{name} +Requires: %{py_prefix}-protobuf +Obsoletes: python2-criu < 3.10-1 + +%description -n %{py_prefix}-%{name} +%{py_prefix}-%{name} contains Python bindings for %{name}. + +%package -n crit +Summary: CRIU image tool +Requires: %{py_prefix}-%{name} = %{version}-%{release} + +%description -n crit +crit is a tool designed to decode CRIU binary dump files and show +their content in human-readable form. + +%prep +%autosetup -Sgit -n %{name}-%{commit0} + +%build +# %{?_smp_mflags} does not work +# -fstack-protector breaks build +CFLAGS+=`echo %{optflags} | sed -e 's,-fstack-protector\S*,,g'` make V=1 WERROR=0 PREFIX=%{_prefix} RUNDIR=/run/criu PYTHON=%{py_binary} +make docs V=1 + +%install +make install-criu DESTDIR=$RPM_BUILD_ROOT PREFIX=%{_prefix} LIBDIR=%{_libdir} +make install-lib DESTDIR=$RPM_BUILD_ROOT PREFIX=%{_prefix} LIBDIR=%{_libdir} PYTHON=%{py_binary} +make install-man DESTDIR=$RPM_BUILD_ROOT PREFIX=%{_prefix} LIBDIR=%{_libdir} +mkdir -p %{buildroot}%{_tmpfilesdir} +install -m 0644 %{SOURCE1} %{buildroot}%{_tmpfilesdir}/%{name}.conf +install -d -m 0755 %{buildroot}/run/%{name}/ + +# remove devel and libs packages +rm -rf $RPM_BUILD_ROOT%{_includedir}/criu +rm $RPM_BUILD_ROOT%{_libdir}/*.so* +rm $RPM_BUILD_ROOT%{_libdir}/*.a +rm $RPM_BUILD_ROOT%{_mandir}/man1/compel.1* +rm -rf $RPM_BUILD_ROOT%{_libdir}/pkgconfig +rm -rf $RPM_BUILD_ROOT%{_libexecdir}/%{name} + +%files +%{_sbindir}/%{name} +%{_mandir}/man8/criu.8* +%dir /run/%{name} +%{_tmpfilesdir}/%{name}.conf +%doc README.md COPYING + +%files -n %{py_prefix}-%{name} +%{python3_sitelib}/pycriu/* +%{python3_sitelib}/*egg-info + +%files -n crit +%{_bindir}/crit +%doc %{_mandir}/man1/crit.1* + +%changelog +* Wed Nov 04 2020 Jindrich Novy - 3.15-1 +- update to https://github.com/checkpoint-restore/criu/releases/tag/v3.15 +- Related: #1883490 + +* Mon May 25 2020 Jindrich Novy - 3.14-2 +- fix "Need to fix bugs found by coverity." +- Related: #1821193 + +* Tue May 12 2020 Jindrich Novy - 3.14-1 +- synchronize containter-tools 8.3.0 with 8.2.1 +- Related: #1821193 + +* Mon May 13 2019 Adrian Reber - 3.12-9 +- Added additional fixup patches for the socket labelling + +* Sat May 04 2019 Adrian Reber - 3.12-8 +- Patch for socket labelling has changed upstream + +* Mon Apr 29 2019 Adrian Reber - 3.12-4 +- Applied patch to correctly restore socket()s + +* Sat Apr 27 2019 Adrian Reber - 3.12-3 +- Correctly exclude libs and devel for RHEL + +* Thu Apr 25 2019 Adrian Reber - 3.12-2 +- Updated to official 3.12 + +* Tue Apr 23 2019 Adrian Reber - 3.12-0.1 +- Updated to 3.12 (pre-release) +- Create libs subpackage +- Build against SELinux (Fedora and RHEL8) +- Build against libbsd (Fedora) + +* Thu Feb 14 2019 Adrian Reber - 3.11-2 +- Updated to 3.11 +- Removed upstreamed patches +- Added patch for gcc-9 + +* Tue Dec 11 2018 Adrian Reber - 3.10-7 +- Fix 'criu check --feature link_nsid' with more than 10 interfaces (#1652442) + +* Tue Dec 11 2018 Adrian Reber - 3.10-6 +- Make sure no iptables rules are left after restore (#1652471) + +* Tue Oct 30 2018 Adrian Reber - 3.10-5 +- Added Recommends: tar + It is necessary when checkpointing containers with a tmpfs + +* Mon Jul 16 2018 Adrian Reber - 3.10-4 +- Add patch to fix errors with read-only runc + +* Thu Jul 12 2018 Fedora Release Engineering - 3.10-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Wed Jul 11 2018 Adrian Reber - 3.10-2 +- Disable annobin as it seems to break CRIU + +* Tue Jul 10 2018 Adrian Reber - 3.10-1 +- Update to 3.10 (#1599710) +- Switch to python3 + +* Wed Jun 06 2018 Adrian Reber - 3.9-2 +- Simplify ExclusiveArch now that there is no more F26 + +* Fri Jun 01 2018 Adrian Reber - 3.9-1 +- Update to 3.9 + +* Tue Apr 03 2018 Adrian Reber - 3.8.1-1 +- Update to 3.8.1 + +* Thu Mar 22 2018 Adrian Reber - 3.8-2 +- Bump release for COPR + +* Wed Mar 14 2018 Adrian Reber - 3.8-1 +- Update to 3.8 + +* Wed Feb 07 2018 Fedora Release Engineering - 3.7-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Sat Feb 03 2018 Igor Gnatenko - 3.7-4 +- Switch to %%ldconfig_scriptlets + +* Fri Jan 12 2018 Adrian Reber - 3.7-3 +- Fix python/python2 dependencies accross all branches + +* Wed Jan 03 2018 Merlin Mathesius - 3.7-2 +- Cleanup spec file conditionals + +* Sat Dec 30 2017 Adrian Reber - 3.7-1 +- Update to 3.7 + +* Fri Dec 15 2017 Iryna Shcherbina - 3.6-2 +- Update Python 2 dependency declarations to new packaging standards + (See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3) + +* Thu Oct 26 2017 Adrian Reber - 3.6-1 +- Update to 3.6 + +* Wed Oct 18 2017 Adrian Reber - 3.5-5 +- Added patch to fix build on Fedora rawhide aarch64 + +* Tue Oct 10 2017 Adrian Reber - 3.5-4 +- Upgrade imported manpages to 3.5 + +* Mon Oct 09 2017 Adrian Reber - 3.5-3 +- Fix ExclusiveArch on RHEL + +* Mon Oct 02 2017 Adrian Reber - 3.5-2 +- Merge RHEL and Fedora spec file + +* Thu Sep 28 2017 Adrian Reber - 3.5-1 +- Update to 3.5 (#1496614) + +* Sun Aug 27 2017 Adrian Reber - 3.4-1 +- Update to 3.4 (#1483774) +- Removed upstreamed patches +- Added s390x (#1475719) + +* Sat Aug 19 2017 Zbigniew Jędrzejewski-Szmek - 3.3-5 +- Python 2 binary package renamed to python2-criu + See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3 + +* Wed Aug 02 2017 Fedora Release Engineering - 3.3-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Wed Jul 26 2017 Fedora Release Engineering - 3.3-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Thu Jul 20 2017 Adrian Reber - 3.3-2 +- Added patches to handle changes in glibc + +* Wed Jul 19 2017 Adrian Reber - 3.3-1 +- Update to 3.3 + +* Fri Jun 30 2017 Adrian Reber - 3.2.1-2 +- Added patches to handle unified hierarchy and new glibc + +* Wed Jun 28 2017 Adrian Reber - 3.2.1-1 +- Update to 3.2.1-1 + +* Tue Jun 13 2017 Orion Poplawski - 3.1-2 +- Rebuild for protobuf 3.3.1 + +* Mon May 22 2017 Adrian Reber - 3.1-1 +- Update to 3.1 + +* Tue Apr 25 2017 Adrian Reber - 3.0-1 +- Update to 3.0 + +* Thu Mar 09 2017 Adrian Reber - 2.12-1 +- Update to 2.12 + +* Fri Feb 17 2017 Adrian Reber - 2.11.1-1 +- Update to 2.11.1 + +* Thu Feb 16 2017 Adrian Reber - 2.11-1 +- Update to 2.11 + +* Mon Feb 13 2017 Adrian Reber - 2.10-4 +- Added patch to fix build on ppc64le + +* Fri Feb 10 2017 Fedora Release Engineering - 2.10-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Mon Jan 23 2017 Orion Poplawski - 2.10-2 +- Rebuild for protobuf 3.2.0 + +* Mon Jan 16 2017 Adrian Reber - 2.10-1 +- Update to 2.10 + +* Mon Dec 12 2016 Adrian Reber - 2.9-1 +- Update to 2.9 +- Added crit manpage to crit subpackage + +* Sat Nov 19 2016 Orion Poplawski - 2.8-2 +- Rebuild for protobuf 3.1.0 + +* Tue Nov 15 2016 Adrian Reber - 2.8-1 +- Update to 2.8 +- Dropped 'mount_resolve_path()' patch + +* Wed Oct 19 2016 Adrian Reber - 2.7-2 +- Added upstream patch to fix #1381351 + ("criu: mount_resolve_path(): criu killed by SIGSEGV") + +* Wed Oct 19 2016 Adrian Reber - 2.7-1 +- Update to 2.7 + +* Tue Sep 13 2016 Adrian Reber - 2.6-1 +- Update to 2.6 + +* Tue Aug 30 2016 Adrian Reber - 2.5-1 +- Update to 2.5 + +* Tue Jul 19 2016 Fedora Release Engineering - 2.4-2 +- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages + +* Tue Jul 12 2016 Adrian Reber - 2.4-1 +- Update to 2.4 + +* Tue Jun 14 2016 Adrian Reber - 2.3-1 +- Update to 2.3 +- Copy man-page from Fedora 24 for RHEL + +* Mon May 23 2016 Adrian Reber - 2.2-1 +- Update to 2.2 + +* Tue Apr 12 2016 Adrian Reber - 2.1-2 +- Remove crtools symbolic link + +* Mon Apr 11 2016 Adrian Reber - 2.1-1 +- Update to 2.1 + +* Wed Apr 06 2016 Adrian Reber - 2.0-2 +- Merge changes from Fedora + +* Thu Mar 10 2016 Andrey Vagin - 2.0-1 +- Update to 2.0 + +* Wed Feb 03 2016 Fedora Release Engineering - 1.8-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Mon Dec 07 2015 Adrian Reber - 1.8-1 +- Update to 1.8 + +* Mon Nov 02 2015 Adrian Reber - 1.7.2-1 +- Update to 1.7.2 + +* Mon Sep 7 2015 Andrey Vagin - 1.7-1 +- Update to 1.7 + +* Thu Sep 3 2015 Andrey Vagin - 1.6.1-3 +- Build only for power64le + +* Thu Sep 3 2015 Andrey Vagin - 1.6.1-2 +- Build for aarch64 and power64 + +* Thu Aug 13 2015 Adrian Reber - 1.6.1-1 +- Update to 1.6.1 +- Merge changes for RHEL packaging + +* Wed Jun 17 2015 Fedora Release Engineering - 1.6-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Tue Jun 09 2015 Adrian Reber - 1.6-1.1 +- adapt to RHEL7 + +* Mon Jun 01 2015 Andrew Vagin - 1.6-1 +- Update to 1.6 + +* Thu Apr 30 2015 Andrew Vagin - 1.5.2-2 +- Require protobuf-python and python-ipaddr for python-criu + +* Tue Apr 28 2015 Andrew Vagin - 1.5.2 +- Update to 1.5.2 + +* Sun Apr 19 2015 Nikita Spiridonov - 1.5.1-2 +- Create python-criu and crit subpackages + +* Tue Mar 31 2015 Andrew Vagin - 1.5.1 +- Update to 1.5.1 + +* Sat Dec 06 2014 Adrian Reber - 1.4-1 +- Update to 1.4 + +* Tue Sep 23 2014 Adrian Reber - 1.3.1-1 +- Update to 1.3.1 (#1142896) + +* Tue Sep 02 2014 Adrian Reber - 1.3-1 +- Update to 1.3 +- Dropped all upstreamed patches +- included pkgconfig file in -devel + +* Sat Aug 16 2014 Fedora Release Engineering - 1.2-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Thu Aug 07 2014 Andrew Vagin - 1.2-4 +- Include inttypes.h for PRI helpers + +* Thu Aug 07 2014 Andrew Vagin - 1.2-3 +- Rebuilt for https://bugzilla.redhat.com/show_bug.cgi?id=1126751 + +* Sat Jun 07 2014 Fedora Release Engineering - 1.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Fri Feb 28 2014 Adrian Reber - 1.2-1 +- Update to 1.2 +- Dropped all upstreamed patches + +* Tue Feb 04 2014 Adrian Reber - 1.1-4 +- Create -devel subpackage + +* Wed Dec 11 2013 Andrew Vagin - 1.0-3 +- Fix the epoch of crtools + +* Tue Dec 10 2013 Andrew Vagin - 1.0-2 +- Rename crtools to criu #1034677 + +* Wed Nov 27 2013 Andrew Vagin - 1.0-1 +- Update to 1.0 + +* Thu Oct 24 2013 Andrew Vagin - 0.8-1 +- Update to 0.8 + +* Tue Sep 10 2013 Andrew Vagin - 0.7-1 +- Update to 0.7 + +* Sat Aug 03 2013 Fedora Release Engineering - 0.6-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Wed Jul 24 2013 Andrew Vagin - 0.6-3 +- Delete all kind of -fstack-protector gcc options + +* Wed Jul 24 2013 Andrew Vagin - 0.6-3 +- Added arm macro to ExclusiveArch + +* Wed Jul 03 2013 Andrew Vagin - 0.6-2 +- fix building on ARM +- fix null pointer dereference + +* Tue Jul 02 2013 Adrian Reber - 0.6-1 +- updated to 0.6 +- upstream moved binaries to sbin +- using upstream's make install + +* Tue May 14 2013 Adrian Reber - 0.5-1 +- updated to 0.5 + +* Fri Feb 22 2013 Adrian Reber - 0.4-1 +- updated to 0.4 + +* Wed Feb 13 2013 Fedora Release Engineering - 0.3-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Tue Jan 22 2013 Adrian Reber - 0.3-3 +- added ExclusiveArch blocker bug + +* Fri Jan 18 2013 Adrian Reber - 0.3-2 +- improved Summary and Description + +* Mon Jan 14 2013 Adrian Reber - 0.3-1 +- updated to 0.3 +- fix building Documentation/ + +* Tue Aug 21 2012 Adrian Reber - 0.2-2 +- remove macros like %%{__mkdir_p} and %%{__install} +- add comment why it is only x86_64 + +* Tue Aug 21 2012 Adrian Reber - 0.2-1 +- initial release diff --git a/gating.yaml b/gating.yaml new file mode 100644 index 0000000..648918d --- /dev/null +++ b/gating.yaml @@ -0,0 +1,6 @@ +--- !Policy +product_versions: + - rhel-9 +decision_context: osci_compose_gate +rules: + - !PassingTestCaseRule {test_case_name: osci.brew-build.tier0.functional} diff --git a/rpminspect.yaml b/rpminspect.yaml new file mode 100644 index 0000000..77c04ec --- /dev/null +++ b/rpminspect.yaml @@ -0,0 +1,4 @@ +--- +annocheck: + jobs: + - hardened: --verbose --skip-pie --skip-bind-now --skip-stack-prot diff --git a/sources b/sources new file mode 100644 index 0000000..371e3d8 --- /dev/null +++ b/sources @@ -0,0 +1 @@ +SHA1 (v3.15.tar.gz) = b79142b186cfff9e5b43d9d7057fdd88560cbe76 diff --git a/tests/run-podman-checkpoint-restore.sh b/tests/run-podman-checkpoint-restore.sh new file mode 100755 index 0000000..b606d9b --- /dev/null +++ b/tests/run-podman-checkpoint-restore.sh @@ -0,0 +1,32 @@ +#!/bin/bash + +set -eux + +ls -la + +if ! crun checkpoint --help; then + echo "crun doesn't support checkpoint/restore" + exit 0 +fi + +echo "Start container" +podman --log-level debug run -d quay.io/adrianreber/counter + +echo "See which containers are running" +podman ps + +echo "Connect to the container" +curl `podman inspect -l | jq -r '.[0].NetworkSettings.IPAddress'`:8088 + +echo "Checkpoint container" +podman --log-level debug container checkpoint -l + +podman ps -a +echo "Restore container" +podman --log-level debug container restore -l + +podman ps -a +echo "Check if we can connect to the restored container" +curl `podman inspect -l | jq -r '.[0].NetworkSettings.IPAddress'`:8088 + +ls -la diff --git a/tests/run-zdtm.sh b/tests/run-zdtm.sh new file mode 100755 index 0000000..350f0a9 --- /dev/null +++ b/tests/run-zdtm.sh @@ -0,0 +1,63 @@ +#!/bin/bash + +set -x + +uname -a + +# These zdtm tests are skipped because they fail only in CI system +EXCLUDES=" \ + -x zdtm/static/socket-tcp-reseted \ + -x zdtm/static/socket-tcp-closed \ + -x zdtm/static/socket-tcp-closed-last-ack \ + -x zdtm/static/socket-tcp6-closed \ + -x zdtm/static/socket-tcp4v6-closed \ + -x zdtm/static/maps01 \ + -x zdtm/static/maps04 \ + -x zdtm/static/cgroup04 \ + -x zdtm/static/cgroup_ifpriomap \ + -x zdtm/static/netns_sub \ + -x zdtm/static/netns_sub_veth \ + -x zdtm/static/file_locks01 \ + -x zdtm/static/cgroup02 " + +run_test() { + ./zdtm.py run --criu-bin /usr/sbin/criu ${EXCLUDES} \ + -a --ignore-taint --keep-going + + RESULT=$? +} + + +RESULT=42 + +python -V + +# this socket brakes CRIU's test cases +rm -f /var/lib/sss/pipes/nss + +# Move away the nft binary to avoid confusions with CRIU. +# This is already fixed upstream. + +[ -e /usr/sbin/nft ] && mv /usr/sbin/nft /usr/sbin/nft.away + +cd source + +echo "Build CRIU" +make + +cd test + +echo "Run the actual CRIU test suite" +run_test + +if [ "$RESULT" -ne "0" ]; then + # Run tests a second time to make sure it is a real failure + echo "Something failed. Run the actual CRIU test suite a second time" + run_test + if [ "$RESULT" -ne "0" ]; then + echo "Still a test suite error. Something seems to be actually broken" + exit $RESULT + fi +fi + +exit 0 diff --git a/tests/tests.yml b/tests/tests.yml new file mode 100644 index 0000000..ff1c692 --- /dev/null +++ b/tests/tests.yml @@ -0,0 +1,35 @@ +--- +- hosts: localhost + roles: + - role: standard-test-source + tags: + - classic + - role: standard-test-basic + tags: + - classic + required_packages: + - podman + - curl + - jq + - checkpolicy + - policycoreutils + - make + - gcc + - python3 + - libnet-devel + - protobuf-devel + - protobuf-c-devel + - python3-devel + - libnl3-devel + - libcap-devel + - libaio-devel + - python3-pyyaml + - python3-protobuf + - python-unversioned-command + tests: + - zdtm: + dir: . + run: ./run-zdtm.sh + - podman: + dir: . + run: ./run-podman-checkpoint-restore.sh