Package: lintian Version: 1.23.42 Severity: wishlist See #462007 - I have come across a non-obvious problem in the use of -dbg packages using dh_strip where, if a .install file exists for the -dbg package, dh_install copies the unstripped object into the -dbg build directory. When dh_strip --dbg-package=libfoo-dbg is then called, it silently omits the file from the call to objcopy --only-keep-debug (to prevent an objcopy error), resulting in an unstripped object file being retained in the -dbg package that has a complete (and fully functional) copy of the library embedded inside - as shown by the presence of a full Dynamic Section under objdump -p. Without the .install file, dh_strip takes care of copying the debug symbols into place directly - no .install command is actually needed.
The solution is to simply remove the debian/libfoo-dbg.install file. However, the error goes undetected because dh_strip outputs no warnings, lintian does not check for it (yet) and there is no particular sign of a problem except the larger size of the files in the -dbg package. With a new library package (or the addition of a new -dbg package to an existing library source), this could easily be missed because all debugging operations using the -dbg package are unaffected. With the .install file present: $ ll /usr/lib/debug/usr/lib/libqof*.so.*.* -rw-r--r-- 1 root root 155585 2007-12-19 21:49 /usr/lib/debug/usr/lib/libqof-backend-qsf.so.0.0.7 -rw-r--r-- 1 root root 78554 2007-12-19 21:49 /usr/lib/debug/usr/lib/libqof-backend-sqlite.so.0.0.2 -rw-r--r-- 1 root root 1029686 2007-12-19 21:49 /usr/lib/debug/usr/lib/libqof.so.1.0.9 With the .install file removed: $ debc | tail drwxr-xr-x root/root 0 2008-01-24 22:53 ./usr/lib/debug/usr/lib/ -rw-r--r-- root/root 728646 2008-01-24 22:53 ./usr/lib/debug/usr/lib/libqof.so.1.0.9 -rw-r--r-- root/root 103217 2008-01-24 22:53 ./usr/lib/debug/usr/lib/libqof-backend-qsf.so.0.0.7 -rw-r--r-- root/root 47930 2008-01-24 22:53 ./usr/lib/debug/usr/lib/libqof-backend-sqlite.so.0.0.2 It should be relatively simple for lintian to check for entries in the Dynamic Section under objdump -p - the 'Dynamic Section' will be present but a listing in that section should, IMHO, be a lintian warning. "dbg-package-with-dynamic-section-entries" "The ${name} debug package may contain an embedded copy of the unstripped library ${name} instead of only the debugging symbols. Please check that you have not tried to install the ${name} library into the -dbg package, either manually or via a debian/${name}-dbg.install file. There is no need to install ${filename} into the -dbg package as dh_strip --dbg-package=${name}-dbg will do it for you." How does that sound? -- System Information: Debian Release: lenny/sid APT prefers unstable APT policy: (500, 'unstable') Architecture: amd64 (x86_64) Kernel: Linux 2.6.22-2-amd64 (SMP w/1 CPU core) Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/bash Versions of packages lintian depends on: ii binutils 2.18.1~cvs20080103-1 The GNU assembler, linker and bina ii diffstat 1.45-2 produces graph of changes introduc ii dpkg-dev 1.14.16.4 package building tools for Debian ii file 4.23-1 Determines file type using "magic" ii gettext 0.17-2 GNU Internationalization utilities ii intltool-debian 0.35.0+20060710.1 Help i18n of RFC822 compliant conf ii libparse-debianchan 1.1.1-2 parse Debian changelogs and output ii liburi-perl 1.35.dfsg.1-1 Manipulates and accesses URI strin ii man-db 2.5.0-4 on-line manual pager ii perl [libdigest-md5 5.8.8-12 Larry Wall's Practical Extraction lintian recommends no packages. -- no debconf information -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]