Re: Release goal: Getting rid of unneeded *.la / emptying dependency_libs
(followup from -release, text from there is reused, so if you read
-release things are not too new for you)
from time to time we have "funny" RC bugs thanks to dependencies
hidden in .la-files. Also these files lead to unneeded dependencies
between packages (in the case package A needs lib B which needs lib C,
in the normal case A would link B, B would link C; with libtools
*.la-files however A would also directly link C, meaning A need
binNMUs in case C changes soname, but the A binnmu can only happen
after B is binnmued successfully).
I would like to get rid of these unnecessary dependencies, and reduce
the number of potential RC bugs.
One week ago we had (ignoring any files in /usr/lib/kde3, as they are
unfortunatly necessary, and always counting source packages even
though of course looked into binary packages on sid/i386) 1098
packages that contain *.la-files, where 856 have dependency_libs not
empty, and 421 packages are referenced by other *.la-files, i.e. 672
packages only contain leaf *.la-files (i.e. not referenced by any
dependency_libs). It might happen that we come to the conclusion that
we need to keep a few la-files around, as they might be a help for
static compiling, but static compiling is at best "not the default",
so I would be quite surprised if that's more than 5-10 files (and then
that's the exception that confirms the rule).
The idea is to ask all maintainers of the 672 packages to drop their
*.la-file unless really needed, and any maintainer of any package to
empty the dependency_libs. "Asking" starts with a mail to d-d-a and
individual bug reports (not all bug reports at the same time
obviously). After the first packages have their *.la-file dropped /
dependency_libs removed, more packages can drop their *.la-file, and
we should end up only with the cases where we really need the file.
(If you maintain a package with an *.la-file, please do not just drop
the la-file. Empty the dependency_libs is good, dropping the is only
ok if no other package depends on it.)
If this discussion ends with "do it" I will file an wishlist bug for a
new lintian check (first only to check if dependency_libs is empty),
send a mail to d-d-a with "how to do it" and a list of affected
packages, and then step-by-step file the appropriate bug reports
(only for packages which can dump their la-file).
About "how to do it", for debhelper the cleanup is part of the
dh_devlibs-script proposed as bug #534966, for cdbs there seems to be
a gnome-rule as /usr/share/gnome-pkg-tools/1/rules/clean-la.mk but in
any case it should be easy to do an
sed "s,^dependency_libs=.*,dependency_libs=''," $la-file
as part of debian/rules but before building the deb-files.
Comments / Suggestions are welcome.