Failing to replace an identical file/directory when upgrading causes rpm to fail
Bug #651542 reported by
Jeff Johnson
Bug watches keep track of this bug in other bug trackers.
Description of problem:
The problem occurred when our customer tried to upgrade the "filesystem" package on a setup where /home is NFS mounted without no_root_squash option.
rpm (via cpio) tried to replace the /home directory but failed to chown() the directory and therfore failed to upgrade the package.
While this sounds the right thing to do in the common case (ie fail if the directory/file cannot be upgraded), rpm could avoid that problem by checking first if the file (or directory) to be written is identical to the one in the cpio archive.
Version-Release number of selected component (if applicable):
rpm-4.4.2-48.el5
How reproducible:
100% reproducible
Steps to Reproduce:
1. mount /home via NFS without the "no_root_squash" option
2. rpm -Uvh filesystem*.rpm
Actual results:
error: unpacking of archive failed on file /home: cpio: chown failed - Operation not permitted
Expected results:
rpm does not try to replace the directory if it has the same flags/modes/uid/gid
Additional info: