id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc	port
21864	bad code in fs-traverse update in portarchive.tcl	david.osguthorpe@…	macports-tickets@lists.macosforge.org	"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]} {
                ...
            }
      }
}}}











"	defect	closed	High	MacPorts 1.9.0	base	1.8.0	fixed		snc@…	
