sys-apps/kexec-tools: Sync with Gentoo

It's from Gentoo commit 8b0f43f13dd8cb2ffb4a97cfdbbe7c17f6bfd192.
This commit is contained in:
Flatcar Buildbot 2025-04-28 07:18:30 +00:00
parent 9e3b28d75a
commit 6c005c0dbb
8 changed files with 17 additions and 305 deletions

View File

@ -1,3 +1,2 @@
DIST kexec-tools-2.0.28.tar.xz 312524 BLAKE2B b2ab25c632cd2bad21751940acee1816f9cd930e1bb5af1052f9f6c4979dcd62d82c487a88fa8015e3ce7c843de9f47a3f6ccf7efa9270b5f24c79ba30a82a91 SHA512 889a7bf1d26bb309e4ff7ce1c8dbcf48c01e47221ea3acf1c4ef2a98a652c496e31bddcdb627d3adebd85f7541d1fb9122c60e741e10b3726e31a9733cadc753
DIST kexec-tools-2.0.29.tar.xz 314576 BLAKE2B 3cb94015d0bcd8ab13f25e23835758fc305093c4d1a81c590830ced852e61da66321617f04bda847e26c95ec44bd101eb235fa1d34f397e22ed4e80426efa162 SHA512 4c9e0b3df47b240f0eac2c31e8b515465f626ce043f64daa32b0b032d7132e54dada5d70875dab256345f66cf94a25dc3c160a9009ba60addd8dcb1e5205f5ca
DIST kexec-tools-2.0.30.tar.xz 316548 BLAKE2B 06789dda9526e0d507f50861468baf674dc702eef015dee00b72946c72e78e8d11636db164c2f41c6dd8e5bd647b33a64d079ac624e0d45938b466a61f972e43 SHA512 4550607ad7eb51d169c2565cfee9195441634624d1c8859e21bca6bd7f15031713c39ba475301c1ef5fc67c009bc6599d254da184be25e68b226155e515e3852
DIST kexec-tools-2.0.31.tar.xz 318468 BLAKE2B 075f1457dce9d4d6f0a3fa3cb9ed4cebfc51324fe0f3859b0cb009e1ebdb10d5df83c17d35ec55c479f1416f0836bf263d6ed814732037af6189565685f81afe SHA512 95cb7e7b33685497d72fab74fed2191e476c0574d6ad2333d9e22b95a94543b5fdafe0663282cfaebb8747cf696b7d34c308941ec1074b2b9f1ed440b32d7309

View File

@ -1,9 +0,0 @@
#!/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

View File

@ -1,94 +0,0 @@
From 328de8e00e298f00d7ba6b25dc3950147e9642e6 Mon Sep 17 00:00:00 2001
From: Michel Lind <salimma@fedoraproject.org>
Date: Tue, 30 Jan 2024 04:14:31 -0600
Subject: Fix building on x86_64 with binutils 2.41
Bug: https://bugs.gentoo.org/925010
Newer versions of the GNU assembler (observed with binutils 2.41) will
complain about the ".arch i386" in files assembled with "as --64",
with the message "Error: 64bit mode not supported on 'i386'".
Fix by moving ".arch i386" below the relevant ".code32" directive, so
that the assembler is no longer expecting 64-bit instructions to be used
by the time that the ".arch i386" directive is encountered.
Based on similar iPXE fix:
https://github.com/ipxe/ipxe/commit/6ca597eee
Signed-off-by: Michel Lind <michel@michel-slm.name>
Signed-off-by: Simon Horman <horms@kernel.org>
---
purgatory/arch/i386/entry32-16-debug.S | 2 +-
purgatory/arch/i386/entry32-16.S | 2 +-
purgatory/arch/i386/entry32.S | 2 +-
purgatory/arch/i386/setup-x86.S | 2 +-
4 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/purgatory/arch/i386/entry32-16-debug.S b/purgatory/arch/i386/entry32-16-debug.S
index 5167944d..12e11649 100644
--- a/purgatory/arch/i386/entry32-16-debug.S
+++ b/purgatory/arch/i386/entry32-16-debug.S
@@ -25,10 +25,10 @@
.globl entry16_debug_pre32
.globl entry16_debug_first32
.globl entry16_debug_old_first32
- .arch i386
.balign 16
entry16_debug:
.code32
+ .arch i386
/* Compute where I am running at (assumes esp valid) */
call 1f
1: popl %ebx
diff --git a/purgatory/arch/i386/entry32-16.S b/purgatory/arch/i386/entry32-16.S
index c051aab0..eace0958 100644
--- a/purgatory/arch/i386/entry32-16.S
+++ b/purgatory/arch/i386/entry32-16.S
@@ -20,10 +20,10 @@
#undef i386
.text
.globl entry16, entry16_regs
- .arch i386
.balign 16
entry16:
.code32
+ .arch i386
/* Compute where I am running at (assumes esp valid) */
call 1f
1: popl %ebx
diff --git a/purgatory/arch/i386/entry32.S b/purgatory/arch/i386/entry32.S
index f7a494f1..8ce9e316 100644
--- a/purgatory/arch/i386/entry32.S
+++ b/purgatory/arch/i386/entry32.S
@@ -20,10 +20,10 @@
#undef i386
.text
- .arch i386
.globl entry32, entry32_regs
entry32:
.code32
+ .arch i386
/* Setup a gdt that should that is generally usefully */
lgdt %cs:gdt
diff --git a/purgatory/arch/i386/setup-x86.S b/purgatory/arch/i386/setup-x86.S
index 201bb2cb..a212eed4 100644
--- a/purgatory/arch/i386/setup-x86.S
+++ b/purgatory/arch/i386/setup-x86.S
@@ -21,10 +21,10 @@
#undef i386
.text
- .arch i386
.globl purgatory_start
purgatory_start:
.code32
+ .arch i386
/* Load a gdt so I know what the segment registers are */
lgdt %cs:gdt
--
cgit 1.2.3-korg

