[81562] trunk/base/src/registry2.0/portimage.tcl
Revision: 81562 http://trac.macports.org/changeset/81562 Author: jmr@macports.org Date: 2011-08-01 20:46:51 -0700 (Mon, 01 Aug 2011) Log Message: ----------- avoid erroring due to name-conflicting files from archives when on case-insensitive FS (#30373) Modified Paths: -------------- trunk/base/src/registry2.0/portimage.tcl Modified: trunk/base/src/registry2.0/portimage.tcl =================================================================== --- trunk/base/src/registry2.0/portimage.tcl 2011-08-02 02:53:25 UTC (rev 81561) +++ trunk/base/src/registry2.0/portimage.tcl 2011-08-02 03:46:51 UTC (rev 81562) @@ -249,7 +249,17 @@ ## @param [in] dstfile path to activate file to ## @return 1 if file needs to be explicitly deleted if we have to roll back, 0 otherwise proc _activate_file {srcfile dstfile} { - switch [file type $srcfile] { + if {[catch {set filetype [file type $srcfile]} result]} { + # this can happen if the archive was built on case-sensitive and we're case-insensitive + # we know any existing dstfile is ours because we checked for conflicts earlier + if {![catch {file type $dstfile}]} { + ui_debug "skipping case-conflicting file: $srcfile" + return 0 + } else { + error $result + } + } + switch $filetype { directory { # Don't recursively copy directories ui_debug "activating directory: $dstfile"
participants (1)
-
jmr@macports.org