Your message dated Thu, 18 Jan 2001 14:47:32 -0500
with message-id <[EMAIL PROTECTED]>
and subject line Bug#55730: fixed in debian-policy 3.2.1.2
has caused the attached Bug report to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what I am
talking about this indicates a serious mail system misconfiguration
somewhere.  Please contact me immediately.)

Darren Benham
(administrator, Debian Bugs database)

--------------------------------------
Received: (at submit) by bugs.debian.org; 20 Jan 2000 01:41:48 +0000
Received: (qmail 3779 invoked from network); 20 Jan 2000 01:41:47 -0000
Received: from janeway.cistron.net ([EMAIL PROTECTED])
  by master.debian.org with SMTP; 20 Jan 2000 01:41:47 -0000
Received: from lightning.mors.net ([EMAIL PROTECTED] [195.64.66.141])
        by janeway.cistron.net (8.9.3/8.9.3/Debian 8.9.3-6) with ESMTP id 
CAA02766
        for <[EMAIL PROTECTED]>; Thu, 20 Jan 2000 02:41:44 +0100
X-Authentication-Warning: janeway.cistron.net: Host [EMAIL PROTECTED] 
[195.64.66.141] claimed to be lightning.mors.net
Received: (from [EMAIL PROTECTED])
        by lightning.mors.net (8.9.3/8.9.3/Debian 8.9.3-6) id CAA04311
        for [EMAIL PROTECTED]; Thu, 20 Jan 2000 02:41:26 +0100
Date: Thu, 20 Jan 2000 02:41:25 +0100
From: Wichert Akkerman <[EMAIL PROTECTED]>
To: [EMAIL PROTECTED]
Subject: [PROPOSED] Changes in handling library dependencies
Message-ID: <[EMAIL PROTECTED]>
Mime-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha1;
        protocol="application/pgp-signature"; boundary="cWoXeonUoKmBZSoM"
User-Agent: Mutt/1.0i


--cWoXeonUoKmBZSoM
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: quoted-printable

Package: debian-policy

(This is being resend because the BTS apparently can't handle PGP/MIME
messages with attachments).

In woody dpkg will use a different method to determine on which
libraries a package should depend. Until now dpkg-shlibdeps has
used the output of ldd to determine which libraries are needed.
This will be changed to using objdump. This however changes
will need a couple of changes in the way that packages are build.

Let me first explain the differences between ldd and objdump.
A binary itself is linked against 0 or more dynamic libraries, depending
on how it is linked. Some of those libraries may need other libraries
to do their work, so the linker will need to load those as well when
the binary is executed. For example, to run xcdrgtk needs the following
libraries according to ldd:

        libgtk-1.2.so.0 =3D> /usr/lib/libgtk-1.2.so.0 (0x40019000)
        libgdk-1.2.so.0 =3D> /usr/lib/libgdk-1.2.so.0 (0x4013d000)
        libImlib.so.1 =3D> /usr/lib/libImlib.so.1 (0x40170000)
        libgdk_imlib.so.1 =3D> /usr/lib/libgdk_imlib.so.1 (0x401ab000)
        libc.so.6 =3D> /lib/libc.so.6 (0x401d9000)
        libgmodule-1.2.so.0 =3D> /usr/lib/libgmodule-1.2.so.0 (0x402b5000)
        libglib-1.2.so.0 =3D> /usr/lib/libglib-1.2.so.0 (0x402b8000)
        libdl.so.2 =3D> /lib/libdl.so.2 (0x402da000)
        libXi.so.6 =3D> /usr/X11R6/lib/libXi.so.6 (0x402de000)
        libXext.so.6 =3D> /usr/X11R6/lib/libXext.so.6 (0x402e6000)
        libX11.so.6 =3D> /usr/X11R6/lib/libX11.so.6 (0x402f3000)
        libm.so.6 =3D> /lib/libm.so.6 (0x40392000)
        libjpeg.so.62 =3D> /usr/lib/libjpeg.so.62 (0x403af000)
        libtiff.so.3 =3D> /usr/lib/libtiff.so.3 (0x403cf000)
        libungif.so.3 =3D> /usr/lib/libungif.so.3 (0x40411000)
        libpng.so.2 =3D> /usr/lib/libpng.so.2 (0x4041a000)
        libz.so.1 =3D> /usr/lib/libz.so.1 (0x40442000)
        /lib/ld-linux.so.2 =3D> /lib/ld-linux.so.2 (0x40000000)

Now if we leek a bit closed we see that xcdrgtk actually only links to
a couple of those libraries directly. The actual depencies are a tree
which looks something like this: (anyone interested in writing a tool
to make such a graph?)

      xcdrgtk
      +- libc
      +- gtk
      +- gdk
      |  +- libXi
      |  +- libXext
      |  \- libX11
      +- Imlib
      |  +- libjpeg
      |  +- libtiff
      |  |  +- libjpeg
      |  |  +- libm
      |  |  \- libz
      |  +- libungif
      |  |  \- libX11
      |  +- libpng
      |  |  +- libz
      |  |  \- libm
      |  +- libz
      |  \- libm
      \- gdk_imlib
         +- libgmodule-1.2
         |   \- libdl
         +- libglib-1.2
         \- libdl
            \- ld-linux