View File

@ -1,34 +0,0 @@
# 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}-<currently running kernel version>,
# or bzImage, vmlinuz (without suffix),
# then it's automaticaly detected.
# Setting it to "-" will disable kexec.
#KNAME="kernel"
# Initrd
# Same automatic detection restriction as for KNAME apply.
# initramfs-genkernel-<currently running kernel version>,
# initrd{,.img}-<currently running kernel version>{,.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"

View File

@ -1,132 +0,0 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit libtool linux-info optfeature systemd
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="https://www.kernel.org/pub/linux/utils/kernel/kexec/${P/_/-}.tar.xz"
[[ "${PV}" == *_rc* ]] || \
KEYWORDS="amd64 ~arm64 ~ppc64 x86"
fi
DESCRIPTION="Load another kernel from the currently executing Linux kernel"
HOMEPAGE="https://kernel.org/pub/linux/utils/kernel/kexec/"
S="${WORKDIR}/${P/_/-}"
LICENSE="GPL-2"
SLOT="0"
IUSE="booke lzma selinux xen zlib"
REQUIRED_USE="lzma? ( zlib )"
DEPEND="
lzma? ( app-arch/xz-utils )
zlib? ( sys-libs/zlib )
"
RDEPEND="
${DEPEND}
selinux? ( sec-policy/selinux-kdump )
"
CONFIG_CHECK="~KEXEC"
PATCHES=(
"${FILESDIR}"/${PN}-2.0.4-disable-kexec-test.patch
"${FILESDIR}"/${PN}-2.0.4-out-of-source.patch
"${FILESDIR}"/${PN}-2.0.28-binutils-2.42-x86_64.patch # Bug 925010
)
pkg_setup() {
# GNU Make's $(COMPILE.S) passes ASFLAGS to $(CCAS), CCAS=$(CC)
export ASFLAGS="${CCASFLAGS}"
}
src_prepare() {
default
# Append PURGATORY_EXTRA_CFLAGS flags set by configure, instead of overriding them completely.
sed -e "/^PURGATORY_EXTRA_CFLAGS =/s/=/+=/" -i Makefile.in || die
if [[ "${PV}" == 9999 ]] ; then
eautoreconf
else
elibtoolize
fi
}
src_configure() {
local myeconfargs=(
$(use_with booke)
$(use_with lzma)
$(use_with xen)
$(use_with zlib)
)
econf "${myeconfargs[@]}"
}
src_compile() {
# Respect CFLAGS for purgatory.
# purgatory/Makefile uses PURGATORY_EXTRA_CFLAGS variable.
# -mfunction-return=thunk and -mindirect-branch=thunk conflict with
# -mcmodel=large which is added by build system.
# Replace them with -mfunction-return=thunk-inline and -mindirect-branch=thunk-inline.
local flag flags=()
for flag in ${CFLAGS}; do
[[ ${flag} == -mfunction-return=thunk ]] && flag="-mfunction-return=thunk-inline"
[[ ${flag} == -mindirect-branch=thunk ]] && flag="-mindirect-branch=thunk-inline"
flags+=("${flag}")
done
local -x PURGATORY_EXTRA_CFLAGS="${flags[*]}"
default
}
src_install() {
default
dodoc "${FILESDIR}"/README.Gentoo
newinitd "${FILESDIR}"/kexec-r2.init 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
local n_root_args=$(grep -o -- '\<root=' /proc/cmdline 2>/dev/null | wc -l)
local has_rootpart_set=no
if [[ -f "${EROOT}/etc/conf.d/kexec" ]]; then
if grep -q -E -- '^ROOTPART=' "${EROOT}/etc/conf.d/kexec" 2>/dev/null; then
has_rootpart_set=yes
fi
fi
if [[ ${n_root_args} -gt 1 && "${has_rootpart_set}" == "no" ]]; then
ewarn "WARNING: Multiple root arguments (root=) on kernel command-line detected!"
ewarn "This was probably caused by a previous version of ${PN}."
ewarn "Please reboot system once *without* kexec to avoid boot problems"
ewarn "in case running system and initramfs do not agree on detected"
ewarn "root device name!"
fi
optfeature "automatically updating /etc/kexec.conf on each kernel installation" \
"sys-kernel/installkernel[-systemd]"
}

