FAQ Search Today's Posts Mark Forums Read
» Video Reviews

» Linux Archive

Linux-archive is a website aiming to archive linux email lists and to make them easily accessible for linux users/developers.


» Sponsor

» Partners

» Sponsor

Go Back   Linux Archive > Redhat > Fedora Build System

 
 
LinkBack Thread Tools
 
Old 02-21-2011, 07:37 AM
"Chris Edsall"
 
Default need 32bit rpms in a mock setup for a 64 bit build

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: 0gi-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
 
Old 02-21-2011, 08:51 PM
Christos Triantafyllidis
 
Default need 32bit rpms in a mock setup for a 64 bit build

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: 0gi-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
>

--
buildsys mailing list
buildsys@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/buildsys
 
Old 02-21-2011, 09:04 PM
Clark Williams
 
Default need 32bit rpms in a mock setup for a 64 bit build

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 mailing list
buildsys@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/buildsys
 
Old 02-22-2011, 01:21 AM
"Chris Edsall"
 
Default need 32bit rpms in a mock setup for a 64 bit build

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.
--
buildsys mailing list
buildsys@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/buildsys
 

Thread Tools




All times are GMT. The time now is 03:46 AM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.
Copyright 2007 - 2008, www.linux-archive.org