[yocto] [meta-virtualization] [recipes-containers] criu version 2.12.1

Bruce Ashfield bruce.ashfield at gmail.com
Tue Jul 25 06:00:55 PDT 2017


Hi Frederico,

Thanks for the patch, but this needs to go to the meta-virtualization list.


Also, we carry a _git recipe in meta-virt to track the various releases
(and sometimes points in between).
So this patch should be done against that recipe versus creating a new
versioned variant.

Finally, make sure to check the patch submission guidelines, since this
patch doesn't have a proper
commit log or a Signed-off-by.

Cheers,

Bruce


On Tue, Jul 25, 2017 at 8:26 AM, Federico Pietro Briata <federico at briata.org
> wrote:

> Hi All,
>
> in attach my recipes for Criu 2.12.1.
>
> Best regards,
>
> Federico Briata
>
>
> ---
>  recipes-containers/criu/criu-2.12.1+gitAUTOINC+14e0bf7baf/0002-criu-Skip-documentation-install.patch         |   28 +++++++
>  recipes-containers/criu/criu-2.12.1+gitAUTOINC+14e0bf7baf/0001-criu-Fix-toolchain-hardcode.patch             |   94 +++++++++++++++++++++++
>  recipes-containers/criu/criu_2.12.1.bb                                                                       |   79 +++++++++++++++++++
>  recipes-containers/criu/criu-2.12.1+gitAUTOINC+14e0bf7baf/0001-criu-Change-libraries-install-directory.patch |   24 ++++++
>  4 files changed, 225 insertions(+), 0 deletions(-)
>
> diff --git a/recipes-containers/criu/criu-2.12.1+gitAUTOINC+14e0bf7baf/0001-criu-Change-libraries-install-directory.patch b/recipes-containers/criu/criu-2.12.1+gitAUTOINC+14e0bf7baf/0001-criu-Change-libraries-install-directory.patch
> new file mode 100644
> index 0000000..88efba3
> --- /dev/null
> +++ b/recipes-containers/criu/criu-2.12.1+gitAUTOINC+14e0bf7baf/0001-criu-Change-libraries-install-directory.patch
> @@ -0,0 +1,24 @@
> +diff --git a/Makefile.install b/Makefile.install
> +index 7f867cf..15b6065 100644
> +--- a/Makefile.install
> ++++ b/Makefile.install
> +@@ -8,19 +8,6 @@ LIBDIR		:= $(PREFIX)/lib
> + INCLUDEDIR	:= $(PREFIX)/include
> + LIBEXECDIR	:= $(PREFIX)/libexec
> +
> +-#
> +-# For recent Debian/Ubuntu with multiarch support.
> +-DEB_HOST_MULTIARCH := $(shell dpkg-architecture -qDEB_HOST_MULTIARCH 2>/dev/null)
> +-ifneq "$(DEB_HOST_MULTIARCH)" ""
> +-        LIBDIR			:= $(PREFIX)/lib/$(DEB_HOST_MULTIARCH)
> +-else
> +-        #
> +-        # For most other systems
> +-        ifeq "$(shell uname -m)" "x86_64"
> +-                LIBDIR		:= $(PREFIX)/lib64
> +-        endif
> +-endif
> +-
> + export PREFIX BINDIR SBINDIR MANDIR
> + export LIBDIR INCLUDEDIR LIBEXECDIR
> +
> diff --git a/recipes-containers/criu/criu-2.12.1+gitAUTOINC+14e0bf7baf/0001-criu-Fix-toolchain-hardcode.patch b/recipes-containers/criu/criu-2.12.1+gitAUTOINC+14e0bf7baf/0001-criu-Fix-toolchain-hardcode.patch
> new file mode 100644
> index 0000000..1e1437d
> --- /dev/null
> +++ b/recipes-containers/criu/criu-2.12.1+gitAUTOINC+14e0bf7baf/0001-criu-Fix-toolchain-hardcode.patch
> @@ -0,0 +1,94 @@
> +diff --git a/Makefile b/Makefile
> +index 79490d0..1e421b1 100644
> +--- a/Makefile
> ++++ b/Makefile
> +@@ -54,7 +54,7 @@ LDARCH			?= $(SRCARCH)
> +
> + export SRCARCH LDARCH VDSO
> +
> +-UNAME-M := $(shell uname -m)
> ++UNAME-M ?= $(shell uname -m)
> + export UNAME-M
> +
> + ifeq ($(ARCH),arm)
> +diff --git a/criu/pie/Makefile b/criu/pie/Makefile
> +index 141c018..09dbdc6 100644
> +--- a/criu/pie/Makefile
> ++++ b/criu/pie/Makefile
> +@@ -17,7 +17,7 @@ restorer-obj-e		+= ./$(ARCH_DIR)/syscalls.built-in.o
> + #
> + CFLAGS			:= $(filter-out -pg $(CFLAGS-GCOV),$(CFLAGS))
> + CFLAGS			+= -iquote $(SRC_DIR)/criu/pie/piegen
> +-CFLAGS			+= -iquote $(SRC_DIR)/criu/arch/$(ARCH)/include
> ++CFLAGS			+= -iquote $(SRC_DIR)/criu/arch/$(SRCARCH)/include
> + CFLAGS			+= -iquote $(SRC_DIR)/criu/include
> + CFLAGS			+= -iquote $(SRC_DIR)/include
> + CFLAGS			+= -iquote $(SRC_DIR)
> +diff --git a/scripts/nmk/scripts/include.mk b/scripts/nmk/scripts/include.mk
> +index 711b9da..3d44624 100644
> +--- a/scripts/nmk/scripts/include.mk
> ++++ b/scripts/nmk/scripts/include.mk
> +@@ -20,7 +20,7 @@ SUBARCH := $(shell uname -m | sed       \
> +                 -e s/aarch64.*/arm64/)
> +
> + ARCH		?= $(SUBARCH)
> +-SRCARCH 	:= $(ARCH)
> ++SRCARCH 	?= $(ARCH)
> +
> + export SUBARCH ARCH SRCARCH
> +
> +diff --git a/scripts/nmk/scripts/tools.mk b/scripts/nmk/scripts/tools.mk
> +index 56dba84..1698821 100644
> +--- a/scripts/nmk/scripts/tools.mk
> ++++ b/scripts/nmk/scripts/tools.mk
> +@@ -2,30 +2,30 @@ ifndef ____nmk_defined__tools
> +
> + #
> + # System tools shorthands
> +-RM		:= rm -f
> ++RM		?= rm -f
> + HOSTLD		?= ld
> +-LD		:= $(CROSS_COMPILE)$(HOSTLD)
> ++LD		?= $(CROSS_COMPILE)$(HOSTLD)
> + HOSTCC		?= gcc
> +-CC		:= $(CROSS_COMPILE)$(HOSTCC)
> +-CPP		:= $(CC) -E
> +-AS		:= $(CROSS_COMPILE)as
> +-AR		:= $(CROSS_COMPILE)ar
> +-STRIP		:= $(CROSS_COMPILE)strip
> +-OBJCOPY		:= $(CROSS_COMPILE)objcopy
> +-OBJDUMP		:= $(CROSS_COMPILE)objdump
> +-NM		:= $(CROSS_COMPILE)nm
> +-MAKE		:= make
> +-MKDIR		:= mkdir -p
> +-AWK		:= awk
> +-PERL		:= perl
> +-PYTHON		:= python
> +-FIND		:= find
> +-SH		:= $(shell if [ -x "$$BASH" ]; then echo $$BASH;        \
> ++CC		?= $(CROSS_COMPILE)$(HOSTCC)
> ++CPP		?= $(CC) -E
> ++AS		?= $(CROSS_COMPILE)as
> ++AR		?= $(CROSS_COMPILE)ar
> ++STRIP		?= $(CROSS_COMPILE)strip
> ++OBJCOPY		?= $(CROSS_COMPILE)objcopy
> ++OBJDUMP		?= $(CROSS_COMPILE)objdump
> ++NM		?= $(CROSS_COMPILE)nm
> ++MAKE		?= make
> ++MKDIR		?= mkdir -p
> ++AWK		?= awk
> ++PERL		?= perl
> ++PYTHON		?= python
> ++FIND		?= find
> ++SH		?= $(shell if [ -x "$$BASH" ]; then echo $$BASH;        \
> +                         else if [ -x /bin/bash ]; then echo /bin/bash;  \
> +                         else echo sh; fi ; fi)
> +-CSCOPE		:= cscope
> +-ETAGS		:= etags
> +-CTAGS		:= ctags
> ++CSCOPE		?= cscope
> ++ETAGS		?= etags
> ++CTAGS		?= ctags
> +
> + export RM HOSTLD LD HOSTCC CC CPP AS AR STRIP OBJCOPY OBJDUMP
> + export NM SH MAKE MKDIR AWK PERL PYTHON SH CSCOPE
> diff --git a/recipes-containers/criu/criu-2.12.1+gitAUTOINC+14e0bf7baf/0002-criu-Skip-documentation-install.patch b/recipes-containers/criu/criu-2.12.1+gitAUTOINC+14e0bf7baf/0002-criu-Skip-documentation-install.patch
> new file mode 100644
> index 0000000..ba414d9
> --- /dev/null
> +++ b/recipes-containers/criu/criu-2.12.1+gitAUTOINC+14e0bf7baf/0002-criu-Skip-documentation-install.patch
> @@ -0,0 +1,28 @@
> +From 07d9b3d0c372e45127dd51781d9564e8bee90dbe Mon Sep 17 00:00:00 2001
> +From: Jianchuan Wang <jianchuan.wang at windriver.com>
> +Date: Tue, 16 Aug 2016 09:42:24 +0800
> +Subject: [PATCH 2/2] criu: Skip documentation install
> +
> +asciidoc is needed to generate CRIU documentation, so skip it in install.
> +
> +Signed-off-by: Jianchuan Wang <jianchuan.wang at windriver.com>
> +---
> + Makefile.install | 2 +-
> + 1 file changed, 1 insertion(+), 1 deletion(-)
> +
> +diff --git a/Makefile.install b/Makefile.install
> +index a30dc96..33143fb 100644
> +--- a/Makefile.install
> ++++ b/Makefile.install
> +@@ -22,7 +22,7 @@ install-tree:
> + .PHONY: install-tree
> +
> + install-man:
> +-	$(Q) $(MAKE) -C Documentation install
> ++#	$(Q) $(MAKE) -C Documentation install
> + .PHONY: install-man
> +
> + install-lib: lib
> +--
> +2.7.4
> +
> diff --git a/recipes-containers/criu/criu_2.12.1.bb b/recipes-containers/criu/criu_2.12.1.bb
> new file mode 100644
> index 0000000..a170b39
> --- /dev/null
> +++ b/recipes-containers/criu/criu_2.12.1.bb
> @@ -0,0 +1,79 @@
> +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 = "14e0bf7baf0f3a47acaf86ea880d312f608d2789"
> +PR = "r0"
> +PV = "2.12.1+git${SRCPV}"
> +
> +SRC_URI = "git://github.com/xemul/criu.git;branch=criu-2.x-stable;protocol=http \
> +	   file://0001-criu-Fix-toolchain-hardcode.patch \
> +           file://0002-criu-Skip-documentation-install.patch \
> +           file://0001-criu-Change-libraries-install-directory.patch \
> +          "
> +
> +COMPATIBLE_HOST = "(x86_64|arm|aarch64).*-linux"
> +
> +DEPENDS += "libnet libnl libcap protobuf-c-native protobuf-c"
> +
> +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 WERROR=0"
> +EXTRA_OEMAKE_x86-64 += "ARCH=${TARGET_ARCH} WERROR=0"
> +EXTRA_OEMAKE_aarch64 += "ARCH=${TARGET_ARCH} 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"
> +
> +# overide LDFLAGS to allow criu to build without: "x86_64-poky-linux-ld: unrecognized option '-Wl,-O1'"
> +export LDFLAGS=""
> +
> +export BUILD_SYS
> +export HOST_SYS
> +
> +inherit setuptools
> +
> +PACKAGECONFIG ??= ""
> +PACKAGECONFIG[selinux] = ",,libselinux"
> +
> +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
> +}
> +
> +do_install () {
> +    oe_runmake PREFIX=${exec_prefix} LIBDIR=${libdir} DESTDIR="${D}" install
> +}
> +
> +FILES_${PN} += "${systemd_unitdir}/ \
> +	    /etc/ \
> +	    /usr/sbin/ \
> +	    /usr/libexec \
> +            ${libdir}/python2.7/site-packages/ \
> +            ${libdir}/pycriu/ \
> +            ${libdir}/crit-0.0.1-py2.7.egg-info \
> +            "
>
>
> --
> _______________________________________________
> yocto mailing list
> yocto at yoctoproject.org
> https://lists.yoctoproject.org/listinfo/yocto
>
>


-- 
"Thou shalt not follow the NULL pointer, for chaos and madness await thee
at its end"
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.yoctoproject.org/pipermail/yocto/attachments/20170725/ee47eb08/attachment.html>


More information about the yocto mailing list