diff options
author | Lars Wendler <polynomial-c@gentoo.org> | 2021-11-09 18:16:31 +0100 |
---|---|---|
committer | Lars Wendler <polynomial-c@gentoo.org> | 2021-11-09 18:16:49 +0100 |
commit | 3b5c03b1029b2a7284cc1f55e1d12df2077b88af (patch) | |
tree | ff642f15417146c61f4595db273f236819cb9a63 /sys-apps/kexec-tools | |
parent | sys-block/di: Bump to version 4.51 (diff) | |
download | gentoo-3b5c03b1029b2a7284cc1f55e1d12df2077b88af.tar.gz gentoo-3b5c03b1029b2a7284cc1f55e1d12df2077b88af.tar.bz2 gentoo-3b5c03b1029b2a7284cc1f55e1d12df2077b88af.zip |
sys-apps/kexec-tools: Bump to version 2.0.23
Signed-off-by: Lars Wendler <polynomial-c@gentoo.org>
Diffstat (limited to 'sys-apps/kexec-tools')
-rw-r--r-- | sys-apps/kexec-tools/Manifest | 1 | ||||
-rw-r--r-- | sys-apps/kexec-tools/kexec-tools-2.0.23.ebuild | 124 |
2 files changed, 125 insertions, 0 deletions
diff --git a/sys-apps/kexec-tools/Manifest b/sys-apps/kexec-tools/Manifest index 37a0cacee226..b07611344429 100644 --- a/sys-apps/kexec-tools/Manifest +++ b/sys-apps/kexec-tools/Manifest @@ -1 +1,2 @@ DIST kexec-tools-2.0.22.tar.xz 303564 BLAKE2B 977c741eabf9b6b882550713ba59b18289b4f997fb382e96338efce6d04a9390fea952fc46ca72fd0a0b782261841ab2002da84b1819f955e63996eac900b0f7 SHA512 7580860f272eee5af52139809f12961e5a5d3a65f4e191183ca9c845410425d25818945ac14ed04a60e6ce474dc2656fc6a14041177b0bf703f450820c7d6aba +DIST kexec-tools-2.0.23.tar.xz 304024 BLAKE2B 0150985093dc0012d3870c127ac5eab81d4cc839c0a79ff20224d1a409462a194d7e304f54ed8f0952e4d325dbff11bcbe1565b2c57c45c212302810dc06ed62 SHA512 b6e3b967cacc31c434b185d25da4d53c822ae4bbcec26ef9d6cb171f294fdcc80913d381e686a0a41e025187835f4dc088052ff88efe75a021d7624c8b1a1ed8 diff --git a/sys-apps/kexec-tools/kexec-tools-2.0.23.ebuild b/sys-apps/kexec-tools/kexec-tools-2.0.23.ebuild new file mode 100644 index 000000000000..0879b84e6744 --- /dev/null +++ b/sys-apps/kexec-tools/kexec-tools-2.0.23.ebuild @@ -0,0 +1,124 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit libtool linux-info 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/" + +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}" + +S="${WORKDIR}/${P/_/-}" + +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 + + # 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} > 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 +} |