Tor and unusual version numbers

Salvatore Domenick Desiano sal at
Fri Apr 27 07:42:29 PDT 2007

o - yes, epoch is always considered first in outdated version comparisons. It is
o undefined what would happen if an epoch was removed. Never do that. (I believe
o that a port without an epoch is considered to have an epoch of zero). If
o you've added epoch once to a port you should never remove it, only increase
o it. That should not really be a problem.

It seems interesting to me that adding an epoch, even once, condemns the 
Portfile to have epochs for eternity. Maybe this doesn't matter, but I 
thought it worth mentioning. It also may be worth including the epoch in 
the "outdated" display.

o Now, can anybody give me any valid data on a case where there's a failure to
o detect an outdated version? If so, what does port info show for version and
o epoch, and what's the installed version? In other words, what is the data that
o the outdated routines are comparing?

I don't know if my version of port is too outdated to be useful, but I 
end up seeing:

sal at cobblehill:sal>port info tor
tor, security/tor (Variants: universal)

Tor provides a distributed network of servers (onion 
routers). Users bounce their TCP streams (web 
traffic, FTP, SSH, etc.) around the routers. This 
makes it hard for recipients, observers, and even the 
onion routers themselves to track the source of the 

Library Dependencies: libevent, openssl, zlib
Platforms: darwin
Maintainers: nomaintainer at
sal at cobblehill:sal>port installed tor
The following ports are currently installed:
  tor @ (active)
sal at cobblehill:sal>port -d outdated tor
DEBUG: Found port in 
No installed ports are outdated.

-- Sal

  Salvatore Domenick Desiano
    Doctoral Candidate
      Robotics Institute
        Carnegie Mellon University

On Fri, 27 Apr 2007, James Berry wrote:

o So I thought I'd join this thread in order to perhaps help clarify and to seek
o more information. So far, I haven't seen anything in the thread to lead me to
o believe anything is actually wrong, though I don't seem to find the full text
o of the original message.
o A few clarifications:

o - The only issues I know of with rpm_vercomp are that it doesn't necessarily
o know how to deal with something like a change from an alpha to a numeric
o component. Is 1.0.b2 greater than or less than 1.0.1, or greater or less than
o 1.0, as an off-the-cuff example? Even upstream maintainers might not agree on
o the answers. I believe rpm_vercomp works consistently in such cases, but it
o can't outguess the system.
o - port outdated will show normally only show ports where the index has a
o calculated larger version number than what is installed. If you pass the -v or
o -d flag, then it will show any port where the versions don't match exactly,
o with a "!" flag indicating this case. This can be useful when you suspect that
o rpm_vercomp is failing to correctly intuit the version, as described above.
o James
o On Apr 27, 2007, at 5:32 AM, Daniel J. Luke wrote:
o > On Apr 27, 2007, at 2:59 PM, Boey Maun Suang wrote:
o > > On 27/04/2007, at 11:20, Daniel J. Luke wrote:
o > > 
o > > > and for the immediate workaround, the port maintainer can bump the
o > > > epoch.
o > > 
o > > Isn't that going to muck things up for future versions if I then delete it
o > > completely?
o > 
o > Yep, which is why you wouldn't delete it.
o > 
o > > I suppose that leaving epoch in there permanently shouldn't hurt, but it's
o > > a bit misleading.
o > 
o > Well, epoch is there for situations where the version number doesn't give
o > port enough information to determine correctly which version is later. (So
o > for situations where the developer changes version number schemes, for
o > example).
o > 
o > > A question now to everyone using tor or tor-devel: what does "port -v
o > > outdated" yield for you?  My testing, like that of Chris Pickel, suggests
o > > that rpm-vercomp is working fine; I don't quite understand the Tcl to
o > > understand exactly what port.tcl is doing.
o > 
o > If it's working fine, then you don't need it ... but if port isn't correctly
o > determining the newer version is newer, you could use epoch to tell it that
o > it is.
o _______________________________________________
o macports-dev mailing list
o macports-dev at

More information about the macports-dev mailing list