summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichał Górny <mgorny@gentoo.org>2022-10-15 11:58:04 +0200
committerMichał Górny <mgorny@gentoo.org>2022-10-19 13:51:51 +0200
commit31885dcc9d0a8743903846c61d4aeb575693ca0d (patch)
tree99602d2538481d6cb4ffe822666d89e490721c31
parentdev-python/traitlets: Fix doc-deps (diff)
downloadgentoo-31885dcc9d0a8743903846c61d4aeb575693ca0d.tar.gz
gentoo-31885dcc9d0a8743903846c61d4aeb575693ca0d.tar.bz2
gentoo-31885dcc9d0a8743903846c61d4aeb575693ca0d.zip
dist-kernel-utils.eclass: Add a PV → KV conversion function
Signed-off-by: Michał Górny <mgorny@gentoo.org>
-rw-r--r--eclass/dist-kernel-utils.eclass16
-rwxr-xr-xeclass/tests/dist-kernel-utils.sh28
2 files changed, 44 insertions, 0 deletions
diff --git a/eclass/dist-kernel-utils.eclass b/eclass/dist-kernel-utils.eclass
index 8c1b56f41506..439bdc87695d 100644
--- a/eclass/dist-kernel-utils.eclass
+++ b/eclass/dist-kernel-utils.eclass
@@ -155,5 +155,21 @@ dist-kernel_reinstall_initramfs() {
"${kernel_dir}/System.map"
}
+# @FUNCTION: dist-kernel_PV_to_KV
+# @USAGE: <pv>
+# @DESCRIPTION:
+# Convert a Gentoo-style ebuild version to kernel "x.y.z[-rcN]" version.
+dist-kernel_PV_to_KV() {
+ debug-print-function ${FUNCNAME} "${@}"
+
+ [[ ${#} -ne 1 ]] && die "${FUNCNAME}: invalid arguments"
+ local pv=${1}
+
+ local kv=${pv%%_*}
+ [[ -z $(ver_cut 3- "${kv}") ]] && kv+=".0"
+ [[ ${pv} == *_* ]] && kv+=-${pv#*_}
+ echo "${kv}"
+}
+
_DIST_KERNEL_UTILS=1
fi
diff --git a/eclass/tests/dist-kernel-utils.sh b/eclass/tests/dist-kernel-utils.sh
new file mode 100755
index 000000000000..7f04f55ce302
--- /dev/null
+++ b/eclass/tests/dist-kernel-utils.sh
@@ -0,0 +1,28 @@
+#!/usr/bin/env bash
+# Copyright 2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+source tests-common.sh || exit
+
+inherit dist-kernel-utils
+# TODO: hack because tests-common don't implement ver_cut
+EAPI=6 inherit eapi7-ver
+
+test_PV_to_KV() {
+ local kv=${1}
+ local exp_PV=${2}
+
+ tbegin "dist-kernel_PV_to_KV ${kv} -> ${exp_PV}"
+ local val=$(dist-kernel_PV_to_KV "${kv}")
+ [[ ${val} == ${exp_PV} ]]
+ tend $?
+}
+
+test_PV_to_KV 6.0_rc1 6.0.0-rc1
+test_PV_to_KV 6.0 6.0.0
+test_PV_to_KV 6.0.1_rc1 6.0.1-rc1
+test_PV_to_KV 6.0.1 6.0.1
+
+texit