diff --git a/src/vfs/_vfscommon.vfs/modules/punk/libunknown-0.2.1.tm b/src/vfs/_vfscommon.vfs/modules/punk/libunknown-0.2.1.tm index c0d92a16..84d84eb8 100644 --- a/src/vfs/_vfscommon.vfs/modules/punk/libunknown-0.2.1.tm +++ b/src/vfs/_vfscommon.vfs/modules/punk/libunknown-0.2.1.tm @@ -184,7 +184,7 @@ tcl::namespace::eval ::punk::libunknown { proc zipfs_tm_UnknownHandler {original name args} { #------------------------------ #shortcircuit for builtin static libraries which have no 'package provide' info - review - #This occurs for example when running 'bin\runtime.cmd run src\make.tcl shell' with punk902z.exe + #This occurs for example when running 'bin\punk-runtime.cmd run src\make.tcl shell' with punk902z.exe # #------------------------------ set loaded [lsearch -inline -index 1 -nocase [info loaded] $name] diff --git a/src/vfs/_vfscommon.vfs/modules/punk/mix/base-0.1.2.tm b/src/vfs/_vfscommon.vfs/modules/punk/mix/base-0.1.2.tm index 48c8597e..b91bdca2 100644 --- a/src/vfs/_vfscommon.vfs/modules/punk/mix/base-0.1.2.tm +++ b/src/vfs/_vfscommon.vfs/modules/punk/mix/base-0.1.2.tm @@ -1,10 +1,11 @@ +# Maintenance Instruction: leave the 999999.xxx.x as is and use 'deck make' or src/make.tcl to update from -buildversion.txt +# @@ Meta Begin +# Application punk::mix::base 0.1.2 +# @@ Meta End package provide punk::mix::base [namespace eval punk::mix::base { variable version set version 0.1.2 }] -#version history (manually versioned module - real version is the filename/provide value) -#0.1.2 - fix: cksum_path hung forever on files on non-native (vfs-mounted e.g //zipfs:/) filesystems - the tcllib -file digest modes read via fileevent+vwait and vfs channels never deliver fileevents. Files on non-native filesystems are now slurped and digested in data mode (new cksum_data_command per algorithm incl new cksum_adler32_data/cksum_crc_data helpers; exec-based sha3 returns an unsupported_algorithm_for_vfs_path error for vfs paths). Needed for punkcheck::install from module-carried //zipfs:/ layout payloads (G-087 stage 3). -#0.1.1 - fix: get_template_basefolders no-handler warning used 'put' instead of 'puts'; missing-handler path now warns and returns an empty dict instead of erroring on an unset variable package require punk::path package require punk::lib ;#format_number etc diff --git a/src/vfs/_vfscommon.vfs/modules/punk/mix/cli-0.5.1.tm b/src/vfs/_vfscommon.vfs/modules/punk/mix/cli-0.5.2.tm similarity index 98% rename from src/vfs/_vfscommon.vfs/modules/punk/mix/cli-0.5.1.tm rename to src/vfs/_vfscommon.vfs/modules/punk/mix/cli-0.5.2.tm index 325f4f07..47d523f7 100644 --- a/src/vfs/_vfscommon.vfs/modules/punk/mix/cli-0.5.1.tm +++ b/src/vfs/_vfscommon.vfs/modules/punk/mix/cli-0.5.2.tm @@ -7,7 +7,7 @@ # (C) 2023 # # @@ Meta Begin -# Application punk::mix::cli 0.5.1 +# Application punk::mix::cli 0.5.2 # Meta platform tcl # Meta license # @@ Meta End @@ -951,8 +951,20 @@ namespace eval punk::mix::cli { set wd [pwd] cd $buildfolder puts "zipfs mkzip $zipfile #modpod-$basename-$module_build_version" - zipfs mkzip $zipfile #modpod-$basename-$module_build_version + set mkzip_failed [catch {zipfs mkzip $zipfile #modpod-$basename-$module_build_version} errMkzip] cd $wd + if {$mkzip_failed} { + #Known core defect: Tcl 8.7 builds predating core fix c971e6c7c4 error + #'non-unique path name' on dot-prefixed entries on Windows (core tkt + #7d5f1c13089d463e7796 'zipfs mkzip broken on Windows dotfiles') - hit by + #layout .fossil-custom/.fossil-settings payloads in the templates modpod. + #Fall back to punk::zip::mkzip, the established path for zipfs-less + #interps (stores unix-style permissions and folder entries - an accepted + #archive variant; modpod stubs read both shapes). + puts stderr "zipfs mkzip failed under Tcl [info patchlevel] ($errMkzip) - falling back to punk::zip::mkzip (known pre-c971e6c7c4 Tcl 8.7 zipfs dotfile defect - core tkt 7d5f1c13089d463e7796)" + catch {file delete -- $zipfile} ;#a failed zipfs mkzip can leave a partial target zip - punk::zip::mkzip refuses to overwrite + punk::zip::mkzip -base $buildfolder -directory $buildfolder/#modpod-$basename-$module_build_version -- $zipfile * + } } else { #use -base $buildfolder so that -directory is included in the archive - the modpod stub relies on this - and extraction would be potentially messy otherwise @@ -1652,6 +1664,6 @@ namespace eval punk::mix::cli { ## Ready package provide punk::mix::cli [namespace eval punk::mix::cli { variable version - set version 0.5.1 + set version 0.5.2 }] return diff --git a/src/vfs/_vfscommon.vfs/modules/punk/mix/templates-0.2.0.tm b/src/vfs/_vfscommon.vfs/modules/punk/mix/templates-0.2.0.tm index 449b65a6..5a593227 100644 Binary files a/src/vfs/_vfscommon.vfs/modules/punk/mix/templates-0.2.0.tm and b/src/vfs/_vfscommon.vfs/modules/punk/mix/templates-0.2.0.tm differ