Yesterday I noticed that mock/yum seem to be having trouble finding pathname-based buildreqs.
For example, buildreqs of /usr/include/tcpd.h and /usr/include/pcap.h aren't getting found. I use these to maintain spec compatibility across various releases, where these files can be found in either tcp_wrappers or tcp_wrappers-devel, or libpcap or libpcap-devel packages respectively.
I've tried upgrading to mock 0.8.15 from CVS (F-8 branch) and it hasn't helped.
Is this intentional behaviour (not getting/reading the filelists metadata) for speed purposes?
Paul.
On Sat, Dec 08, 2007 at 11:08:02AM +0000, Paul Howarth wrote:
Yesterday I noticed that mock/yum seem to be having trouble finding pathname-based buildreqs.
I had this problem with RHEL5, mock 0.7.4 and yum 3.0.x, but not with yum 3.2.x. Is this maybe a yum problem? Did you directly query yum to search for these files as a test?
On Sat, 8 Dec 2007 12:29:07 +0100 Jos Vos jos@xos.nl wrote:
On Sat, Dec 08, 2007 at 11:08:02AM +0000, Paul Howarth wrote:
Yesterday I noticed that mock/yum seem to be having trouble finding pathname-based buildreqs.
I had this problem with RHEL5, mock 0.7.4 and yum 3.0.x, but not with yum 3.2.x. Is this maybe a yum problem? Did you directly query yum to search for these files as a test?
Worked fine:
# yum install /usr/include/pcap.h Setting up Install Process Parsing package install arguments Importing additional filelist information filelists.sqlite.bz2 100% |=========================| 70 kB 00:00 filelists.sqlite.bz2 100% |=========================| 94 kB 00:00 filelists.sqlite.bz2 100% |=========================| 1.8 MB 00:13 filelists.sqlite.bz2 100% |=========================| 762 kB 00:00 Resolving Dependencies --> Running transaction check ---> Package libpcap-devel.x86_64 14:0.9.7-3.fc8 set to be updated --> Finished Dependency Resolution
Dependencies Resolved
============================================================================= Package Arch Version Repository Size ============================================================================= Installing: libpcap-devel x86_64 14:0.9.7-3.fc8 fedora 28 k
Transaction Summary ============================================================================= Install 1 Package(s) Update 0 Package(s) Remove 0 Package(s)
Total download size: 28 k Is this ok [y/N]: n Exiting on user Command Complete! # rpm -q yum yum-3.2.7-2.fc8
I noticed though that in the failed mock run, the yum_cache for the target didn't include the filelists metadata...
Paul.
Jos Vos wrote:
On Sat, Dec 08, 2007 at 11:08:02AM +0000, Paul Howarth wrote:
Yesterday I noticed that mock/yum seem to be having trouble finding pathname-based buildreqs.
I had this problem with RHEL5, mock 0.7.4 and yum 3.0.x, but not with yum 3.2.x. Is this maybe a yum problem? Did you directly query yum to search for these files as a test?
Looking at the code in mock, it appears to use this command:
yum --installroot=/var/lib/mock/fedora-devel-i386/root resolvedep <list-of-buildreqs>
But even that works when run manually: # yum --installroot=/var/lib/mock/fedora-devel-i386/root resolvedep openssl-devel /usr/include/tcpd.h openldap-devel Yum Version: 3.2.8 COMMAND: yum --installroot=/var/lib/mock/fedora-devel-i386/root resolvedep openssl-devel /usr/include/tcpd.h openldap-devel Installroot: /var/lib/mock/fedora-devel-i386/root Ext Commands:
openssl-devel /usr/include/tcpd.h openldap-devel Reading Local RPMDB Setting up Package Sacks kludge 100% |=========================| 951 B 00:00 primary.xml.gz 100% |=========================| 199 B 00:00 city-fan.org 100% |=========================| 1.9 kB 00:00 primary.sqlite.bz2 100% |=========================| 86 kB 00:00 fedora 100% |=========================| 2.1 kB 00:00 primary.sqlite.bz2 100% |=========================| 5.5 MB 00:00 Searching pkgSack for dep: openssl-devel skipping reposetup, pkgsack exists Potential match for openssl-devel from openssl-devel - 0.9.8g-2.fc9.i386 Matched openssl-devel - 0.9.8g-2.fc9.i386 to require for openssl-devel 0:openssl-devel-0.9.8g-2.fc9.i386 Searching pkgSack for dep: /usr/include/tcpd.h skipping reposetup, pkgsack exists Importing additional filelist information filelists.xml.gz 100% |=========================| 192 B 00:00 filelists.sqlite.bz2 100% |=========================| 93 kB 00:00 filelists.sqlite.bz2 100% |=========================| 9.2 MB 00:00 skipping reposetup, pkgsack exists Potential match for /usr/include/tcpd.h from tcp_wrappers-devel - 7.6-50.fc8.i386 0:tcp_wrappers-devel-7.6-50.fc8.i386 Searching pkgSack for dep: openldap-devel skipping reposetup, pkgsack exists Potential match for openldap-devel from openldap-devel - 2.4.6-1.fc9.i386 Matched openldap-devel - 2.4.6-1.fc9.i386 to require for openldap-devel 0:openldap-devel-2.4.6-1.fc9.i386
It's really strange that this doesn't work from within mock.
Paul.
On Mon, Dec 10, 2007 at 11:52:04AM +0000, Paul Howarth wrote:
Jos Vos wrote:
On Sat, Dec 08, 2007 at 11:08:02AM +0000, Paul Howarth wrote:
Yesterday I noticed that mock/yum seem to be having trouble finding pathname-based buildreqs.
I had this problem with RHEL5, mock 0.7.4 and yum 3.0.x, but not with yum 3.2.x. Is this maybe a yum problem? Did you directly query yum to search for these files as a test?
Looking at the code in mock, it appears to use this command:
yum --installroot=/var/lib/mock/fedora-devel-i386/root resolvedep
<list-of-buildreqs>
Can you look in the root.log for this resolvedep command and check out what is going on?
There isnt anything specifically in mock to disallow this. It should work, afaict.
Send a pastebin link to the root.log, if possible, or a URL to an SRPM with this problem. -- Michael
On Mon, 10 Dec 2007 17:13:38 -0600 Michael E Brown Michael_E_Brown@dell.com wrote:
On Mon, Dec 10, 2007 at 11:52:04AM +0000, Paul Howarth wrote:
Jos Vos wrote:
On Sat, Dec 08, 2007 at 11:08:02AM +0000, Paul Howarth wrote:
Yesterday I noticed that mock/yum seem to be having trouble finding pathname-based buildreqs.
I had this problem with RHEL5, mock 0.7.4 and yum 3.0.x, but not with yum 3.2.x. Is this maybe a yum problem? Did you directly query yum to search for these files as a test?
Looking at the code in mock, it appears to use this command:
yum --installroot=/var/lib/mock/fedora-devel-i386/root resolvedep
<list-of-buildreqs>
Can you look in the root.log for this resolvedep command and check out what is going on?
There isnt anything specifically in mock to disallow this. It should work, afaict.
Send a pastebin link to the root.log, if possible, or a URL to an SRPM with this problem.
Root log: http://www.city-fan.org/~paul/ntop-3.3-2.fc8.CF-root.log
SRPM: http://www.city-fan.org/~paul/ntop-3.3-2.fc8.CF.src.rpm
Cheers, Paul.
On Tue, Dec 11, 2007 at 12:37:24AM +0000, Paul Howarth wrote:
On Mon, 10 Dec 2007 17:13:38 -0600 Michael E Brown Michael_E_Brown@dell.com wrote:
Can you look in the root.log for this resolvedep command and check out what is going on?
There isnt anything specifically in mock to disallow this. It should work, afaict.
Send a pastebin link to the root.log, if possible, or a URL to an SRPM with this problem.
Root log: http://www.city-fan.org/~paul/ntop-3.3-2.fc8.CF-root.log
SRPM: http://www.city-fan.org/~paul/ntop-3.3-2.fc8.CF.src.rpm
Paul, First, you enabled yum debugging. How did you do that, in the yum config file? This may throw off mock because atm mock parses stdout from yum. (this isnt the case here, though, just pointing it out, also want to know how you did it for my own debugging purposes later.
Next:
$ yum resolvedep ccache mysql-devel pcre-devel groff gd-devel net-snmp-devel pkgconfig openssl-devel automake lm_sensors-devel rrdtool-devel >= 1.2.0 libtool /usr/include/tcpd.h /usr/include/pcap.h autoconf gdbm-devel No Package Found for 1.2.0 No Package Found for /usr/include/tcpd.h No Package Found for /usr/include/pcap.h
I get the exact same error here on my F-8 box that you are getting. Yum problem?
Need some input from yum folks. -- Michael
Michael E Brown wrote:
Paul, First, you enabled yum debugging. How did you do that, in the yum config file? This may throw off mock because atm mock parses stdout from yum. (this isnt the case here, though, just pointing it out, also want to know how you did it for my own debugging purposes later.
debuglevel=10 in the yum.conf part of the mock config.
Next:
$ yum resolvedep ccache mysql-devel pcre-devel groff gd-devel net-snmp-devel pkgconfig openssl-devel automake lm_sensors-devel rrdtool-devel >= 1.2.0 libtool /usr/include/tcpd.h /usr/include/pcap.h autoconf gdbm-devel No Package Found for 1.2.0
Perhaps this one is a quoting issue; it should be looking for "rrdtool-devel >= 1.2.0" rather than "rrdtool-devel" ">=" "1.2.0"?
No Package Found for /usr/include/tcpd.h No Package Found for /usr/include/pcap.h
These are the ones I've been having trouble with.
I get the exact same error here on my F-8 box that you are getting. Yum problem?
Need some input from yum folks.
Ah good, it's not just me then.
Paul.
On Tue, 2007-12-11 at 18:24 +0000, Paul Howarth wrote:
Michael E Brown wrote:
Paul, First, you enabled yum debugging. How did you do that, in the yum config file? This may throw off mock because atm mock parses stdout from yum. (this isnt the case here, though, just pointing it out, also want to know how you did it for my own debugging purposes later.
debuglevel=10 in the yum.conf part of the mock config.
Next:
$ yum resolvedep ccache mysql-devel pcre-devel groff gd-devel net-snmp-devel pkgconfig openssl-devel automake lm_sensors-devel rrdtool-devel >= 1.2.0 libtool /usr/include/tcpd.h /usr/include/pcap.h autoconf gdbm-devel No Package Found for 1.2.0
Perhaps this one is a quoting issue; it should be looking for "rrdtool-devel >= 1.2.0" rather than "rrdtool-devel" ">=" "1.2.0"?
No Package Found for /usr/include/tcpd.h No Package Found for /usr/include/pcap.h
These are the ones I've been having trouble with.
I get the exact same error here on my F-8 box that you are getting. Yum problem?
Need some input from yum folks.
Ah good, it's not just me then.
yum resolvedep /usr/include/tcpd.h works for me on f8 with 3.2.8 and 3.2.7 - confirmed with other folks on irc, too. -sv
seth vidal wrote:
On Tue, 2007-12-11 at 18:24 +0000, Paul Howarth wrote:
Michael E Brown wrote:
Paul, First, you enabled yum debugging. How did you do that, in the yum config file? This may throw off mock because atm mock parses stdout from yum. (this isnt the case here, though, just pointing it out, also want to know how you did it for my own debugging purposes later.
debuglevel=10 in the yum.conf part of the mock config.
Next:
$ yum resolvedep ccache mysql-devel pcre-devel groff gd-devel net-snmp-devel pkgconfig openssl-devel automake lm_sensors-devel rrdtool-devel >= 1.2.0 libtool /usr/include/tcpd.h /usr/include/pcap.h autoconf gdbm-devel No Package Found for 1.2.0
Perhaps this one is a quoting issue; it should be looking for "rrdtool-devel >= 1.2.0" rather than "rrdtool-devel" ">=" "1.2.0"?
No Package Found for /usr/include/tcpd.h No Package Found for /usr/include/pcap.h
These are the ones I've been having trouble with.
I get the exact same error here on my F-8 box that you are getting. Yum problem?
Need some input from yum folks.
Ah good, it's not just me then.
yum resolvedep /usr/include/tcpd.h works for me on f8 with 3.2.8 and 3.2.7 - confirmed with other folks on irc, too.
It works for me too from the command line, but not from within mock.
Paul.
On Tue, Dec 11, 2007 at 06:58:12PM +0000, Paul Howarth wrote:
seth vidal wrote:
On Tue, 2007-12-11 at 18:24 +0000, Paul Howarth wrote:
Michael E Brown wrote:
Paul, First, you enabled yum debugging. How did you do that, in the yum config file? This may throw off mock because atm mock parses stdout from yum. (this isnt the case here, though, just pointing it out, also want to know how you did it for my own debugging purposes later.
debuglevel=10 in the yum.conf part of the mock config.
Next:
$ yum resolvedep ccache mysql-devel pcre-devel groff gd-devel net-snmp-devel pkgconfig openssl-devel automake lm_sensors-devel rrdtool-devel >= 1.2.0 libtool /usr/include/tcpd.h /usr/include/pcap.h autoconf gdbm-devel No Package Found for 1.2.0
Perhaps this one is a quoting issue; it should be looking for "rrdtool-devel >= 1.2.0" rather than "rrdtool-devel" ">=" "1.2.0"?
No Package Found for /usr/include/tcpd.h No Package Found for /usr/include/pcap.h
These are the ones I've been having trouble with.
I get the exact same error here on my F-8 box that you are getting. Yum problem?
Need some input from yum folks.
Ah good, it's not just me then.
yum resolvedep /usr/include/tcpd.h works for me on f8 with 3.2.8 and 3.2.7 - confirmed with other folks on irc, too.
It works for me too from the command line, but not from within mock.
But for me it was failing from the cmdline... :)
It fails for me on F7 and F8, yum 3.2.7 and 3.2.8:
$ yum resolvedep /usr/include/tcpd.h Importing additional filelist information No Package Found for /usr/include/tcpd.h
[michael_e_brown@localhost mock]$ cat /etc/issue Fedora release 8 (Werewolf) Kernel \r on an \m
$ rpm -q yum yum-3.2.8-1.fc8.noarch
-- Michael
On Tue, 2007-12-11 at 13:05 -0600, Michael E Brown wrote:
On Tue, Dec 11, 2007 at 06:58:12PM +0000, Paul Howarth wrote:
seth vidal wrote:
On Tue, 2007-12-11 at 18:24 +0000, Paul Howarth wrote:
Michael E Brown wrote:
Paul, First, you enabled yum debugging. How did you do that, in the yum config file? This may throw off mock because atm mock parses stdout from yum. (this isnt the case here, though, just pointing it out, also want to know how you did it for my own debugging purposes later.
debuglevel=10 in the yum.conf part of the mock config.
Next:
$ yum resolvedep ccache mysql-devel pcre-devel groff gd-devel net-snmp-devel pkgconfig openssl-devel automake lm_sensors-devel rrdtool-devel >= 1.2.0 libtool /usr/include/tcpd.h /usr/include/pcap.h autoconf gdbm-devel No Package Found for 1.2.0
Perhaps this one is a quoting issue; it should be looking for "rrdtool-devel >= 1.2.0" rather than "rrdtool-devel" ">=" "1.2.0"?
No Package Found for /usr/include/tcpd.h No Package Found for /usr/include/pcap.h
These are the ones I've been having trouble with.
I get the exact same error here on my F-8 box that you are getting. Yum problem?
Need some input from yum folks.
Ah good, it's not just me then.
yum resolvedep /usr/include/tcpd.h works for me on f8 with 3.2.8 and 3.2.7 - confirmed with other folks on irc, too.
It works for me too from the command line, but not from within mock.
But for me it was failing from the cmdline... :)
It fails for me on F7 and F8, yum 3.2.7 and 3.2.8:
$ yum resolvedep /usr/include/tcpd.h Importing additional filelist information No Package Found for /usr/include/tcpd.h
[michael_e_brown@localhost mock]$ cat /etc/issue Fedora release 8 (Werewolf) Kernel \r on an \m
$ rpm -q yum yum-3.2.8-1.fc8.noarch
are you getting funny mirrors or some other weirdness?
can you post me a copy of your filelists.sqlite?
-sv
On Tue, Dec 11, 2007 at 02:32:15PM -0500, seth vidal wrote:
On Tue, 2007-12-11 at 13:05 -0600, Michael E Brown wrote:
On Tue, Dec 11, 2007 at 06:58:12PM +0000, Paul Howarth wrote:
seth vidal wrote:
On Tue, 2007-12-11 at 18:24 +0000, Paul Howarth wrote:
Michael E Brown wrote:
Paul, First, you enabled yum debugging. How did you do that, in the yum config file? This may throw off mock because atm mock parses stdout from yum. (this isnt the case here, though, just pointing it out, also want to know how you did it for my own debugging purposes later.
debuglevel=10 in the yum.conf part of the mock config.
Next:
$ yum resolvedep ccache mysql-devel pcre-devel groff gd-devel net-snmp-devel pkgconfig openssl-devel automake lm_sensors-devel rrdtool-devel >= 1.2.0 libtool /usr/include/tcpd.h /usr/include/pcap.h autoconf gdbm-devel No Package Found for 1.2.0
Perhaps this one is a quoting issue; it should be looking for "rrdtool-devel >= 1.2.0" rather than "rrdtool-devel" ">=" "1.2.0"?
No Package Found for /usr/include/tcpd.h No Package Found for /usr/include/pcap.h
These are the ones I've been having trouble with.
I get the exact same error here on my F-8 box that you are getting. Yum problem?
Need some input from yum folks.
Ah good, it's not just me then.
yum resolvedep /usr/include/tcpd.h works for me on f8 with 3.2.8 and 3.2.7 - confirmed with other folks on irc, too.
It works for me too from the command line, but not from within mock.
But for me it was failing from the cmdline... :)
It fails for me on F7 and F8, yum 3.2.7 and 3.2.8:
$ yum resolvedep /usr/include/tcpd.h Importing additional filelist information No Package Found for /usr/include/tcpd.h
[michael_e_brown@localhost mock]$ cat /etc/issue Fedora release 8 (Werewolf) Kernel \r on an \m
$ rpm -q yum yum-3.2.8-1.fc8.noarch
are you getting funny mirrors or some other weirdness?
can you post me a copy of your filelists.sqlite?
I think I have found the root cause of the problem.
Mock runs the 'yum resolvedeps' as the calling (unprivileged) user. This means that yum cannot download the filelists.sqlite it needs to resolve the dep.
It was part of a general strategy of trying to run everything that had user-input components in an unprivileged env.
I can remove the privilege drop around this call and that should fix it. -- Michael
On Sat, Dec 08, 2007 at 11:08:02AM +0000, Paul Howarth wrote:
Yesterday I noticed that mock/yum seem to be having trouble finding pathname-based buildreqs.
For example, buildreqs of /usr/include/tcpd.h and /usr/include/pcap.h aren't getting found. I use these to maintain spec compatibility across various releases, where these files can be found in either tcp_wrappers or tcp_wrappers-devel, or libpcap or libpcap-devel packages respectively.
I've tried upgrading to mock 0.8.15 from CVS (F-8 branch) and it hasn't helped.
Is this intentional behaviour (not getting/reading the filelists metadata) for speed purposes?
Paul, This should be fixed in latest mock git repo. This is an important fix and I'll be releasing it later this week (0.8.17/0.9.1). Thanks for reporting this and for your responsiveness in debugging it. Thanks also to the yum folks who helped debug as well. -- Michael
Michael E Brown wrote:
On Sat, Dec 08, 2007 at 11:08:02AM +0000, Paul Howarth wrote:
Yesterday I noticed that mock/yum seem to be having trouble finding pathname-based buildreqs.
For example, buildreqs of /usr/include/tcpd.h and /usr/include/pcap.h aren't getting found. I use these to maintain spec compatibility across various releases, where these files can be found in either tcp_wrappers or tcp_wrappers-devel, or libpcap or libpcap-devel packages respectively.
I've tried upgrading to mock 0.8.15 from CVS (F-8 branch) and it hasn't helped.
Is this intentional behaviour (not getting/reading the filelists metadata) for speed purposes?
Paul, This should be fixed in latest mock git repo. This is an important fix and I'll be releasing it later this week (0.8.17/0.9.1). Thanks for reporting this and for your responsiveness in debugging it. Thanks also to the yum folks who helped debug as well.
Just to be complete here, this fix isnt going to fix it on rhel5 / centos5, is it ?
On Tue, Dec 11, 2007 at 10:26:10PM +0000, Karanbir Singh wrote:
Michael E Brown wrote:
On Sat, Dec 08, 2007 at 11:08:02AM +0000, Paul Howarth wrote:
Yesterday I noticed that mock/yum seem to be having trouble finding pathname-based buildreqs.
For example, buildreqs of /usr/include/tcpd.h and /usr/include/pcap.h aren't getting found. I use these to maintain spec compatibility across various releases, where these files can be found in either tcp_wrappers or tcp_wrappers-devel, or libpcap or libpcap-devel packages respectively.
I've tried upgrading to mock 0.8.15 from CVS (F-8 branch) and it hasn't helped.
Is this intentional behaviour (not getting/reading the filelists metadata) for speed purposes?
Paul, This should be fixed in latest mock git repo. This is an important fix and I'll be releasing it later this week (0.8.17/0.9.1). Thanks for reporting this and for your responsiveness in debugging it. Thanks also to the yum folks who helped debug as well.
Just to be complete here, this fix isnt going to fix it on rhel5 / centos5, is it ?
As of now, I am missing one prerequisite in the EPEL 5 repo: python-ctypes. As soon as that pkg gets added to the EPEL repo, I will be able to release updated mock with this bugfix. I've sent a note to the maintainer, and there are a couple other people looking to get it added as well, so hopefully it will be added soon.
If there is a huge demand, I might be able to backport some of the fixes (there are a couple of fixes that are relevant at this point), but RHEL5 is not my primary focus at the moment, so I cant spend too much time backporting. -- Michael
On Tue, 11 Dec 2007 14:00:37 -0600 Michael E Brown Michael_E_Brown@dell.com wrote:
On Sat, Dec 08, 2007 at 11:08:02AM +0000, Paul Howarth wrote:
Yesterday I noticed that mock/yum seem to be having trouble finding pathname-based buildreqs.
For example, buildreqs of /usr/include/tcpd.h and /usr/include/pcap.h aren't getting found. I use these to maintain spec compatibility across various releases, where these files can be found in either tcp_wrappers or tcp_wrappers-devel, or libpcap or libpcap-devel packages respectively.
I've tried upgrading to mock 0.8.15 from CVS (F-8 branch) and it hasn't helped.
Is this intentional behaviour (not getting/reading the filelists metadata) for speed purposes?
Paul, This should be fixed in latest mock git repo. This is an important fix and I'll be releasing it later this week (0.8.17/0.9.1). Thanks for reporting this and for your responsiveness in debugging it. Thanks also to the yum folks who helped debug as well. --
This doesn't seem to be completely fixed yet. I can't put my finger on what makes it work or not but I seem to be able to build OK for Fedora 7/8/rawhide targets and CentOS5, but not older ones. I remade my Fedora Core 6 metadata to create the filelists.sqlite file and then that started working but the same trick doesn't seem to work with really old stuff like RHL9. And I can't get CentOS4 builds going using the metadata on the DVD (x86_64 at least, that's all I've tried).
Paul.
Paul Howarth wrote:
On Tue, 11 Dec 2007 14:00:37 -0600 Michael E Brown Michael_E_Brown@dell.com wrote:
On Sat, Dec 08, 2007 at 11:08:02AM +0000, Paul Howarth wrote: This should be fixed in latest mock git repo. This is an important fix and I'll be releasing it later this week (0.8.17/0.9.1). Thanks for reporting this and for your responsiveness in debugging it. Thanks also to the yum folks who helped debug as well. --
This doesn't seem to be completely fixed yet. I can't put my finger on what makes it work or not but I seem to be able to build OK for Fedora 7/8/rawhide targets and CentOS5, but not older ones. I remade my Fedora Core 6 metadata to create the filelists.sqlite file and then that started working but the same trick doesn't seem to work with really old stuff like RHL9. And I can't get CentOS4 builds going using the metadata on the DVD (x86_64 at least, that's all I've tried).
mock-0.8.19-1.fc8 from updates-testing does seem to have nailed this bug. Thanks!
The RPM changelog doesn't seem to have an entry for 0.8.19 though...
Paul,
buildsys@lists.fedoraproject.org