I'm using a heavily upgraded Redhat 5.1 system, and decided to try upgrading RPM so that a few other RPM's could be built due to new specfile features. I installed rpm-3.0.4-5x.i386.rpm. After that, every srpm I built, got broken in a mysterious way. There were no error messages at compile time, but when I tried installing these packages I got always the same error message: e2fsprogs ###########################################unpacking of archive failed on file /usr/doc/e2fsprogs-1.18/RELEASE-NOTES: cpio: read failed - No such file or directory always 'cpio: read failed'. After backtracking to rpm-3.0.2 binary and rebuilding these srpm's, they installed fine. Seems like a very serious problem. PS, Only afterwards I noticed that there are packages rpm-devel and rpm-build on ftp.rpm.org. Especially rpm-build's contents looked interesting. I don't know if installing this too would have helped, but it wasn't Required by the main rpm package.
Installing either rpm-devel or rpm-build didn't help. One other user wrote about the same thing on the RPM mailing-list on 2000/03/30. Also, rebuilding rpm from rpm-3.0.4-5x.src.rpm and installing it from there before this won't help.
On a heavily upgraded RH5.2 I have tried: rpm -i PKG.src.rpm rpm -ba SPECS/PKG.spec rpm --rebuild SRPMS/PKG.src.rpm (PKG = rsync-2.2.1-1.src.rpm, rpm-3.0.4-[56]x.src.rpm) With rpm-3.0.2-4.x everything works. With rpm(-build)-3.0.4-[56]x the rebuild fails with: unpacking of archive failed ... : cpio: read failed One major thing that is _not_ upgraded is libc (still glibc-2.0.7-29).
Forgot to mention: When -ba'ing with rpm-3.0.4 the resulting .src.rpm is significantly smaller than the original src.rpm. Original SRPM and the smaller SRPM can be found here: http://ole.tange.dk/rpm/ If you try rebuilding the smaller SRPM with rpm-3.0.2 it fails with the same error (cpio: read failed). From this I reason that the error is in the generated .src.rpm file, and since rpm-3.0.4 generated the .src.rpm file the error is probably in the SRPM generation routines in rpm-3.0.4. /Ole
I confirm, and can re-create this fault at will. Parts of the unpack are occuring -- that is some binaries are being installed --- but celarly post-install scripts are not happening. Some updating of RPM database is ocurring.
The same symptoms (RedHat 5.1 plus way-too-many-updates). It should be also noted that cpio archive extracted from the rebuilt rpm with rpm2cpio is invalid - at least according to my cpio-2.4.2-7. This explains all the symptoms above: The cpio archive created by rpm 3.0.4-5.x seems corrupt!
This is now fixed in (soon to be released) rpm-3.0.5-7.5x.. Turns out that fclose on libio FILE pointers doesn't do the right thing at all in older glibc versions. Meanwhile, adding --nolibio when invoking rpm-3.0.4 should also provide a solution.