mirror of
git://git.yoctoproject.org/meta-virtualization.git
synced 2025-07-19 12:50:22 +02:00

A fairly straightforward uprev requiring minimal patch refreshing since a few hunks were failing due to conflicts with upstream updates. Unfortunately upstream starting using the now overloaded "PYTHON" variable in their Makefiles, this is not the path to the python executable but rather the name 'python2' or 'python3' which is used to determine which local directories to include. Due to this we must explicitly assign values to 'PYTHON_FULL' and 'PYTHON'. We use 'python2' since we are using 'setuptools' and therefore are explicitly using python v2, at some point we might want to make this recipe work with either python v2 or v3 but for now we continue to explicitly use v2. Instead of using version specific filename we switch to using _git.bb which is inline with similar 'git' recipes found in oe-core and other repos. Signed-off-by: Mark Asselstine <mark.asselstine@windriver.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
88 lines
2.9 KiB
BlitzBasic
88 lines
2.9 KiB
BlitzBasic
SUMMARY = "CRIU"
|
|
DESCRIPTION = "Checkpoint/Restore In Userspace, or CRIU, is a software tool for \
|
|
Linux operating system. Using this tool, you can freeze a running application \
|
|
(or part of it) and checkpoint it to a hard drive as a collection of files. \
|
|
You can then use the files to restore and run the application from the point \
|
|
it was frozen at. The distinctive feature of the CRIU project is that it is \
|
|
mainly implemented in user space"
|
|
HOMEPAGE = "http://criu.org"
|
|
SECTION = "console/tools"
|
|
LICENSE = "GPLv2"
|
|
|
|
EXCLUDE_FROM_WORLD = "1"
|
|
|
|
LIC_FILES_CHKSUM = "file://COPYING;md5=412de458544c1cb6a2b512cd399286e2"
|
|
|
|
SRCREV = "c49eab368a68682475c4e693258246e04232e6d2"
|
|
PV = "3.10+git${SRCPV}"
|
|
|
|
SRC_URI = "git://github.com/xemul/criu.git;protocol=git \
|
|
file://0001-criu-Fix-toolchain-hardcode.patch \
|
|
file://0002-criu-Skip-documentation-install.patch \
|
|
file://0001-criu-Change-libraries-install-directory.patch \
|
|
file://lib-Makefile-overwrite-install-lib-to-allow-multiarc.patch \
|
|
"
|
|
|
|
COMPATIBLE_HOST = "(x86_64|arm|aarch64).*-linux"
|
|
|
|
DEPENDS += "libnl libcap protobuf-c-native protobuf-c util-linux-native libbsd libnet"
|
|
RDEPENDS_${PN} = "bash"
|
|
|
|
S = "${WORKDIR}/git"
|
|
|
|
#
|
|
# CRIU just can be built on ARMv7 and ARMv6, so the Makefile check
|
|
# if the ARCH is ARMv7 or ARMv6.
|
|
# ARM BSPs need set CRIU_BUILD_ARCH variable for building CRIU.
|
|
#
|
|
EXTRA_OEMAKE_arm += "ARCH=arm UNAME-M=${CRIU_BUILD_ARCH} WERROR=0"
|
|
EXTRA_OEMAKE_x86-64 += "ARCH=x86 WERROR=0"
|
|
EXTRA_OEMAKE_aarch64 += "ARCH=arm64 WERROR=0"
|
|
|
|
EXTRA_OEMAKE_append += "SBINDIR=${sbindir} LIBDIR=${libdir} INCLUDEDIR=${includedir} PIEGEN=no"
|
|
EXTRA_OEMAKE_append += "LOGROTATEDIR=${sysconfdir} SYSTEMDUNITDIR=${systemd_unitdir}"
|
|
|
|
CFLAGS += "-D__USE_GNU -D_GNU_SOURCE "
|
|
|
|
CFLAGS += " -I${STAGING_INCDIR} -I${STAGING_INCDIR}/libnl3"
|
|
CFLAGS_arm += "-D__WORDSIZE"
|
|
|
|
# overide LDFLAGS to allow criu to build without: "x86_64-poky-linux-ld: unrecognized option '-Wl,-O1'"
|
|
export LDFLAGS=""
|
|
export C_INCLUDE_PATH="${STAGING_INCDIR}/libnl3"
|
|
|
|
export BUILD_SYS
|
|
export HOST_SYS
|
|
|
|
inherit setuptools
|
|
|
|
PACKAGECONFIG ??= ""
|
|
PACKAGECONFIG[selinux] = ",,libselinux"
|
|
|
|
CLEANBROKEN = "1"
|
|
|
|
do_compile_prepend() {
|
|
rm -rf ${S}/images/google/protobuf/descriptor.proto
|
|
ln -s ${PKG_CONFIG_SYSROOT_DIR}/usr/include/google/protobuf/descriptor.proto ${S}/images/google/protobuf/descriptor.proto
|
|
}
|
|
|
|
do_compile () {
|
|
oe_runmake FULL_PYTHON=${PYTHON} PYTHON=python2
|
|
}
|
|
|
|
do_install () {
|
|
export INSTALL_LIB="${libdir}/${PYTHON_DIR}/site-packages"
|
|
oe_runmake PREFIX=${exec_prefix} LIBDIR=${libdir} DESTDIR="${D}" FULL_PYTHON=${PYTHON} PYTHON=python2 install
|
|
}
|
|
|
|
FILES_${PN} += "${systemd_unitdir}/ \
|
|
${libdir}/python2.7/site-packages/ \
|
|
${libdir}/pycriu/ \
|
|
${libdir}/crit-0.0.1-py2.7.egg-info \
|
|
"
|
|
|
|
FILES_${PN}-staticdev += " \
|
|
${libexecdir}/compel/std.lib.a \
|
|
${libexecdir}/compel/fds.lib.a \
|
|
"
|