lsb

Please do not force legacy 32-bit libaries to be in /lib on amd64

Bug #1331622 reported by Jeff Johnson
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
lsb
In Progress
Medium
Unassigned
Mandriva
Fix Released
Medium

Bug Description

The current FHS 2.3 says:

"The 64-bit architectures PPC64, s390x, sparc64 and AMD64 must place 64-bit
libraries in /lib64, and 32-bit (or 31-bit on s390) libraries in /lib.

The 64-bit architecture IA64 must place 64-bit libraries in /lib.

    Rationale: This is a refinement of the general rules for /lib<qual> and /
    usr/lib<qual>. The architectures PPC64, s390x, sparc64 and AMD64 support
    support both 32-bit (for s390 more precise 31-bit) and 64-bit programs.
    Using lib for 32-bit binaries allows existing binaries from the 32-bit
    systems to work without any changes: such binaries are expected to be
    numerous. IA-64 uses a different scheme, reflecting the deprecation of
    32-bit binaries (and hence libraries) on that architecture."

This is problematic. At least two major distributions, Debian and Gentoo,
have native 64-bit amd64 ports which put all native 64-bit libraries
in the standard directories /lib and /usr/lib.
For compatibility reasons, they make those directories also accessible
via symlinks /lib64 and /usr/lib64.

With this setup, those distributions avoided to change the library
installation paths in a large number of software packages for their
native 64-bit ports. Libraries are simply installed at the
usual long established places in /lib and /usr/lib.

With this setup, it does not make sense to put 32-bit legacy
libraries in /lib and /usr/lib. However, to put them elsewhere is
currently forbidden by the FHS.

The assumptions of the 'Rationale:' regarding the amd64 architecture
are wrong. The use of 32-bit binaries is deprecated on amd64.
The native 64-bit amd64 ports of all major distributions use almost
no 32-bit binaries. Nearly everything has been ported and recompiled
as 64-bit. Even many commercial applications have already been ported
to amd64 and more will follow (64-bit applications are generally faster
than 32-bit applications on amd64).

Of course Debian and Gentoo provide methods of running 32-bit legacy binaries.
However, it is not necessary to reserve the established /lib and /usr/lib
directories for that purpose. The vast majority of binaries will work even
if the libraries are accessible through a different path (e.g. /usr/lib32).

Please do not force distributions to put 32-bit legacy libraries
in /lib and /usr/lib on native amd64 64-bit ports.

The current wording of the FHS forces an amd64 setup on us where
every amd64 library has to be installed in /lib64 or /usr/lib64 and
(almost) nothing will be installed in /lib and /usr/lib in the long run.
So the current FHS wording replaces the well established
/lib and /usr/lib directories by /lib64 and /usr/lib64
without any really convincing reason.

The native libraries on a system should be accessible through
/lib or /usr/lib. This is a well established practice.
At the very least, the FHS should not make such a setup impossible.

Tags: fhs
Changed in mandriva:
importance: Unknown → Medium
status: Unknown → In Progress
Changed in mandriva:
status: In Progress → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Related blueprints

Remote bug watches

Bug watches keep track of this bug in other bug trackers.