kbuild: deb-pkg: fix versioning for -rc releases
authorMasahiro Yamada <masahiroy@kernel.org>
Tue, 11 Mar 2025 19:01:33 +0000 (04:01 +0900)
committerMasahiro Yamada <masahiroy@kernel.org>
Sat, 22 Mar 2025 14:50:58 +0000 (23:50 +0900)
The version number with -rc should be considered older than the final
release.

For example, 6.14-rc1 should be older than 6.14, but to handle this
correctly (just like Debian kernel), "-rc" must be replace with "~rc".

  $ dpkg --compare-versions 6.14-rc1 lt 6.14
  $ echo $?
  1
  $ dpkg --compare-versions 6.14~rc1 lt 6.14
  $ echo $?
  0

Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
Reviewed-by: Nathan Chancellor <nathan@kernel.org>
scripts/package/mkdebian

index 0178000197fe2aaa24eb732907a00b74464e48b9..07ca3528e8ea8fdb0c63c9cf8cb340787d25f304 100755 (executable)
@@ -161,7 +161,9 @@ version=$KERNELRELEASE
 if [ "${KDEB_PKGVERSION:+set}" ]; then
        packageversion=$KDEB_PKGVERSION
 else
-       packageversion=$(${srctree}/scripts/setlocalversion --no-local ${srctree})-$($srctree/scripts/build-version)
+       upstream_version=$("${srctree}/scripts/setlocalversion" --no-local "${srctree}" | sed 's/-\(rc[1-9]\)/~\1/')
+       debian_revision=$("${srctree}/scripts/build-version")
+       packageversion=${upstream_version}-${debian_revision}
 fi
 sourcename=${KDEB_SOURCENAME:-linux-upstream}