diff options
author | V3n3RiX <venerix@koprulu.sector> | 2024-08-07 12:37:21 +0100 |
---|---|---|
committer | V3n3RiX <venerix@koprulu.sector> | 2024-08-07 12:37:21 +0100 |
commit | b8c7370a682e4e29cda623222d17a790c01c3642 (patch) | |
tree | f6caa14689bd00a5760eadaa381ff41e50ef3c1b /sys-apps/kexec-tools | |
parent | 8a4997a7e2d1e36c089d4d76935b5a902d98d3d0 (diff) |
gentoo auto-resync : 07:08:2024 - 12:37:20
Diffstat (limited to 'sys-apps/kexec-tools')
-rw-r--r-- | sys-apps/kexec-tools/Manifest | 11 | ||||
-rw-r--r-- | sys-apps/kexec-tools/files/kexec-auto-load | 95 | ||||
-rw-r--r-- | sys-apps/kexec-tools/files/kexec.conf | 42 | ||||
-rw-r--r-- | sys-apps/kexec-tools/files/kexec.conf-2.0.4 | 6 | ||||
-rw-r--r-- | sys-apps/kexec-tools/files/kexec.service | 4 | ||||
-rw-r--r-- | sys-apps/kexec-tools/kexec-tools-2.0.29-r1.ebuild (renamed from sys-apps/kexec-tools/kexec-tools-2.0.29.ebuild) | 17 | ||||
-rw-r--r-- | sys-apps/kexec-tools/kexec-tools-9999.ebuild | 17 |
7 files changed, 141 insertions, 51 deletions
diff --git a/sys-apps/kexec-tools/Manifest b/sys-apps/kexec-tools/Manifest index afc11dcf6de7..3241fab5bdf2 100644 --- a/sys-apps/kexec-tools/Manifest +++ b/sys-apps/kexec-tools/Manifest @@ -1,15 +1,16 @@ AUX 90_kexec 199 BLAKE2B 37bcd66beccc32a884b0c2fca9cbba14784b8e6bc7238c14397f0ded788b503df1f7d6fff01c9b9a6bc159c1a6e01821c4c78c144091a7e13bb2bbe88ab5a98c SHA512 31837eb7df9b5c9b63c5f500e55fb584e315ac20f328490ff812a265f1a01604724bf4699f142255f7c5fa78cb2d8f2d6220a91961ac90df644b5d545d47ca39 AUX README.Gentoo 937 BLAKE2B 88a8912015e1cab0d382661d6bdc82689c91970d6d84c949e99a932b4d153b0753183380930b753d23d1c40ab7f44cae784f716e54bc3609a28741ab0b5b1348 SHA512 f082763692def43a97866b88443daf08a2bc1b0dccdc90160d12effa16e1293d8db6935c72ca9dd5502f844078241cbecdfde15b6e8f67a2cca8f3e89f14e654 +AUX kexec-auto-load 2452 BLAKE2B dc75b0cf23eae20868b80871e62385bd5ff4788ee8c7867d8c94c84aced59bc287a01e8863fbeb008c33ad21f1757d813f3eee1166a84916874c5cdf70d15aed SHA512 50deeb14f0fe0377281978f295cb4d04ebfc82627b051edde8e46b3a89107212adac1026b6226df1cba98ff60170f25af83b674d888ec9121a7ed0fe69c14db7 AUX kexec-r2.init 4061 BLAKE2B 40e0f89db9a1b95c8b389e093aee055402ca6ac450344c53de4e6e44127020bb51d33b41f4ec4a749303cbd67f873088aff151599c046f4fcb268da9397baa83 SHA512 9974ec312647dce2213bfaa80820ebf1571ce4d95daa8668a0626444e7d768a2dddc984f1a3b79df956b870e99e2f82ae970f11fc146baf7926fec45048a9e7c AUX kexec-tools-2.0.28-binutils-2.42-x86_64.patch 2729 BLAKE2B 0f4f9cbf1f54310c4518afef6d0304cb2dd73f23b17975d4f5c5fd6d8393b32d60221daac6b60b58f0344a32c3cfebace282400f5545037f29c65c53436ffe83 SHA512 ad8c35b64361f44b8b6a28404c4eaef4701f3f4af9f3a76d22d90fa61d53f3d65cd769a9b996b4daee3e2e627b35bf7fff3b06274ae63b415a7181c08c4cfd25 AUX kexec-tools-2.0.4-disable-kexec-test.patch 473 BLAKE2B ad62ae055cd4443ee4dcb4d9a5be1c918a9e1337545f60c683a1a47b848020d0f8fbdc38c7111e505424783191faf3e221ffa642169d2d055d5e17e6b19b9d0d SHA512 c7fe9176db7c3f9c84add1c263c5a695684bf1db55d47152534f0bbb97c084ad5d3f2090307d0bdfcf5622fa810aca3c104f81b3d24baa76f42d3f32d1d4bbad AUX kexec-tools-2.0.4-out-of-source.patch 816 BLAKE2B 88dc0a8f01c65a32b6ae081ea222760845fe243aad1057e3620ed4c932a32edebf943f9557b2f67751bbcea1f91778c0c065e246d419d5725eb68edcb1e58ced SHA512 4839800f99e2bdb7dfbf3aa1f3ad795feb63b4e493812a50d4baa839a27b5e96319c4e848969cbcedf627a32ed5fbfb312461c2ac89b73daaa7f8f680f35f504 -AUX kexec.conf 340 BLAKE2B a65aa0f402c712c10f6095b37b620dacfe883ad621f5403d8190febf582f3ab7e8b821091321036bff104ee5cebab21062830c774778ca17a34a2df76065cfb8 SHA512 66beb57ee13dba70f75f12326643270a0c888e178fdfca8ba7a566a874707aebe2afebb6ceae976dfb0aaf3135048daad6277e70580e4c7911b9ddbf74e4f00a -AUX kexec.conf-2.0.4 1013 BLAKE2B 7594bf8c150d1165f30449526b658c78feab82526e649aa8cce35b6a47b2abd5a208b7ae4376f0330ea2194ae63f786bf0c30682f734f1b604be131e6e63570e SHA512 96db2834454aa4d038061e9b1f918932da3d3054021487425d0f70c6ad32096b9433ae2f3921e83196b23af901c32e591df3d6a84a6d14e064608d8ad895a599 -AUX kexec.service 407 BLAKE2B 7854172c36f550fece58b6cb351a6bd8b4ab8b5a11da0fd629048f8cc2866baa11ee7311424f998360f02dc2c1210be32222283c2bd2f93e1bf4bf65ec903203 SHA512 9f0fa6d39c67048fe774fee0f2e8ed10e9e12a2468e7dda193cd8c5bd8b4cf49819d14703efad35c91265cd4e03c6f5460934b5fe92efd06eab8dc619920b1e3 +AUX kexec.conf 850 BLAKE2B 7adca88e0cc1fb57b32b84753e093f6553c0a33e3b96751081c346ec6c97d485567a7b19482364f928450ae3bf76c0ad886935f6934416e05cb3c41efbfd4407 SHA512 9f19446a88cc3bdb2abcc8c2a11185f3d7fd19649fdae1eea43da33d3eac3bc08f4b80ba0d2ac90d6a83197dc4cd6a9078b21ae65e3daf97d6680fa316417dbc +AUX kexec.conf-2.0.4 1004 BLAKE2B d781228b53f2e2d0b8cf54cc40ae0487078851820a3da9a4bbbfb1b1941dac18e829736c05570fe7159a85726fe12cf9da714f6c30a75f43f533de8c077cc44b SHA512 ebe3aef5321b53b6bb4ddb7fe4ad8e16edf3e0cd09418cb31bce82e3e594758b3101d297d34925b11f5c9c41c7be7b025cb78f446d80b1e1349779e6883f06ce +AUX kexec.service 355 BLAKE2B 90ba7fe6af6db107821acd61679e29db44e180d768624a6b5e3817ff0850dfa96c01ab701adbd13ca17c81b34b7b83b3267e052e6149e7cabdac0c800d382d52 SHA512 2b9bb9c8b250cdf7c2b519b76d6dee2d68ddd02f3b04c2b6f912def8864c5024a89d27ce236c6d8a49f605889b5afd73fe5b803870b810ad432daac800b0f123 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 EBUILD kexec-tools-2.0.28.ebuild 3518 BLAKE2B eb7f52ad884eb38b72a710c8602bd7b006fb18a331aed5a755fe0365a3620750950ccbaea30780220f0017f0e9f5648dfa25f1f21eac2c837a2fc32f5dcf411a SHA512 dff2e7b8a8d3c8d907b8eaafe07dc7945d9b82e0b4c14e1d5f04b02984eefeebed934037b0d4f0ebb97d33c6340e08c7eb0fe91ec352a00da5728c17e58fe4c7 -EBUILD kexec-tools-2.0.29.ebuild 3452 BLAKE2B 28b70b151f561b1938c85cb7547e2308a4fdf909ac6c887ac142d30d5749312b328852c6687e3ba367858df7f134950775a2b421559ac31de96605d36a83ae92 SHA512 6509525f7497809b7efc67e9c635d9d2dcb8c482878f0b4eaca642a91475a06bfe334171bb241a914309ced7fd88fc2203cb481ae8fa4b101ad42b2ca5dd08dc -EBUILD kexec-tools-9999.ebuild 3452 BLAKE2B 28b70b151f561b1938c85cb7547e2308a4fdf909ac6c887ac142d30d5749312b328852c6687e3ba367858df7f134950775a2b421559ac31de96605d36a83ae92 SHA512 6509525f7497809b7efc67e9c635d9d2dcb8c482878f0b4eaca642a91475a06bfe334171bb241a914309ced7fd88fc2203cb481ae8fa4b101ad42b2ca5dd08dc +EBUILD kexec-tools-2.0.29-r1.ebuild 3067 BLAKE2B 258beed0944b126b8661fff1611eea007d70a34b25bedfd9d5dca9397f072f5d37fdd28458f0988640c7754a8ef5caf866a3d1d70b04bbfff782031c6be2ea39 SHA512 08a147d3dda6486eb2285a41763ade50d00e5d96882149820aee1015d1ec21f3078052759346ea9c57532e5ad41f8a4d95f91af975ea4e3535f2413a980debda +EBUILD kexec-tools-9999.ebuild 3067 BLAKE2B 258beed0944b126b8661fff1611eea007d70a34b25bedfd9d5dca9397f072f5d37fdd28458f0988640c7754a8ef5caf866a3d1d70b04bbfff782031c6be2ea39 SHA512 08a147d3dda6486eb2285a41763ade50d00e5d96882149820aee1015d1ec21f3078052759346ea9c57532e5ad41f8a4d95f91af975ea4e3535f2413a980debda MISC metadata.xml 845 BLAKE2B c2e80468e673bd35bbe6c6dd63d6c95941d15e8671c29b9bee1be84b4735b89db861a17e2c7e2b80790e49a6586f9fe791e42523a25011a8074de0ef22b33070 SHA512 4a5165c6456d53f56855b4d701d6e4f8697995d66f4aa0c88ef03bc62432897e6261626b408d146f684c59bc1f619fa5a4f543e4d4ea6c3a93cdf3f9ff0915e8 diff --git a/sys-apps/kexec-tools/files/kexec-auto-load b/sys-apps/kexec-tools/files/kexec-auto-load new file mode 100644 index 000000000000..62c828fd1c3d --- /dev/null +++ b/sys-apps/kexec-tools/files/kexec-auto-load @@ -0,0 +1,95 @@ +#!/usr/bin/env bash + +# Defaults +LAYOUT=compat +BOOTPART=/boot +KNAME=kernel +INITRD=initramfs.img + +instkern_state=/var/lib/misc/installkernel +if [[ -s ${instkern_state} ]]; then + # If we have a log file, set defaults from there. + IFS=$'\t' read -r -a LastKernArray <<< "$(tail -n1 ${instkern_state})" + LAYOUT="${LastKernArray[4]}" + BOOTPART="${LastKernArray[7]}" + KNAME="${LastKernArray[8]}" + if [[ "${LastKernArray[9]}" != unknown && ${LAYOUT} != uki ]]; then + INITRD="${LastKernArray[9]}" + else + INITRD= + fi +fi + +if [[ ${LAYOUT} == uki ]]; then + echo "WARNING: kexec currently does not support UKIs" + KPARAM= +else + if [[ -f /etc/kernel/cmdline ]]; then + KPARAM="$(tr -s "${IFS}" ' ' </etc/kernel/cmdline)" + elif [[ -f /usr/lib/kernel/cmdline ]]; then + KPARAM="$(tr -s "${IFS}" ' ' </usr/lib/kernel/cmdline)" + else + KPARAM= + fi +fi + + +# /etc/kexec.conf overrides installkernel.log +kexec_conf=/etc/kexec.conf +if [[ -f ${kexec_conf} ]]; then + source ${kexec_conf} +fi + +if [[ -z ${DONT_MOUNT_BOOT} ]]; then + # Borrowed from mount-boot-utils.eclass + # note that /dev/BOOT is in the Gentoo default /etc/fstab file + fstabstate=$(awk "!/^[[:blank:]]*#|^\/dev\/BOOT/ && \$2 == \"${BOOTPART}\" \ + { print 1; exit }" /etc/fstab || die "awk failed") + + if [[ -z ${fstabstate} ]]; then + echo "Assuming you do not have a separate ${BOOTPART} partition." + else + procstate=$(awk "\$2 == \"${BOOTPART}\" { split(\$4, a, \",\"); \ + for (i in a) if (a[i] ~ /^r[ow]\$/) { print a[i]; break }; exit }" \ + /proc/mounts || die "awk failed") + + if [[ -z ${procstate} ]]; then + echo "ERROR: Your ${BOOTPART} partition is not mounted" + exit 1 + fi + fi +fi + +if [[ ! -d ${BOOTPART} ]]; then + echo "ERROR: BOOTPART=${BOOTPART} not found" + exit 1 +fi + +KEXEC_ARGS=() + +if [[ -f ${BOOTPART}/${KNAME} ]]; then + KEXEC_ARGS+=( --load "${BOOTPART}/${KNAME}" ) +else + echo "ERROR: KNAME=${KNAME} not found" + exit 1 +fi + +if [[ -n ${INITRD} ]]; then + if [[ -f ${BOOTPART}/${INITRD} ]]; then + KEXEC_ARGS+=( --initrd "${BOOTPART}/${INITRD}" ) + else + echo "WARNING: INITRD=${INITRD} not found" + fi +fi + +if [[ -n ${KPARAM} ]]; then + KEXEC_ARGS+=( --command-line "${KPARAM}" ) +elif [[ ! -f /etc/kernel/cmdline && ! -f /usr/lib/kernel/cmdline ]]; then + # If it is still empty and we did not intentionally set it empty then reuse. + KEXEC_OPT_ARGS+=" --reuse-cmdline " +fi + +KEXEC_ARGS+=( ${KEXEC_OPT_ARGS} ) + +echo "Calling kexec with arguments: ${KEXEC_ARGS[@]}" +exec kexec "${KEXEC_ARGS[@]}" diff --git a/sys-apps/kexec-tools/files/kexec.conf b/sys-apps/kexec-tools/files/kexec.conf index aa829b9c2349..34161117ec8f 100644 --- a/sys-apps/kexec-tools/files/kexec.conf +++ b/sys-apps/kexec-tools/files/kexec.conf @@ -1,16 +1,32 @@ -# Kernel image pathname, relative from /boot. -KNAME="bzimage" +# Kernel image partition. +# Default: partition that last kernel image was installed on +#BOOTPART="/boot" + +# Path to (unified) kernel image, relative to BOOTPART. +# Default: last installed kernel image +#KNAME="kernel" + +# Path to the initramfs image, relative to BOOTPART +# Default: initramfs belonging to last kernel image, if any +#INITRD="initramfs.img" + +# Kernel cmdline to use, +# Default: contents of {/etc,/usr/lib}/kernel/cmdline if exists, otherwise --reuse-cmdline is used +#KPARAM="quiet" + +# Additional arguments passed to kexec +#KEXEC_OPT_ARGS="" + +# Do not try to mount /boot +#DONT_MOUNT_BOOT="yes" -# 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 +# The below is currently used by the OpenRC script only # -KEXEC_OPT_ARGS="--reuse-cmdline" + +# Load kexec kernel image into memory during shutdown instead of bootup +# (default: yes) +#LOAD_DURING_SHUTDOWN="yes" + +# Root partition (should be autodetected) +#ROOTPART="/dev/hda3" diff --git a/sys-apps/kexec-tools/files/kexec.conf-2.0.4 b/sys-apps/kexec-tools/files/kexec.conf-2.0.4 index b71ea2bae97f..215acca19d7a 100644 --- a/sys-apps/kexec-tools/files/kexec.conf-2.0.4 +++ b/sys-apps/kexec-tools/files/kexec.conf-2.0.4 @@ -13,12 +13,12 @@ #ROOTPART="/dev/hda3" # Kernel image pathname, relative from BOOTPART. -# If it's one of +# 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="vmlinuz-3.9.0" +#KNAME="kernel" # Initrd # Same automatic detection restriction as for KNAME apply. @@ -31,4 +31,4 @@ #KPARAM="splash=silent,theme:emergence" # Do not try to mount /boot -# DONT_MOUNT_BOOT="yes" +#DONT_MOUNT_BOOT="yes" diff --git a/sys-apps/kexec-tools/files/kexec.service b/sys-apps/kexec-tools/files/kexec.service index 289aae0df0b1..ce9adf0e5da2 100644 --- a/sys-apps/kexec-tools/files/kexec.service +++ b/sys-apps/kexec-tools/files/kexec.service @@ -9,8 +9,8 @@ ConditionPathExists=!/nokexec 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} +ExecStart=/usr/sbin/kexec-auto-load +ExecStop=/usr/sbin/kexec-auto-load [Install] WantedBy=multi-user.target diff --git a/sys-apps/kexec-tools/kexec-tools-2.0.29.ebuild b/sys-apps/kexec-tools/kexec-tools-2.0.29-r1.ebuild index bedde55d9615..761057097d28 100644 --- a/sys-apps/kexec-tools/kexec-tools-2.0.29.ebuild +++ b/sys-apps/kexec-tools/kexec-tools-2.0.29-r1.ebuild @@ -3,7 +3,7 @@ EAPI=8 -inherit libtool linux-info optfeature systemd +inherit libtool linux-info systemd if [[ ${PV} == "9999" ]] ; then inherit git-r3 autotools @@ -92,24 +92,16 @@ src_install() { dodoc "${FILESDIR}"/README.Gentoo newinitd "${FILESDIR}"/kexec-r2.init kexec - newconfd "${FILESDIR}"/kexec.conf-2.0.4 kexec insinto /etc doins "${FILESDIR}"/kexec.conf + dosym ../kexec.conf /etc/conf.d/kexec - insinto /etc/kernel/postinst.d - doins "${FILESDIR}"/90_kexec - + dosbin "${FILESDIR}"/kexec-auto-load 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 @@ -125,7 +117,4 @@ pkg_postinst() { 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]" } diff --git a/sys-apps/kexec-tools/kexec-tools-9999.ebuild b/sys-apps/kexec-tools/kexec-tools-9999.ebuild index bedde55d9615..761057097d28 100644 --- a/sys-apps/kexec-tools/kexec-tools-9999.ebuild +++ b/sys-apps/kexec-tools/kexec-tools-9999.ebuild @@ -3,7 +3,7 @@ EAPI=8 -inherit libtool linux-info optfeature systemd +inherit libtool linux-info systemd if [[ ${PV} == "9999" ]] ; then inherit git-r3 autotools @@ -92,24 +92,16 @@ src_install() { dodoc "${FILESDIR}"/README.Gentoo newinitd "${FILESDIR}"/kexec-r2.init kexec - newconfd "${FILESDIR}"/kexec.conf-2.0.4 kexec insinto /etc doins "${FILESDIR}"/kexec.conf + dosym ../kexec.conf /etc/conf.d/kexec - insinto /etc/kernel/postinst.d - doins "${FILESDIR}"/90_kexec - + dosbin "${FILESDIR}"/kexec-auto-load 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 @@ -125,7 +117,4 @@ pkg_postinst() { 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]" } |