[Rpm-maint] File fingerprinting

Pixel pixel at mandriva.com
Mon Apr 28 20:25:59 UTC 2008

Florian Festi <ffesti at redhat.com> writes:

> Finger printing actually doesn't work as soon as there are some symlinks
> involved that are not installed yet. I attached 3 spec files that show that.
> Install the README rpm that then install FOO and FOO-DOC at once. As you can
> see /usr/share/README-1/README gets over writen without warning.
> If README and FOO are already installed installing FOO-DOC raises an error as
> expected.
> The packages contain:
> README: /usr/share/README-1/README
> FOO: /usr/share/FOO-1 -> README-1
> FOO-DOC: /usr/share/FOO-1/README
> The 2. part is also quite inefficient as it checks the same basename over and
> over again for each pkg containing a file with the same basename (Good
> candidates are README, Copying, ...).

on this subject, i've put a patch in Mandriva's rpm that simply stops
checking conflicts through symlinks. IMO it is really bad design and a
global check on the distro should be done instead (eg of error: "file
/usr/share/FOO-1/README (FOO-DOC) below symlink /usr/share/FOO-1 (FOO)")

rationale for the patch: 
# without it, "rpm -e" or "rpm -U" will need to stat(2) every dirnames
# of files from the package (eg COPYING) in the db. This is quite costly
# when not in cache (eg on a test here: >300 stats, and so 3 seconds
# after a "echo 3 > /proc/sys/vm/drop_caches")

patch is there: http://svn.mandriva.com/svn/packages/cooker/rpm/current/SOURCES/rpm-
i already mentioned it here: http://www.mail-archive.com/rpm-maint@lists.rpm.org/msg00557.html

about rpmdbFindFpList(), SuSE has a patch too afaik:

More information about the Rpm-maint mailing list