Bug 598221

Summary: yum (or mock?) not installing all build dependencies
Product: [Fedora] Fedora Reporter: Ville Skyttä <ville.skytta>
Component: yumAssignee: Seth Vidal <skvidal>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: low    
Version: 13CC: ffesti, james.antill, matt_domsch, maxamillion, pmatilai, tim.lauridsen
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
: 598639 (view as bug list) Environment:
Last Closed: 2011-02-22 19:03:25 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 598639    
Attachments:
Description Flags
root.log none

Description Ville Skyttä 2010-05-31 19:47:50 UTC
http://linux.dell.com/files/fedora/FixBuildRequires/mock-results/i386/javasqlite-20100131-1.fc13.src.rpm/result/root.log

On a quick look, this looks like a yum (or mock?) bug to me.

javasqlite specifically wants both 1.5 and 1.6 java-devel packages installed at build time, and has:

BuildRequires:  java-devel = 1:1.6.0
BuildRequires:  java-devel = 1.5.0

java-1.6.0-openjdk-devel satisfies the first but not the second, and does not obsolete the package providing the second (java-1.5.0-gcj-devel).  However, only java-1.6.0-openjdk-devel got installed according to the root log so failure is expected as build requirements are not met.

Curiously, I cannot reproduce on a F-13 x86_64 host, it builds fine in mock here; both java-1.6.0-openjdk-devel and java-1.5.0-gcj-devel get installed as intended.

Comment 1 James Antill 2010-06-01 04:54:10 UTC
 Can you test if this patch fixes it for you:

http://yum.baseurl.org/gitweb?p=yum-utils.git;a=commitdiff;h=7b64bfa4f38fa382e00eae2f4a30263707ae81a3

Comment 2 Ville Skyttä 2010-06-01 14:33:05 UTC
Unfortunately not because I could not reproduce it in the first place, but I'm Cc'ing Matt Domsch, his build logs showed it: Matt, could you apply the patch in comment 1 and retry the FixBuildRequires javasqlite builds?

Comment 3 seth vidal 2010-06-01 17:15:25 UTC
http://fpaste.org/Xpbx/

so here's the backstory:

mock gets the requires from the srpm
it calls rpmUtils.miscutils.formatRequire() to return them

rpm-python changed so it is now offering Longs instead of ints as the requiresflags.

this meant that formatRequire breaks and doesn't return the requires versions at all - just the requiresnames. :(

the patch at the top of this comment fixes it and makes all of this work.

Comment 4 Matt Domsch 2010-06-02 01:08:42 UTC
Created attachment 418870 [details]
root.log

With thanks to skvidal for tracking down this difficult bug, and quickly, I have tested his patch on my buildsystems.  javasqlite.i386 built properly, and see the attached root.log to see that it now pulled in both java-devel packages as expected.

IMO, this can be closed after a new yum is released into rawhide with this patch.

Thanks,
Matt