On Fri, Aug 21, 2009 at 09:25:30PM -0700, Russ Allbery wrote: > Manoj Srivastava <[email protected]> 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?
---
policy.sgml | 34 ++++++++++++++++++++++++++++++++++
1 files changed, 34 insertions(+), 0 deletions(-)
diff --git a/policy.sgml b/policy.sgml
index 0bf8253..347c0bf 100644
--- a/policy.sgml
+++ b/policy.sgml
@@ -5584,6 +5584,40 @@ libbar 1 bar1 (>= 1.0-1)
</item>
<item>
<p>
+ The requirement for object files, internal binaries, and
+ libraries, including <file>libc.so.*</file>, to be located
+ directly under <file>/lib{,32}</file> and
+ <file>/usr/lib{,32}</file> is amended, permitting files
+ 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>
+ Applications may also use a single subdirectory under
+ <file>/usr/lib/<var>triplet</var></file>.
+ </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.3
Thanks,
--
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/
[email protected] [email protected]
signature.asc
Description: Digital signature

