What | Removed | Added |
---|---|---|
CC | sbrabec@suse.com |
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