< Relaxing | Russ Allbery > Eagle's Path > December 2008 | Productivity > |
Over the last couple of days, I've found some time to work on Lintian for the first time in quite a while. It's been a good feeling both for getting back to a project that I've done very little on for several months and finally feeling energized about a coding project. I think after a week of vacation, I'm starting to recover my energy.
I uploaded Lintian 2.1.3 earlier today and am currently doing a fresh archive-wide run for lintian.debian.org. This version has several new checks for watch files from Raphael Geissert, several fixes for the lintian.d.o output, a few other random bug fixes, and an attempt to tackle unversioned shared libraries in a more comprehensive fashion.
Shared libraries with an SONAME that doesn't contain a version number can't be represented in the shlibs system (but can in the symbols system), so Lintian always reports them as missing from shlibs when they're installed in public directories. That's not really the right tag, since they don't belong in shlibs. The more basic problem is that, except for a few special cases mostly coming from libc, they really don't belong in public directories. With no versioning in the SONAME, we can't handle changes to the ABI without completely changing the library name and can't use the shlibs system to manage them.
Most of the libraries in this situation are actually private libraries for
one particular application. As Policy already says, those libraries
shouidn't be installed in public directories like /usr/lib
; they
should be installed in private subdirectories of /usr/lib
for that
application. The biggest group of offenders here currently seems to be
KDE; for some reason, unless I'm missing something, this seems to be a
semi-standard KDE way of doing things.
This version of Lintian will hopefully handle this better. Such libraries
won't be expected to be in shlibs files and won't get erroneous tags about
not being listed there. We'll also do a better job of distinguishing
between versioned shared libraries and shared library names that just
contain a hyphen. Such unversioned libraries will get a separate tag
pointing at the portion of Policy that says to put private libraries and
plugins in a subdirectory instead of /usr/lib
.
Thanks as always to Frank Lichtenheld, Adam D. Barratt, and Jordà Polo for all the hard work they've been putting into Lintian. It's gotten much better over the few months that I've not been able to work on it, which is making me more excited to get back to it and do more.
Posted: 2008-12-28 00:12 — Why no comments?
< Relaxing | Russ Allbery > Eagle's Path > December 2008 | Productivity > |