mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-09-16 14:29:05 -07:00
sys-process/criu: add 3.18
Signed-off-by: Patrick McLean <chutzpah@gentoo.org>
This commit is contained in:
@@ -1 +1,2 @@
|
||||
DIST criu-3.17.tar.gz 1321713 BLAKE2B 3bc13a7df0da0a17c74e0c12f07b81fe7f294be4d1980647b64c74e35383416ffbc10e7c04398f307bc68ff701f76a9586ea58825057b0df16b40f6aab3cbd0e SHA512 febae66a7820345c0f335f4a49e64c0af5c8ae5d3a394cc0770881b64eab11ca03ad5872f06b0c4ccd1da844c519268dad3b4f8b260267e6d3f582e80d80f804
|
||||
DIST criu-3.18.tar.gz 1354367 BLAKE2B 3e6613bc44355d4544541ec399ca462eed12203327f832e3c72ea2ccc772afbe2947f760de452b776299af36576880b189ce7583ce7f74c12225d86d1247c2ab SHA512 3d15554ebd2d08c8904c23b0aba00d505891c14caa4790c2fd12ad6b20bf4058fd210f1d03fd63aacc5ad8bc47e341396b48abbeb474f1fd43c3023fd1ff9171
|
||||
|
||||
183
sys-process/criu/criu-3.18.ebuild
Normal file
183
sys-process/criu/criu-3.18.ebuild
Normal file
@@ -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
|
||||
}
|
||||
57
sys-process/criu/files/criu-3.18-buildsystem.patch
Normal file
57
sys-process/criu/files/criu-3.18-buildsystem.patch
Normal file
@@ -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
|
||||
Reference in New Issue
Block a user