public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Patrick McLean" <chutzpah@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: sys-process/criu/files/, sys-process/criu/
Date: Thu,  2 Dec 2021 00:17:52 +0000 (UTC)	[thread overview]
Message-ID: <1638404265.2cf0d86c1a22dfed20f3dda2601adc96986bca9f.chutzpah@gentoo> (raw)

commit:     2cf0d86c1a22dfed20f3dda2601adc96986bca9f
Author:     Patrick McLean <chutzpah <AT> gentoo <DOT> org>
AuthorDate: Thu Dec  2 00:17:10 2021 +0000
Commit:     Patrick McLean <chutzpah <AT> gentoo <DOT> org>
CommitDate: Thu Dec  2 00:17:45 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2cf0d86c

sys-process/criu: Version bump to 3.16.1 (bug #827955)

Closes: https://bugs.gentoo.org/827955
Package-Manager: Portage-3.0.28, Repoman-3.0.3
Signed-off-by: Patrick McLean <chutzpah <AT> gentoo.org>

 sys-process/criu/Manifest                          |   1 +
 sys-process/criu/criu-3.16.1.ebuild                | 162 +++++++++++++++++++++
 .../criu/files/criu-3.16.1-buildsystem.patch       |  56 +++++++
 sys-process/criu/metadata.xml                      |   4 +-
 4 files changed, 222 insertions(+), 1 deletion(-)

diff --git a/sys-process/criu/Manifest b/sys-process/criu/Manifest
index 84332204a0a5..afc75c58706a 100644
--- a/sys-process/criu/Manifest
+++ b/sys-process/criu/Manifest
@@ -1,2 +1,3 @@
 DIST criu-3.14.tar.bz2 881407 BLAKE2B 418412681baf7ec9d3a03afe3860590c857bffcb6c57d01e60b77e85dd5ba2b30deee280c884ba1574665be5fcfd03f3cc058a4b7ae08f66aabe63a80373089b SHA512 97d064c5ffc41daf6e89edd6208b30e4198f313afc6d621d0dc74dadf94c303be70ba448d4e1ced9500f1c65f1bd12206eb88883be398911cc2c995310b17cc6
 DIST criu-3.15.tar.bz2 913904 BLAKE2B 2a3c7ad7ac32a407493e8908886d2929606e1dd0a1dd499be75cb954c1c4d60d0c59f0524d173dcdd89fa638e1edcc0c31886262069e3478173648ef09b4c159 SHA512 7bfd32053e47b95d10cdd5e99494bff6a21aa3179518179f8c72e870f0aab960dd76c9f6cb6982e5b881472cf6962eefee3cf7d8ae9128b3379bcaecc937ebbc
+DIST criu-3.16.1.tar.gz 1228535 BLAKE2B 45aa87ee00a18b91474e767dc0326cce6c0942af7771a0c5536751361c171c86ba2065c54587e82b51fd6d7ab116e659324369955086c5237cd7fd26b60d6ce6 SHA512 a558af41f1927a1b1d87f8d11163a5f3d2e4f83a74aba00619b45a6d464d5477a6a0aac3c1b9d9a17e3343a4bf21a3fd6b279b51fa0c347c86c307381a4d0739

diff --git a/sys-process/criu/criu-3.16.1.ebuild b/sys-process/criu/criu-3.16.1.ebuild
new file mode 100644
index 000000000000..ff46a299a4af
--- /dev/null
+++ b/sys-process/criu/criu-3.16.1.ebuild
@@ -0,0 +1,162 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{8..10} )
+
+inherit toolchain-funcs linux-info python-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"
+IUSE="bpf doc gnutls nftables selinux setproctitle static-libs test"
+
+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:= )
+"
+DEPEND="${COMMON_DEPEND}"
+BDEPEND="
+	dev-python/setuptools[${PYTHON_USEDEP}]
+	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.16.1-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() {
+	default
+
+	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
+}
+
+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 Makdfile.config to disable automagic deps
+	criu_use selinux
+	criu_use bpf
+	criu_use nftables
+
+	emake_opts=(
+		SETPROCTITLE="$(usex setproctitle)"
+		NO_GNUTLS="$(usex gnutls '' '1')"
+	)
+
+	python_setup
+}
+
+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[@]}" \
+		"${@}"
+}
+
+build_crit() {
+	"${EPYTHON}" scripts/crit-setup.py build || die
+}
+
+src_compile() {
+	local -a targets=(
+		all
+		$(usex doc 'docs' '')
+	)
+	criu_emake ${targets}
+}
+
+src_test() {
+	criu_emake unittest
+}
+
+install_crit() {
+	"${EPYTHON}" scripts/crit-setup.py install --root="${D}" --prefix="${EPREFIX}/usr/" || die
+	python_optimize
+}
+
+src_install() {
+	criu_emake DESTDIR="${D}" install
+	python_foreach_impl install_crit
+
+	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.16.1-buildsystem.patch b/sys-process/criu/files/criu-3.16.1-buildsystem.patch
new file mode 100644
index 000000000000..7b83d1c8fe51
--- /dev/null
+++ b/sys-process/criu/files/criu-3.16.1-buildsystem.patch
@@ -0,0 +1,56 @@
+diff --git a/Makefile.config b/Makefile.config
+index 6e3e1b062..830a66e83 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)
+@@ -25,8 +22,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)
+@@ -41,9 +36,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 575a7bad3..af88668c5 100644
+--- a/lib/Makefile
++++ b/lib/Makefile
+@@ -58,8 +58,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
+-	$(E) "  INSTALL " crit
+-	$(Q) $(PYTHON) scripts/crit-setup.py install --prefix=$(DESTDIR)$(PREFIX) --record $(CRIT_SETUP_FILES)
+ .PHONY: install
+ 
+ uninstall:
+diff --git a/scripts/crit-setup.py b/scripts/crit-setup.py
+index 871e55921..50745c294 100644
+--- a/scripts/crit-setup.py
++++ b/scripts/crit-setup.py
+@@ -1,4 +1,4 @@
+-from distutils.core import setup
++from setuptools import setup
+ 
+ setup(name="crit",
+       version="0.0.1",

diff --git a/sys-process/criu/metadata.xml b/sys-process/criu/metadata.xml
index fd89c4dad3f8..bec8a7d57bfc 100644
--- a/sys-process/criu/metadata.xml
+++ b/sys-process/criu/metadata.xml
@@ -10,6 +10,8 @@
 		<name>Gentoo Virtualization Project</name>
 	</maintainer>
 	<use>
-		<flag name="setproctitle">Make process titles of service workers to be more verbose</flag>
+		<flag name="setproctitle">Use <pkg>dev-libs/libbsd</pkg> to make process titles of service workers to be more verbose</flag>
+		<flag name="bpf">Add support for BPF programs via <pkg>dev-libs/libbpf</pkg></flag>
+		<flag name="nftables">Add support for <pkg>net-firewall/nftables</pkg></flag>
 	</use>
 </pkgmetadata>


             reply	other threads:[~2021-12-02  0:17 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-12-02  0:17 Patrick McLean [this message]
  -- strict thread matches above, loose matches on Subject: below --
2024-02-22 18:38 [gentoo-commits] repo/gentoo:master commit in: sys-process/criu/files/, sys-process/criu/ Patrick McLean
2023-05-01 12:49 Sam James
2022-09-03  0:33 Sam James
2022-05-19  3:33 Sam James
2021-12-01 20:34 Sam James
2021-11-04 21:10 Sam James
2021-09-05  5:57 Sam James
2020-04-25 11:29 Sergei Trofimovich
2019-07-29  2:43 Matthias Maier
2016-12-07  5:28 Mike Frysinger
2016-11-23 10:04 Yixun Lan
2015-12-08 11:39 Yixun Lan

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1638404265.2cf0d86c1a22dfed20f3dda2601adc96986bca9f.chutzpah@gentoo \
    --to=chutzpah@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox