Packages build with rpm 4.0.4 can fail to install because they are apparently erroneously demanding it be installed. RPM 4.0.4 itself appears to make erroneous complaints about various perl modules not being installed when they are. How Reproducible: every time Attempt to install the neeed packages for gcc-3.1-0.20.i386.rpm on a RedHat computer not currently with rpm 4.0.4. Actual Results: It will fail complaining.... rpmlib(PartialHarLinkSets) <= 4.0.4-1 is needed. Expected Results: I would think gcc shouldn't be concerned too much about what version of rpm I have. Additional Information: Attempting to install the current rpm also fails with apparently erroneous complaints about missing perl modules... perl(Data::Dumper) is needed by rpm-build-4.0.4-0.23 perl(strict) is needed by rpm-build-4.0.4-0.23 perl(Sys::Hostname) is needed by rpm-build-4.0.4-0.23
Re-assigning to correct component.
Assigning to owner of RPM component.
There are two problems here: 1) rpm has a a tracking dependency that identifies packages that have hard-linked files, and is needed attempts to associate a package with a version of rpm that is prepared to handle installing a sub-set of the entire hardlink set. Either a) Use symlinks rather than hardlinks in your package. b) use rpm-4.0.4 to install. 2) rpm now auto-generates perl dependencies. Either a) disable the autogeneration chmod -x /usr/lib/rpm/pelrl.req b) install packages that provide the needed dependencies. Yes, both of the above are gonna be painful, can't be helped.
For the end user, only part b) of option #1 is readily feasible. So then I assume part #2 is intended to permit installation of rpm 4.0.4. For part a) There are two perl files in /usr/lib/rpm perl.prov which is executable and perl.req which is *already* not executable, and I assume that's the one you mean. So I am not clear what that was supposed to accomplish. I don't how to do part b) since the perl modules rpm 4.0.4 asks for are already installed.
Yup 1b) is gonna be the final answer pretty soon, release is imminent. perl dependency affect much more than the rpm package. We're in the process of sanitizing perl dependencies in Raw Hide. Either get the package that has a needed Provides: from Raw Hide, or rebuild the package with the Requires: with the execute bit on perl.req turned off. The modules may be already installed, but they do not have the necessary Provides:. Again, rebuilding/reinstalling is the answer.