On Nov 15, 2009, at 7:31 PM, Marc MERLIN wrote:
Yes, I can build dummy packages to try all this, but at the same time I want to make sure I understand expected (not observed) behaviour as well as wellas what is recommended in case like this.
You likely want to build packages and test for careful work.There's actually a Conflicts: bug that goes way way way back to rpm-3.0.2
with missing values that was reported about a month ago. These 2 values in different packages should Conflict: and don't: Conflicts: suspend-scripts < 1.27-2mdv2007.1 and Provides: suspend-scripts = 1.27 The issue is with the missing value for Release: in the Provides: and the comparison behavior isn't correct for Conlficts:.Your examples did not supply {Epoch,Version,Release} at all, and so may well
have odd/unexpected behavior. I can point you at the line that needs to be changed if you want to fix the issue. The code looks something like this: if (sense == 0) { sense = rpmvercmp(aV, bV); if (sense == 0 && aR && *aR && bR && *bR) sense = rpmvercmp(aR, bR); } and the "... aR && *aR && bR && *bR" is what is b0rken. The fix is to default missing values to "" and actually call rpmvercmp() with "" values.I can send a patch for rpm-4.0.2 if interested. Just too lazy to look atm ...
hth 73 de Jeff
smime.p7s
Description: S/MIME cryptographic signature