[lttng-dev] [PATCH lttng-modules 1/3] Fix: debian kernel version parsing

Mathieu Desnoyers mathieu.desnoyers at efficios.com
Tue Jan 9 21:32:17 UTC 2018


Merged patches 1 and 2 into master, 2.10, 2.9.

Patch 3 needs work, as detailed in a separate email.

Thanks,

Mathieu

----- On Jan 9, 2018, at 3:43 PM, Michael Jeanson mjeanson at efficios.com wrote:

> The debian version script only worked for ckt kernels and that was fine
> until now because we only had checks for those versions in the code.
> 
> ckt (Canonical Kernel Team) kernels were used for a while during the jessie
> cycle, their versionning is a bit different. They track the upstream vanilla
> stable updates but they don't update the minor version number and instead add
> an additionnal -cktX. They were all 3.16.7-cktX and after a while the version
> switched back to upstream style at 3.16.36.
> 
> Knowing that, we can compare regular debian and ckt kernel versions
> using this scheme :
> 
>  MAJOR.PATCHLEVEL.SUBLEVEL.CKT.DEBABI.DEBPATCH
> 
> And setting CKT to zero for non-ckt kernels.
> 
> Signed-off-by: Michael Jeanson <mjeanson at efficios.com>
> ---
> abi-debian-version.sh | 18 ++++++++++--------
> 1 file changed, 10 insertions(+), 8 deletions(-)
> 
> diff --git a/abi-debian-version.sh b/abi-debian-version.sh
> index 310d6a8..36da212 100755
> --- a/abi-debian-version.sh
> +++ b/abi-debian-version.sh
> @@ -12,24 +12,26 @@ fi
> 
> # Assuming KPATH is the target kernel headers directory
> DEB_PACKAGE_VERSION=$(sed -rn 's/^#define LINUX_PACKAGE_ID " Debian (.*)"/\1/p'
> ${KPATH}/include/generated/package.h)
> +
> # Ignore backports part
> DEB_PACKAGE_VERSION=$(echo ${DEB_PACKAGE_VERSION} | sed -r 's/~(bpo|deb).*//')
> +
> +# ckt (Canonical Kernel Team) kernels were used for a while during the jessie
> +# cycle, their versionning is a bit different. They track the upstream vanilla
> +# stable updates but they don't update the minor version number and instead add
> +# an additionnal -cktX. They were all 3.16.7-cktX and after a while the version
> +# switched back to upstream style at 3.16.36.
> +
> # Get -ckt update number, if present
> KERNEL_CKT_UPDATE=$(echo ${DEB_PACKAGE_VERSION} | sed -rn
> 's/^[0-9]+\.[0-9]+\.[0-9]+-ckt([0-9]+).*/\1/p')
> -
> -# Only care about the rest if it is a -ckt kernel, making sure we do not
> -# clash with older Debian kernels (e.g. Debian 3.2.65-1+deb7u2).
> -if [ -z "${KERNEL_CKT_UPDATE}" ]; then
> -	echo 0
> -	exit 0
> -fi
> +test -n "${KERNEL_CKT_UPDATE}" || KERNEL_CKT_UPDATE=0
> 
> # Get package revision
> DEB_PACKAGE_REVISION=$(echo ${DEB_PACKAGE_VERSION} | sed -r 's/.*-([^-]+)$/\1/')
> # Get non-sec update number
> DEB_PACKAGE_REVISION_BASE=$(echo ${DEB_PACKAGE_REVISION} | sed -r
> 's/^([0-9]+).*/\1/')
> # Get security update number, if present
> -DEB_PACKAGE_REVISION_SECURITY=$(echo ${DEB_PACKAGE_REVISION} | sed -rn
> 's/.*\+(squeeze|deb[0-9])+u([0-9]+)$/\1/p')
> +DEB_PACKAGE_REVISION_SECURITY=$(echo ${DEB_PACKAGE_REVISION} | sed -rn
> 's/.*\+(squeeze|deb[0-9]+)+u([0-9]+)$/\2/p')
> test -n "${DEB_PACKAGE_REVISION_SECURITY}" || DEB_PACKAGE_REVISION_SECURITY=0
> # Combine all update numbers into one
> DEB_API_VERSION=$((KERNEL_CKT_UPDATE * 10000 + DEB_PACKAGE_REVISION_BASE * 100 +
> DEB_PACKAGE_REVISION_SECURITY))
> --
> 2.7.4

-- 
Mathieu Desnoyers
EfficiOS Inc.
http://www.efficios.com


More information about the lttng-dev mailing list