Bug 429723

Summary: mock fails to resolve /usr/include/gnu/stubs-32.h on x86_64
Product: [Fedora] Fedora Reporter: Daniel Berrangé <berrange>
Component: mockAssignee: David Cantrell <dcantrell>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: high Docs Contact:
Priority: high    
Version: 9CC: ftbfs, mebrown, nospam
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2009-02-05 22:52:53 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:

Description Daniel Berrangé 2008-01-22 18:06:04 UTC
Description of problem:
I am attempting todo a mock build for 'xenner' package review:

https://bugzilla.redhat.com/show_bug.cgi?id=429703

I am doing the build on an x86_64 host, running rawhide. mock will fail to
resolve the dependancy for /usr/include/gnu/stubs-32.h, which is usually
provided by glibc-devel.i386  (even on a x86_64 host).


$ mock rebuild -r fedora-devel-x86_64 /home/berrange/xenner-0.22-1.fc8.src.rpm 
INFO: mock.py version 0.9.6 starting...
State Changed: init plugins
State Changed: start
INFO: Start(/home/berrange/xenner-0.22-1.fc8.src.rpm) 
Config(fedora-development-x86_64)
State Changed: lock buildroot
State Changed: clean
State Changed: init
State Changed: lock buildroot
INFO: enabled root cache
INFO: enabled yum cache
State Changed: cleaning yum metadata
State Changed: running yum
State Changed: creating cache
State Changed: setup
ERROR: Exception(/home/berrange/xenner-0.22-1.fc8.src.rpm)
Config(fedora-development-x86_64) 3 minutes 2 seconds
INFO: Results and/or logs in: /var/lib/mock//fedora-development-x86_64/result
ERROR: Bad build req: No Package Found for /usr/include/gnu/stubs-32.h. Exiting.



Version-Release number of selected component (if applicable):
mock-0.9.6-1.fc9

How reproducible:
Always on rawhide host. Works fine on F8 host.

Steps to Reproduce:
1. mock rebuild -r fedora-devel-x86_64 /home/berrange/xenner-0.22-1.fc8.src.rpm
2.
3.
  
Actual results:
ERROR: Bad build req: No Package Found for /usr/include/gnu/stubs-32.h. Exiting.


Expected results:
Build completes

Additional info:
Running on an F8 host with mock-0.7.6-1.fc8  works flawlessly, so this looks
like a regression in rawhide mock RPM to me.

This will also impact rebuilds of Xen, and KVM since they both need the
stubs-32.h to rebuild the QEMU BIOS

Comment 1 Michael E Brown 2008-01-22 18:59:11 UTC
I've got your bug report, have reproduced it and am looking into it. This is a
dup of another report that was marked fixed a while back, so this is somewhat
surprising.

Comment 2 Michael E Brown 2008-01-22 19:19:07 UTC
This appears to be a dup of #427315. Not closing as a dup, yet.

Can you please check to see if there is any difference in behaviour between
0.9.6 and 0.8.19?

Comment 3 Daniel Berrangé 2008-01-22 20:04:16 UTC
I took the Fc8 src.rpm for mock-0.8.19 and rebuilt it on rawhide. Then cleared
the cached build roots, and re-ran, but it still fails:

$ mock rebuild -r fedora-devel-x86_64 /home/berrange/xenner-0.22-1.fc8.src.rpm 
INFO: mock.py version 0.8.19 starting...
State Changed: init plugins
State Changed: start
INFO: Start(/home/berrange/xenner-0.22-1.fc8.src.rpm) 
Config(fedora-development-x86_64)
State Changed: lock buildroot
State Changed: clean
State Changed: init
State Changed: lock buildroot
INFO: enabled root cache
INFO: enabled yum cache
State Changed: cleaning yum metadata
State Changed: running yum
State Changed: creating cache
State Changed: setup
ERROR: Exception(/home/berrange/xenner-0.22-1.fc8.src.rpm)
Config(fedora-development-x86_64) 2 minutes 14 seconds
INFO: Results and/or logs in: /var/lib/mock//fedora-development-x86_64/result
ERROR: Bad build req: No Package Found for /usr/include/gnu/stubs-32.h. Exiting.


Comment 4 Daniel Berrangé 2008-01-22 20:14:11 UTC
Further data point. If i used  mock-0.8.19  on an F8 host, then it works fine.
So it seems to be something odd in the F9 stack that's breaking mock.


Comment 5 Daniel Berrangé 2008-01-22 20:25:01 UTC
Ok, this appears to be a config file problem

Current mock sets up a config with

exclude=[!g]*.i*86 g[!l]*.i?86  gl[!i]*.i?86 gli[!b]*.i?86 glib[!c]*.i?86 


My F8 host is still using a config with 

exclude=[ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefhijklmnopqrstuvwxyz]*.i*86
g[abcdefghijkmnopqrstuvwxyz]*.i?86 glib2.i?86 glib.i?86



If I change my F8 host to use the new style exclude config, it also fails. If I
change my F9 host to use the old style exclude config, it works. 

So the defualt config file for latest mock seems to have bogus excludes.

Comment 6 Michael E Brown 2008-01-22 21:24:43 UTC
The exclude line was changed due to another, different problem. I've been
working on IRC and we came to largely the same conclusion. The [!x] syntax in
the exclude line seems to be broken. I'll end up changing the default configs
back to the 'ugly' way.

Comment 7 Daniel Berrangé 2008-01-22 21:34:44 UTC
The root problem is really yum's need to encode this magic in a single exclude
line - it makes it very hard to exclude just the right amount. It would relaly
be better as a exclude/include pair - cf imagine trying to write apache ACLs
using only the 'deny' clause and no 'allow' clause.

So perhaps its worth asking for a feature enhancement against yum to support
something like:

 order='exclude,include'
 exclude='*.i?86"
 include='glibc-*.i?86'


Comment 8 Michael E Brown 2008-01-22 22:15:04 UTC
I've checked in a fix to the exclude= line to upstream git.

I am waiting on code review for some other changes that went into 0.9 recently
before I spin new packages for rawhide. This should hit rawhide within a week.
In the meantime, if you want the official configs, you can obtain them from git.

Thanks for reporting this bug!


Comment 9 Seth Vidal 2008-01-22 22:29:36 UTC
There's this plugin - we just need to have a way of enabling plugins for mock
easily.

http://skvidal.fedorapeople.org/x86_64_build_exclude.py


Comment 10 Daniel Berrangé 2008-04-03 16:11:35 UTC
*** Bug 440368 has been marked as a duplicate of this bug. ***

Comment 11 Bug Zapper 2008-05-14 04:50:25 UTC
Changing version to '9' as part of upcoming Fedora 9 GA.
More information and reason for this action is here:
http://fedoraproject.org/wiki/BugZappers/HouseKeeping

Comment 12 Jesse Keating 2009-02-05 22:52:53 UTC
I'm pretty sure this is fixed with the way yum now works with multilib.

Comment 13 Henry Kroll 2010-10-29 20:07:40 UTC
This bug still exists on F14 beta using F14 x86_64 and rawhide (F15) x86_64 mock targets:
texi2html -monolithic -number tcc-doc.texi
In file included from /usr/include/features.h:385:0,
                 from /usr/include/stdlib.h:25,
                 from tcc.h:34,
                 from libtcc.c:21,
                 from tcc.c:24:
/usr/include/gnu/stubs.h:7:27: fatal error: gnu/stubs-32.h: No such file or directory
compilation terminated.