Hey all--
So, I'm running across this in a review. RPM picks up an unversioned requires and the submitter has an explicit versioned requires in the spec file; it ends up coming across as:
perl(Params::Util) perl(Params::Util) >= 0.33
Now, I've always been of the understanding "one or the other, but not both", especially when one is manually specified in the spec file. As such, I've been treating this as a blocker.
However, should it be a blocker? In the case of a provides, the answer is clear: having an unversioned provides together with a versioned provides defeats the purpose of a versioned provides, as the unversioned one will satisfy the request for any version of that module. But the logic works the other way around with requires: a package with versioned and unversioned requires will cause a package that satisfies the strictest of the two to be installed. (We also see this sort of "layered" requires happening when we do things like "requires: foo >= 1, foo <= 2") I can also see a case where automated tools (cpanspec, CPANPLUS::Dist::RPM/Fedora) read versioning information from the dist directly, and this is often more precise than what rpm finds.
So... Should this be a blocker? Or should it just be considered "bonus", something that doesn't hurt but indeed makes the requires metadata a touch more precise?
-Chris