[69117] trunk/base/src/port1.0/portchecksum.tcl
jmr at macports.org
jmr at macports.org
Wed Jun 23 22:48:40 PDT 2010
Revision: 69117
http://trac.macports.org/changeset/69117
Author: jmr at macports.org
Date: 2010-06-23 22:48:40 -0700 (Wed, 23 Jun 2010)
Log Message:
-----------
when printing checksums line that matches the distfiles after a checksum failure, only include the checksum types specified in the portfile, or a reasonable subset if none were specified
Modified Paths:
--------------
trunk/base/src/port1.0/portchecksum.tcl
Modified: trunk/base/src/port1.0/portchecksum.tcl
===================================================================
--- trunk/base/src/port1.0/portchecksum.tcl 2010-06-24 05:43:49 UTC (rev 69116)
+++ trunk/base/src/port1.0/portchecksum.tcl 2010-06-24 05:48:40 UTC (rev 69117)
@@ -57,6 +57,9 @@
# The number of types we know.
set checksum_types_count [llength $checksum_types]
+# types to recommend if none are specified in the portfile
+set default_checksum_types {sha1 rmd160}
+
# Using global all_dist_files, parse the checksums and store them into the
# global array checksums_array.
#
@@ -197,7 +200,7 @@
#
proc portchecksum::checksum_main {args} {
global UI_PREFIX all_dist_files checksum_types checksums_array portverbose checksum.skip
- global usealtworkpath altprefix
+ global usealtworkpath altprefix default_checksum_types
# If no files have been downloaded, there is nothing to checksum.
if {![info exists all_dist_files]} {
@@ -236,11 +239,8 @@
}
# check that there is at least one checksum for the distfile.
- if {![info exists checksums_array($distfile)]} {
+ if {![info exists checksums_array($distfile)] || [llength $checksums_array($distfile)] < 1} {
ui_error "[format [msgcat::mc "No checksum set for %s"] $distfile]"
- foreach type $checksum_types {
- ui_info "[format [msgcat::mc "Distfile checksum: %s $type %s"] $distfile [calc_$type $fullpath]]"
- }
set fail yes
} else {
# retrieve the list of types/values from the array.
@@ -281,8 +281,16 @@
if {![file isfile $fullpath] && (!$usealtworkpath && [file isfile "${altprefix}${fullpath}"])} {
set fullpath "${altprefix}${fullpath}"
}
- foreach type $checksum_types {
- lappend sums [format "%-8s%s" $type [calc_$type $fullpath]]
+ if {![info exists checksums_array($distfile)] || [llength $checksums_array($distfile)] < 1} {
+ # no checksums specified; output the default set
+ foreach type $default_checksum_types {
+ lappend sums [format "%-8s%s" $type [calc_$type $fullpath]]
+ }
+ } else {
+ # output just the types that were already used
+ foreach {type sum} $checksums_array($distfile) {
+ lappend sums [format "%-8s%s" $type [calc_$type $fullpath]]
+ }
}
}
ui_info "The correct checksum line may be:"
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macports-changes/attachments/20100623/6da0388f/attachment.html>
More information about the macports-changes
mailing list