[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#542865: Grant an FHS exception for the multiarch library directories



On Fri, Aug 21, 2009 at 04:09:57PM -0700, Russ Allbery wrote:

> > I think the only specific restriction needed is already spelled out -
> > that packages can only install to the triplet matching their own
> > architecture.  Are there other restrictions that you think are called
> > for?

> 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?

Yes, good point.  Patch amended.  (Just a one-word change,
s/libraries/files/.)

---
 policy.sgml |   29 +++++++++++++++++++++++++++++
 1 files changed, 29 insertions(+), 0 deletions(-)

diff --git a/policy.sgml b/policy.sgml
index 0bf8253..100917d 100644
--- a/policy.sgml
+++ b/policy.sgml
@@ -5584,6 +5584,35 @@ libbar 1 bar1 (>= 1.0-1)
               </item>
               <item>
                 <p>
+                  The requirement for libraries, including
+                  <file>libc.so.*</file>, to be located directly under
+                  <file>/lib{,32}</file> and <file>/usr/lib{,32}</file> is
+                  amended, permitting libraries to instead be installed to
+                  <file>/lib/<var>triplet</var></file> and
+                  <file>/usr/lib/<var>triplet</var></file>, where
+                  <tt><var>triplet</var></tt> is the value returned by
+                  <tt>dpkg-architecture -qDEB_HOST_GNU_TYPE</tt> for the
+                  architecture of the package.  Packages may <em>not</em>
+                  install files to any <var>triplet</var> path other
+                  than the one matching the architecture of that package;
+                  for instance, an <tt>Architecture: amd64</tt> package
+                  containing 32-bit x86 libraries may not install these
+                  libraries to <file>/usr/lib/i486-linux-gnu</file>.
+                  <footnote>
+                    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
+                    <tt>multiarch</tt>.
+                  </footnote>
+                </p>
+                <p>
+                  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.
+                </p>
+              </item>
+              <item>
+                <p>
                   The requirement that
                   <file>/usr/local/share/man</file> be "synonymous"
                   with <file>/usr/local/man</file> is relaxed to a
-- 
1.6.3.1


-- 
Steve Langasek                   Give me a lever long enough and a Free OS
Debian Developer                   to set it on, and I can move the world.
Ubuntu Developer                                    http://www.debian.org/
slangasek@ubuntu.com                                     vorlon@debian.org

Attachment: signature.asc
Description: Digital signature


Reply to: