All of lore.kernel.org
 help / color / mirror / Atom feed
From: Nathan Chancellor <nathan@kernel.org>
To: "Viktor Jägersküpper" <viktor_jaegerskuepper@freenet.de>
Cc: "Thomas Weißschuh" <linux@weissschuh.net>,
	"Christian Heusel" <christian@heusel.eu>,
	"Nicolas Schier" <nsc@kernel.org>,
	linux-kbuild@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2] kbuild: pacman-pkg: make "rc" releases adhere to pacman versioning scheme
Date: Sun, 17 May 2026 14:00:56 +0900	[thread overview]
Message-ID: <20260517050056.GD1534263@ax162> (raw)
In-Reply-To: <b882a024-f209-40df-ab5c-f212c1f43c7d@freenet.de>

On Sun, May 17, 2026 at 02:57:07AM +0200, Viktor Jägersküpper wrote:
> On 5/16/26 17:33, Nathan Chancellor wrote:
> > On Sat, May 16, 2026 at 04:27:39PM +0200, Viktor Jägersküpper wrote:
> >> On 5/15/26 23:58, Viktor Jägersküpper wrote:
> >>> The package versioning scheme does not enable smooth upgrades from "rc"
> >>> releases to the corresponding stable releases (e.g. 7.0.0-rc7 -> 7.0.0)
> >>> because pacman considers that a downgrade due to the underscore in
> >>> pkgver (e.g. 7.0.0_rc7), see e.g. vercmp(8) for an explanation of the
> >>> package version comparison used by pacman. Package versions which are
> >>> derived from said releases (e.g. built from git revisions) are
> >>> similarly affected. Fix this by modifying pkgver in order to remove the
> >>> hyphen from kernel versions containing "-rcN", where N is a
> >>> non-negative integer.
> >>>
> >>> Acked-by: Thomas Weißschuh <linux@weissschuh.net>
> >>> Signed-off-by: Viktor Jägersküpper <viktor_jaegerskuepper@freenet.de>
> >>> ---
> >>> v1 -> v2:
> >>> - make the substitution more restrictive
> >>> - enhance commit message accordingly
> >>> - add Acked-by tag
> >>>
> >>> v1: https://lore.kernel.org/linux-kbuild/20260513231745.51780-1-viktor_jaegerskuepper@freenet.de/
> >>>
> >>> BTW this also works for something like "5.10.248-rt143-rc1" which is a
> >>> recent example of an "rc" release of a realtime kernel.
> >>>
> >>>  scripts/package/PKGBUILD | 2 +-
> >>>  1 file changed, 1 insertion(+), 1 deletion(-)
> >>>
> >>> diff --git a/scripts/package/PKGBUILD b/scripts/package/PKGBUILD
> >>> index 452374d63c24..1213c8e04671 100644
> >>> --- a/scripts/package/PKGBUILD
> >>> +++ b/scripts/package/PKGBUILD
> >>> @@ -10,7 +10,7 @@ for pkg in $_extrapackages; do
> >>>  	pkgname+=("${pkgbase}-${pkg}")
> >>>  done
> >>>  
> >>> -pkgver="${KERNELRELEASE//-/_}"
> >>> +pkgver="$(echo "${KERNELRELEASE}" | sed 's/-\(rc[0-9]\+\)/\1/;s/-/_/g')"
> >>
> >> I will send a v3 patch later with the first substitution changed to
> >> match "-rcN" where N is a strictly positive integer because this is
> >> what we really had in the kernel so far, at least as far as I can
> >> remember.
> > 
> > Do you mean dropping the '\+' portion of the regex? If so, I think I
> > would rather keep what you have here since while an -rc10 is incredibly
> > unlikely nowadays (we pretty much never go past -rc8), it has happened
> > once before in 3.1:
> > 
> >   $ git tag -l | grep -- -rc10
> >   v3.1-rc10
> 
> I was only concerned about 'rc0', so I came up with this:
> 
> 's/-\(rc[1-9][0-9]*\)/\1/;s/-/_/g'
> 
> For 'rc' releases starting from 'rc1' this matches '-rcN' where N is a
> strictly positive integer. Since 'git tag -l | grep -- rc0' shows
> nothing, I assume that there is an unwritten rule that counting from 1
> is the correct choice for kernel 'rc' releases. :-)
> 
> Compare that to the Debian substitution code: 's/-\(rc[1-9]\)/~\1/'

While you are correct that the kernel does not use -rc0, I don't think
it is worth preemptively complicating the regex to avoid treating -rc0
differently from -rc1 and beyond; I find the way it is currently written
to be more readable but maybe Christian or Thomas feel differently.

> > We can leave the Debian case you pointed at earlier the way it is for
> > now but if we are making a change here, we might as well make it as
> > future proof as possible. If you (or others) really feel strongly
> > otherwise, feel free to ignore me :)
> Actually I have no preference. If there is consensus that the regex for
> strictly positive integers is better, I can send a v3 patch. The Debian
> code can be adjusted in a follow-up patch.
> 
> BTW I forgot to mention that this patch also addresses the stable 'rc'
> preview releases which also start from 'rc1'.

Ah yes, that is also a good point.

-- 
Cheers,
Nathan

  reply	other threads:[~2026-05-17  5:01 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-05-15 21:58 [PATCH v2] kbuild: pacman-pkg: make "rc" releases adhere to pacman versioning scheme Viktor Jägersküpper
2026-05-16 14:27 ` Viktor Jägersküpper
2026-05-16 15:33   ` Nathan Chancellor
2026-05-17  0:57     ` Viktor Jägersküpper
2026-05-17  5:00       ` Nathan Chancellor [this message]
2026-05-17  9:41         ` Thomas Weißschuh
2026-05-17 10:24 ` Nathan Chancellor
2026-05-17 19:31 ` Nicolas Schier

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260517050056.GD1534263@ax162 \
    --to=nathan@kernel.org \
    --cc=christian@heusel.eu \
    --cc=linux-kbuild@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@weissschuh.net \
    --cc=nsc@kernel.org \
    --cc=viktor_jaegerskuepper@freenet.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.