Packages violating policy 8.2
Hi,
Debian policy says:
| 8.2 Run-time support programs
|
| If your package has some run-time support programs which use the
| shared library you must not put them in the shared library
| package. If you do that then you won't be able to install several
| versions of the shared library without getting filename clashes.
|
| Instead, either create another package for the runtime binaries
| (this package might typically be named libraryname-runtime; note the
| absence of the soversion in the package name), or if the development
| package is small, include them in there.
After seeing several packages that violate 8.2 I set out to find out
how common that is:
The line below looks for all packages with a *.so.* file in (/usr)/lib
and a file in (/usr)/bin. The assumption is that anything with a
*.so.* file in the system library dirs is a library package and those
may not have files in (/usr)/bin.
% grep-dctrl "" -s Filename -n dists/sid/*/binary-i386/Packages \
| while read DEB; do \
HAVE_BIN=no; HAVE_LIB=no; dpkg -c $DEB >/tmp/l; \
</tmp/l while read PERM USER SIZE DATE TIME FILE REST; do \
if [ "$(dirname "$FILE")" = ./bin ]; then HAVE_BIN=yes; fi; \
if [ "$(dirname "$FILE")" = ./usr/bin ]; then HAVE_BIN=yes; fi; \
case "$FILE" in \
(*.so.*) \
if [ "$(dirname "$FILE")" = ./lib ]; then HAVE_LIB=yes; fi; \
if [ "$(dirname "$FILE")" = ./usr/lib ]; then HAVE_LIB=yes; fi;; \
esac; \
done; \
if [ $HAVE_BIN = yes ] && [ $HAVE_LIB = yes ]; then \
echo -e "\r$DEB buggy "; else echo >&2 -n -e "\r$DEB ok "; \
fi; \
done | tee /tmp/log
This results in 229 packages to be found "buggy". I did some spot
checking of the list and it seems to be correct. Sorting by maintainer
gives an intresting list of repeat offenders:
# packages Maintainer
49 Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>
6 Waters <xtifr@debian.org>
6 Klose <doko@debian.org>
5 KDE Extras Team <pkg-kde-extras@lists.alioth.debian.org>
3 or less for the rest
For some (or a lot?) packages the maintainer may claim that they don't
contain public shared libraries, only package internal shared objects.
Then why do you have shlib files [only spot checked for that]?
If no other package is supposed to link against your shared object
then why not link it in static?
If the library is only used for binary packages from the same source
[which always get updated together] then why not put it in
/usr/lib/package/ and make it not public?
I believe that if you have a shared object in (/usr)/lib then policy
8.2 _always_ applies. No excuses. Policy 8.2 is also a requirement for
multiarch. For multiarch this will not only give conflicts between
different soversions of a library but also between different
architectures of a library.
Unless there is some reason not to I plan to file RC bugs at least
against the 53 packages containing "lib" in the package name.
Now start shouting me down.
MfG
Goswin
Package Maintainer
-----------------------------------------------------------------------------
vtk-tcl A. Maitland Bottoms <bottoms@debian.org>
apt APT Development Team <deity@lists.debian.org>
apt-utils APT Development Team <deity@lists.debian.org>
openggsn ARAKI Yasuhiro <ar@debian.org>
libvibrant6 Aaron M. Ucko <ucko@debian.org>
dante-client Adrian Bridgett <bridgett@debian.org>
xmove Adrian Bridgett <bridgett@debian.org>
qprof Al Stone <ahs3@debian.org>
kmyfirewall Alberto Gonzalez Iniesta <agi@inittab.org>
sim Alexander Petrov <zowers@gmail.com>
liblog4cxx9c2a Andreas Fester <Andreas.Fester@gmx.de>
guile-gnome0-glib Andreas Rottmann <rotty@debian.org>
glabels Andrew Lau <netsnipe@users.sourceforge.net>
pciutils Anibal Monsalve Salazar <anibal@debian.org>
xcin Anthony Fok <foka@debian.org>
libsdl-sound1.2 Ari Pollak <ari@debian.org>
gnunet Arnaud Kyheng <Arnaud.Kyheng@free.fr>
gnunet-gtk Arnaud Kyheng <Arnaud.Kyheng@free.fr>
gnome-control-center Arnaud Patard <arnaud.patard@rtp-net.org>
kwave Aurelien Jarno <aurel32@debian.org>
raidutils Barak A. Pearlmutter <bap@debian.org>
iodbc Bart Martens <bartm@knars.be>
libexscalibar1 Bas Zoetekouw <bas@debian.org>
snappea Ben Burton <bab@debian.org>
linpac Carlos Barros <cbf@debian.org>
itcl3.1 Chris Waters <xtifr@debian.org>
itk3.1 Chris Waters <xtifr@debian.org>
tcl8.3 Chris Waters <xtifr@debian.org>
tcl8.4 Chris Waters <xtifr@debian.org>
tk8.3 Chris Waters <xtifr@debian.org>
tk8.4 Chris Waters <xtifr@debian.org>
quagga Christian Hammers <ch@debian.org>
sdate Christoph Berg <myon@debian.org>
gwenview Christopher Martin <chrsmrtn@debian.org>
libsword5c2a Daniel Glassey <wdg@debian.org>
gstreamer-editor David I. Lehn <dlehn@debian.org>
k3d David MartÃnez Moreno <ender@debian.org>
xmms David Moreno Garza <damog@debian.org>
liboil0.3 David Schleef <ds@schleef.org>
libciao0.4.7c2a Debian ACE+TAO maintainers <pkg-ace-devel@lists.alioth.debian.org>
libtao-orbsvcs1.4.7c2a Debian ACE+TAO maintainers <pkg-ace-devel@lists.alioth.debian.org>
alsa-oss Debian ALSA Maintainers <pkg-alsa-devel@lists.alioth.debian.org>
gworkspace.app Debian GNUstep maintainers <pkg-gnustep-maintainers@lists.alioth.debian.org>
libfribidi0 Debian Hebrew Packaging Team <debian-hebrew-package@lists.alioth.debian.org>
libhdate1 Debian Hebrew Packaging Team <debian-hebrew-package@lists.alioth.debian.org>
libhocr0 Debian Hebrew Packaging Team <debian-hebrew-package@lists.alioth.debian.org>
gjdoc Debian Java Maintainers <pkg-java-maintainers@lists.alioth.debian.org>
digikam Debian KDE Extras Team <pkg-kde-extras@lists.alioth.debian.org>
kaffeine Debian KDE Extras Team <pkg-kde-extras@lists.alioth.debian.org>
kftpgrabber Debian KDE Extras Team <pkg-kde-extras@lists.alioth.debian.org>
kmymoney2 Debian KDE Extras Team <pkg-kde-extras@lists.alioth.debian.org>
taskjuggler Debian KDE Extras Team <pkg-kde-extras@lists.alioth.debian.org>
metamail Debian QA Group <packages@qa.debian.org>
rioutil Debian QA Group <packages@qa.debian.org>
kvoctrain Debian QT/KDE Maintainers <debian-qt-kde@lists.debian.org>
artsbuilder Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>
kaddressbook Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>
karbon Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>
kate Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>
kbabel Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>
kchart Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>
kcontrol Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>
kdebase-bin Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>
kexi Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>
kghostview Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>
khexedit Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>
kicker Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>
kitchensync Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>
kivio Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>
klaptopdaemon Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>
kmid Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>
kode Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>
koffice-libs Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>
kommander Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>
kompare Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>
konqueror Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>
kontact Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>
kopete Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>
korganizer Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>
kpilot Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>
kpovmodeler Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>
kpresenter Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>
kregexpeditor Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>
krita Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>
ksayit Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>
ksplash Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>
kspread Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>
ksvg Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>
ksync Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>
ksysguard Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>
kttsd Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>
kugar Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>
kunittest Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>
kview Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>
kviewshell Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>
kwin Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>
kword Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>
libakode2 Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>
libarts1-mpeglib Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>
libarts1c2a Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>
libcvsservice0 Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>
libkjsembed1 Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>
noatun Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>
qt4-designer Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>
libexosip2-5 Debian VoIP Team <pkg-voip-maintainers@lists.alioth.debian.org>
yate Debian VoIP Team <pkg-voip-maintainers@lists.alioth.debian.org>
libexo-0.3-0 Debian Xfce Maintainers <pkg-xfce-devel@lists.alioth.debian.org>
xfce4-session Debian Xfce Maintainers <pkg-xfce-devel@lists.alioth.debian.org>
xffm4 Debian Xfce Maintainers <pkg-xfce-devel@lists.alioth.debian.org>
tpctl Debian tpctl maintainers <pkg-tpctl-devel@lists.alioth.debian.org>
ggobi Dirk Eddelbuettel <edd@debian.org>
encfs Eduard Bloch <blade@debian.org>
winbind Eloy A. Paris <peloy@debian.org>
rosegarden4 Enrique Robledo Arnuncio <era@debian.org>
gnumail.app Eric Heintzmann <eric@gnustep.fr.st>
fglrx-driver Flavio Stanchina <flavio@stanchina.net>
smb4k Francesco Paolo Lovergine <frankie@debian.org>
gpsdrive Frank Kirschner <kirfrank@debian.org>
xorsa Frank S. Thomas <frank@thomas-alfeld.de>
libmoe1.5 Fumitoshi UKAI <ukai@debian.or.jp>
libc6 GNU Libc Maintainers <debian-glibc@lists.debian.org>
hylafax-client Giuseppe Sacco <eppesuig@debian.org>
pgplot5 Gopal Narayanan <gopal@debian.org>
yacas Gopal Narayanan <gopal@debian.org>
libjackasyn0 Guenter Geiger (Debian/GNU) <geiger@debian.org>
python-subversion Guilherme de S. Pastore <guilherme.pastore@terra.com.br>
mergeant Gustavo R. Montesino <grmontesino@ig.com.br>
talksoup.app Gürkan Sengün <gurkan@linuks.mine.nu>
libstroke0 Hamish Moffatt <hamish@debian.org>
gauche Hatta Shuzo <hattas@debian.org>
labplot Helen Faulkner <helen@debian.org>
mirrordir James R. Van Zandt <jrv@debian.org>
libnasl2 Javier Fernandez-Sanguino Pen~a <jfs@computer.org>
showimg Jean-Michel Kelbert <kelbert@debian.org>
wsoundserver Jeff Teunissen <deek@debian.org>
klipsi John Lines <john@paladin.demon.co.uk>
seahorse Jose Carlos Garcia Sogo <jsogo@debian.org>
sgb Julian Gilbey <jdg@debian.org>
stunnel Julien Lemoine <speedblue@debian.org>
fontforge KÄ?stutis BiliÅ«nas <kebil@kaunas.init.lt>
postfix LaMont Jones <lamont@debian.org>
swish-e Ludovic Drolez <ldrolez@debian.org>
libgstreamer0.8-0 Maintainers of GStreamer packages <pkg-gstreamer-maintainers@lists.alioth.debian.org>
setools Manoj Srivastava <srivasta@debian.org>
gerris Marcelo E. Magallon <mmagallo@debian.org>
libglew1 Marcelo E. Magallon <mmagallo@debian.org>
libgts-0.7-1 Marcelo E. Magallon <mmagallo@debian.org>
qtstalker Marco van Zwetselaar <zwets@zwets.com>
libbrlapi1 Mario Lang <mlang@debian.org>
libgnome-speech3 Mario Lang <mlang@debian.org>
libpcre3 Mark Baker <mark@mnb.org.uk>
hpoj Mark Purcell <msp@debian.org>
libccscript2-0.5-3c2 Mark Purcell <msp@debian.org>
katapult Martin Meredith <mez@ubuntu.com>
planner Martin-Ã?ric Racine <q-funk@iki.fi>
vflib2 Masato Taruishi <taru@debian.org>
libenchant1c2a Masayuki Hatta (mhatta) <mhatta@debian.org>
libots0 Masayuki Hatta (mhatta) <mhatta@debian.org>
tclx8.3 Massimo Dal Zotto <dz@debian.org>
tkx8.3 Massimo Dal Zotto <dz@debian.org>
beep-media-player Mathias Weyland <mathias@weyland.ch>
expect-tcl8.3 Matthias Klose <doko@debian.org>
python2.3 Matthias Klose <doko@debian.org>
python2.4 Matthias Klose <doko@debian.org>
sqlrelay-mysql Matthias Klose <doko@debian.org>
sqlrelay-postgresql Matthias Klose <doko@debian.org>
tix Matthias Klose <doko@debian.org>
qobex Michael Meskes <meskes@debian.org>
libvdkxdb2-2c2 Michael Vogt <mvo@debian.org>
libprelude2 Mickael Profeta <profeta@debian.org>
arla Mikael Sennerholm <mikan@debian.org>
liblockfile1 Miquel van Smoorenburg <miquels@cistron.nl>
aplus-fsf Neil Roeth <neil@debian.org>
gromacs Nicholas Breen <nbreen@ofb.net>
gromacs-lam Nicholas Breen <nbreen@ofb.net>
gromacs-mpich Nicholas Breen <nbreen@ofb.net>
mserv-client Nick Estes <debian@nickstoys.com>
kdevelop3 Norman Jordan <njordan@debian.org>
emcast Noèl Köthe <noel@debian.org>
libgnome2-0 OndÅ?ej Surý <ondrej@debian.org>
mpatrolc2 Oohara Yuuma <oohara@debian.org>
hercules Peter De Schrijver (p2) <p2@debian.org>
kmldonkey Peter Eisentraut <petere@debian.org>
rekall Peter Eisentraut <petere@debian.org>
proj Peter S Galbraith <psg@debian.org>
aleph Philippe Troin <phil@fifi.org>
wzdftpd Pierre Chifflier <chifflier@cpe.fr>
libnss-db Piotr Roszatycki <dexter@debian.org>
plplot-tcl Rafael Laboissiere <rafael@debian.org>
nvidia-glx Randall Donald <rdonald@debian.org>
nvidia-glx-legacy Randall Donald <rdonald@debian.org>
libsmi2 Remco van de Meent <remco@debian.org>
proxychains Rex Tsai <chihchun@kalug.linux.org.tw>
libwww-ssl0 Richard Atterer <atterer@debian.org>
libwww0 Richard Atterer <atterer@debian.org>
libgbf-1-0 Rob Bradford <robster@debian.org>
gaim Robert McQueen <robot101@debian.org>
kvirc Robin Verduijn <robin@debian.org>
kvirc2 Robin Verduijn <robin@debian.org>
libwxbase2.4-dbg Ron Lee <ron@debian.org>
libwxgtk2.4-dbg Ron Lee <ron@debian.org>
wacom-tools Ron Lee <ron@debian.org>
beast Sam Hocevar (Debian packages) <sam+deb@zoy.org>
yasm Sam Hocevar (Debian packages) <sam+deb@zoy.org>
gettext Santiago Vila <sanvila@debian.org>
gettext-base Santiago Vila <sanvila@debian.org>
libcroco3 Sebastien Bacher <seb128@debian.org>
libgnomesu0 Sebastien Bacher <seb128@debian.org>
mlview Sebastien Bacher <seb128@debian.org>
heartbeat Simon Horman <horms@debian.org>
heartbeat-2 Simon Horman <horms@debian.org>
perdition Simon Horman <horms@debian.org>
libsp-gxmlcpp1c2a Stephan A Suerken <absurd@debian.org>
gpsim Stephen M Moraco <stephen@debian.org>
lnpd Stephen M Moraco <stephen@debian.org>
pfe Stephen Stafford <bagpuss@debian.org>
odbcinst1debian1 Steve Langasek <vorlon@debian.org>
unixodbc Steve Langasek <vorlon@debian.org>
dirdiff Steve M. Robbins <smr@debian.org>
tcl8.0-ja Taketoshi Sano <sano@debian.org>
tk8.0-ja Taketoshi Sano <sano@debian.org>
tsocks Tamas SZERB <toma@rulez.org>
libfcgi0 Tatsuki Sugiura <sugi@nemui.org>
libefs1 Thomas Bushnell, BSG <tb@debian.org>
gpsd Tilman Koschnick <til@subnetz.org>
openbox Tollef Fog Heen <tfheen@debian.org>
agsync Volker Christian <voc@debian.org>
avifile-player Zdenek Kabelac <kabi@debian.org>
libhid0 martin f. krafft <madduck@debian.org>
Reply to: