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



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to