Opened 15 years ago
Last modified 15 years ago
#21864 closed defect
bad code in fs-traverse update in portarchive.tcl — at Initial Version
Reported by: | david.osguthorpe@… | Owned by: | macports-tickets@… |
---|---|---|---|
Priority: | High | Milestone: | MacPorts 1.9.0 |
Component: | base | Version: | 1.8.0 |
Keywords: | Cc: | ||
Port: |
Description
Since 1.8.0 at least (but not at 1.7.0) the original 1.7.0 find code in archive_main in portarchive.tcl
foreach fullpath [exec find $destpath ! -type d] { ... }
was replaced by an fs-traverse call
fs-traverse fullpath $destpath { if {[file isdirectory $fullpath]} { continue } .... }
this code terminates immediately as the first fullpath is a directory which is skipped and hence the contents of the directory are not scanned - ... is never executed for anything
this means since 1.8.0 all +CONTENTS files in archives are incorrect as they do not have a file list
fixups are
fs-traverse -depth fullpath $destpath { if {[file isdirectory $fullpath]} { continue } .... }
or
fs-traverse fullpath $destpath { if {![file isdirectory $fullpath]} { ... } }
Note: See
TracTickets for help on using
tickets.