#21864: bad code in fs-traverse update in portarchive.tcl ----------------------------------------+----------------------------------- Reporter: david.osguthorpe@… | Owner: macports-tickets@… Type: defect | Status: new Priority: High | Milestone: Component: base | Version: 1.8.0 Keywords: | Port: ----------------------------------------+----------------------------------- 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]} { ... } } }}} -- Ticket URL: <http://trac.macports.org/ticket/21864> MacPorts <http://www.macports.org/> Ports system for Mac OS