Mailinglist Archive: opensuse-buildservice (216 mails)

< Previous Next >
Re: [opensuse-buildservice] 32bit packages in x86_64, for CentOS
  • From: Troy Telford <ttelford.groups@xxxxxxxxx>
  • Date: Thu, 18 Mar 2010 13:58:23 -0600
  • Message-id: <201003181358.23986.ttelford.groups@xxxxxxxxx>
On Wednesday 17 March 2010 01:45:23 am Marcus Meissner wrote:
On Wed, Mar 17, 2010 at 12:07:53AM -0400, Douglas Hubler wrote:
On Tue, Mar 16, 2010 at 8:47 PM, Jon Nelson <jnelson-suse@xxxxxxxxxxx>
wrote:
I want to specify, "I need

glibc but for 32 bit" but I don't seem to be able to specify it. The
.i386 glibc package doesn't even provide glibc(x86-32). Thoughts?

are you saying this is a general glibc challenge, or something
specific to OBS systems?

Well, on a CentOS system (or any Red Hat derived system), the problem is that
all 32-bit support is added by adding the .i386 package. As the package
itself is a 32-bit arch package, there isn't a glibc(x86-32) dependency;
everything is already assumed to be x86-32.

SuSE's (better, IMO) practice of having a 64-bit arch package with 32-bit
contents necessitates the glibc(x86-32) provides

Not sure if Centos even allows that.

As far as I'm aware CentOS (and Red Hat -derived distros in general), the
problem is that '32-bit' devel packages are provided as a 32-bit arch package.
In contrast, SuSE distros use something like 'glibc-32bit'

So you'd see the following:
Red Hat/Centos/Fedora:
glibc-<foo>.i686.rpm
glibc-<foo>.x86_64.rpm

And SuSE distros:
glibc-<foo>.x86_64.rpm
glibc-<foo>-32bit.x86_64.rpm

The problem is that with the Red Hat way, you can't say
Requires: glibc-<foo>-32bit
because there is no <glibc-<foo>-32bit package.

And if you have both glibc-<foo>.<arch>.rpm packages (for RedHat distros),
only the 64-bit packages (on x86_64 arch) will be installed by OBS- leaving
you with pains with 32-bit on x86_64.

One workaround I've seen is to provide a 64-bit package with a unique name
that contains the desired 32-bit libs for CentOS, RHEL, Fedora, etc.

Why do you want to do that btw (and what exactly are you trying to
achieve), and why not just build in i586 mode?

This is sorta like asking why SuSE would want to provide
'glibc-32bit.<version>.x86_64.rpm' packages, isn't it?

Some 64-bit software includes 32-bit only components. Cluster administrative
software is one useful case where you'd want to provide both arches - that way
you can provision out both 64 and 32 bit nodes, and have the management
binaries all packaged up nicely. (and have a "mgmt-32bit" packageas the end
product for the 32 bit binaries/libs).

Other cases are when the software package itself does both 32 and 64 bit
compiles, and the packager doesn't want to mess too much with the build
internals.

Besides - simply building 32-bit stuff solely on i586 is what CentOS (and Red
Had based distros) do-- and that's what is causing the problem to begin with,
isn't it?

I seem to remember doing the 32-bit builds with 64-bit arch packages using OBS
before, but I can't remember how I did it in the past. (And it was a long
time ago, on a private machine I no longer have access to...)
--
To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@xxxxxxxxxxxx
For additional commands, e-mail: opensuse-buildservice+help@xxxxxxxxxxxx

< Previous Next >
Follow Ups