[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#545078: lintian: warn if symbol file contains tag but no build-dep on dpkg-dev (>= 1.15.3~)



[CC-ing people who implemented this feature, as I am not a dpkg-dev expert. Please correct me if I wrote something silly.]

* Russ Allbery <rra@debian.org>, 2009-09-13, 20:19:
dpkg-dev 1.15.3 introduced the following change:

   * Support tags before symbols in symbols file contained in source
     packages.  The first two tags are "optional" (use it to not fail if
     the symbol might disappear from the library without breaking the
     ABI) and "arch" to restrict the set of architectures where the
     symbol is supposed to exist.  Thanks to Modestas Vainius
     <modestas@vainius.eu> for the patch.  See dpkg-gensymbols(1) for
     more information. Closes: #521551

lintian should warn if symbol file contains tags but the package does
not build-depend on dpkg-dev (>= 1.15.3~).

The tricky part of implementing this is that currently all of Lintian's
analysis of symbol files is based on the binary package, and by that point
dpkg-gensymbols has already analyzed and removed the tags.  Finding the
symbol files in the source package is a bit trickier since they can be
assembled on the fly if the package wishes to, and it would mean parsing
them again.

I think we can accept the possibility of false negatives in case these files are generated on the fly.

Symbols in the source package should be checked anyway, because this is the only way to early catch issues in arch-specific symbol files. (Imagine one makes a typo in debian/symbols.s390 but don't have a S390 handy to check if the package is actually built correctly.)

What happens if a package with a symbol file using tags is built with an
old version of dpkg-dev?  Does the tag end up in the installed symbol file
as if it were a symbol?

Yes, unless a tag contains spaces, it is considered by old dpkg-dev as
a part of symbol name. That is, in many cases, a package would simply FTBFS due to missing symbols...

If so, Lintian could detect that fairly easily and warn about that.

Right, but that should be a separate check.

--
Jakub Wilk



Reply to: