From 7151da8b64dcc416986598e203c8b7c080789d7a Mon Sep 17 00:00:00 2001 From: Russ Allbery Date: Thu, 1 Jul 2010 12:15:46 -0700 Subject: [PATCH] Remove obsolete shlibs.local information Remove the instructions for how to create shlibs.local files and the encouragement to do so if one runs into errors with dpkg-shlibdeps, since the archive coverage for shlibs is now complete and writing a shlibs.local file is unlikely to be an appropriate solution to one's problem. --- policy.sgml | 83 +++++------------------------------------------------ 1 file changed, 7 insertions(+), 76 deletions(-) diff --git a/policy.sgml b/policy.sgml index 1e641e6..9a72be5 100644 --- a/policy.sgml +++ b/policy.sgml @@ -5470,8 +5470,13 @@ Replaces: mail-transport-agent

debian/shlibs.local

- This lists overrides for this package. Its use is - described below (see ). + This lists overrides for this package. This file should + normally not be used, but may be needed temporarily in + unusual situations to work around bugs in other packages, + or in unusual cases where the normally declared dependency + information in the installed shlibs file for + a library cannot be used. The contents of this file + override information obtained from any other source.

@@ -5576,13 +5581,6 @@ dpkg-shlibdeps debian/tmp/usr/bin/* debian/tmp/usr/sbin/* \ field in the control file for this to work.

-

- If dpkg-shlibdeps doesn't complain, you're - done. If it does complain you might need to create your own - debian/shlibs.local file, as explained below (see - ). -

-

If you have multiple binary packages, you will need to call dpkg-shlibdeps on each one which contains @@ -5730,74 +5728,7 @@ install -m644 debian/shlibs.package debian/package/DEBIAN/ packages.

- - - Writing the debian/shlibs.local file - -

- This file is intended only as a temporary fix if - your binaries or libraries depend on a library whose package - does not yet provide a correct shlibs file. -

- -

- We will assume that you are trying to package a binary - foo. When you try running - dpkg-shlibdeps you get the following error - message (-O displays the dependency information on - stdout instead of writing it to - debian/substvars, and the lines have been wrapped - for ease of reading): - -$ dpkg-shlibdeps -O debian/tmp/usr/bin/foo -dpkg-shlibdeps: warning: unable to find dependency - information for shared library libbar (soname 1, - path /usr/lib/libbar.so.1, dependency field Depends) -shlibs:Depends=libc6 (>= 2.2.2-2) - - You can then run ldd on the binary to find the - full location of the library concerned: - -$ ldd foo -libbar.so.1 => /usr/lib/libbar.so.1 (0x4001e000) -libc.so.6 => /lib/libc.so.6 (0x40032000) -/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000) - - So the foo binary depends on the - libbar shared library, but no package seems to - provide a *.shlibs file handling - libbar.so.1 in /var/lib/dpkg/info/. Let's - determine the package responsible: - -$ dpkg -S /usr/lib/libbar.so.1 -bar1: /usr/lib/libbar.so.1 -$ dpkg -s bar1 | grep Version -Version: 1.0-1 - - This tells us that the bar1 package, version 1.0-1, - is the one we are using. Now we can file a bug against the - bar1 package and create our own - debian/shlibs.local to locally fix the problem. - Including the following line into your - debian/shlibs.local file: - -libbar 1 bar1 (>= 1.0-1) - - should allow the package build to work. -

- -

- As soon as the maintainer of bar1 provides a - correct shlibs file, you should remove this line - from your debian/shlibs.local file. (You should - probably also then have a versioned Build-Depends - on bar1 to help ensure that others do not have the - same problem building your package.) -

-
- - -- 2.39.5