development packages and multilib

Richard W.M. Jones rjones at redhat.com
Sun Apr 26 07:06:07 UTC 2009


On Sun, Apr 26, 2009 at 08:09:28AM +0200, Kevin Kofler wrote:
> Matthew Woehlke wrote:
> > Our requirements are that one build environment produces one package
> > containing both 32- and 64-bit binaries.
> 
> If you're talking about RPM packages, that's completely broken, an x86_64
> RPM is supposed to only contain x86_64 stuff (and it won't install on
> 32-bit systems), and an i386 RPM definitely must not contain 64-bit stuff.

I think it's interesting that three things: (1) cross-compilation, (2)
virtualization and (3) Wine [which is a type of virt] becoming usable,
have all happened at around the same time, and I don't think it's a
coincidence.

It means what you said above isn't really true any more, or more
circumspectly, if what you said is true, then RPM isn't designed for
this new world.

Some examples:

Since Wine reached 1.0 a few years ago and became usable, it now
becomes practical to build and test software on Fedora.  Hence the
Windows cross-compiler project.  "noarch" RPMs contain Windows
libraries.

With virtualization now commonplace, you can no longer assume that the
architecture you build on will be the architecture you run on.  It's
quite possible, in fact desirable, to store programs in an RPM of a
different architecture, that will run in (eg) qemu.  An example of
this is virt-p2v and the V2V tools, where we store drivers for all
sorts of different platforms and architectures inside the RPM.

With appliances, it's quite desirable to want a 32 bit appliance
stored alongside a 64 bit program.  32 bit appliances are generally
better because of the qualities of appliances: They run in a VM, so
host architecture doesn't matter.  They run in very little memory, so
64 bit isn't useful.  You want them to be as small as possible, and
(sometimes, not always) 32 bit binaries are smaller.

In the actual appliances cases I'm looking at now, we really want to
mix not just 32 and 64 bit, but all combinations of architectures,
such as having x86-64 library linked with a (eg) ppc32 appliance.

[I should also add as a note here that I'm not talking about binary
blobs, firmware etc.  All of the above cases are built from source.]

Rich.

-- 
Richard Jones, Emerging Technologies, Red Hat  http://et.redhat.com/~rjones
virt-df lists disk usage of guests without needing to install any
software inside the virtual machine.  Supports Linux and Windows.
http://et.redhat.com/~rjones/virt-df/




More information about the devel mailing list