#21864: bad code in fs-traverse update in portarchive.tcl -----------------------------------------+---------------------------------- Reporter: david.osguthorpe@… | Owner: macports-tickets@… Type: defect | Status: closed Priority: High | Milestone: Component: base | Version: 1.8.0 Resolution: fixed | Keywords: Port: | -----------------------------------------+---------------------------------- Changes (by jmr@…): * status: new => closed * resolution: => fixed Old 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]} { ... } } }}}
New 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]} { ... } } }}} -- Comment: r59882 -- Ticket URL: <http://trac.macports.org/ticket/21864#comment:2> MacPorts <http://www.macports.org/> Ports system for Mac OS