#21864 closed defect (fixed)
bad code in fs-traverse update in portarchive.tcl
Reported by: | david.osguthorpe@… | Owned by: | macports-tickets@… |
---|---|---|---|
Priority: | High | Milestone: | MacPorts 1.9.0 |
Component: | base | Version: | 1.8.0 |
Keywords: | Cc: | nerdling (Jeremy Lavergne) | |
Port: |
Description (last modified by jmroot (Joshua Root))
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]} { ... } }
Change History (3)
comment:1 Changed 15 years ago by nerdling (Jeremy Lavergne)
Cc: | snc@… added |
---|
comment:2 Changed 15 years ago by jmroot (Joshua Root)
Description: | modified (diff) |
---|---|
Resolution: | → fixed |
Status: | new → closed |
comment:3 Changed 15 years ago by jmroot (Joshua Root)
Milestone: | → MacPorts 1.9.0 |
---|
Note: See
TracTickets for help on using
tickets.
Cc Me!