View File

@ -1,4 +1,4 @@
# Copyright 1999-2024 Gentoo Authors
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@ -11,7 +11,7 @@ if [[ ${PV} == "9999" ]] ; then
else
SRC_URI="https://www.kernel.org/pub/linux/utils/kernel/kexec/${P/_/-}.tar.xz"
[[ "${PV}" == *_rc* ]] || \
KEYWORDS="amd64 arm64 ~ppc64 x86"
KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
fi
DESCRIPTION="Load another kernel from the currently executing Linux kernel"
@ -21,13 +21,14 @@ S="${WORKDIR}/${P/_/-}"
LICENSE="GPL-2"
SLOT="0"
IUSE="booke lzma selinux xen zlib"
IUSE="booke lzma selinux xen zlib zstd"
REQUIRED_USE="lzma? ( zlib )"
DEPEND="
lzma? ( app-arch/xz-utils )
zlib? ( sys-libs/zlib )
zstd? ( app-arch/zstd:= )
"
RDEPEND="
${DEPEND}
@ -41,17 +42,9 @@ PATCHES=(
"${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
# Append PURGATORY_EXTRA_CFLAGS flags set by configure, instead of overriding them completely.
sed -e "/^PURGATORY_EXTRA_CFLAGS =/s/=/+=/" -i Makefile.in || die
if [[ "${PV}" == 9999 ]] ; then
eautoreconf
else
@ -60,32 +53,19 @@ src_prepare() {
}
src_configure() {
# GNU Make's $(COMPILE.S) passes ASFLAGS to $(CCAS), CCAS=$(CC)
export ASFLAGS="${CCASFLAGS}"
local myeconfargs=(
$(use_with booke)
$(use_with lzma)
$(use_with xen)
$(use_with zlib)
$(use_with zstd)
)
econf "${myeconfargs[@]}"
}
src_compile() {
# Respect CFLAGS for purgatory.
# purgatory/Makefile uses PURGATORY_EXTRA_CFLAGS variable.
# -mfunction-return=thunk and -mindirect-branch=thunk conflict with
# -mcmodel=large which is added by build system.
# Replace them with -mfunction-return=thunk-inline and -mindirect-branch=thunk-inline.
local flag flags=()
for flag in ${CFLAGS}; do
[[ ${flag} == -mfunction-return=thunk ]] && flag="-mfunction-return=thunk-inline"
[[ ${flag} == -mindirect-branch=thunk ]] && flag="-mindirect-branch=thunk-inline"
flags+=("${flag}")
done
local -x PURGATORY_EXTRA_CFLAGS="${flags[*]}"
default
}
src_install() {
default

View File

@ -1,4 +1,4 @@
# Copyright 1999-2024 Gentoo Authors
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@ -21,13 +21,14 @@ S="${WORKDIR}/${P/_/-}"
LICENSE="GPL-2"
SLOT="0"
IUSE="booke lzma selinux xen zlib"
IUSE="booke lzma selinux xen zlib zstd"
REQUIRED_USE="lzma? ( zlib )"
DEPEND="
lzma? ( app-arch/xz-utils )
zlib? ( sys-libs/zlib )
zstd? ( app-arch/zstd:= )
"
RDEPEND="
${DEPEND}
@ -60,6 +61,7 @@ src_configure() {
$(use_with lzma)
$(use_with xen)
$(use_with zlib)
$(use_with zstd)
)
econf "${myeconfargs[@]}"
}

View File

@ -1,14 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>base-system@gentoo.org</email>
<name>Gentoo Base System</name>
</maintainer>
<maintainer type="person" proxied="yes">
<email>liaoyuan@gmail.com</email>
<name>Yuan Liao</name>
</maintainer>
<maintainer type="project">
<email>base-system@gentoo.org</email>
<name>Gentoo Base System</name>
</maintainer>
<maintainer type="project" proxied="proxy">
<email>proxy-maint@gentoo.org</email>
<name>Proxy Maintainers</name>