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

Packages violating policy 8.2


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.


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: