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 <[EMAIL PROTECTED]>
      6 Klose <[EMAIL PROTECTED]>
      5 KDE Extras Team <[EMAIL PROTECTED]>
      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 <[EMAIL PROTECTED]>
apt                     APT Development Team <deity@lists.debian.org>
apt-utils               APT Development Team <deity@lists.debian.org>
openggsn                ARAKI Yasuhiro <[EMAIL PROTECTED]>
libvibrant6             Aaron M. Ucko <[EMAIL PROTECTED]>
dante-client            Adrian Bridgett <[EMAIL PROTECTED]>
xmove                   Adrian Bridgett <[EMAIL PROTECTED]>
qprof                   Al Stone <[EMAIL PROTECTED]>
kmyfirewall             Alberto Gonzalez Iniesta <[EMAIL PROTECTED]>
sim                     Alexander Petrov <[EMAIL PROTECTED]>
liblog4cxx9c2a          Andreas Fester <[EMAIL PROTECTED]>
guile-gnome0-glib       Andreas Rottmann <[EMAIL PROTECTED]>
glabels                 Andrew Lau <[EMAIL PROTECTED]>
pciutils                Anibal Monsalve Salazar <[EMAIL PROTECTED]>
xcin                    Anthony Fok <[EMAIL PROTECTED]>
libsdl-sound1.2         Ari Pollak <[EMAIL PROTECTED]>
gnunet                  Arnaud Kyheng <[EMAIL PROTECTED]>
gnunet-gtk              Arnaud Kyheng <[EMAIL PROTECTED]>
gnome-control-center    Arnaud Patard <[EMAIL PROTECTED]>
kwave                   Aurelien Jarno <[EMAIL PROTECTED]>
raidutils               Barak A. Pearlmutter <[EMAIL PROTECTED]>
iodbc                   Bart Martens <[EMAIL PROTECTED]>
libexscalibar1          Bas Zoetekouw <[EMAIL PROTECTED]>
snappea                 Ben Burton <[EMAIL PROTECTED]>
linpac                  Carlos Barros <[EMAIL PROTECTED]>
itcl3.1                 Chris Waters <[EMAIL PROTECTED]>
itk3.1                  Chris Waters <[EMAIL PROTECTED]>
tcl8.3                  Chris Waters <[EMAIL PROTECTED]>
tcl8.4                  Chris Waters <[EMAIL PROTECTED]>
tk8.3                   Chris Waters <[EMAIL PROTECTED]>
tk8.4                   Chris Waters <[EMAIL PROTECTED]>
quagga                  Christian Hammers <[EMAIL PROTECTED]>
sdate                   Christoph Berg <[EMAIL PROTECTED]>
gwenview                Christopher Martin <[EMAIL PROTECTED]>
libsword5c2a            Daniel Glassey <[EMAIL PROTECTED]>
gstreamer-editor        David I. Lehn <[EMAIL PROTECTED]>
k3d                     David Martínez Moreno <[EMAIL PROTECTED]>
xmms                    David Moreno Garza <[EMAIL PROTECTED]>
liboil0.3               David Schleef <[EMAIL PROTECTED]>
libciao0.4.7c2a         Debian ACE+TAO maintainers <[EMAIL PROTECTED]>
libtao-orbsvcs1.4.7c2a  Debian ACE+TAO maintainers <[EMAIL PROTECTED]>
alsa-oss                Debian ALSA Maintainers <[EMAIL PROTECTED]>
gworkspace.app          Debian GNUstep maintainers <[EMAIL PROTECTED]>
libfribidi0             Debian Hebrew Packaging Team <[EMAIL PROTECTED]>
libhdate1               Debian Hebrew Packaging Team <[EMAIL PROTECTED]>
libhocr0                Debian Hebrew Packaging Team <[EMAIL PROTECTED]>
gjdoc                   Debian Java Maintainers 
<pkg-java-maintainers@lists.alioth.debian.org>
digikam                 Debian KDE Extras Team <[EMAIL PROTECTED]>
kaffeine                Debian KDE Extras Team <[EMAIL PROTECTED]>
kftpgrabber             Debian KDE Extras Team <[EMAIL PROTECTED]>
kmymoney2               Debian KDE Extras Team <[EMAIL PROTECTED]>
taskjuggler             Debian KDE Extras Team <[EMAIL PROTECTED]>
metamail                Debian QA Group <[EMAIL PROTECTED]>
rioutil                 Debian QA Group <[EMAIL PROTECTED]>
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 <[EMAIL PROTECTED]>
yate                    Debian VoIP Team <[EMAIL PROTECTED]>
libexo-0.3-0            Debian Xfce Maintainers <[EMAIL PROTECTED]>
xfce4-session           Debian Xfce Maintainers <[EMAIL PROTECTED]>
xffm4                   Debian Xfce Maintainers <[EMAIL PROTECTED]>
tpctl                   Debian tpctl maintainers <[EMAIL PROTECTED]>
ggobi                   Dirk Eddelbuettel <[EMAIL PROTECTED]>
encfs                   Eduard Bloch <[EMAIL PROTECTED]>
winbind                 Eloy A. Paris <[EMAIL PROTECTED]>
rosegarden4             Enrique Robledo Arnuncio <[EMAIL PROTECTED]>
gnumail.app             Eric Heintzmann <[EMAIL PROTECTED]>
fglrx-driver            Flavio Stanchina <[EMAIL PROTECTED]>
smb4k                   Francesco Paolo Lovergine <[EMAIL PROTECTED]>
gpsdrive                Frank Kirschner <[EMAIL PROTECTED]>
xorsa                   Frank S. Thomas <[EMAIL PROTECTED]>
libmoe1.5               Fumitoshi UKAI <[EMAIL PROTECTED]>
libc6                   GNU Libc Maintainers <debian-glibc@lists.debian.org>
hylafax-client          Giuseppe Sacco <[EMAIL PROTECTED]>
pgplot5                 Gopal Narayanan <[EMAIL PROTECTED]>
yacas                   Gopal Narayanan <[EMAIL PROTECTED]>
libjackasyn0            Guenter Geiger (Debian/GNU) <[EMAIL PROTECTED]>
python-subversion       Guilherme de S. Pastore <[EMAIL PROTECTED]>
mergeant                Gustavo R. Montesino <[EMAIL PROTECTED]>
talksoup.app            Gürkan Sengün <[EMAIL PROTECTED]>
libstroke0              Hamish Moffatt <[EMAIL PROTECTED]>
gauche                  Hatta Shuzo <[EMAIL PROTECTED]>
labplot                 Helen Faulkner <[EMAIL PROTECTED]>
mirrordir               James R. Van Zandt <[EMAIL PROTECTED]>
libnasl2                Javier Fernandez-Sanguino Pen~a <[EMAIL PROTECTED]>
showimg                 Jean-Michel Kelbert <[EMAIL PROTECTED]>
wsoundserver            Jeff Teunissen <[EMAIL PROTECTED]>
klipsi                  John Lines <[EMAIL PROTECTED]>
seahorse                Jose Carlos Garcia Sogo <[EMAIL PROTECTED]>
sgb                     Julian Gilbey <[EMAIL PROTECTED]>
stunnel                 Julien Lemoine <[EMAIL PROTECTED]>
fontforge               Kęstutis Biliūnas <[EMAIL PROTECTED]>
postfix                 LaMont Jones <[EMAIL PROTECTED]>
swish-e                 Ludovic Drolez <[EMAIL PROTECTED]>
libgstreamer0.8-0       Maintainers of GStreamer packages <[EMAIL PROTECTED]>
setools                 Manoj Srivastava <[EMAIL PROTECTED]>
gerris                  Marcelo E. Magallon <[EMAIL PROTECTED]>
libglew1                Marcelo E. Magallon <[EMAIL PROTECTED]>
libgts-0.7-1            Marcelo E. Magallon <[EMAIL PROTECTED]>
qtstalker               Marco van Zwetselaar <[EMAIL PROTECTED]>
libbrlapi1              Mario Lang <[EMAIL PROTECTED]>
libgnome-speech3        Mario Lang <[EMAIL PROTECTED]>
libpcre3                Mark Baker <[EMAIL PROTECTED]>
hpoj                    Mark Purcell <[EMAIL PROTECTED]>
libccscript2-0.5-3c2    Mark Purcell <[EMAIL PROTECTED]>
katapult                Martin Meredith <[EMAIL PROTECTED]>
planner                 Martin-Éric Racine <[EMAIL PROTECTED]>
vflib2                  Masato Taruishi <[EMAIL PROTECTED]>
libenchant1c2a          Masayuki Hatta (mhatta) <[EMAIL PROTECTED]>
libots0                 Masayuki Hatta (mhatta) <[EMAIL PROTECTED]>
tclx8.3                 Massimo Dal Zotto <[EMAIL PROTECTED]>
tkx8.3                  Massimo Dal Zotto <[EMAIL PROTECTED]>
beep-media-player       Mathias Weyland <[EMAIL PROTECTED]>
expect-tcl8.3           Matthias Klose <[EMAIL PROTECTED]>
python2.3               Matthias Klose <[EMAIL PROTECTED]>
python2.4               Matthias Klose <[EMAIL PROTECTED]>
sqlrelay-mysql          Matthias Klose <[EMAIL PROTECTED]>
sqlrelay-postgresql     Matthias Klose <[EMAIL PROTECTED]>
tix                     Matthias Klose <[EMAIL PROTECTED]>
qobex                   Michael Meskes <[EMAIL PROTECTED]>
libvdkxdb2-2c2          Michael Vogt <[EMAIL PROTECTED]>
libprelude2             Mickael Profeta <[EMAIL PROTECTED]>
arla                    Mikael Sennerholm <[EMAIL PROTECTED]>
liblockfile1            Miquel van Smoorenburg <[EMAIL PROTECTED]>
aplus-fsf               Neil Roeth <[EMAIL PROTECTED]>
gromacs                 Nicholas Breen <[EMAIL PROTECTED]>
gromacs-lam             Nicholas Breen <[EMAIL PROTECTED]>
gromacs-mpich           Nicholas Breen <[EMAIL PROTECTED]>
mserv-client            Nick Estes <[EMAIL PROTECTED]>
kdevelop3               Norman Jordan <[EMAIL PROTECTED]>
emcast                  Noèl Köthe <[EMAIL PROTECTED]>
libgnome2-0             Ondřej Surý <[EMAIL PROTECTED]>
mpatrolc2               Oohara Yuuma <[EMAIL PROTECTED]>
hercules                Peter De Schrijver (p2) <[EMAIL PROTECTED]>
kmldonkey               Peter Eisentraut <[EMAIL PROTECTED]>
rekall                  Peter Eisentraut <[EMAIL PROTECTED]>
proj                    Peter S Galbraith <[EMAIL PROTECTED]>
aleph                   Philippe Troin <[EMAIL PROTECTED]>
wzdftpd                 Pierre Chifflier <[EMAIL PROTECTED]>
libnss-db               Piotr Roszatycki <[EMAIL PROTECTED]>
plplot-tcl              Rafael Laboissiere <[EMAIL PROTECTED]>
nvidia-glx              Randall Donald <[EMAIL PROTECTED]>
nvidia-glx-legacy       Randall Donald <[EMAIL PROTECTED]>
libsmi2                 Remco van de Meent <[EMAIL PROTECTED]>
proxychains             Rex Tsai <[EMAIL PROTECTED]>
libwww-ssl0             Richard Atterer <[EMAIL PROTECTED]>
libwww0                 Richard Atterer <[EMAIL PROTECTED]>
libgbf-1-0              Rob Bradford <[EMAIL PROTECTED]>
gaim                    Robert McQueen <[EMAIL PROTECTED]>
kvirc                   Robin Verduijn <[EMAIL PROTECTED]>
kvirc2                  Robin Verduijn <[EMAIL PROTECTED]>
libwxbase2.4-dbg        Ron Lee <[EMAIL PROTECTED]>
libwxgtk2.4-dbg         Ron Lee <[EMAIL PROTECTED]>
wacom-tools             Ron Lee <[EMAIL PROTECTED]>
beast                   Sam Hocevar (Debian packages) <[EMAIL PROTECTED]>
yasm                    Sam Hocevar (Debian packages) <[EMAIL PROTECTED]>
gettext                 Santiago Vila <[EMAIL PROTECTED]>
gettext-base            Santiago Vila <[EMAIL PROTECTED]>
libcroco3               Sebastien Bacher <[EMAIL PROTECTED]>
libgnomesu0             Sebastien Bacher <[EMAIL PROTECTED]>
mlview                  Sebastien Bacher <[EMAIL PROTECTED]>
heartbeat               Simon Horman <[EMAIL PROTECTED]>
heartbeat-2             Simon Horman <[EMAIL PROTECTED]>
perdition               Simon Horman <[EMAIL PROTECTED]>
libsp-gxmlcpp1c2a       Stephan A Suerken <[EMAIL PROTECTED]>
gpsim                   Stephen M Moraco <[EMAIL PROTECTED]>
lnpd                    Stephen M Moraco <[EMAIL PROTECTED]>
pfe                     Stephen Stafford <[EMAIL PROTECTED]>
odbcinst1debian1        Steve Langasek <[EMAIL PROTECTED]>
unixodbc                Steve Langasek <[EMAIL PROTECTED]>
dirdiff                 Steve M. Robbins <[EMAIL PROTECTED]>
tcl8.0-ja               Taketoshi Sano <[EMAIL PROTECTED]>
tk8.0-ja                Taketoshi Sano <[EMAIL PROTECTED]>
tsocks                  Tamas SZERB <[EMAIL PROTECTED]>
libfcgi0                Tatsuki Sugiura <[EMAIL PROTECTED]>
libefs1                 Thomas Bushnell, BSG <[EMAIL PROTECTED]>
gpsd                    Tilman Koschnick <[EMAIL PROTECTED]>
openbox                 Tollef Fog Heen <[EMAIL PROTECTED]>
agsync                  Volker Christian <[EMAIL PROTECTED]>
avifile-player          Zdenek Kabelac <[EMAIL PROTECTED]>
libhid0                 martin f. krafft <[EMAIL PROTECTED]>


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

Reply via email to