[Starkit] Disection 101

Jean-Claude Wippler jcw at equi4.com
Mon Mar 6 19:43:35 CET 2006


Steve Blinkhorn wrote:

>> +       if {![mk::view size $db.dirs] || [mk::get $db.dirs!0
>> parent] != -1} {
[...]

> Phew!   Well it works on NetBSD.   If you would like to do a Windows
> build we'll happily test it in the live circumstances where we have
> run up against the problem.

Since it might be of more general use, here's a little description on  
how to make changes to the VFS of any tclkit or other starpack:

$ sdx mksplit tclkit.exe
tclkit.head: 712192 bytes
tclkit.tail: 254409 bytes
$ sdx unwrap tclkit.tail
88 updates applied
$ grep 'view size .db.dirs' tclkit.vfs/lib/vfs/mk4vfs.tcl
         if { [mk::view size $db.dirs] == 0 } {
$ # make changes...
$ grep 'view size .db.dirs' tclkit.vfs/lib/vfs/mk4vfs.tcl
         if { [mk::view size $db.dirs] == 0 } {
         if {![mk::view size $db.dirs] || [mk::get $db.dirs!0  
parent] != -1} {
$ sdx wrap tclkit.exe -runtime tclkit.head
88 updates applied
$

This splits the exe head off and reassembles everything exactly as it  
was when wrappign things up again.  The tail is a VFS, and can be  
unwrapped as usual.

Unfortunately, I just went through a round of tclkit 8.4.12 and 8.5a4  
builds a few days ago and don't really want to redo them at this  
stage.  Note that the above can be applied to any tclkit binary, FWIW.

-jcw




More information about the Starkit mailing list