Re: [Rpm-maint] [rpm-software-management/rpm] version comparison with epoch does not work as expected (#450)

2018-06-27 Thread Jeff Johnson
@rpm-maint: the sole reason for the existence of epoch (and its higher precedence in the comparison order of {E,V,R}) is to preserve upgradeability when either upstream has made an inconvenient choice of version, or the packager/distro has decided to revert to an older version. This has

Re: [Rpm-maint] [rpm-software-management/rpm] version comparison with epoch does not work as expected (#450)

2018-06-27 Thread Jeff Johnson
It is possible to construct failing counter examples for either obvious choice of missing epoch. Your "strong recollection" cannot be analyzed further. Truly I made the change at the time to simplify what I had to type multiple times a day doing support: Missing epoch is identical to 0

Re: [Rpm-maint] [rpm-software-management/rpm] version comparison with epoch does not work as expected (#450)

2018-06-27 Thread Panu Matilainen
While I hardly present in any discussions leading to the change back then, I do remember dealing with it from the other side of things in the plentiful, namely from apt-rpm and packaging POV. I'm really not going to dig back into them old memories in detail, but I have a fairly strong

Re: [Rpm-maint] [rpm-software-management/rpm] version comparison with epoch does not work as expected (#450)

2018-06-26 Thread Jeff Johnson
Extreme or not, RPM is expected to deal with missing values (not only optional/missing epoch) sanely and intuitively, you aren't the first to complain. Fix the issue and *SOLVE* the engineering problem(s) instead of 1) claiming that "epoch promotion" doesn't "work" with clear history to the

Re: [Rpm-maint] [rpm-software-management/rpm] version comparison with epoch does not work as expected (#450)

2018-06-26 Thread Michal Novotný
>Whatever scheme is implemented for RPM comparison with missing values, the >following pathological dependency with all values missing SHOULD behave >naturally: > Requires: foo >= :- That seems to be really an extreme case. -- You are receiving this because you are subscribed to this thread.

Re: [Rpm-maint] [rpm-software-management/rpm] version comparison with epoch does not work as expected (#450)

2018-06-26 Thread Jeff Johnson
One last comment on missing values in EVR tuple S ... Whatever scheme is implemented for RPM comparison with missing values, the following pathological dependency with all values missing SHOULD behave naturally: Requires: foo >= :- -- You are receiving this because you are subscribed to

Re: [Rpm-maint] [rpm-software-management/rpm] version comparison with epoch does not work as expected (#450)

2018-06-26 Thread Jeff Johnson
@svpv: good for ROSA, and conversations with me might be partly responsible for the choice. Using the same epoch when one value is missing has the distinct advantages (aka "epoch promotion") enumerated below: 1) entirely consistent behavior with what the Debian Borg enclave advocates 2) epoch

Re: [Rpm-maint] [rpm-software-management/rpm] version comparison with epoch does not work as expected (#450)

2018-06-26 Thread Alexey Tourbin
BTW, in a Mandriva-based Russian distro, they switched back to the "promote the serial" logic which was also effective in rpm-4.0. Ostensibly it makes more sense, with which I tend to concur. Binding to an upstream version is a powerful and self-sufficient concept, so it makes every sense to

Re: [Rpm-maint] [rpm-software-management/rpm] version comparison with epoch does not work as expected (#450)

2018-06-26 Thread Jeff Johnson
Ornamenting epoch values with explicit magic like '*' is irrelevant to this discussion about how a missing epoch in tar = 1.28 should compare to an explicit epoch in tar = 2:1.26. For starters, epoch is a digit string followed by a ':', and '*' is a non-numeric character that pretends at DWIM

Re: [Rpm-maint] [rpm-software-management/rpm] version comparison with epoch does not work as expected (#450)

2018-06-26 Thread Igor Gnatenko
I think one of main issues would be different behavior between upgrading packages vs comparing versions. While I agree that current behavior is not intuitive for many, we have what we have. One of options might be adding some notation (using star instead of numerical epoch?) to indicate that it

Re: [Rpm-maint] [rpm-software-management/rpm] version comparison with epoch does not work as expected (#450)

2018-06-26 Thread Jeff Johnson
You are 15+ years too late to discussions about EVR comparison. Panu wasn't even much of a participant: I was. I summarized the issue above. A choice was necessary between 2 possible schemes for supplying a default value for a missing epoch. I made that choice when I implemented the code.

Re: [Rpm-maint] [rpm-software-management/rpm] version comparison with epoch does not work as expected (#450)

2018-06-26 Thread Michal Novotný
> No. And that should be the end of that, thank you. While I value your point of view a lot, you haven't provided any arguments. Also it's not very useful to cut something down immediately without discussing it first. You might be right but you also might not be right. I understand you went

Re: [Rpm-maint] [rpm-software-management/rpm] version comparison with epoch does not work as expected (#450)

2018-06-26 Thread Panu Matilainen
> I think that for the next major RPM release this change could be discussed. No. And that should be the end of that, thank you. -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub:

Re: [Rpm-maint] [rpm-software-management/rpm] version comparison with epoch does not work as expected (#450)

2018-06-25 Thread Michal Novotný
Yes, you are right the {E,V,R} compare sequence is alright but the `0:` auto-prepending isn't. I think that for the next major RPM release this change could be discussed. -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub:

Re: [Rpm-maint] [rpm-software-management/rpm] version comparison with epoch does not work as expected (#450)

2018-06-22 Thread Jeff Johnson
Dependencies are compared sequentially across the set {E,V,R} and 2 .GT. 0 That is what is implemented, and the RPM comparison is working exactly as expected. That isn't a bug. -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on

Re: [Rpm-maint] [rpm-software-management/rpm] version comparison with epoch does not work as expected (#450)

2018-06-22 Thread Michal Novotný
> Well, the fact that e.g. 2:1.26 satisfies tar >= 1.28 looks like a clear bug > to me. I should also say why. That's because `tar 2:1.26` contains a completely different code than `tar 1.28`. `Requires: tar >= 1.28` is there because the codebase up from `1.28` is required to run the package

Re: [Rpm-maint] [rpm-software-management/rpm] version comparison with epoch does not work as expected (#450)

2018-06-22 Thread Michal Novotný
Well, the fact that e.g. `2:1.26` satisfies `tar >= 1.28` looks like a clear bug to me. -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub:

Re: [Rpm-maint] [rpm-software-management/rpm] version comparison with epoch does not work as expected (#450)

2018-06-21 Thread Jeff Johnson
@clime: yes, it makes sense to me, which is why EVR comparison was originally implemented by disabling epoch comparison if one of the values was missing Meanwhile you are (at least) 15 years too late to the discussion to have any chance of succeeding in reverting the behavior. -- You are

Re: [Rpm-maint] [rpm-software-management/rpm] version comparison with epoch does not work as expected (#450)

2018-06-21 Thread Jeff Johnson
@Conan-Kudo: linux distributions that do not carry epochs across a distro version boundary also cannot guarantee upgradeability: epochs (with missing == 0) are forever no matter what dain bramage distro's have decided to inflict on their lusers. -- You are receiving this because you are

Re: [Rpm-maint] [rpm-software-management/rpm] version comparison with epoch does not work as expected (#450)

2018-06-21 Thread Michal Novotný
Hey Jeff, So there are two things, right? First, you can say that when Epoch tag is not used, then Epoch tag's value is zero for a package. If rpm needs to compare two packages, which one is newer, then it can do full-fleged comparison with epochs included. If however comparing a package

Re: [Rpm-maint] [rpm-software-management/rpm] version comparison with epoch does not work as expected (#450)

2018-06-21 Thread ニール・ゴンパ
> Note that your worry about tar dropping the epoch is a needless one: epochs > can never be dropped. Doing so would be a severe packaging bug in tar. Strictly speaking, this is not true. There are Linux distributions that make it a policy to not carry Epochs forward across releases. openSUSE

Re: [Rpm-maint] [rpm-software-management/rpm] version comparison with epoch does not work as expected (#450)

2018-06-21 Thread Jeff Johnson
Lets at least get the facts straight. Any comparison system that permits missing values has to supply a default value when a value is missing. There are 2 obvious defaults for a missing epoch in a comparison: 1) use the same, known value, when comparing a missing epoch with a known epoch. This

Re: [Rpm-maint] [rpm-software-management/rpm] version comparison with epoch does not work as expected (#450)

2018-06-21 Thread Panu Matilainen
It used to be different in the early days of rpm. That behavior, known as epoch promotion, does not work and it was changed for very good reasons in the early 2000-something. So no ta bug, and not going to change either, no epoch == zero epoch is the only workable interpretation. Been there...

Re: [Rpm-maint] [rpm-software-management/rpm] version comparison with epoch does not work as expected (#450)

2018-06-20 Thread Michal Novotný
`Requires: tar >= 2:1.28` would work for me right now because the tar package I built has version `2:1.30-3`. But that seems rather accidental. The problem here is that if tar packager resets the epoch to zero at some point the `Requires: tar >= 2:1.28` will suddenly become impossible to

Re: [Rpm-maint] [rpm-software-management/rpm] version comparison with epoch does not work as expected (#450)

2018-06-20 Thread Michael Schroeder
Closed #450. -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/rpm-software-management/rpm/issues/450#event-1691225816___ Rpm-maint mailing list

Re: [Rpm-maint] [rpm-software-management/rpm] version comparison with epoch does not work as expected (#450)

2018-06-20 Thread Michael Schroeder
That's not a bug, no epoch means epoch zero and 2 > 0. So it does work as expected. Can't you use `Requires: tar >= 2:1.28`? -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: