[32364] trunk/base/src/macports1.0/macports.tcl

jmpp at macports.org jmpp at macports.org
Thu Dec 27 12:07:34 PST 2007

Revision: 32364
Author:   jmpp at macports.org
Date:     2007-12-27 12:07:33 -0800 (Thu, 27 Dec 2007)

Log Message:

Don't use plain arithmetical comparison to determine if the downloaded sources are newer than the installed MacPorts,
but rather our own rpm-vercomp to compare $macports_version_new against $macports::autoconf::macports_version.
As of this moment, the result is the same (and will be the same when we release 1.xyz, with x > 6 and/or y,z > 0)
as the arithmetical comparison, but in the future this change will allow us to introduce real version numbers into

My current idea is to create a base/config/macports_version file holding something like 1.6.1, but the selfupdate
logic of reading the latter over base/config/mp_version has to be thoroughly thought out: 600 (from base/config/mp_version's 1.600)
is greater than 6, so if we flat out select base/config/macports_version to read the new version we will break
selfupdating for everyone, as rpm-vercomp will not see 1.6.1 as greater than 1.600.

Modified Paths:

Modified: trunk/base/src/macports1.0/macports.tcl
--- trunk/base/src/macports1.0/macports.tcl	2007-12-27 19:03:53 UTC (rev 32363)
+++ trunk/base/src/macports1.0/macports.tcl	2007-12-27 20:07:33 UTC (rev 32364)
@@ -1656,14 +1656,14 @@
         return -code error "Error: rsync failed in selfupdate"
-    # get downloaded MacPorts version and write the old version back
+    # get downloaded MacPorts version
     set fd [open [file join $mp_source_path config mp_version] r]
     gets $fd macports_version_new
     close $fd
     ui_msg "\nDownloaded MacPorts base version $macports_version_new"
     # check if we we need to rebuild base
-    if {$macports_version_new > $macports::autoconf::macports_version || $use_the_force_luke == "yes"} {
+    if {[rpm-vercomp $macports_version_new $macports::autoconf::macports_version] > 0 || $use_the_force_luke == "yes"} {
         ui_msg "Configuring, Building and Installing new MacPorts base"
         # check if $prefix/bin/port is writable, if so we go !
         # get installation user / group 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/macports-changes/attachments/20071227/c8d66f5f/attachment.html

More information about the macports-changes mailing list