Bug 1181832

Summary: noarch binary package handling in ftp-tree
Product: [openSUSE] openSUSE Distribution Reporter: Max Lin <mlin>
Component: OtherAssignee: Lubos Kocman <lubos.kocman>
Status: RESOLVED FIXED QA Contact: E-mail List <qa-bugs>
Severity: Normal    
Priority: P3 - Medium CC: adrian.schroeter, lubos.kocman, normand, nwr10cst-oslnx, wolfgang.engel
Version: Leap 15.3   
Target Milestone: ---   
Hardware: Other   
OS: Other   
Whiteboard:
Found By: --- Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---
Bug Depends on: 1180626    
Bug Blocks:    

Description Max Lin 2021-02-05 09:12:59 UTC
Copy from https://bugzilla.opensuse.org/show_bug.cgi?id=1180626#c11

(In reply to Neil Rickert from comment #10)
> Responding to c#9
> 
> # zypper se -s librepository
> Loading repository data...
> Warning: Repository 'Main Update Repository' appears to be outdated.
> Consider using a different mirror or server.
> Reading installed packages...
> 
> S | Name                  | Type    | Version         | Arch   | Repository
> --+-----------------------+---------+-----------------+--------+-------------
> -----
> i | librepository         | package | 1.1.3-2.84      | noarch | (System
> Packages)
> v | librepository         | package | 1.1.3-bp153.1.1 | noarch | Main
> Repository
>   | librepository-javadoc | package | 1.1.3-bp153.1.1 | noarch | Main
> Repository
> 
> Looking at that output, the discrepancy does not seem very important.


All these downgrading package is noarch package, I believe product builder just picks one of that from any build_arch. Have a closer look,

* librepository-1.1.3-2.84 is from SLE, a x86_64 build
* librepository-1.1.3-bp153.1.1 is from Backports, a non-x86_64 build

librepository in SLE only have x86_64 build, we rebuild librepository in Backports in order to have non-x86_64 build, ie. x86_64 build is disabled but other archs are enabled, so we have librepository-1.1.3-bp153.1.1 noarch RPM from any non-x86_64 build in Backports. product buidler picks librepository-1.1.3-bp153.1.1 instead of librepository-1.1.3-2.84 to ftp-tree perhaps it's a fall out with multiple-layering repos.

Although librepository-1.1.3-2.84 and librepository-1.1.3-bp153.1.1 is from the identical source, but librepository-1.1.3-2.84 is greater than librepository-1.1.3-bp153.1.1 that's why downgrade happened. I'll file another bug to track this issue.

We need to add SLE inherited noarch RPM to ftp-tree to instead of Backports's build, or reverse, the goal is to have the same noarch RPM in the ftp-tree and the medium.
Comment 1 Max Lin 2021-02-05 09:17:06 UTC
Adrian, I guess it's product builder related, have any idea here?
Comment 2 Adrian Schröter 2021-02-05 10:08:28 UTC
backport repositories are not build by product-builder. 

Basically everything what is build gets published there.

So even when we would hack for 15.3 ftp-tree we would run into the problem again on next maintenance update for it.

IMHO we would need to avoid building it in Backports to solve it.

If not possible in the source maybe via prjconf:

%ifarch x86_64
BuildFlags: excludebuild:librepository
%endif
Comment 3 Max Lin 2021-02-05 11:47:22 UTC
(In reply to Adrian Schröter from comment #2)
> backport repositories are not build by product-builder. 
> 
> Basically everything what is build gets published there.
> 
> So even when we would hack for 15.3 ftp-tree we would run into the problem
> again on next maintenance update for it.
> 
> IMHO we would need to avoid building it in Backports to solve it.
> 
> If not possible in the source maybe via prjconf:
> 
> %ifarch x86_64
> BuildFlags: excludebuild:librepository
> %endif

that works for librepository, but per the origin log at https://bugzilla.opensuse.org/show_bug.cgi?id=1180626#c10 , -lang package also has the same problem, for example https://build.opensuse.org/package/binaries/openSUSE:Backports:SLE-15-SP3/evolution-ews/standard, evolution-ews builds non-x86_64 arch, sets exludebuild on it will lost RPMs for non-x86_64 arch.

btw librepository-1.1.3-2.84 doesn't exist in ftp-tree(but exist in x86_64 medium only), librepository-1.1.3-bp153.1.1 was exist in ftp-tree.
Comment 5 Max Lin 2021-05-27 08:57:18 UTC
This is fixed by
1) moved wrongly binaries to packagehub's subpacakge module and publishing from there
2) deleted problematic packages and/or turn problematic multibuild flavor off

I just check the final state of ftp tree, this issue should not occur after all.