Ticket #5497 (closed defect: invalid)
Port does not correctly deal with alphanumeric version numbers
| Reported by: | luc@… | Owned by: | macports-tickets@… |
|---|---|---|---|
| Priority: | Normal | Milestone: | |
| Component: | base | Version: | 1.0 |
| Keywords: | Cc: | landonf@…, jnetto@… | |
| Port: |
Description
Alphanumeric version numbers will confuse the port engine, so for example, openssl 0.9.8_1 is considered newer 0.9.8a_0 (when 8a is actually newer than 8).
As a result:
- 'port outdated' does not show the outdated openssl unless using the '-v' option.
- 'port upgrade' does not work because DP thinks it already has the latest version.
Change History
comment:2 Changed 8 years ago by jberry@…
- Cc landonf@… added
Unfortunately, version numbers are not consistent anywhere. If you want to see action on this bug, I recommend that you:
(1) review: https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=50977
(2) Look at the variety of version numbers we have in dp packages.
(3) Analyse the data and develop a proposal for how version numbers should be handled that will actually work better and more consistently across our variety of ports than what we have today.
I'm not trying to discourage you, and I'm not saying there's not a better way...we'd love to have your input and thoughts on how to make this better.
comment:3 Changed 8 years ago by luc@…
Ok, so it seems that algorithmically dealing with all the various variants of version numbering is hard :) A quick shell command shows that about 230 ports have possibly problematic (ie different than x.x.x) version numbers:
port list | awk '{print $3}' | grep '[0-9\.]'
How about having an additional version number in those potentially problematic Portfiles ? This number would be normalized and only used internally by the port engine to perform version comparisons.
comment:4 Changed 8 years ago by dluke@…
(In reply to comment #3)
How about having an additional version number in those potentially problematic Portfiles ? This number would be normalized and only used internally by the port engine to perform version comparisons.
Doesn't that already exist? (aka epoch)
One would increment epoch when darwinports thinks that the new version number of a port is lower than the old version.


It seems that the test added for RedHat compatibility in 'proj/darwinports/base/src/pextlib1.0/vercomp.c' is the cause of the problem.