Bug 1227330

Summary: weakobsoletes for 15.5 are missing in 15.6 release package
Product: [openSUSE] openSUSE Distribution Reporter: Dirk Mueller <dmueller>
Component: PatternsAssignee: Lubos Kocman <lubos.kocman>
Status: NEW --- QA Contact: E-mail List <qa-bugs>
Severity: Normal    
Priority: P5 - None CC: dheidler, dmueller, mlin
Version: Leap 15.6Flags: mlin: needinfo? (dmueller)
Target Milestone: ---   
Hardware: Other   
OS: Other   
Whiteboard:
Found By: --- Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---

Description Dirk Mueller 2024-07-03 09:22:50 UTC
rpm -q --provides openSUSE-release  | grep -c weakremover
16997

on the registry.opensuse.org/opensuse/leap:15.6 indicates that there is a problem, because weakobsoletes.inc has over 39000 lines. so something is cutting the rest of the file off, including all of the weakobsoletes for 15.5 maintenance updates. 

example 

$ rpm -q --provides openSUSE-release  | grep -c libpoppler126
0 


however this is in the original source file as can be seen by unpacking

curl -O https://download.opensuse.org/repositories/openSUSE:/Leap:/15.6/standard/src/openSUSE-release-15.6-lp156.416.2.src.rpm

$ grep libpoppler126 weakremovers.inc 
Provides: weakremover(libpoppler126)
Comment 1 Dirk Mueller 2024-07-03 09:27:27 UTC
if you compare it with the rendered output: 

rpmspec -P Leap-release.spec  | grep "Provides: weak" > new

and then

diff -u weakremovers.inc new 

you can see that the entire 15.5 section is in an "%ifarch s390x" condition, making it completely gone for x86_64. that's why the obsoletes are not there.
Comment 2 Max Lin 2024-07-03 15:04:22 UTC
(In reply to Dirk Mueller from comment #1)
> if you compare it with the rendered output: 
> 
> rpmspec -P Leap-release.spec  | grep "Provides: weak" > new
> 
> and then
> 
> diff -u weakremovers.inc new 
> 
> you can see that the entire 15.5 section is in an "%ifarch s390x" condition,
> making it completely gone for x86_64. that's why the obsoletes are not there.

That does not sound 100% right, the entire 15.5 section IS NOT in "%ifarch s390x" section,

$ sed -n 10167,10177p weakremovers.inc 
# 15.5
Provides: weakremover(bloaty)
Provides: weakremover(budgie-control-center-devel)
Provides: weakremover(build-initvm-i586)
Provides: weakremover(bumblebee)
Provides: weakremover(bumblebee-status)
Provides: weakremover(bumblebee-status-module-cmus)
Provides: weakremover(bumblebee-status-module-dnf)
Provides: weakremover(bumblebee-status-module-mocp)
Provides: weakremover(bumblebee-status-module-mpd)
Provides: weakremover(bumblebee-status-module-redshift)

$ rpm -qp --provides binaries/openSUSE-release-15.6-lp156.416.2.x86_64.rpm | grep bloaty
weakremover(bloaty)

$ rpm -qp --provides binaries/openSUSE-release-15.6-lp156.416.2.x86_64.rpm | grep bumblebee
weakremover(bumblebee)
weakremover(bumblebee-status)
weakremover(bumblebee-status-module-cmus)
weakremover(bumblebee-status-module-dnf)
weakremover(bumblebee-status-module-mocp)
weakremover(bumblebee-status-module-mpd)
weakremover(bumblebee-status-module-redshift)

the first 10 lines in 15.5 section does has a proper weakremover() for each package from the x86_64 release package.

the libpoppler126 case indeed look weird, it was in the "%ifarch aarch64 ppc64le s390x" section... this need to dig into pkglistgen if it has wrong packages data uploaded to 000update-repos, or it doing it wrong to procceeded weakremovwes.inc. These bloaty and bumblebee weakremvoers shows fine though, and they are not part of any %ifarch section, that sounds somehow we have a problematic weakremvoers.inc for multiple-archs.

what is the weak-obsoleting problem you have seen from registry.o.o? if needed we can prepare a release-package update with adding a explicit Provides: weakremovwe() to release-package's spec.