From c74ac744418a3a09b897fba405045aa079a086d2 Mon Sep 17 00:00:00 2001 From: Steve Langasek Date: Fri, 4 Sep 2009 20:50:30 -0700 Subject: [PATCH] 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 --- policy.sgml | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) 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 -- 2.39.2