Bug 1218900

Summary: product builder picks architecture favor ones over than noarch but noarch ones has higher version number
Product: [openSUSE] openSUSE Distribution Reporter: Max Lin <mlin>
Component: OtherAssignee: Adrian Schröter <adrian.schroeter>
Status: NEW --- QA Contact: E-mail List <qa-bugs>
Severity: Normal    
Priority: P5 - None CC: mlin
Version: Leap 15.6   
Target Milestone: ---   
Hardware: Other   
OS: Other   
Whiteboard:
Found By: --- Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---

Description Max Lin 2024-01-17 10:23:31 UTC
The older MozillaFirefox-devel binary RPM has been selected to ftp-tree over than the newer ones. The difference is the older ones is x86_64 arch, the newer one is noarch, product builder seem to in favor of the architeture flavor ones ALTHOUGH the newer one has a higher version number. Product builder should selecting the newer one with the higher version number.

The newer one is MozillaFirefox-devel-115.6.0-150200.152.120.1.noarch.rpm, the older one is MozillaFirefox-devel-102.12.0-150200.152.90.1.x86_64.rpm 

$ sudo zypper se -r 1 -s MozillaFirefox
[sudo] password for root: 
Loading repository data...
Reading installed packages...

S | Name                               | Type    | Version                  | Arch   | Repository
--+------------------------------------+---------+--------------------------+--------+------------
v | MozillaFirefox                     | package | 115.6.0-150200.152.120.1 | x86_64 | 15.6_totest
v | MozillaFirefox-branding-openSUSE   | package | 68-lp156.9.1             | x86_64 | 15.6_totest
  | MozillaFirefox-branding-upstream   | package | 115.6.0-150200.152.120.1 | x86_64 | 15.6_totest
  | MozillaFirefox-devel               | package | 102.12.0-150200.152.90.1 | x86_64 | 15.6_totest
v | MozillaFirefox-translations-common | package | 115.6.0-150200.152.120.1 | x86_64 | 15.6_totest
  | MozillaFirefox-translations-other  | package | 115.6.0-150200.152.120.1 | x86_64 | 15.6_totest
Comment 1 Adrian Schröter 2024-01-18 15:25:07 UTC
The default is to prefer by architecture and repository prios.

But you can switch to use the highest version by setting

  use_newest_version="true"

for each media element. 

However, you need a product-builder 1.4 for this. It seems you downgraded from 1.3 to 1.2 since SP5. Is that done on purpose?
Comment 2 Adrian Schröter 2024-01-18 15:26:47 UTC
in case you update product-builder, do also update the plugins.
Comment 3 Max Lin 2024-01-18 16:24:37 UTC
It used to be the Factory version in Leap until somewhen we did discussing a thing(I forgot the topic) and you suggested we use SLE15's version in Leap15, thus that's it as the SLE15's version - 1.2.x :)

Regarding `use_newest_version="true"` it might causing a different problem on Leap,  it has calculate to release_number digit does it? Backports-15 has `bp15x` and Leap15 has `lp15x` in the release_number, it always less than `150x00` release number what SLE15 binary RPMs had thus Leap/Backports ones not to be selected, yes, there are few packages have had rebuild in Leap15 with the same SLE15 source/version, like rebuilt with openSUSE specific config-bit enabled, or like some codec support. In short, product-builder will not pick binary RPMs if it has lp15x/bp15x in the release number in such cases but they're the things we want release to. Is my understanding correct?
Comment 4 Adrian Schröter 2024-01-19 07:27:08 UTC
yes, the prefix might be a problem.

Alternative solution is to add onlyarch="noarch" to the packages in question.
Comment 5 Adrian Schröter 2024-01-19 07:27:44 UTC
or you manually define a repository list (not using obsrepositories) and add priorities there.