Stanislav Brabec changed bug 1029961
What Removed Added
CC   sbrabec@suse.com

Comment # 14 on bug 1029961 from
There is a big problem with RPM that does not understand replacement of
directory by symlink. Even worse, it will do crazy things with files being
moved from /bin to /usr/bin.

Bad example:

Move all files from /bin to /usr/bin, then remove empty /bin dir and create
symlink from /usr/bin to /bin.

Then update bash that moves /bin/bash to /usr/bin/bash.

What wrong happens during update?


Variant A: package with compatibility symlink

- RPM places new /usr/bin/bash

- RPM places compatibility symlink /bin/bash

Compatibility symlink replaces /usr/bin/bash and becomes infinitely looping
symlink.

=> Depending on order of placing files by RPM, there is a 50% chance that
things will go totally wrong.


2) RPM goes to remove obsolete files. /bin/bash is no more part of the package,
delete it. In fact, /usr/bin/bash was deleted.


Variant B: package without compatibility symlink

1) RPM places new /usr/bin/bash

2) RPM goes to remove obsolete files. /bin/bash is no more part of the package,
delete it. In fact, /usr/bin/bash was deleted.

=> Totally wrong.


As Michael wrote, there are only two chances to upgrade such system:

1) lua pretrans magic

2) direct rpm database manipulation


You are receiving this mail because: