Hi,
I have a x86_64 builder and I am trying to make an x86_64 build. This particular build needs a compiler that is only available as a binary tarball. I have made an RPM out of the tarball, however it has i386 dependancies. When I come to use it in koji (by adding it as a BuildRequires) mock complains because the yum configuration can't satisfy the dependencies:
DEBUG backend.py:603: /usr/bin/yum --installroot /var/lib/mock/ec5-build-402-251/root/ resolvedep 'zlib-devel' 'valgrind' 'gawk' 'pgi' 'hdf5-devel >= 1.8.4' 'curl-devel' DEBUG util.py:291: Executing command: /usr/bin/yum --installroot /var/lib/mock/ec5-build-402-251/root/ resolvedep 'zlib-devel' 'valgrind' 'gawk' 'pgi' 'hdf5-devel >= 1.8.4' 'curl-devel' DEBUG util.py:256: 0:zlib-devel-1.2.3-3.x86_64 DEBUG util.py:256: 1:valgrind-3.5.0-1.el5.x86_64 DEBUG util.py:256: 0:gawk-3.1.5-14.el5.x86_64 DEBUG util.py:256: 0:pgi-10.3-7.x86_64 DEBUG util.py:256: 0:hdf5-devel-1.8.5.patch1-5.x86_64 DEBUG util.py:256: 0:curl-devel-7.15.5-9.el5.x86_64 DEBUG util.py:330: Child returncode was: 0 DEBUG backend.py:603: /usr/bin/yum --installroot /var/lib/mock/ec5-build-402-251/root/ install 'zlib-devel' 'valgrind' 'gawk' 'pgi' 'hdf5-devel >= 1.8.4' 'curl-devel' DEBUG util.py:291: Executing command: /usr/bin/yum --installroot /var/lib/mock/ec5-build-402-251/root/ install 'zlib-devel' 'valgrind' 'gawk' 'pgi' 'hdf5-devel >= 1.8.4' 'curl-devel' DEBUG util.py:256: Package gawk-3.1.5-14.el5.x86_64 already installed and latest version DEBUG util.py:256: pgi-10.3-7.x86_64 from build has depsolving problems DEBUG util.py:256: --> Missing Dependency: libnsl.so.1 is needed by package pgi-10.3-7.x86_64 (build) DEBUG util.py:256: pgi-10.3-7.x86_64 from build has depsolving problems DEBUG util.py:256: --> Missing Dependency: libXext.so.6 is needed by package pgi-10.3-7.x86_64 (build) DEBUG util.py:256: pgi-10.3-7.x86_64 from build has depsolving problems DEBUG util.py:256: --> Missing Dependency: libc.so.6(GLIBC_2.1.2) is needed by package pgi-10.3-7.x86_64 (build)
However the same compiler package installs fine on the command line with the same yum reops configured
[root@cli-dev ~]# yum -y install pgi [ ... ] Installed: pgi.x86_64 0:10.3-7
Complete!
It needed these non x86_64 packages:
[root@cli-dev ~]# yum deplist pgi | egrep 'i[3456]86' | sort -u provider: alsa-lib.i386 1.0.17-1.el5 provider: glibc.i686 2.5-49 provider: IBMJava2-142-ia32-JRE.i386 1.4.2-13.6 provider: libgcj.i386 4.1.2-48.el5 provider: libX11.i386 1.0.3-11.el5 provider: libXext.i386 1.0.1-2.1 provider: libXi.i386 1.0.1-4.el5_4 provider: libXtst.i386 1.0.1-3.1
The difference, of course, is that the repo mock is pointing at has been created by mergerepos:
$ /usr/libexec/kojid/mergerepos -a x86_64 -b /mnt/koji/repos/ec5-build/251/x86_64/blocklist -o /tmp/koji/tasks/1382/1382/repo -g /mnt/koji/repos/ec5-build/251/groups/comps.xml -r file:///tmp/koji/tasks/1382/1382/repo_251_premerge/ -r http://10.64.1.239/install/rhels5.5/x86_64/ -r http://mirror.aarnet.edu.au/pub/epel/5/x86_64/ -r http://10.64.1.239/install/HPC/ Adding repo: file:///tmp/koji/tasks/1382/1382/repo_251_premerge/ Adding repo: http://10.64.1.239/install/rhels5.5/x86_64/ Adding repo: http://mirror.aarnet.edu.au/pub/epel/5/x86_64/ Adding repo: http://10.64.1.239/install/HPC/
where the -a x86_64 flag appears to be filtering out all the 32 bit packages that are in http://10.64.1.239/install/rhels5.5/x86_64/
I get the feeling I'm going about this the wrong way...
Any suggestions?
Cheers, Chris Edsall
Please consider the environment before printing this email.
NIWA is the trading name of the National Institute of Water & Atmospheric Research Ltd.
Hi Chris, i had a very similar issue in past. I've solved it by patching mergerepos to add i386 packages in x86_64 repos it is creating. The patch is more or less the following:
-----BEGIN----- diff --git a/builder/mergerepos b/builder/mergerepos index 2abeec6..de71660 100755 --- a/builder/mergerepos +++ b/builder/mergerepos @@ -71,9 +71,6 @@ def parse_args(args): parser.print_usage() sys.exit(1)
- if 'x86_64' in opts.arches: - opts.arches.append('i386') - # expand arches for arch in opts.arches[:]: if EXPAND_ARCHES.has_key(arch): -----END-----
Regards, Christos
PS: I'm feeling that i'm going about this the wrong way too but i guess this is life :)
On Feb 21, 2011, at 10:37 AM, Chris Edsall wrote:
Hi,
I have a x86_64 builder and I am trying to make an x86_64 build. This particular build needs a compiler that is only available as a binary tarball. I have made an RPM out of the tarball, however it has i386 dependancies. When I come to use it in koji (by adding it as a BuildRequires) mock complains because the yum configuration can't satisfy the dependencies:
DEBUG backend.py:603: /usr/bin/yum --installroot /var/lib/mock/ec5-build-402-251/root/ resolvedep 'zlib-devel' 'valgrind' 'gawk' 'pgi' 'hdf5-devel >= 1.8.4' 'curl-devel' DEBUG util.py:291: Executing command: /usr/bin/yum --installroot /var/lib/mock/ec5-build-402-251/root/ resolvedep 'zlib-devel' 'valgrind' 'gawk' 'pgi' 'hdf5-devel >= 1.8.4' 'curl-devel' DEBUG util.py:256: 0:zlib-devel-1.2.3-3.x86_64 DEBUG util.py:256: 1:valgrind-3.5.0-1.el5.x86_64 DEBUG util.py:256: 0:gawk-3.1.5-14.el5.x86_64 DEBUG util.py:256: 0:pgi-10.3-7.x86_64 DEBUG util.py:256: 0:hdf5-devel-1.8.5.patch1-5.x86_64 DEBUG util.py:256: 0:curl-devel-7.15.5-9.el5.x86_64 DEBUG util.py:330: Child returncode was: 0 DEBUG backend.py:603: /usr/bin/yum --installroot /var/lib/mock/ec5-build-402-251/root/ install 'zlib-devel' 'valgrind' 'gawk' 'pgi' 'hdf5-devel >= 1.8.4' 'curl-devel' DEBUG util.py:291: Executing command: /usr/bin/yum --installroot /var/lib/mock/ec5-build-402-251/root/ install 'zlib-devel' 'valgrind' 'gawk' 'pgi' 'hdf5-devel >= 1.8.4' 'curl-devel' DEBUG util.py:256: Package gawk-3.1.5-14.el5.x86_64 already installed and latest version DEBUG util.py:256: pgi-10.3-7.x86_64 from build has depsolving problems DEBUG util.py:256: --> Missing Dependency: libnsl.so.1 is needed by package pgi-10.3-7.x86_64 (build) DEBUG util.py:256: pgi-10.3-7.x86_64 from build has depsolving problems DEBUG util.py:256: --> Missing Dependency: libXext.so.6 is needed by package pgi-10.3-7.x86_64 (build) DEBUG util.py:256: pgi-10.3-7.x86_64 from build has depsolving problems DEBUG util.py:256: --> Missing Dependency: libc.so.6(GLIBC_2.1.2) is needed by package pgi-10.3-7.x86_64 (build)
However the same compiler package installs fine on the command line with the same yum reops configured
[root@cli-dev ~]# yum -y install pgi [ ... ] Installed: pgi.x86_64 0:10.3-7
Complete!
It needed these non x86_64 packages:
[root@cli-dev ~]# yum deplist pgi | egrep 'i[3456]86' | sort -u provider: alsa-lib.i386 1.0.17-1.el5 provider: glibc.i686 2.5-49 provider: IBMJava2-142-ia32-JRE.i386 1.4.2-13.6 provider: libgcj.i386 4.1.2-48.el5 provider: libX11.i386 1.0.3-11.el5 provider: libXext.i386 1.0.1-2.1 provider: libXi.i386 1.0.1-4.el5_4 provider: libXtst.i386 1.0.1-3.1
The difference, of course, is that the repo mock is pointing at has been created by mergerepos:
$ /usr/libexec/kojid/mergerepos -a x86_64 -b /mnt/koji/repos/ec5-build/251/x86_64/blocklist -o /tmp/koji/tasks/1382/1382/repo -g /mnt/koji/repos/ec5-build/251/groups/comps.xml -r file:///tmp/koji/tasks/1382/1382/repo_251_premerge/ -r http://10.64.1.239/install/rhels5.5/x86_64/ -r http://mirror.aarnet.edu.au/pub/epel/5/x86_64/ -r http://10.64.1.239/install/HPC/ Adding repo: file:///tmp/koji/tasks/1382/1382/repo_251_premerge/ Adding repo: http://10.64.1.239/install/rhels5.5/x86_64/ Adding repo: http://mirror.aarnet.edu.au/pub/epel/5/x86_64/ Adding repo: http://10.64.1.239/install/HPC/
where the -a x86_64 flag appears to be filtering out all the 32 bit packages that are in http://10.64.1.239/install/rhels5.5/x86_64/
I get the feeling I'm going about this the wrong way...
Any suggestions?
Cheers, Chris Edsall
Please consider the environment before printing this email.
NIWA is the trading name of the National Institute of Water & Atmospheric Research Ltd.
buildsys mailing list buildsys@lists.fedoraproject.org https://admin.fedoraproject.org/mailman/listinfo/buildsys
Hi,
On 2/22/2011 at 10:51 AM, in message
C0BF3636-12A6-4E6D-850D-3C28668E6354@grid.auth.gr, Christos Triantafyllidis ctria@grid.auth.gr wrote:
Hi Chris, i had a very similar issue in past. I've solved it by patching mergerepos to add i386 packages in x86_64 repos it is creating. The patch is more or less the following:
Thanks Christos, that worked perfectly.
Chris Edsall
Please consider the environment before printing this email.
NIWA is the trading name of the National Institute of Water & Atmospheric Research Ltd.
On Mon, 21 Feb 2011 21:37:39 +1300 "Chris Edsall" c.edsall@niwa.co.nz wrote:
Hi,
I have a x86_64 builder and I am trying to make an x86_64 build. This particular build needs a compiler that is only available as a binary tarball. I have made an RPM out of the tarball, however it has i386 dependancies. When I come to use it in koji (by adding it as a BuildRequires) mock complains because the yum configuration can't satisfy the dependencies:
I suspect the problem is that mock uses it's own repository definitions for yum (i.e. doesn't use the files in /etc/yum.repos.d) and doesn't include 32-bit repository information in a 64-bit config file. You *might* be able to hack your own config file by starting with fedora-14-x86_64.cfg and copying in some 32-bit repository info as separate stanzas so that yum would know where to get packages. I've never done that so YMMV.
Another way might be to just grab the 32-bit packages that are dependencies and install them into the chroot after an init, then run your build:
$ mock -r fedora-14-x86_64 --init $ mock -r fedora-14-x86_64 --install a-32-bit-package.i386.rpm $ mock -r fedora-14-x86_64 --install another-32-bit-package.i386.rpm $ mock -r fedora-14-x86_64 --rebuild mysrpm.src.rpm
Of course if the first level of 32-bit dependencies *also* have dependencies, then it'll get to be a mess.
Clark
buildsys@lists.fedoraproject.org