From: Steve Langasek
Date: Sat, 5 Sep 2009 03:50:30 +0000 (-0700)
Subject: Bug#542865: Grant an FHS exception for the multiarch library directories
X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=c74ac744418a3a09b897fba405045aa079a086d2;p=debian%2Fdebian-policy.git
Bug#542865: Grant an FHS exception for the multiarch library directories
On Fri, Aug 21, 2009 at 09:25:30PM -0700, Russ Allbery wrote:
> Manoj Srivastava writes:
> > On Fri, Aug 21 2009, Russ Allbery wrote:
> >> The current restriction is specific to libraries. Don't we need to say
> >> that you can't put *any* files into any triplet directory that isn't
> >> for your package architecture?
> > Hmm. My first read was that one could not put anything that was
> > not a library in these directories, but perhaps it should be stated
> > explicitly.
> I was expecting that we'd need to put anything that you might want to have
> simultaneous installs from multiple architectures in that directory, which
> would include, for instance, any shared library plugins or loadable
> modules, which aren't strictly libraries.
> We might have to duplicate some library helper programs as well, if for
> instance they communicate with the library using binary structures that
> are sensitive to sizeof(long).
Right, this was a bug in the proposed patch, not a deliberate statement that
only libraries belong in these directories. (As I mentioned, the first
patch was something of a trial balloon.) I think this updated patch should
cover everything for the first round.
Re-seconds?
Signed-off-by: Manoj Srivastava
---
diff --git a/policy.sgml b/policy.sgml
index 844053d..0bf1001 100644
--- a/policy.sgml
+++ b/policy.sgml
@@ -5582,6 +5582,40 @@ libbar 1 bar1 (>= 1.0-1)
for 64 bit binaries is removed.
+ -
+
+ The requirement for object files, internal binaries, and
+ libraries, including libc.so.*, to be located
+ directly under /lib{,32} and
+ /usr/lib{,32} is amended, permitting files
+ to instead be installed to
+ /lib/triplet and
+ /usr/lib/triplet, where
+ triplet is the value returned by
+ dpkg-architecture -qDEB_HOST_GNU_TYPE for the
+ architecture of the package. Packages may not
+ install files to any triplet path other
+ than the one matching the architecture of that package;
+ for instance, an Architecture: amd64 package
+ containing 32-bit x86 libraries may not install these
+ libraries to /usr/lib/i486-linux-gnu.
+
+ This is necessary in order to reserve the directories for
+ use in cross-installation of library packages from other
+ architectures, as part of the planned deployment of
+ multiarch.
+
+
+
+ Applications may also use a single subdirectory under
+ /usr/lib/triplet.
+
+
+ The execution time linker/loader, ld*, must still be made
+ available in the existing location under /lib or /lib64
+ since this is part of the ELF ABI for the architecture.
+
+
-
The requirement that