Bug#457067: lintian: Check symbols files and warn about usage of Debian revisions
Package: lintian
Version: 1.23.41
Severity: wishlist
Maintainers are now starting to use symbols files, but maintaining symbols
files needs quite some work and it's easy to forget doing it. It would be
good if lintian could help remind maintainers that they have to update
their symbols files. But there's no generic way to detect if the
symbols files is up-to-date (the most reliable way is parsing the build
log and checking if dpkg-gensymbols generated a particular warning but I
don't think that lintian has access to the build log...).
However, I think I have some sort of work-around: the recommandation
for maintainers is to remove the Debian revision part of the versions
associated to symbols. For new symbols, dpkg-gensymbols will automatically
add the full version of the source package.
Thus if you scan the symbols files and if you find precisely a version
(with a Debian revision) that matches the current version of the binary
package, you should generate a warning and invite the maintainer to
update all the debian/*.symbols files in the source package to include the
new symbols with a version:
* without the Debian revision when it's not needed, ie when the symbol
has been introduced by the new upstream version and not
by a change in the Debian packaging.
* with a tilde after the Debian revision (-2~) when the symbol has been
introduced by a packaging change.
This version mangling is important in the general case so that backports
satisfy the generated dependencies (X.Y-R~bpo doesn't satisfy ">= X.Y-R"
while X.Y-R~bpo >= X.Y-R~ >= X.Y).
You can use the Dpkg::Shlibs::SymbolsFile module if you want but you can
also easily check the versions by taking the second column of all lines
starting by a single space. IOW, the check is not very difficult to
implement and I'd really appreciate if it could be implemented in the
not-too-distant future as it would help me monitor how maintainers are
handling symbols files. :)
Cheers,
-- System Information:
Debian Release: lenny/sid
APT prefers unstable
APT policy: (500, 'unstable'), (500, 'testing'), (500, 'stable'), (1, 'experimental')
Architecture: i386 (i686)
Kernel: Linux 2.6.23-1-686 (SMP w/1 CPU core)
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash
Versions of packages lintian depends on:
ii binutils 2.18.1~cvs20071027-1 The GNU assembler, linker and bina
ii diffstat 1.45-2 produces graph of changes introduc
ii dpkg-dev 1.14.13 package building tools for Debian
ii file 4.21-3 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-1 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
Reply to: