summaryrefslogtreecommitdiff
path: root/sys-process/criu
diff options
context:
space:
mode:
Diffstat (limited to 'sys-process/criu')
-rw-r--r--sys-process/criu/Manifest3
-rw-r--r--sys-process/criu/criu-3.18.ebuild183
-rw-r--r--sys-process/criu/files/criu-3.18-buildsystem.patch57
3 files changed, 243 insertions, 0 deletions
diff --git a/sys-process/criu/Manifest b/sys-process/criu/Manifest
index 89bb96d4830f..50f976871fce 100644
--- a/sys-process/criu/Manifest
+++ b/sys-process/criu/Manifest
@@ -5,6 +5,9 @@ AUX criu-3.16.1-buildsystem.patch 2164 BLAKE2B aaa5e47ca5c822407693c795015e25b9d
AUX criu-3.17-amdgpu-build-fixes.patch 3069 BLAKE2B 21bf7ce7bfa8a1d07e2160a7dd8b6e4d638499add115d66b40811d095f622cdf93f51aaacf16afb48bcc8cd0084839982ebe3e9c3c149d8303f12468959c0d00 SHA512 9c4d94d937ce4802531456d2a1679dcaa7f726fc96d80b0892b3c17ae6653ae94090f1f23f8c9ae6450782d74f5de05151b277aef826349cfc510c70e459c2ca
AUX criu-3.17-glibc-2.36-deux.patch 5484 BLAKE2B 63605200e43064e67686ef823032de9c27316800d2097721bd7143e371703e52803c03b6cc695491ca3326f27a44e177a3fe946868577805b3242ba08a00465f SHA512 3dd0d28bd8591d857f927539bb578337e60fcaf7f83890315fd25f4944a72f097374a4423955187673328ca32491d5f585391f21565df53d666f761ccd552a0e
AUX criu-3.17-glibc-2.36.patch 7344 BLAKE2B 4b42e4b524807fed9277eaafbbe9c77bc4dd6e0993d8f801898e2c2a3d4c0aca58d58e34285f23a7d5f1778f8f952f27c7b6a323313103b6444d07287431d9b8 SHA512 d7e6768c26a0f27e11f639d17ccdb62ba7543cbcfdc7a940e39c0ad4f338dce9996129c41904df667633282fb954ec79ffe88879dc61a39658ed7c821fa8f1ba
+AUX criu-3.18-buildsystem.patch 2286 BLAKE2B a083bf7e3a18e53788b438b6f7d802be13cce23d3f4d9a60ba48556d08ab1e1ac65e2753f64229b6c9fc94b0d50f02055509289e5d842ab8be98114ae117a4de SHA512 7b56949588503fea34fbbb496dbef58a3cfb8b3fda471053622ea1ec312b864d34ee3d8dadb4b5b44cefac6eb0dc92e395a92f16b09d0783e3d147e242377e99
DIST criu-3.17.tar.gz 1321713 BLAKE2B 3bc13a7df0da0a17c74e0c12f07b81fe7f294be4d1980647b64c74e35383416ffbc10e7c04398f307bc68ff701f76a9586ea58825057b0df16b40f6aab3cbd0e SHA512 febae66a7820345c0f335f4a49e64c0af5c8ae5d3a394cc0770881b64eab11ca03ad5872f06b0c4ccd1da844c519268dad3b4f8b260267e6d3f582e80d80f804
+DIST criu-3.18.tar.gz 1354367 BLAKE2B 3e6613bc44355d4544541ec399ca462eed12203327f832e3c72ea2ccc772afbe2947f760de452b776299af36576880b189ce7583ce7f74c12225d86d1247c2ab SHA512 3d15554ebd2d08c8904c23b0aba00d505891c14caa4790c2fd12ad6b20bf4058fd210f1d03fd63aacc5ad8bc47e341396b48abbeb474f1fd43c3023fd1ff9171
EBUILD criu-3.17-r1.ebuild 3809 BLAKE2B a65fc63000fa79fc0ddd0c670ad2f812778c0c1ce9ef25f073e412f39e997ae7d92671c729d4840289c4eee9cff2637faa7bed781d6dd511b695e09810802e51 SHA512 140743b4976b2d82b8735b6ca9ae14fe2bb96eaeb3efd1f4a51533fe0386cf0345fc7eb38dc571bea6f17e254c58996084810716029799cbebb8b5a171db875a
+EBUILD criu-3.18.ebuild 4061 BLAKE2B 80de8d33038479932a3efda81ca5b74b2419cea61de1fa3fa0fc84d7cfb33e1e12b39b27874e85dbd7f5d397947903431594cf092d37b483116c7e9c6d49350a SHA512 becc3914ca27b8740920df8ed72acd9081e3b23b14866ec40cbb85d0b8cd32e5b59a202d8af31dc096270389b166e25d866cdcae106e80a0e867db2140b7efc1
MISC metadata.xml 778 BLAKE2B dd77f2e054c4a085dfe2ff6addab5ba38892315a02f8330c66348bf8febbff5c5a8ccea44e8d553804693a952ab5cbcfcd5bca64798e7a26784cbfbf37088e98 SHA512 c6b3c87c7daa8317f745556c22482fdf31b1b19209d6e4c8698499823291f9fea63ca9f7c12e7bace1561d4d76b877e9132d582d822ef51f544b69c51564e79c
diff --git a/sys-process/criu/criu-3.18.ebuild b/sys-process/criu/criu-3.18.ebuild
new file mode 100644
index 000000000000..a87a2907ba4a
--- /dev/null
+++ b/sys-process/criu/criu-3.18.ebuild
@@ -0,0 +1,183 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{9..11} )
+DISTUTILS_USE_PEP517=setuptools
+inherit toolchain-funcs linux-info distutils-r1
+
+DESCRIPTION="utility to checkpoint/restore a process tree"
+HOMEPAGE="
+ https://criu.org/
+ https://github.com/checkpoint-restore/
+"
+SRC_URI="https://github.com/checkpoint-restore/${PN}/archive/v${PV}/${P}.tar.gz"
+
+LICENSE="GPL-2 LGPL-2.1"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 -riscv"
+IUSE="bpf doc gnutls nftables selinux setproctitle static-libs test video_cards_amdgpu"
+
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+COMMON_DEPEND="
+ ${PYTHON_DEPS}
+ >=dev-libs/protobuf-c-1.4.0:=
+ dev-libs/libnl:3=
+ net-libs/libnet:1.1=
+ sys-libs/libcap:=
+ bpf? ( dev-libs/libbpf:= )
+ gnutls? ( net-libs/gnutls:= )
+ nftables? ( net-libs/gnutls:= )
+ selinux? ( sys-libs/libselinux:= )
+ setproctitle? ( dev-libs/libbsd:= )
+ video_cards_amdgpu? ( x11-libs/libdrm[video_cards_amdgpu] )
+"
+DEPEND="
+ ${COMMON_DEPEND}
+"
+BDEPEND="
+ doc? (
+ app-text/asciidoc
+ app-text/xmlto
+ )
+"
+RDEPEND="
+ ${COMMON_DEPEND}
+ dev-python/protobuf-python[${PYTHON_USEDEP}]
+"
+
+CONFIG_CHECK="~CHECKPOINT_RESTORE ~NAMESPACES ~PID_NS ~FHANDLE ~EVENTFD ~EPOLL ~INOTIFY_USER
+ ~UNIX_DIAG ~INET_DIAG ~INET_UDP_DIAG ~PACKET_DIAG ~NETLINK_DIAG ~TUN ~NETFILTER_XT_MARK"
+
+# root access required for tests
+RESTRICT="!test? ( test )"
+
+PATCHES=(
+ "${FILESDIR}/2.2/criu-2.2-flags.patch"
+ "${FILESDIR}/2.3/criu-2.3-no-git.patch"
+ "${FILESDIR}/criu-3.12-automagic-libbsd.patch"
+ "${FILESDIR}/criu-3.18-buildsystem.patch"
+)
+
+criu_arch() {
+ # criu infers the arch from $(uname -m). We never want this to happen.
+ case ${ARCH} in
+ amd64) echo "x86";;
+ arm64) echo "aarch64";;
+ ppc64*) echo "ppc64";;
+ *) echo "${ARCH}";;
+ esac
+}
+
+pkg_setup() {
+ use amd64 && CONFIG_CHECK+=" ~IA32_EMULATION"
+ linux-info_pkg_setup
+}
+
+src_prepare() {
+ distutils-r1_src_prepare
+ use doc || sed -i 's_\(install: \)install-man _\1_g' Makefile.install
+}
+
+criu_use() {
+ if ! use "${1}"; then
+ sed \
+ -e "s:${2:-${1}}:no_${2:-lib${1}}:g" \
+ -i Makefile.config || die
+ fi
+}
+
+criu_python() {
+ local -x \
+ CRIU_VERSION_MAJOR="$(ver_cut 1)" \
+ CRIU_VERSION_MINOR=$(ver_cut 2) \
+ CRIU_VERSION_SUBLEVEL=$(ver_cut 3)
+
+ "${@}"
+}
+
+src_configure() {
+ # Gold linker generates invalid object file when used with criu's custom
+ # linker script. Use the bfd linker instead. See https://crbug.com/839665#c3
+ tc-ld-disable-gold
+
+ # Build system uses this variable as a trigger to append coverage flags
+ # we'd like to avoid it. https://bugs.gentoo.org/744244
+ unset GCOV
+
+ # we have to sed the Makefile.config to disable automagic deps
+ criu_use selinux
+ criu_use bpf
+ criu_use nftables
+ criu_use video_cards_amdgpu libdrm
+
+ emake_opts=(
+ SETPROCTITLE="$(usex setproctitle)"
+ NO_GNUTLS="$(usex gnutls '' '1')"
+ )
+
+ python_setup
+ pushd crit >/dev/null || die
+ criu_python distutils-r1_src_configure
+ popd >/dev/null || die
+}
+
+criu_emake() {
+ emake \
+ AR="$(tc-getAR)" \
+ ARCH="$(criu_arch)" \
+ CC="$(tc-getCC)" \
+ FULL_PYTHON="${PYTHON%.*}" \
+ HOSTCC="$(tc-getBUILD_CC)" \
+ LD="$(tc-getLD)" \
+ LIBDIR="${EPREFIX}/usr/$(get_libdir)" \
+ LOGROTATEDIR="${EPREFIX}"/etc/logrotate.d \
+ OBJCOPY="$(tc-getOBJCOPY)" \
+ PKG_CONFIG="$(tc-getPKG_CONFIG)" \
+ PREFIX="${EPREFIX}"/usr \
+ PYTHON="${EPYTHON%.*}" \
+ V=1 WERROR=0 DEBUG=0 \
+ "${emake_opts[@]}" \
+ "${@}"
+}
+
+src_compile() {
+ local -a targets=(
+ all
+ $(usex doc 'docs' '')
+ )
+ criu_emake ${targets}
+
+ pushd crit >/dev/null || die
+ criu_python distutils-r1_src_compile
+ popd >/dev/null || die
+}
+
+src_test() {
+ criu_emake unittest
+}
+
+python_install() {
+ local -x \
+ CRIU_VERSION_MAJOR="$(ver_cut 1)" \
+ CRIU_VERSION_MINOR=$(ver_cut 2) \
+ CRIU_VERSION_SUBLEVEL=$(ver_cut 3)
+
+ distutils-r1_python_install
+}
+
+src_install() {
+ criu_emake DESTDIR="${D}" install
+
+ pushd crit >/dev/null || die
+ criu_python distutils-r1_src_install
+ popd >/dev/null || die
+
+ dodoc CREDITS README.md
+
+ if ! use static-libs; then
+ find "${D}" -name "*.a" -delete || die
+ fi
+}
diff --git a/sys-process/criu/files/criu-3.18-buildsystem.patch b/sys-process/criu/files/criu-3.18-buildsystem.patch
new file mode 100644
index 000000000000..5a4d41a3840d
--- /dev/null
+++ b/sys-process/criu/files/criu-3.18-buildsystem.patch
@@ -0,0 +1,57 @@
+diff --git a/Makefile.config b/Makefile.config
+index 270ec61c0..eed38626e 100644
+--- a/Makefile.config
++++ b/Makefile.config
+@@ -5,9 +5,6 @@ include scripts/feature-tests.mak
+ ifeq ($(call try-cc,$(FEATURE_TEST_LIBBSD_DEV),-lbsd),true)
+ LIBS_FEATURES += -lbsd
+ FEATURE_DEFINES += -DCONFIG_HAS_LIBBSD
+-else
+- $(info Note: Building without setproctitle() and strlcpy() support.)
+- $(info $(info) To enable these features, please install libbsd-devel (RPM) / libbsd-dev (DEB).)
+ endif
+
+ ifeq ($(call pkg-config-check,libselinux),y)
+@@ -33,8 +30,6 @@ ifeq ($(NO_GNUTLS)x$(call pkg-config-check,gnutls),xy)
+ LIBS_FEATURES += -lgnutls
+ export CONFIG_GNUTLS := y
+ FEATURE_DEFINES += -DCONFIG_GNUTLS
+-else
+- $(info Note: Building without GnuTLS support)
+ endif
+
+ ifeq ($(call pkg-config-check,libnftables),y)
+@@ -49,9 +44,6 @@ ifeq ($(call pkg-config-check,libnftables),y)
+ $(warning Warn: you have libnftables installed but it has incompatible API)
+ $(warning Warn: Building without nftables support)
+ endif
+-else
+- $(warning Warn: you have no libnftables installed)
+- $(warning Warn: Building without nftables support)
+ endif
+
+ export LIBS += $(LIBS_FEATURES)
+diff --git a/lib/Makefile b/lib/Makefile
+index ff540fb75..dcac4b1ac 100644
+--- a/lib/Makefile
++++ b/lib/Makefile
+@@ -54,10 +54,6 @@ install: lib-c lib-a lib-py crit/crit lib/c/criu.pc.in
+ $(Q) mkdir -p $(DESTDIR)$(LIBDIR)/pkgconfig
+ $(Q) sed -e 's,@version@,$(CRIU_VERSION),' -e 's,@libdir@,$(LIBDIR),' -e 's,@includedir@,$(dir $(INCLUDEDIR)/criu/),' lib/c/criu.pc.in > lib/c/criu.pc
+ $(Q) install -m 644 lib/c/criu.pc $(DESTDIR)$(LIBDIR)/pkgconfig
+-ifeq ($(PYTHON),python3)
+- $(E) " INSTALL " crit
+- $(Q) $(PYTHON) -m pip install --upgrade --force-reinstall --prefix=$(DESTDIR)$(PREFIX) ./crit
+-endif
+ .PHONY: install
+
+ uninstall:
+@@ -69,8 +65,4 @@ uninstall:
+ $(Q) $(RM) $(addprefix $(DESTDIR)$(INCLUDEDIR)/criu/,$(notdir $(UAPI_HEADERS)))
+ $(E) " UNINSTALL" pkgconfig/criu.pc
+ $(Q) $(RM) $(addprefix $(DESTDIR)$(LIBDIR)/pkgconfig/,criu.pc)
+-ifeq ($(PYTHON),python3)
+- $(E) " UNINSTALL" crit
+- $(Q) $(PYTHON) ./scripts/uninstall_module.py --prefix=$(DESTDIR)$(PREFIX) crit
+-endif
+ .PHONY: uninstall