diff --git a/sdk_container/src/third_party/portage-stable/metadata/md5-cache/sys-apps/kexec-tools-2.0.14 b/sdk_container/src/third_party/portage-stable/metadata/md5-cache/sys-apps/kexec-tools-2.0.14 new file mode 100644 index 0000000000..5031547b91 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/metadata/md5-cache/sys-apps/kexec-tools-2.0.14 @@ -0,0 +1,14 @@ +DEFINED_PHASES=compile configure install postinst prepare setup test +DEPEND=lzma? ( app-arch/xz-utils ) zlib? ( sys-libs/zlib ) >=app-portage/elt-patches-20170815 virtual/pkgconfig +DESCRIPTION=Load another kernel from the currently executing Linux kernel +EAPI=5 +HOMEPAGE=https://kernel.org/pub/linux/utils/kernel/kexec/ +IUSE=booke lzma xen zlib kernel_linux +KEYWORDS=amd64 ~arm64 x86 +LICENSE=GPL-2 +RDEPEND=lzma? ( app-arch/xz-utils ) zlib? ( sys-libs/zlib ) +REQUIRED_USE=lzma? ( zlib ) +SLOT=0 +SRC_URI=mirror://kernel/linux/utils/kernel/kexec/kexec-tools-2.0.14.tar.xz +_eclasses_=autotools 1bf086cdd7356f5c9a4acd9727bd2065 autotools-utils 696393cddf6200db17a31641f597b403 desktop b1d22ac8bdd4679ab79c71aca235009d eapi7-ver 756b3f27d8e46131d5cf3c51bd876446 epatch a1bf4756dba418a7238f3be0cb010c54 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 6e6c2737b59a4b982de6fb3ecefd87f8 libtool f143db5a74ccd9ca28c1234deffede96 linux-info 953c3b1c472dcadbf62098a9301327f2 ltprune 08f9e1d9ee0af8f5d9a7854efbcd8c0e multilib b2f01ad412baf81650c23fcf0975fa33 preserve-libs ef207dc62baddfddfd39a164d9797648 systemd 47c677ae1d7b69031f11f630ac09f0d1 toolchain-funcs f164325a2cdb5b3ea39311d483988861 vcs-clean 2a0f74a496fa2b1552c4f3398258b7bf +_md5_=184d1347ae06d826dc05b9a970d55673 diff --git a/sdk_container/src/third_party/portage-stable/metadata/md5-cache/sys-apps/kexec-tools-2.0.16 b/sdk_container/src/third_party/portage-stable/metadata/md5-cache/sys-apps/kexec-tools-2.0.16 new file mode 100644 index 0000000000..673e20fc1a --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/metadata/md5-cache/sys-apps/kexec-tools-2.0.16 @@ -0,0 +1,14 @@ +DEFINED_PHASES=configure install postinst prepare setup +DEPEND=lzma? ( app-arch/xz-utils ) zlib? ( sys-libs/zlib ) >=app-portage/elt-patches-20170815 virtual/pkgconfig +DESCRIPTION=Load another kernel from the currently executing Linux kernel +EAPI=6 +HOMEPAGE=https://kernel.org/pub/linux/utils/kernel/kexec/ +IUSE=booke lzma xen zlib kernel_linux +KEYWORDS=~amd64 ~arm64 ~x86 +LICENSE=GPL-2 +RDEPEND=lzma? ( app-arch/xz-utils ) zlib? ( sys-libs/zlib ) +REQUIRED_USE=lzma? ( zlib ) +SLOT=0 +SRC_URI=mirror://kernel/linux/utils/kernel/kexec/kexec-tools-2.0.16.tar.xz +_eclasses_=desktop b1d22ac8bdd4679ab79c71aca235009d eapi7-ver 756b3f27d8e46131d5cf3c51bd876446 epatch a1bf4756dba418a7238f3be0cb010c54 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 6e6c2737b59a4b982de6fb3ecefd87f8 flag-o-matic 55aaa148741116aa54ad0d80e361818e libtool f143db5a74ccd9ca28c1234deffede96 linux-info 953c3b1c472dcadbf62098a9301327f2 ltprune 08f9e1d9ee0af8f5d9a7854efbcd8c0e multilib b2f01ad412baf81650c23fcf0975fa33 preserve-libs ef207dc62baddfddfd39a164d9797648 systemd 47c677ae1d7b69031f11f630ac09f0d1 toolchain-funcs f164325a2cdb5b3ea39311d483988861 vcs-clean 2a0f74a496fa2b1552c4f3398258b7bf +_md5_=224d9b9e43bc7b263f1518053738133a diff --git a/sdk_container/src/third_party/portage-stable/metadata/md5-cache/sys-apps/kexec-tools-2.0.17 b/sdk_container/src/third_party/portage-stable/metadata/md5-cache/sys-apps/kexec-tools-2.0.17 new file mode 100644 index 0000000000..30d373b62e --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/metadata/md5-cache/sys-apps/kexec-tools-2.0.17 @@ -0,0 +1,14 @@ +DEFINED_PHASES=configure install postinst prepare setup +DEPEND=lzma? ( app-arch/xz-utils ) zlib? ( sys-libs/zlib ) >=app-portage/elt-patches-20170815 virtual/pkgconfig +DESCRIPTION=Load another kernel from the currently executing Linux kernel +EAPI=6 +HOMEPAGE=https://kernel.org/pub/linux/utils/kernel/kexec/ +IUSE=booke lzma xen zlib kernel_linux +KEYWORDS=~amd64 ~arm64 ~x86 +LICENSE=GPL-2 +RDEPEND=lzma? ( app-arch/xz-utils ) zlib? ( sys-libs/zlib ) +REQUIRED_USE=lzma? ( zlib ) +SLOT=0 +SRC_URI=mirror://kernel/linux/utils/kernel/kexec/kexec-tools-2.0.17.tar.xz +_eclasses_=desktop b1d22ac8bdd4679ab79c71aca235009d eapi7-ver 756b3f27d8e46131d5cf3c51bd876446 epatch a1bf4756dba418a7238f3be0cb010c54 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 6e6c2737b59a4b982de6fb3ecefd87f8 flag-o-matic 55aaa148741116aa54ad0d80e361818e libtool f143db5a74ccd9ca28c1234deffede96 linux-info 953c3b1c472dcadbf62098a9301327f2 ltprune 08f9e1d9ee0af8f5d9a7854efbcd8c0e multilib b2f01ad412baf81650c23fcf0975fa33 preserve-libs ef207dc62baddfddfd39a164d9797648 systemd 47c677ae1d7b69031f11f630ac09f0d1 toolchain-funcs f164325a2cdb5b3ea39311d483988861 vcs-clean 2a0f74a496fa2b1552c4f3398258b7bf +_md5_=74771ea9079dbda966b469f947762fcd diff --git a/sdk_container/src/third_party/portage-stable/metadata/md5-cache/sys-apps/kexec-tools-2.0.17-r1 b/sdk_container/src/third_party/portage-stable/metadata/md5-cache/sys-apps/kexec-tools-2.0.17-r1 new file mode 100644 index 0000000000..4d39ccbe40 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/metadata/md5-cache/sys-apps/kexec-tools-2.0.17-r1 @@ -0,0 +1,14 @@ +DEFINED_PHASES=configure install postinst prepare setup +DEPEND=lzma? ( app-arch/xz-utils ) zlib? ( sys-libs/zlib ) >=app-portage/elt-patches-20170815 virtual/pkgconfig +DESCRIPTION=Load another kernel from the currently executing Linux kernel +EAPI=6 +HOMEPAGE=https://kernel.org/pub/linux/utils/kernel/kexec/ +IUSE=booke lzma xen zlib kernel_linux +KEYWORDS=amd64 ~arm64 x86 +LICENSE=GPL-2 +RDEPEND=lzma? ( app-arch/xz-utils ) zlib? ( sys-libs/zlib ) +REQUIRED_USE=lzma? ( zlib ) +SLOT=0 +SRC_URI=mirror://kernel/linux/utils/kernel/kexec/kexec-tools-2.0.17.tar.xz +_eclasses_=desktop b1d22ac8bdd4679ab79c71aca235009d eapi7-ver 756b3f27d8e46131d5cf3c51bd876446 epatch a1bf4756dba418a7238f3be0cb010c54 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 6e6c2737b59a4b982de6fb3ecefd87f8 flag-o-matic 55aaa148741116aa54ad0d80e361818e libtool f143db5a74ccd9ca28c1234deffede96 linux-info 953c3b1c472dcadbf62098a9301327f2 ltprune 08f9e1d9ee0af8f5d9a7854efbcd8c0e multilib b2f01ad412baf81650c23fcf0975fa33 preserve-libs ef207dc62baddfddfd39a164d9797648 systemd 47c677ae1d7b69031f11f630ac09f0d1 toolchain-funcs f164325a2cdb5b3ea39311d483988861 vcs-clean 2a0f74a496fa2b1552c4f3398258b7bf +_md5_=f362ccea6cb865b5cdd810a7e5a7135b diff --git a/sdk_container/src/third_party/portage-stable/metadata/md5-cache/sys-apps/kexec-tools-9999 b/sdk_container/src/third_party/portage-stable/metadata/md5-cache/sys-apps/kexec-tools-9999 new file mode 100644 index 0000000000..38882383f8 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/metadata/md5-cache/sys-apps/kexec-tools-9999 @@ -0,0 +1,12 @@ +DEFINED_PHASES=configure install postinst prepare setup unpack +DEPEND=lzma? ( app-arch/xz-utils ) zlib? ( sys-libs/zlib ) >=dev-vcs/git-1.8.2.1[curl] >=app-portage/elt-patches-20170815 !=sys-devel/automake-1.16.1:1.16 >=sys-devel/automake-1.15.1:1.15 ) >=sys-devel/autoconf-2.69 >=sys-devel/libtool-2.4 virtual/pkgconfig +DESCRIPTION=Load another kernel from the currently executing Linux kernel +EAPI=6 +HOMEPAGE=https://kernel.org/pub/linux/utils/kernel/kexec/ +IUSE=booke lzma xen zlib kernel_linux +LICENSE=GPL-2 +RDEPEND=lzma? ( app-arch/xz-utils ) zlib? ( sys-libs/zlib ) +REQUIRED_USE=lzma? ( zlib ) +SLOT=0 +_eclasses_=autotools 1bf086cdd7356f5c9a4acd9727bd2065 desktop b1d22ac8bdd4679ab79c71aca235009d eapi7-ver 756b3f27d8e46131d5cf3c51bd876446 epatch a1bf4756dba418a7238f3be0cb010c54 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 6e6c2737b59a4b982de6fb3ecefd87f8 flag-o-matic 55aaa148741116aa54ad0d80e361818e git-r3 0d4635eeb5a96cd5315597a47eba25c9 libtool f143db5a74ccd9ca28c1234deffede96 linux-info 953c3b1c472dcadbf62098a9301327f2 ltprune 08f9e1d9ee0af8f5d9a7854efbcd8c0e multilib b2f01ad412baf81650c23fcf0975fa33 preserve-libs ef207dc62baddfddfd39a164d9797648 systemd 47c677ae1d7b69031f11f630ac09f0d1 toolchain-funcs f164325a2cdb5b3ea39311d483988861 vcs-clean 2a0f74a496fa2b1552c4f3398258b7bf +_md5_=74771ea9079dbda966b469f947762fcd diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/kexec-tools/Manifest b/sdk_container/src/third_party/portage-stable/sys-apps/kexec-tools/Manifest new file mode 100644 index 0000000000..0327fc4ca1 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-apps/kexec-tools/Manifest @@ -0,0 +1,3 @@ +DIST kexec-tools-2.0.14.tar.xz 283640 BLAKE2B f84b5485904c0d4bbe5f7fdae391a4fb0b2a7436e078f23de649e79aaa7dfcdeff99139230a299bf2b9b0554ac13fa833e31211682c92f07cd6b8072907e35aa SHA512 8c1f9d1f4bb69a621961d45091f9c8349535ae69b80168423663685b44d89e1b9324d5cd11c83e86d805a3371f4f1600b0def551c52efb3c6cf020e9c11c273f +DIST kexec-tools-2.0.16.tar.xz 287888 BLAKE2B 7e7bbe11dc2792be3cab6318c12b6866bf6b373fb7bf2d7601ef68a39dd5882aceab7c8905ce0d9b0af1da2072b3f3d2677bd9e006676c484e1d6506ac7036fa SHA512 f2f06e7702fef20c8d7d6aabe1b264e2e2689e5c38cc00dbc2186dd7fa0479edb2dc9e307dd2ad7f03db47015e966e577f11576172604ef01c1bcca471fe2c24 +DIST kexec-tools-2.0.17.tar.xz 290612 BLAKE2B 57ec5b5ed33a5c5bbe433099d6e80663717c8a086bdb8b95f4a1d81fd7e546619c0064698454dc79f489313f98696ee6dee4cafbc8b1b93db5c7909cdf7a6234 SHA512 e0f254ca2b26fa02cb61ba9a0735423b26bac2693fbd920eaf7cc2822c298de958bd65f7c37947ca1f6811a3752a58f7cf8aa903494f0109ea76b7159a037fa6 diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/kexec-tools/files/90_kexec b/sdk_container/src/third_party/portage-stable/sys-apps/kexec-tools/files/90_kexec new file mode 100644 index 0000000000..40bad42395 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-apps/kexec-tools/files/90_kexec @@ -0,0 +1,9 @@ +#!/bin/sh + +version="$1" ; shift +image="$1" ; shift + +exec sed \ + -e "s:\"vmlinuz-.*\":\"vmlinuz-${version}\":" \ + -e "s:/boot/initramfs-.*\.img:/boot/initramfs-${version}\.img:" \ + -i /etc/kexec.conf diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/kexec-tools/files/README.Gentoo b/sdk_container/src/third_party/portage-stable/sys-apps/kexec-tools/files/README.Gentoo new file mode 100644 index 0000000000..7735e3275b --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-apps/kexec-tools/files/README.Gentoo @@ -0,0 +1,33 @@ +Usage +===== + +Do + $ man 8 kexec +for full understanding of the underlying kexec command. +Gentoo offers a wrapper to the bare kexec command through +/etc/init.d/kexec. + +Configuration +------------- + +Configuration is done in /etc/conf.d/kexec, which is self-documented. + +Usage +----- + +In Gentoo, kexec is invoked, i.e., the new kernel will be booted when +rebooting, by reboot (8) command or by pressing Ctrl+Alt+Del. + +If you want to use kexec once, just run + $ /etc/init.d/kexec start + +It'll reserve kexec call at reboot. Later on, you can reboot anytime, +letting kexec starts another (or the same) kernel. When all is done in +the runlevel 6 - killing processes, unmounting volumes, etc - kexec +starts the new kernel instead of doing the normal hardware reboot. + +If you want kexec to be run every time you reboot, add it to a runlevel: + $ rc-update add kexec + +If you want to reboot in the normal way this time, do: + $ touch /nokexec diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/kexec-tools/files/kexec-tools-2.0.17-fix-unhandled-rela-relocation-R_X86_64_PLT32-error.patch b/sdk_container/src/third_party/portage-stable/sys-apps/kexec-tools/files/kexec-tools-2.0.17-fix-unhandled-rela-relocation-R_X86_64_PLT32-error.patch new file mode 100644 index 0000000000..5d691b34be --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-apps/kexec-tools/files/kexec-tools-2.0.17-fix-unhandled-rela-relocation-R_X86_64_PLT32-error.patch @@ -0,0 +1,38 @@ +From b9de21ef51a7ceab7122a707c188602eae22c4ee Mon Sep 17 00:00:00 2001 +From: Chris Clayton +Date: Mon, 20 Aug 2018 12:00:31 +0100 +Subject: kexec: fix for "Unhandled rela relocation: R_X86_64_PLT32" error + +In response to a change in binutils, commit b21ebf2fb4c +(x86: Treat R_X86_64_PLT32 as R_X86_64_PC32) was applied to +the linux kernel during the 4.16 development cycle and has +since been backported to earlier stable kernel series. The +change results in the failure message in $SUBJECT when +rebooting via kexec. + +Fix this by replicating the change in kexec. + +Signed-off-by: Chris Clayton +Acked-by: Baoquan He +Tested-by: Bhupesh Sharma +Acked-by: Bhupesh Sharma +Signed-off-by: Simon Horman +--- + kexec/arch/x86_64/kexec-elf-rel-x86_64.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/kexec/arch/x86_64/kexec-elf-rel-x86_64.c b/kexec/arch/x86_64/kexec-elf-rel-x86_64.c +index 7fdde73..db85b44 100644 +--- a/kexec/arch/x86_64/kexec-elf-rel-x86_64.c ++++ b/kexec/arch/x86_64/kexec-elf-rel-x86_64.c +@@ -79,6 +79,7 @@ void machine_apply_elf_rel(struct mem_ehdr *UNUSED(ehdr), + goto overflow; + break; + case R_X86_64_PC32: ++ case R_X86_64_PLT32: + *(uint32_t *)location = value - address; + break; + default: +-- +cgit 1.2-0.3.lf.el7 + diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/kexec-tools/files/kexec-tools-2.0.4-disable-kexec-test.patch b/sdk_container/src/third_party/portage-stable/sys-apps/kexec-tools/files/kexec-tools-2.0.4-disable-kexec-test.patch new file mode 100644 index 0000000000..6fc73f2db1 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-apps/kexec-tools/files/kexec-tools-2.0.4-disable-kexec-test.patch @@ -0,0 +1,17 @@ +diff --git kexec-tools-2.0.3/kexec_test/Makefile kexec-tools-2.0.3/kexec_test/Makefile +index fec6210..2ed4d51 100644 +--- kexec-tools-2.0.3/kexec_test/Makefile ++++ kexec-tools-2.0.3/kexec_test/Makefile +@@ -8,12 +8,6 @@ dist += kexec_test/Makefile $(KEXEC_TEST_SRCS) \ + kexec_test/x86-setup-legacy-pic.S + + BUILD_KEXEC_TEST = no +-ifeq ($(ARCH),i386) +-BUILD_KEXEC_TEST = yes +-endif +-ifeq ($(ARCH),x86_64) +-BUILD_KEXEC_TEST = yes +-endif + + ifeq ($(BUILD_KEXEC_TEST),yes) + diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/kexec-tools/files/kexec-tools-2.0.4-out-of-source.patch b/sdk_container/src/third_party/portage-stable/sys-apps/kexec-tools/files/kexec-tools-2.0.4-out-of-source.patch new file mode 100644 index 0000000000..64c6cd8ab4 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-apps/kexec-tools/files/kexec-tools-2.0.4-out-of-source.patch @@ -0,0 +1,24 @@ + Makefile.in | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/Makefile.in b/Makefile.in +index c1859d1..1aa8559 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -44,7 +44,7 @@ TARGET_CFLAGS = @TARGET_CFLAGS@ + + # Base compiler flags. These are extended by the subcomponent-Makefiles + # where necessary. +-CPPFLAGS = @CPPFLAGS@ -I$(srcdir)/include -I$(srcdir)/util_lib/include \ ++CPPFLAGS = @CPPFLAGS@ -I$(top_builddir)/include -I$(srcdir)/include -I$(srcdir)/util_lib/include \ + -Iinclude/ $($(ARCH)_CPPFLAGS) + CFLAGS = @CFLAGS@ -fno-strict-aliasing -Wall -Wstrict-prototypes + PURGATORY_EXTRA_CFLAGS = @PURGATORY_EXTRA_CFLAGS@ +@@ -77,6 +77,7 @@ pkgincludedir = $(includedir)/$(PACKAGE_NAME) + DESTDIR = + + srcdir = @srcdir@ ++top_builddir = @top_builddir@ + VPATH = .:$(srcdir) + + # install paths diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/kexec-tools/files/kexec.conf b/sdk_container/src/third_party/portage-stable/sys-apps/kexec-tools/files/kexec.conf new file mode 100644 index 0000000000..aa829b9c23 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-apps/kexec-tools/files/kexec.conf @@ -0,0 +1,16 @@ +# Kernel image pathname, relative from /boot. +KNAME="bzimage" + +# Additional arguments passed to kexec (8) +# Following arguments are support: +# +# --reuse-cmdline +# Use the current boot command line +# +# --command-line=string +# Use a different command line +# +# --initrd=file +# Specify an initrd to use +# +KEXEC_OPT_ARGS="--reuse-cmdline" diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/kexec-tools/files/kexec.conf-2.0.4 b/sdk_container/src/third_party/portage-stable/sys-apps/kexec-tools/files/kexec.conf-2.0.4 new file mode 100644 index 0000000000..b71ea2bae9 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-apps/kexec-tools/files/kexec.conf-2.0.4 @@ -0,0 +1,34 @@ +# Load kexec kernel image into memory during shutdown instead of bootup +# (default: yes) +#LOAD_DURING_SHUTDOWN="yes" + +# Additional arguments passed to kexec (8) +#KEXEC_OPT_ARGS="" + +# Kernel image partition. Mounted automatically if not. +# (default: /boot) +#BOOTPART="/boot" + +# Root partition (should be autodetected) +#ROOTPART="/dev/hda3" + +# Kernel image pathname, relative from BOOTPART. +# If it's one of +# {kernel-genkernel,bzImage,vmlinuz,kernel}-, +# or bzImage, vmlinuz (without suffix), +# then it's automaticaly detected. +# Setting it to "-" will disable kexec. +#KNAME="vmlinuz-3.9.0" + +# Initrd +# Same automatic detection restriction as for KNAME apply. +# initramfs-genkernel-, +# initrd{,.img}-{,.img} +# will be detected. +#INITRD="/boot/fbsplash-emergence-1024x768" + +# Kernel parameters (should be autodetected) +#KPARAM="splash=silent,theme:emergence" + +# Do not try to mount /boot +# DONT_MOUNT_BOOT="yes" diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/kexec-tools/files/kexec.init-2.0.13-r1 b/sdk_container/src/third_party/portage-stable/sys-apps/kexec-tools/files/kexec.init-2.0.13-r1 new file mode 100644 index 0000000000..5415b3bc85 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-apps/kexec-tools/files/kexec.init-2.0.13-r1 @@ -0,0 +1,186 @@ +#!/sbin/openrc-run +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +# Set up some defaults. +: "${LOAD_DURING_SHUTDOWN:=yes}" +: "${BOOTPART:=/boot}" +: "${DONT_MOUNT_BOOT:=no}" + +depend() { + need localmount +} + +auto_prefix_bootpath() { + # Only auto-add prefix to relative paths. + case $1 in + */*) echo "$1";; + *) echo "${BOOTPART}/$1" ;; + esac +} + +get_genkernel_arch() { + case $1 in + x86_64) echo "amd64" ;; + i[3456]86) echo "x86" ;; + *) echo "$1" ;; + esac +} + +image_path() { + # Do no sanity checking if the user has set a value. + if [ -n "${KNAME}" ]; then + auto_prefix_bootpath "${KNAME}" + return + fi + + local x kver="$(uname -r)" karch="$(uname -m)" + local gkarch="$(get_genkernel_arch $karch)" + for x in \ + "bzImage" \ + "vmlinuz" \ + "bzImage-${kver}" \ + "vmlinuz-${kver}" \ + "kernel-genkernel-${karch}-${kver}" \ + "kernel-genkernel-${gkarch}-${kver}" \ + "kernel-${kver}" \ + "kernel-${karch}"; do + if [ -e "${BOOTPART}/${x}" ]; then + echo "${BOOTPART}/${x}" + return + fi + done + + return 1 +} + +initrd_path() { + # Do no sanity checking if the user has set a value. + if [ -n "${INITRD}" ]; then + auto_prefix_bootpath "${INITRD}" + return 0 + fi + + local x kver="$(uname -r)" karch="$(uname -m)" + local gkarch="$(get_genkernel_arch $karch)" + for x in \ + "initrd" \ + "initrd.img-${kver}" \ + "initrd-${kver}.img" \ + "initrd-${kver}" \ + "initramfs-${kver}.img" \ + "initramfs-genkernel-${karch}-${kver}" \ + "initramfs-genkernel-${gkarch}-${kver}"; do + if [ -e "${BOOTPART}/${x}" ]; then + echo "${BOOTPART}/${x}" + return 0 + fi + done + + return 1 +} + +mount_boot() { + [ "${DONT_MOUNT_BOOT}" != "no" ] && return 1 + mountinfo -q "${BOOTPART}" && return 1 + + ebegin "Mounting ${BOOTPART}" + mount "${BOOTPART}" + eend $? +} + +load_image() { + if [ "${KNAME}" = "-" ]; then + ebegin "Disabling kexec" + kexec -u + eend $? + return # eend preserved $? for us. + fi + + local img initrd="$(initrd_path)" mounted=false kparamopt initrdopt + + if ! img="$(image_path)"; then + if mount_boot; then + if img="$(image_path)"; then + mounted=true + initrd="$(initrd_path)" + else + eerror "No kernel image found in ${BOOTPART}!" + umount "${BOOTPART}" + return 1 + fi + else + eerror "No kernel image found in ${BOOTPART}!" + return 1 + fi + fi + + if [ -z "${ROOTPART}" ]; then + ROOTPART="$(readlink -f "$(sed -n '/^\/[^ ]* \/ / s,^\([^ ]*\).*,\1,p' /proc/mounts)")" + fi + + if [ -z "${KPARAM}" ]; then + kparamopt="--reuse-cmdline" + fi + + if [ -n "${initrd}" ]; then + initrdopt="--initrd=${initrd}" + fi + + local msg + [ -n "${initrd}" ] && \ + msg=" (with ${initrd})" + ebegin "Using kernel image ${img}${msg} for kexec" + + kexec ${KEXEC_OPT_ARGS} ${kparamopt} \ + -l "${img}" --append="root=${ROOTPART} ${KPARAM}" ${initrdopt} + local ret=$? + + ${mounted} && umount "${BOOTPART}" + eend ${ret} + return ${ret} +} + +start() { + if [ "${LOAD_DURING_SHUTDOWN}" = "yes" ]; then + local mounted + if mount_boot; then + mounted=true + fi + if ! image_path >/dev/null; then + ewarn "Cannot find kernel image!" + ewarn "Please make sure a valid kernel image is present before reboot." + return 0 + fi + if [ -n "${mounted}" ]; then + ebegin "Unmounting ${BOOTPART}" + umount "${BOOTPART}" + eend $? + fi + # $? is already set to the previous calls. + return + else + load_image + fi +} + +stop() { + if ! yesno ${RC_REBOOT}; then + ebegin "Not rebooting; disabling kexec" + kexec -u + eend $? + return + fi + + if [ -f /nokexec ]; then + ebegin "Rebooting; disabling kexec due to /nokexec" + rm -f /nokexec + kexec -u + eend $? + return + fi + + if [ "${LOAD_DURING_SHUTDOWN}" = "yes" ]; then + load_image + fi +} diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/kexec-tools/files/kexec.service b/sdk_container/src/third_party/portage-stable/sys-apps/kexec-tools/files/kexec.service new file mode 100644 index 0000000000..289aae0df0 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-apps/kexec-tools/files/kexec.service @@ -0,0 +1,16 @@ +[Unit] +Description=Gracefully restart the box +Documentation=man:kexec(8) +After=boot.mount +Before=shutdown.target umount.target final.target +ConditionPathExists=!/nokexec + +[Service] +Type=oneshot +RemainAfterExit=yes +EnvironmentFile=/etc/kexec.conf +ExecStart=/usr/sbin/kexec -l /boot/${KNAME} ${KEXEC_OPT_ARGS} +ExecStop=/usr/sbin/kexec -l /boot/${KNAME} ${KEXEC_OPT_ARGS} + +[Install] +WantedBy=multi-user.target diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/kexec-tools/kexec-tools-2.0.14.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/kexec-tools/kexec-tools-2.0.14.ebuild new file mode 100644 index 0000000000..df5c2d5b61 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-apps/kexec-tools/kexec-tools-2.0.14.ebuild @@ -0,0 +1,76 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI="5" + +if [[ ${PV} == "9999" ]] ; then + inherit git-r3 + EGIT_REPO_URI="git://git.kernel.org/pub/scm/utils/kernel/kexec/kexec-tools.git" + AUTOTOOLS_AUTORECONF=true +else + SRC_URI="mirror://kernel/linux/utils/kernel/kexec/${P}.tar.xz" + KEYWORDS="amd64 ~arm64 x86" +fi + +inherit autotools-utils linux-info systemd + +DESCRIPTION="Load another kernel from the currently executing Linux kernel" +HOMEPAGE="https://kernel.org/pub/linux/utils/kernel/kexec/" + +LICENSE="GPL-2" +SLOT="0" +IUSE="booke lzma xen zlib" + +REQUIRED_USE="lzma? ( zlib )" + +DEPEND=" + lzma? ( app-arch/xz-utils ) + zlib? ( sys-libs/zlib )" +RDEPEND="${DEPEND}" + +CONFIG_CHECK="~KEXEC" + +PATCHES=( + "${FILESDIR}"/${PN}-2.0.4-disable-kexec-test.patch + "${FILESDIR}"/${PN}-2.0.4-out-of-source.patch +) + +pkg_setup() { + # GNU Make's $(COMPILE.S) passes ASFLAGS to $(CCAS), CCAS=$(CC) + export ASFLAGS="${CCASFLAGS}" +} + +src_configure() { + local myeconfargs=( + $(use_with booke) + $(use_with lzma) + $(use_with xen) + $(use_with zlib) + ) + autotools-utils_src_configure +} + +src_install() { + autotools-utils_src_install + + dodoc "${FILESDIR}"/README.Gentoo + + newinitd "${FILESDIR}"/kexec.init-2.0.13-r1 kexec + newconfd "${FILESDIR}"/kexec.conf-2.0.4 kexec + + insinto /etc + doins "${FILESDIR}"/kexec.conf + + insinto /etc/kernel/postinst.d + doins "${FILESDIR}"/90_kexec + + systemd_dounit "${FILESDIR}"/kexec.service +} + +pkg_postinst() { + if systemd_is_booted || has_version sys-apps/systemd; then + elog "For systemd support the new config file is" + elog " /etc/kexec.conf" + elog "Please adopt it to your needs as there is no autoconfig anymore" + fi +} diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/kexec-tools/kexec-tools-2.0.16.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/kexec-tools/kexec-tools-2.0.16.ebuild new file mode 100644 index 0000000000..e691dd6cb1 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-apps/kexec-tools/kexec-tools-2.0.16.ebuild @@ -0,0 +1,82 @@ +# Copyright 1999-2018 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +if [[ ${PV} == "9999" ]] ; then + inherit git-r3 + EGIT_REPO_URI="git://git.kernel.org/pub/scm/utils/kernel/kexec/kexec-tools.git" + AUTOTOOLS_AUTORECONF=true +else + SRC_URI="mirror://kernel/linux/utils/kernel/kexec/${P}.tar.xz" + KEYWORDS="~amd64 ~arm64 ~x86" +fi + +inherit flag-o-matic libtool linux-info systemd + +DESCRIPTION="Load another kernel from the currently executing Linux kernel" +HOMEPAGE="https://kernel.org/pub/linux/utils/kernel/kexec/" + +LICENSE="GPL-2" +SLOT="0" +IUSE="booke lzma xen zlib" + +REQUIRED_USE="lzma? ( zlib )" + +DEPEND=" + lzma? ( app-arch/xz-utils ) + zlib? ( sys-libs/zlib )" +RDEPEND="${DEPEND}" + +CONFIG_CHECK="~KEXEC" + +PATCHES=( + "${FILESDIR}"/${PN}-2.0.4-disable-kexec-test.patch + "${FILESDIR}"/${PN}-2.0.4-out-of-source.patch +) + +pkg_setup() { + # GNU Make's $(COMPILE.S) passes ASFLAGS to $(CCAS), CCAS=$(CC) + export ASFLAGS="${CCASFLAGS}" +} + +src_prepare() { + default + elibtoolize + filter-flags '-mindirect-branch=thunk*' +} + +src_configure() { + local myeconfargs=( + $(use_with booke) + $(use_with lzma) + $(use_with xen) + $(use_with zlib) + ) + econf "${myeconfargs[@]}" +} + +src_install() { + default + + dodoc "${FILESDIR}"/README.Gentoo + + newinitd "${FILESDIR}"/kexec.init-2.0.13-r1 kexec + newconfd "${FILESDIR}"/kexec.conf-2.0.4 kexec + + insinto /etc + doins "${FILESDIR}"/kexec.conf + + insinto /etc/kernel/postinst.d + doins "${FILESDIR}"/90_kexec + + systemd_dounit "${FILESDIR}"/kexec.service +} + +pkg_postinst() { + if systemd_is_booted || has_version sys-apps/systemd; then + elog "For systemd support the new config file is" + elog " /etc/kexec.conf" + elog "Please adopt it to your needs as there is no autoconfig anymore" + fi +} diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/kexec-tools/kexec-tools-2.0.17-r1.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/kexec-tools/kexec-tools-2.0.17-r1.ebuild new file mode 100644 index 0000000000..b11b9c2a38 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-apps/kexec-tools/kexec-tools-2.0.17-r1.ebuild @@ -0,0 +1,86 @@ +# Copyright 1999-2018 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +if [[ ${PV} == "9999" ]] ; then + inherit git-r3 autotools + EGIT_REPO_URI="https://git.kernel.org/pub/scm/utils/kernel/kexec/kexec-tools.git" +else + SRC_URI="mirror://kernel/linux/utils/kernel/kexec/${P}.tar.xz" + KEYWORDS="amd64 ~arm64 x86" +fi + +inherit flag-o-matic libtool linux-info systemd + +DESCRIPTION="Load another kernel from the currently executing Linux kernel" +HOMEPAGE="https://kernel.org/pub/linux/utils/kernel/kexec/" + +LICENSE="GPL-2" +SLOT="0" +IUSE="booke lzma xen zlib" + +REQUIRED_USE="lzma? ( zlib )" + +DEPEND=" + lzma? ( app-arch/xz-utils ) + zlib? ( sys-libs/zlib )" +RDEPEND="${DEPEND}" + +CONFIG_CHECK="~KEXEC" + +PATCHES=( + "${FILESDIR}"/${PN}-2.0.4-disable-kexec-test.patch + "${FILESDIR}"/${PN}-2.0.4-out-of-source.patch + "${FILESDIR}"/${P}-fix-unhandled-rela-relocation-R_X86_64_PLT32-error.patch +) + +pkg_setup() { + # GNU Make's $(COMPILE.S) passes ASFLAGS to $(CCAS), CCAS=$(CC) + export ASFLAGS="${CCASFLAGS}" +} + +src_prepare() { + default + if [[ ${PV} == "9999" ]] ; then + eautoreconf + else + elibtoolize + fi + filter-flags '-mindirect-branch=thunk*' +} + +src_configure() { + local myeconfargs=( + $(use_with booke) + $(use_with lzma) + $(use_with xen) + $(use_with zlib) + ) + econf "${myeconfargs[@]}" +} + +src_install() { + default + + dodoc "${FILESDIR}"/README.Gentoo + + newinitd "${FILESDIR}"/kexec.init-2.0.13-r1 kexec + newconfd "${FILESDIR}"/kexec.conf-2.0.4 kexec + + insinto /etc + doins "${FILESDIR}"/kexec.conf + + insinto /etc/kernel/postinst.d + doins "${FILESDIR}"/90_kexec + + systemd_dounit "${FILESDIR}"/kexec.service +} + +pkg_postinst() { + if systemd_is_booted || has_version sys-apps/systemd; then + elog "For systemd support the new config file is" + elog " /etc/kexec.conf" + elog "Please adopt it to your needs as there is no autoconfig anymore" + fi +} diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/kexec-tools/kexec-tools-2.0.17.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/kexec-tools/kexec-tools-2.0.17.ebuild new file mode 100644 index 0000000000..89ef61b389 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-apps/kexec-tools/kexec-tools-2.0.17.ebuild @@ -0,0 +1,85 @@ +# Copyright 1999-2018 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +if [[ ${PV} == "9999" ]] ; then + inherit git-r3 autotools + EGIT_REPO_URI="https://git.kernel.org/pub/scm/utils/kernel/kexec/kexec-tools.git" +else + SRC_URI="mirror://kernel/linux/utils/kernel/kexec/${P}.tar.xz" + KEYWORDS="~amd64 ~arm64 ~x86" +fi + +inherit flag-o-matic libtool linux-info systemd + +DESCRIPTION="Load another kernel from the currently executing Linux kernel" +HOMEPAGE="https://kernel.org/pub/linux/utils/kernel/kexec/" + +LICENSE="GPL-2" +SLOT="0" +IUSE="booke lzma xen zlib" + +REQUIRED_USE="lzma? ( zlib )" + +DEPEND=" + lzma? ( app-arch/xz-utils ) + zlib? ( sys-libs/zlib )" +RDEPEND="${DEPEND}" + +CONFIG_CHECK="~KEXEC" + +PATCHES=( + "${FILESDIR}"/${PN}-2.0.4-disable-kexec-test.patch + "${FILESDIR}"/${PN}-2.0.4-out-of-source.patch +) + +pkg_setup() { + # GNU Make's $(COMPILE.S) passes ASFLAGS to $(CCAS), CCAS=$(CC) + export ASFLAGS="${CCASFLAGS}" +} + +src_prepare() { + default + if [[ ${PV} == "9999" ]] ; then + eautoreconf + else + elibtoolize + fi + filter-flags '-mindirect-branch=thunk*' +} + +src_configure() { + local myeconfargs=( + $(use_with booke) + $(use_with lzma) + $(use_with xen) + $(use_with zlib) + ) + econf "${myeconfargs[@]}" +} + +src_install() { + default + + dodoc "${FILESDIR}"/README.Gentoo + + newinitd "${FILESDIR}"/kexec.init-2.0.13-r1 kexec + newconfd "${FILESDIR}"/kexec.conf-2.0.4 kexec + + insinto /etc + doins "${FILESDIR}"/kexec.conf + + insinto /etc/kernel/postinst.d + doins "${FILESDIR}"/90_kexec + + systemd_dounit "${FILESDIR}"/kexec.service +} + +pkg_postinst() { + if systemd_is_booted || has_version sys-apps/systemd; then + elog "For systemd support the new config file is" + elog " /etc/kexec.conf" + elog "Please adopt it to your needs as there is no autoconfig anymore" + fi +} diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/kexec-tools/kexec-tools-9999.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/kexec-tools/kexec-tools-9999.ebuild new file mode 100644 index 0000000000..89ef61b389 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-apps/kexec-tools/kexec-tools-9999.ebuild @@ -0,0 +1,85 @@ +# Copyright 1999-2018 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +if [[ ${PV} == "9999" ]] ; then + inherit git-r3 autotools + EGIT_REPO_URI="https://git.kernel.org/pub/scm/utils/kernel/kexec/kexec-tools.git" +else + SRC_URI="mirror://kernel/linux/utils/kernel/kexec/${P}.tar.xz" + KEYWORDS="~amd64 ~arm64 ~x86" +fi + +inherit flag-o-matic libtool linux-info systemd + +DESCRIPTION="Load another kernel from the currently executing Linux kernel" +HOMEPAGE="https://kernel.org/pub/linux/utils/kernel/kexec/" + +LICENSE="GPL-2" +SLOT="0" +IUSE="booke lzma xen zlib" + +REQUIRED_USE="lzma? ( zlib )" + +DEPEND=" + lzma? ( app-arch/xz-utils ) + zlib? ( sys-libs/zlib )" +RDEPEND="${DEPEND}" + +CONFIG_CHECK="~KEXEC" + +PATCHES=( + "${FILESDIR}"/${PN}-2.0.4-disable-kexec-test.patch + "${FILESDIR}"/${PN}-2.0.4-out-of-source.patch +) + +pkg_setup() { + # GNU Make's $(COMPILE.S) passes ASFLAGS to $(CCAS), CCAS=$(CC) + export ASFLAGS="${CCASFLAGS}" +} + +src_prepare() { + default + if [[ ${PV} == "9999" ]] ; then + eautoreconf + else + elibtoolize + fi + filter-flags '-mindirect-branch=thunk*' +} + +src_configure() { + local myeconfargs=( + $(use_with booke) + $(use_with lzma) + $(use_with xen) + $(use_with zlib) + ) + econf "${myeconfargs[@]}" +} + +src_install() { + default + + dodoc "${FILESDIR}"/README.Gentoo + + newinitd "${FILESDIR}"/kexec.init-2.0.13-r1 kexec + newconfd "${FILESDIR}"/kexec.conf-2.0.4 kexec + + insinto /etc + doins "${FILESDIR}"/kexec.conf + + insinto /etc/kernel/postinst.d + doins "${FILESDIR}"/90_kexec + + systemd_dounit "${FILESDIR}"/kexec.service +} + +pkg_postinst() { + if systemd_is_booted || has_version sys-apps/systemd; then + elog "For systemd support the new config file is" + elog " /etc/kexec.conf" + elog "Please adopt it to your needs as there is no autoconfig anymore" + fi +} diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/kexec-tools/metadata.xml b/sdk_container/src/third_party/portage-stable/sys-apps/kexec-tools/metadata.xml new file mode 100644 index 0000000000..2ea57db782 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-apps/kexec-tools/metadata.xml @@ -0,0 +1,13 @@ + + + + + base-system@gentoo.org + Gentoo Base System + + + Enables support for LZMA compressed kernel images + Include support for Book-E memory management + Enable extended xen support + +