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]