(I haven't listed libc in here, but all libraries are also linked to
libc).

What ldd does is give us a complete list of every library that is needed
to run the binary (in other words, if flattens this tree). objdump
however can tell us exactly what library something is linked with. For
the same xcdrgtk binary it will tell us:

  NEEDED      libgtk-1.2.so.0
  NEEDED      libgdk-1.2.so.0
  NEEDED      libImlib.so.1
  NEEDED      libgdk_imlib.so.1
  NEEDED      libc.so.6

All the other libraries are automatically pulled in by the dynamic
loader.

And now for the connection to package management: a package only
needs to depend on the libraries it is directly linked to, since the
dependencies for those libraries should automatically pull in the
other libraries.

This change does mean a change in the way packages are build though:
currently dpkg-shlibdeps is only run on binaries. But since we will
now depend on the libraries to depend on the libraries they need
the packages containing those libraries will need to run dpkg-shlibdeps
on the libraries. That may sound a bit strange, so here is an example:

Generally a package does this in debian/rules:

        dpkg-shlibdeps debian/tmp/usr/bin/*

This will need to be changes to:

        dpkg-shlibdeps debian/tmp/usr/bin/* debian/tmp/usr/lib/lib*.so.*

For lib* packages which don't generally contain libraries and didn't
run dpkg-shlibdeps a dpkg-shlibdeps call will need to be added as well.

This gives us a lot more flexibility in the way libraries are packaged.

A good example where this would help us is the current mess with
multiple version of the mesa library. With the ldd-based system
every package that uses mesa need to add a dependency on
svgalib|svgalib-dummy in order to handle the glide mesa variant.
With an objdump-based system this isn't necessary anymore and would
have saved everyone a lot of work.

Another example: we could update libimlib with a new version that supports
a new graphics format called dgf. If we use the old ldd method every
package that uses libimlib would need to be recompiled so it would also
depend on libdgf or it wouldn't run due to missing symbols. However with
the new system packages using libimlib can depend on libimlib itself
having the dependency on libgdh and wouldn't need to be updated.

Belos is a diff for the packaging manual with the necessary changes.

Wichert.


--- packaging.sgml.org  Wed Jan 19 15:43:20 2000
+++ packaging.sgml      Wed Jan 19 15:53:07 2000
@@ -732,7 +732,7 @@
          </p>
=20
          <p>      =20
-           Its arguments are executables
+           Its arguments are executables and libraries
            <footnote>
              <p>
                They may be specified either in the locations in the
@@ -745,7 +745,7 @@
          </p>
=20
          <p>      =20
-           If some of the executable(s) shared libraries should only
+           If some of the found shared libraries should only
            warrant a <tt>Recommends</tt> or <tt>Suggests</tt>, or if
            some warrant a <tt>Pre-Depends</tt>, this can be achieved
            by using the <tt>-d<var>dependency-field</var></tt> option
@@ -4646,9 +4646,15 @@
          </heading>
=20
          <p>      =20
-           <prgn>dpkg-shlibdeps</prgn> calls <prgn>ldd</prgn> to
-           determine the shared libraries used by the compiled
-           binaries passed through its command line.
+           <prgn>dpkg-shlibdeps</prgn> calls <prgn>objdump</prgn> to
+           determine the shared libraries directly
+           <footnote> a binary <tt>foo</tt> directly use a library
+           <tt>libbar</tt> if it is linked with that library. Other
+           libraries that are needed by <tt>libbar</tt> are linked
+           indirectly to <tt>foo</tt>, and the dynamic linker will load
+           the automatically when it loads <tt>libbar</tt>.
+           </footnote> used by the compiled binaries and libraries
+           passed through its command line.=20
          </p>
=20
          <p>      =20

--=20
   ________________________________________________________________
 / Generally uninteresting signature - ignore at your convenience  \
| [EMAIL PROTECTED]                    http://www.liacs.nl/~wichert/ |
| 1024D/2FA3BC2D 576E 100B 518D 2F16 36B0  2805 3CB8 9250 2FA3 BC2D |

--cWoXeonUoKmBZSoM
Content-Type: application/pgp-signature

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.1 (GNU/Linux)
Comment: For info see http://www.gnupg.org

iEYEARECAAYFAjiGZ8UACgkQPLiSUC+jvC0ABACdEviBiy63CQjAUtCHamG/ULQj
XCEAoKHrh0ub3TaEXea9pwJBND7RoFEx
=bhhT
-----END PGP SIGNATURE-----

--cWoXeonUoKmBZSoM--
---------------------------------------
Received: (at 55730-close) by bugs.debian.org; 18 Jan 2001 20:10:52 +0000
>From [EMAIL PROTECTED] Thu Jan 18 14:10:50 2001
Return-path: <[EMAIL PROTECTED]>
Received: from murphy.debian.org [::ffff:216.234.231.6] 
        by master.debian.org with smtp (Exim 3.12 1 (Debian))
        id 14JLOT-0001XC-00; Thu, 18 Jan 2001 14:10:50 -0600
Received: (qmail 920 invoked from network); 18 Jan 2001 19:48:49 -0000
Received: from auric.debian.org ([EMAIL PROTECTED])
  by murphy.debian.org with SMTP; 18 Jan 2001 19:48:49 -0000
Received: from troup by auric.debian.org with local (Exim 3.12 1 (Debian))
        id 14JL1w-0006sv-00; Thu, 18 Jan 2001 14:47:32 -0500
From: Debian Policy List <debian-policy@lists.debian.org>
To: [EMAIL PROTECTED]
Subject: Bug#55730: fixed in debian-policy 3.2.1.2
Message-Id: <[EMAIL PROTECTED]>
Sender: James Troup <[EMAIL PROTECTED]>
Date: Thu, 18 Jan 2001 14:47:32 -0500
Delivered-To: [EMAIL PROTECTED]

We believe that the bug you reported is fixed in the latest version of
debian-policy, which has been installed in the Debian FTP archive:

debian-policy_3.2.1.2.dsc
  to pool/main/d/debian-policy/debian-policy_3.2.1.2.dsc
debian-policy_3.2.1.2_all.deb
  to pool/main/d/debian-policy/debian-policy_3.2.1.2_all.deb
policy.text.gz byhand
policy.html.tar.gz byhand
menu-policy.text.gz byhand
debian-policy_3.2.1.2.tar.gz
  to pool/main/d/debian-policy/debian-policy_3.2.1.2.tar.gz
virtual-package-names-list.text byhand
mime-policy.text.gz byhand
policy.ps.gz byhand
policy.pdf.gz byhand
libc6-migration.text byhand
A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to [EMAIL PROTECTED],
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Debian Policy List <debian-policy@lists.debian.org> (supplier of updated 
debian-policy package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing [EMAIL PROTECTED])


-----BEGIN PGP SIGNED MESSAGE-----

Format: 1.7
Date: Thu, 18 Jan 2001 01:43:58 -0600
Source: debian-policy
Binary: debian-policy
Architecture: source all
Version: 3.2.1.2
Distribution: unstable
Urgency: low
Maintainer: Debian Policy List <debian-policy@lists.debian.org>
Changed-By: Manoj Srivastava <[EMAIL PROTECTED]>
Description: 
 debian-policy - Debian Policy Manual and related documents
Closes: 51879 53496 53700 55048 55730 57154 59403 65765 66912 76028
Changes: 
 debian-policy (3.2.1.2) unstable; urgency=low
 .
   * The minimal change in version number is so that people can test and
     root out the bugs in this document before we make everyone change to
     this version.
   * Document the Enhances relationship
   * Removed the restriction that one, and exactly one, person must
     maintain a package.                            closes: Bug#51879
   * Fixed a typo, and added the nogroup name, in uid/gid section of
     policy.                                        closes: Bug#53496
   * Fixed a misstatement in policy about not needing to depend on packages
     in the base system (not true -- the Essential tag is significant)
                                                    closes: Bug#53700
   * Clarified update-rc.d stuff                    closes: Bug#55048
 .
   * We have already included the material for shlibdep changes, and most
     of this is not relevant to policy anyway.      closes: Bug#55730
   * makedev--> MAKEDEV                             closes: Bug#57154
   * Added restrictions on the files in /usr/share/doc/
                                                    closes: Bug#59403
   * Changed location of a paragraph about copyright files into the section
     that deals with copyright files.               closes: Bug#65765
   * init script configuration variables            closes: Bug#66912
   * Clarifed language about packages sharing a conffile need to be marked
     as conflicting                                 closes: Bug#76028
Files: 
 7873b3a6ddd5f3fc015ccb2aaae800a8 662 doc optional debian-policy_3.2.1.2.dsc
 9cbc8f71b1bb280c441a9e33cc85daa5 486560 doc optional 
debian-policy_3.2.1.2.tar.gz
 04d4f5d13f7ab04c97034c884e6425b4 542540 doc optional 
debian-policy_3.2.1.2_all.deb
 42928cef99fee859b6442277e91eeb22 120715 byhand - policy.ps.gz
 9632447891b3a57f956b52c80fd177e7 208362 byhand - policy.pdf.gz
 0fbf6fcc843ed1c928f5f92b05949c43 66419 byhand - policy.html.tar.gz
 203f852c33bd0d6df7b8a66977728d98 62122 byhand - policy.text.gz
 3ed7aa5a489834b24bb28ff377a34aa9 10982 byhand - libc6-migration.text
 1e4917c791262f0cd6de796444e51c86 7785 byhand - virtual-package-names-list.text
 1b08168ee1c506d3475612bc4d3cdbbf 2180 byhand - menu-policy.text.gz
 52f844690780aef153828e7325e90d91 1599 byhand - mime-policy.text.gz

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.4 (GNU/Linux)
Comment: For info see http://www.gnupg.org

iD8DBQE6ZqAGIbrau78kQkwRAdekAKDV1PGCUax5rPPt54LgMtGzQA5odACdH0xE
RX5CFc75JTHxEfEmaPEfUPk=
=+KRS
-----END PGP SIGNATURE-----

Reply via email to