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

Using apt-file db to find possible conflicts

[Please Cc: me in replies as I'm not on the list]


I don't know if there's any previous work on this, but since I as a
sid user often see conflicts in packages, and I've seen those on
numerous oldstable->stable upgrades, I thought something could be done
about it. Actually, most often oldstable->stable updates seem to me to
have been more like iterative processes, rerun dist-upgrade until no

So I wrote a script[1] to get a list of packages with identically
named files from the apt-file database and to run `apt-get --dry-run
install' for each pair of these potentially conflicting packages to
see if apt can find a way to install both of them at the same time.

Obviously this doesn't take diversions into account, so any results
should be regarded as merely suspected missing Conflicts:, not
conclusive. However cursory inspection reveals that at least some of
these indeed are known bugs already reported in the BTS, so I assume
this list could be useful. (Is there something else that could make
identically named files in two strongly non-conflicting (i.e. no
conflicting dependencies either) packages legitimate?)

As an example output, here's a list of pairs of co-installable
packages with identically named files from amd64 sid. NOTE: As said
above, not all these are bugs, as these include packages with
diversions (as in, for example, gcc and pentium-builder, I think).

abiword-common abiword-plugins
amanda-server cdrw-taper
apache2-utils mini-httpd
asterisk-sounds-extra asterisk-sounds-main
atftpd tftpd-hpa
atlas3-test libatlas-test
belocs-locales-bin libc6
binutils binutils-multiarch
binutils hardening-wrapper
broffice.org openoffice.org-base
broffice.org openoffice.org-calc
broffice.org openoffice.org-common
broffice.org openoffice.org-draw
broffice.org openoffice.org-impress
broffice.org openoffice.org-l10n-af
broffice.org openoffice.org-l10n-ar
broffice.org openoffice.org-l10n-as-in
broffice.org openoffice.org-l10n-be-by
broffice.org openoffice.org-l10n-bg
broffice.org openoffice.org-l10n-bn
broffice.org openoffice.org-l10n-br
broffice.org openoffice.org-l10n-bs
broffice.org openoffice.org-l10n-ca
broffice.org openoffice.org-l10n-cs
broffice.org openoffice.org-l10n-cy
broffice.org openoffice.org-l10n-da
broffice.org openoffice.org-l10n-de
broffice.org openoffice.org-l10n-dz
broffice.org openoffice.org-l10n-el
broffice.org openoffice.org-l10n-en-gb
broffice.org openoffice.org-l10n-en-za
broffice.org openoffice.org-l10n-eo
broffice.org openoffice.org-l10n-es
broffice.org openoffice.org-l10n-et
broffice.org openoffice.org-l10n-eu
broffice.org openoffice.org-l10n-fa
broffice.org openoffice.org-l10n-fi
broffice.org openoffice.org-l10n-fr
broffice.org openoffice.org-l10n-ga
broffice.org openoffice.org-l10n-gl
broffice.org openoffice.org-l10n-gu-in
broffice.org openoffice.org-l10n-he
broffice.org openoffice.org-l10n-hi-in
broffice.org openoffice.org-l10n-hr
broffice.org openoffice.org-l10n-hu
broffice.org openoffice.org-l10n-it
broffice.org openoffice.org-l10n-ja
broffice.org openoffice.org-l10n-ka
broffice.org openoffice.org-l10n-km
broffice.org openoffice.org-l10n-ko
broffice.org openoffice.org-l10n-ku
broffice.org openoffice.org-l10n-lo
broffice.org openoffice.org-l10n-lt
broffice.org openoffice.org-l10n-lv
broffice.org openoffice.org-l10n-mk
broffice.org openoffice.org-l10n-ml-in
broffice.org openoffice.org-l10n-mr-in
broffice.org openoffice.org-l10n-nb
broffice.org openoffice.org-l10n-ne
broffice.org openoffice.org-l10n-nl
broffice.org openoffice.org-l10n-nn
broffice.org openoffice.org-l10n-nr
broffice.org openoffice.org-l10n-ns
broffice.org openoffice.org-l10n-or-in
broffice.org openoffice.org-l10n-pa-in
broffice.org openoffice.org-l10n-pl
broffice.org openoffice.org-l10n-pt
broffice.org openoffice.org-l10n-pt-br
broffice.org openoffice.org-l10n-ro
broffice.org openoffice.org-l10n-ru
broffice.org openoffice.org-l10n-rw
broffice.org openoffice.org-l10n-sk
broffice.org openoffice.org-l10n-sl
broffice.org openoffice.org-l10n-sr
broffice.org openoffice.org-l10n-ss
broffice.org openoffice.org-l10n-st
broffice.org openoffice.org-l10n-sv
broffice.org openoffice.org-l10n-ta-in
broffice.org openoffice.org-l10n-te-in
broffice.org openoffice.org-l10n-tg
broffice.org openoffice.org-l10n-th
broffice.org openoffice.org-l10n-tn
broffice.org openoffice.org-l10n-tr
broffice.org openoffice.org-l10n-ts
broffice.org openoffice.org-l10n-uk
broffice.org openoffice.org-l10n-uz
broffice.org openoffice.org-l10n-ve
broffice.org openoffice.org-l10n-vi
broffice.org openoffice.org-l10n-xh
broffice.org openoffice.org-l10n-zh-cn
broffice.org openoffice.org-l10n-zh-tw
broffice.org openoffice.org-l10n-zu
broffice.org openoffice.org-math
broffice.org openoffice.org-writer
capi4hylafax hylafax-server
cdecl cutils
cmap-adobe-cns1 xpdf-chinese-traditional
cmap-adobe-gb1 xpdf-chinese-simplified
cmap-adobe-japan1 xpdf-japanese
collectd collectd-apache
collectd collectd-hddtemp
collectd collectd-mysql
collectd collectd-ping
collectd collectd-sensors
console-tools open.app
cyrus-sasl2-dbg cyrus-sasl2-heimdal-dbg
dclock ivtools-bin
dpkg-dev dpkg-multicd
dvb-utils lineakd
dvipsk-ja texlive-base-bin
e16-data enlightenment
extrema psi3
finger finger-ldap
freebsd-manpages linux-manual-2.6.24
freebsd-manpages manpages-dev
g++ pentium-builder
g++-4.1 hardening-wrapper
g++-4.2 hardening-wrapper
g++-4.3 hardening-wrapper
gcc pentium-builder
gcc-4.1 hardening-wrapper
gcc-4.2 hardening-wrapper
gcc-4.3 hardening-wrapper
ghostscript ghostscript-doc
gnome-applets-data trashapplet
gnu-fdisk util-linux
graphicsmagick-libmagick-dev-compat libmagick++9-dev
graphicsmagick-libmagick-dev-compat libmagick9-dev
hipo nemiver
inn2 sm
kde-i18n-de trashapplet
kde-i18n-fr trashapplet
kde-i18n-nl trashapplet
kde-i18n-ru trashapplet
kdebase-dbg kdebase-runtime-dbg
kdelibs5-dev libkjsembed-dev
labplot opj2dat
liballegro-dev liballegro4.2-dev
libao-pulse libao2
libgoogle-perftools0 tau
libi2c-dev linux-libc-dev
libjfreereport-java libpentaho-reporting-flow-engine-java
liblzo-dev liblzo2-dev
libmailutils-dev libsieve2-dev
libmailutils1 libsieve2-1
libqt0-ruby1.8 libqt4-ruby1.8
libtest-harness-perl perl
logcheck-database lpr
login manpages-tr
login manpages-zh
loop-aes-utils mount
manpages-tr passwd
manpages-zh passwd
mutt mutt-patched
open.app kbd
openoffice.org-common openoffice.org-qa-tools
orville-write sysvinit-utils
poppler-utils xpdf-reader
ptex-bin texlive-font-utils
rlinetd update-inetd
runit-run sysvinit
stardict stardict-gtk
unace unace-nonfree
vim-runtime vim-tiny
xen-ioemu-3.0-unstable xen-utils-common

Some things could still be done to make the tool more useful. One
thing would be to attempt to actually install the packages in some
kind of chroot to see if there really is a conflict and not merely a

Another interesting possibility would be to make it use not only the
latest package information, but also information about older packages
(e.g. up to the previous stable or so). In my experience many of the
actual file conflicts come from some file being moved from one package
to another with forgotten Conflicts: header. Of course these are more
acceptable in sid or testing.

Obviously in these cases it would be most meaningful to only verify
the most recent package against all possibly conflicting older
packages, since past conflicting packages won't be modified anyway
even if a conflict is found. But I don't know if such information for
older packages is conveniently available anywhere.



[1] http://www.hut.fi/~sliedes/pkgconflicts/
    (Note: I don't recommend trying the script as root, apt wants to
    write something, the current script handles that as non-root fine)

Attachment: signature.asc
Description: Digital signature

Reply to: