diff mbox series

[1/1] package.bbclass: Fix base_ver for AUTOINC

Message ID 0336a138f7ad4aff0f2cd3b9549aba5a467a8986.1763293945.git.liezhi.yang@windriver.com
State New
Headers show
Series [1/1] package.bbclass: Fix base_ver for AUTOINC | expand

Commit Message

Robert Yang Nov. 16, 2025, 11:54 a.m. UTC
From: Robert Yang <liezhi.yang@windriver.com>

The srcpv isn't in PV any more after the following commit:

a8e7b0f932 base/package: Move source revision information from PV to PKGV

So the version.find(srcpv) will be -1, which would make base_ver to something like:
glibc-2.39+git-r (The 0 is removed)

There will be bugs when both of the following conditions are met:
* The srcrev is upgraded from value such as cff104 to b027d5 (b is less c)
* The PR value is changed from value such as r0 to r10

This would make glibc-2.39+git-r can't match glibc-2.39+git-r1, so the AUTOINC won't work,
and would still be git0, then buildhistory would report errors like:

ERROR: glibc-2.39+git-r0 do_packagedata_setscene: QA Issue: Package version for package glibc-src went backwards which would break package feeds (from 0:2.39+git0+cff1042cce-r0.0 to 0:2.39+git0+b027d5b145-r10.0) [version-going-backwards]

Strip PR to make it work as before, just like it stripped the string after
srcpv in the past.

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
---
 meta/classes-global/package.bbclass | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
diff mbox series

Patch

diff --git a/meta/classes-global/package.bbclass b/meta/classes-global/package.bbclass
index d7ff333f20..bd32a6ede5 100644
--- a/meta/classes-global/package.bbclass
+++ b/meta/classes-global/package.bbclass
@@ -296,8 +296,10 @@  python package_get_auto_pr() {
         conn = oe.prservice.prserv_make_conn(d)
         if conn is not None:
             if "AUTOINC" in pkgv:
+                pr = d.getVar('PR')
+                # Strip PR to make AUTOINC can increase when SRCREV is changed
+                base_ver = "AUTOINC-%s" % version[:-len(pr)]
                 srcpv = bb.fetch2.get_srcrev(d)
-                base_ver = "AUTOINC-%s" % version[:version.find(srcpv)]
                 value = conn.getPR(base_ver, pkgarch, srcpv)
                 d.setVar("PRSERV_PV_AUTOINC", str(value))