Florian Festi <[EMAIL PROTECTED]> 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-4.4.2.2-speedup-by-not-checking-same-files-with-different-paths-through-symlink.patch
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:
http://www.mail-archive.com/rpm-maint@lists.rpm.org/msg00263.html
_______________________________________________
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
https://lists.rpm.org/mailman/listinfo/rpm-maint

Reply via email to