From 61c03ffab76740c0420e3c8a3185d047d461f7a7 Mon Sep 17 00:00:00 2001 From: Thomas Deutschmann Date: Wed, 5 Aug 2020 03:54:10 +0200 Subject: sys-apps/kexec-tools: rev bump to force ewarn Package-Manager: Portage-3.0.1, Repoman-2.3.23 Signed-off-by: Thomas Deutschmann --- sys-apps/kexec-tools/kexec-tools-2.0.20-r2.ebuild | 110 ------------------- sys-apps/kexec-tools/kexec-tools-2.0.20-r3.ebuild | 126 ++++++++++++++++++++++ sys-apps/kexec-tools/kexec-tools-9999.ebuild | 16 +++ 3 files changed, 142 insertions(+), 110 deletions(-) delete mode 100644 sys-apps/kexec-tools/kexec-tools-2.0.20-r2.ebuild create mode 100644 sys-apps/kexec-tools/kexec-tools-2.0.20-r3.ebuild diff --git a/sys-apps/kexec-tools/kexec-tools-2.0.20-r2.ebuild b/sys-apps/kexec-tools/kexec-tools-2.0.20-r2.ebuild deleted file mode 100644 index 3a25aced9f07..000000000000 --- a/sys-apps/kexec-tools/kexec-tools-2.0.20-r2.ebuild +++ /dev/null @@ -1,110 +0,0 @@ -# Copyright 1999-2020 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 - "${FILESDIR}"/${P}-remove-duplicated-variable-declarations.patch - "${FILESDIR}"/${P}-build-multiboot2-for-i386.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 -} diff --git a/sys-apps/kexec-tools/kexec-tools-2.0.20-r3.ebuild b/sys-apps/kexec-tools/kexec-tools-2.0.20-r3.ebuild new file mode 100644 index 000000000000..4d758da9aadf --- /dev/null +++ b/sys-apps/kexec-tools/kexec-tools-2.0.20-r3.ebuild @@ -0,0 +1,126 @@ +# Copyright 1999-2020 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 + "${FILESDIR}"/${P}-remove-duplicated-variable-declarations.patch + "${FILESDIR}"/${P}-build-multiboot2-for-i386.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 -- '\/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 +} diff --git a/sys-apps/kexec-tools/kexec-tools-9999.ebuild b/sys-apps/kexec-tools/kexec-tools-9999.ebuild index cb3f3b6f1c4a..86b8d9fc9789 100644 --- a/sys-apps/kexec-tools/kexec-tools-9999.ebuild +++ b/sys-apps/kexec-tools/kexec-tools-9999.ebuild @@ -105,4 +105,20 @@ pkg_postinst() { elog " /etc/kexec.conf" elog "Please adopt it to your needs as there is no autoconfig anymore" fi + + local n_root_args=$(grep -o -- '\/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 } -- cgit v1.2.3