Strange i386/x86_64 behavior

Matthias Saou thias at spam.spam.spam.spam.spam.spam.spam.egg.and.spam.freshrpms.net
Mon Apr 11 18:56:47 UTC 2005


seth vidal wrote :

> On Mon, 2005-04-11 at 20:30 +0200, Matthias Saou wrote:
> > Hi,
> > 
> > I'm currently recompiling a bunch of packages for RHEL4 x86_64 and finally
> > tried out the latest mach+yum snapshot. After quite a few problems with %
> > pre scriplets failing, and packages being skipped, I finally got a build
> > root working.
> > 
> > I've rebuilt quite a few packages, no problems until I tried php...
> > 
> > I get a few i386 packages installed, for a reason that is beyond me! It's
> > 100% reproducible :
> > 
> > - If I specify only the package names, the i386 versions get installed :-(
> > 
> > I'm really confused as to why yum chooses to install those i386 files when
> > the arch isn't specified... I'll try to get yum to be more verbose and try
> > to find out.
> 
> it's intended behavior.
> 
> yum will install the highest version and best arch of all packages for
> each multilib 'branch' available for the specified package name.
> 
> so if you just specify foo
> 
> and foo.i686, foo.x86_64 and foo.i386 are available then yum will
> install:
>  foo.i686
>  foo.x86_64
> 
> yum resolves packages to install based on the multilib sets. so 64bit
> resolved against 64bit and 32bit against 32bit. They aren't compared
> against each other.

I don't think I follow. How come I only have these few packages installed
with both x86_64 and i386? I haven't told mach or yum anything special,
and don't have glibc-devel.i386 installed for instance :

$ mach yum list glibc-devel
Setting up Repos
mach-local                100% |=========================|  951 B    00:00
os                        100% |=========================|  951 B    00:00
updates                   100% |=========================|  951 B    00:00
groups                    100% |=========================| 1.1 kB    00:00
egwn                      100% |=========================|  951 B    00:00
Reading repository metadata in from local files
mach-local: ################################################## 43/43
os        : ################################################## 1591/1591
updates   : ################################################## 138/138
egwn      : ################################################## 40/40
Installed Packages
glibc-devel.x86_64                       2.3.4-2                installed
Available Packages
glibc-devel.i386                         2.3.4-2                os

Indeed, if I then do a "mach yum install glibc-devel", the i386 version
gets installed in parallel, so I think I do understand what you mean, and
my test wasn't relevant, but when all of the packages I listed are already
installed in the build root in their x86_64 form, why did mach/yum install
the i386 when nothing seems to depend explicitly on them? And why only
those few ones?

Maybe I have a clue : I did "mach -k build foo.spec" with the x86_64
packages already installed... so I guess mach told yum to install
explicitly a bunch of packages, the explicit build dependencies, thus the
i386 versions got installed in parallel to the already installed x86_64.
Does that make sense? If that's it, then it's probably to be considered a
bug since "-k" (keep) shouldn't change the installed set of packages if
all the required ones were already installed.

Matthias

-- 
Clean custom Red Hat Linux rpm packages : http://freshrpms.net/
Fedora Core release 3 (Heidelberg) - Linux kernel 2.6.11-1.14_FC3
Load : 0.01 0.14 0.22




More information about the Fedora-buildsys-list mailing list