Revision
74725
Author
jmr@macports.org
Date
2010-12-30 14:25:22 -0800 (Thu, 30 Dec 2010)

Log Message

when determining if a port is outdated, only consider epoch if the version has changed

Modified Paths

Diff

Modified: trunk/base/src/macports1.0/macports.tcl (74724 => 74725)


--- trunk/base/src/macports1.0/macports.tcl	2010-12-30 21:36:07 UTC (rev 74724)
+++ trunk/base/src/macports1.0/macports.tcl	2010-12-30 22:25:22 UTC (rev 74725)
@@ -3031,9 +3031,9 @@
         set version [lindex $i 1]
         set revision [lindex $i 2]
         set epoch [lindex $i 5]
-        if { $version_installed == {} || $epoch > $epoch_installed ||
-                ($epoch == $epoch_installed && [rpm-vercomp $version $version_installed] > 0)
-                || ($epoch == $epoch_installed
+        if { $version_installed == {} || ($epoch > $epoch_installed && $version != $version_installed) ||
+                ($epoch >= $epoch_installed && [rpm-vercomp $version $version_installed] > 0)
+                || ($epoch >= $epoch_installed
                     && [rpm-vercomp $version $version_installed] == 0
                     && $revision > $revision_installed)} {
             set version_installed $version

Modified: trunk/base/src/port/port.tcl (74724 => 74725)


--- trunk/base/src/port/port.tcl	2010-12-30 21:36:07 UTC (rev 74724)
+++ trunk/base/src/port/port.tcl	2010-12-30 22:25:22 UTC (rev 74725)
@@ -773,13 +773,16 @@
             }
 
             # Compare versions, first checking epoch, then version, then revision
-            set comp_result [expr $installed_epoch - $latest_epoch]
-            if { $comp_result == 0 } {
-                set comp_result [rpm-vercomp $installed_version $latest_version]
+            set comp_result 0
+            if {$installed_version != $latest_version} {
+                set comp_result [expr $installed_epoch - $latest_epoch]
                 if { $comp_result == 0 } {
-                    set comp_result [rpm-vercomp $installed_revision $latest_revision]
+                    set comp_result [rpm-vercomp $installed_version $latest_version]
                 }
             }
+            if { $comp_result == 0 } {
+                set comp_result [expr $installed_revision - $latest_revision]
+            }
             if {$comp_result == 0} {
                 set regref [registry::open_entry $portname $installed_version $installed_revision $installed_variants $installed_epoch]
                 set os_platform_installed [registry::property_retrieve $regref os_platform]
@@ -3010,10 +3013,10 @@
             set epoch_comp_result [expr $installed_epoch - $latest_epoch]
             set comp_result [rpm-vercomp $installed_version $latest_version]
             if { $comp_result == 0 } {
-                set comp_result [rpm-vercomp $installed_revision $latest_revision]
+                set comp_result [expr $installed_revision - $latest_revision]
             }
             set reason ""
-            if {$epoch_comp_result != 0} {
+            if {$epoch_comp_result != 0 && $installed_version != $latest_version} {
                 if {($comp_result >= 0 && $epoch_comp_result < 0) || ($comp_result <= 0 && $epoch_comp_result > 0)} {
                     set reason { (epoch $installed_epoch $relation $latest_epoch)}
                 }