Please do not force legacy 32-bit libaries to be in /lib on amd64
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.
Changed in mandriva: | |
importance: | Unknown → Medium |
status: | Unknown → In Progress |
Changed in mandriva: | |
status: | In Progress → Fix Released |