[F8/multilib] {,/usr}/{,s}bin64 (was: Split libperl from perl)

Jakub Jelinek jakub at redhat.com
Thu Apr 26 10:21:40 UTC 2007


On Wed, Apr 25, 2007 at 06:52:21PM +0200, Axel Thimm wrote:
> > So having both /bin/ls and /bin64/ls serves no useful purpose
> 
> Consider (*)
> 
> yum install foo.i386
> yum install foo.x86_64
> yum remove foo.x86_64
> rpm -V foo
> (same for smart and apt)
> 
> The current multilib model in rpm with blindly overwriting files is
> broken by design (e.g. unfixable in shared bindir environments). You
> cannot consider the packaging system a stateless machine anymore.
> 
> Adding to the design issues there are also implementation bugs with
> %docs and %langs that get uninstalled when the i386 package gets
> uninstalled and so on. Furthermore foo.i386 and foo.x86_64 packages
> often alread conflict on other files which is silently muted during
> coinstallation.

That's all solvable in the package management or by packaging decisions
(basically split current packages into subpackages based on the current
%_filecolor - color 0 (aka binaries and data files) would generally stay
in the packages, color != 0 (primarily libraries) would go into new
subpackages (*-lib or *-libs or something).  I believe this is what
dwmw2 is envisioning.  Even with current %_filecolor the above is solvable,
if you have both foo-1.2.3-6.i386 and foo-1.2.3-6.x86_64 installed and
they have color 0 files with different content between the arches,
to remove foo-1.2.3-6.x86_64 and keep foo-1.2.3-6.i386 all you really need
is to be able to recreate those 32-bit files.  You are proposing */{,s}bin64
basically as a filesystem cache for such a rare operation.  As I wrote, with
at most a dozen exceptions per distro you really don't need every binary
twice, the binaries have identical behavior and all they perhaps differ
in is speed (so you just need to choose the faster one, not install both
and let the poor user choose which exactly they want to run).  But you can
easily recreate the files also from the original foo-1.2.3-6.i386.rpm.
Either you still have it in say yum's cache, or download it again,
what you write above is not something everybody is doing every day.

On the filesystem people really want multilib, not multibin or multiarch
you are proposing.  It works in multiple OSes and has been in use for years
(Irix, Solaris, Linux).

	Jakub




More information about the Fedora-maintainers mailing list