commit: 7812874ed77c593bbbc912311d2483cb362f44dd
Author: Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
AuthorDate: Tue Aug 4 21:59:17 2020 +0000
Commit: Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
CommitDate: Tue Aug 4 23:02:39 2020 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7812874e
sys-apps/kexec-tools: runscript: fix style
Package-Manager: Portage-3.0.1, Repoman-2.3.23
Signed-off-by: Thomas Deutschmann <whissi <AT> gentoo.org>
sys-apps/kexec-tools/files/kexec-r2.init | 188 +++++++++++++++++++++
...ls-9999.ebuild => kexec-tools-2.0.20-r2.ebuild} | 4 +-
sys-apps/kexec-tools/kexec-tools-9999.ebuild | 2 +-
3 files changed, 192 insertions(+), 2 deletions(-)
diff --git a/sys-apps/kexec-tools/files/kexec-r2.init
b/sys-apps/kexec-tools/files/kexec-r2.init
new file mode 100644
index 00000000000..ea6b790d324
--- /dev/null
+++ b/sys-apps/kexec-tools/files/kexec-r2.init
@@ -0,0 +1,188 @@
+#!/sbin/openrc-run
+# Copyright 1999-2020 Gentoo Authors
+# 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" \
+ "vmlinux" \
+ "vmlinuz" \
+ "bzImage-${kver}" \
+ "vmlinux-${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/sys-apps/kexec-tools/kexec-tools-9999.ebuild
b/sys-apps/kexec-tools/kexec-tools-2.0.20-r2.ebuild
similarity index 94%
copy from sys-apps/kexec-tools/kexec-tools-9999.ebuild
copy to sys-apps/kexec-tools/kexec-tools-2.0.20-r2.ebuild
index 77c5d7c6e59..3a25aced9f0 100644
--- a/sys-apps/kexec-tools/kexec-tools-9999.ebuild
+++ b/sys-apps/kexec-tools/kexec-tools-2.0.20-r2.ebuild
@@ -35,6 +35,8 @@ CONFIG_CHECK="~KEXEC"
PATCHES=(
"${FILESDIR}"/${PN}-2.0.4-disable-kexec-test.patch
"${FILESDIR}"/${PN}-2.0.4-out-of-source.patch
+ "${FILESDIR}"/${P}-remove-duplicated-variable-declarations.patch
+ "${FILESDIR}"/${P}-build-multiboot2-for-i386.patch
)
pkg_setup() {
@@ -87,7 +89,7 @@ src_install() {
dodoc "${FILESDIR}"/README.Gentoo
- newinitd "${FILESDIR}"/kexec.init-2.0.13-r1 kexec
+ newinitd "${FILESDIR}"/kexec-r2.init kexec
newconfd "${FILESDIR}"/kexec.conf-2.0.4 kexec
insinto /etc
diff --git a/sys-apps/kexec-tools/kexec-tools-9999.ebuild
b/sys-apps/kexec-tools/kexec-tools-9999.ebuild
index 77c5d7c6e59..cb3f3b6f1c4 100644
--- a/sys-apps/kexec-tools/kexec-tools-9999.ebuild
+++ b/sys-apps/kexec-tools/kexec-tools-9999.ebuild
@@ -87,7 +87,7 @@ src_install() {
dodoc "${FILESDIR}"/README.Gentoo
- newinitd "${FILESDIR}"/kexec.init-2.0.13-r1 kexec
+ newinitd "${FILESDIR}"/kexec-r2.init kexec
newconfd "${FILESDIR}"/kexec.conf-2.0.4 kexec
insinto /etc