18 May 2017

9pvfs

System: Microsoft Windows 10 Home Edition
CPUs: Intel(R) Celeron(R) CPU N3060 @1.60GHz
64-bit Operating System, x64-based processor
Deps: vs_community__1560150700.1495339730.exe,
tcl866-src.zip, tcllib-1.18.zip, tk866-src.zip, tclvfs.tar.gz

Installation of A. Belinfante's 9P2000 implementation.

https://9p.io/magic/webls?dir=/sources/contrib/axel/tcl/9pvfs
9pvfs.tcl
main-auth.tcl
main-no-auth.tcl
p9sk1.tcl

Possibly this could provide a Windows-native access to the Kirara
indexing software installed on Plan 9.

https://www.visualstudio.com/downloads/
vs_community__1560150700.1495339730.exe

Run the installer selecting the following individual components.

☑ Static analysis tools
☑ Text template Transformation
☑ C# and Visual Basic Roslyn compilers
☑ MSBuild
☑ VC++ 2017 v141 toolset (x86,x64)
☑ Just-in-Time debugger
☑ Visual Studio C++ core features
☑ Windows 10 SDK (10.015063.0) for Desktop C++ x86 and x64

https://sourceforge.net/projects/tcl/files/Tcl/8.6.6/
tcl866-src.zip

Open an x64_x86 Cross Tools Command Prompt as an administrator.

**********************************************************************
** Visual Studio 2017 Developer Command Prompt v15.0.26430.14
** Copyright (c) 2017 Microsoft Corporation
**********************************************************************
[vcvarsall.bat] Environment initialized for: 'x64_x86'

C:\Windows\System32>CD \tcl866-src\tcl8.6.6\win

C:\tcl866-src\tcl8.6.6\win>nmake.exe -f makefile.vc MACHINE=IX86

...

C:\tcl866-src\tcl8.6.6\win>nmake.exe -f makefile.vc install INSTALLDIR=c:\progra~2\tcl

...

C:\tcl866-src\tcl8.6.6\win>EXIT

Add "C:\Program Files (x86)\tcl\bin" to your System Environment Variable PATH.

NB: Setting the macro CFG_ENCODING to, e.g., 850, resulted in the failure
of tclsh86t.exe to install; the default is cp1252. I presume this is a bug and not
limited to cp850.

https://sourceforge.net/projects/tcllib/files/tcllib/1.18/
tcllib-1.18.zip

Open an x64_x86 Cross Tools Command Prompt as an administrator.

**********************************************************************
** Visual Studio 2017 Developer Command Prompt v15.0.26430.14
** Copyright (c) 2017 Microsoft Corporation
**********************************************************************
[vcvarsall.bat] Environment initialized for: 'x64_x86'

C:\Windows\System32>CD \tcllib-1.18

C:\tcllib-1.18>tclsh86t.exe installer.tcl
Installing Tcllib 1.18
You have chosen the following configuration ...

Packages:      C:/Program Files (x86)/tcl/lib/tcllib1.18
Applications:  C:/Program Files (x86)/tcl/bin
Examples:      C:/Program Files (x86)/tcl/bin/tcllib_examples1.18
Documentation:

        NROFF:  Not installed.
        HTML:   C:/Program Files (x86)/tcl/tcllib_doc

Is the chosen configuration ok ? y/N: y
.........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
Generating C:/Program Files (x86)/tcl/lib/tcllib1.18/pkgIndex.tcl
.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
Generating C:/Program Files (x86)/tcl/bin/dtplite.tcl

Generating C:/Program Files (x86)/tcl/bin/nns.tcl

Generating C:/Program Files (x86)/tcl/bin/nnsd.tcl

Generating C:/Program Files (x86)/tcl/bin/nnslog.tcl

Generating C:/Program Files (x86)/tcl/bin/page.tcl

Generating C:/Program Files (x86)/tcl/bin/pt.tcl

Generating C:/Program Files (x86)/tcl/bin/tcldocstrip.tcl


C:\tcllib-1.18>EXIT

https://sourceforge.net/projects/tcl/files/Tcl/8.6.6/
tk866-src.zip

Open an x64_x86 Cross Tools Command Prompt as an administrator.

**********************************************************************
** Visual Studio 2017 Developer Command Prompt v15.0.26430.14
** Copyright (c) 2017 Microsoft Corporation
**********************************************************************
[vcvarsall.bat] Environment initialized for: 'x64_x86'

C:\Windows\System32>SET TCLDIR=c:\tcl866-src\tcl8.6.6

C:\Windows\System32>CD \tk866-src\tk8.6.6\win

C:\tk866-src\tk8.6.6\win>nmake.exe -f makefile.vc MACHINE=IX86

...

C:\tk866-src\tk8.6.6\win>nmake.exe -f makefile.vc install INSTALLDIR=c:\progra~2\tcl

...

C:\tk866-src\tk8.6.6\win>EXIT

Updated: 12-07-2019

http://tclvfs.cvs.sourceforge.net/viewvc/tclvfs/
tclvfs.tar.gz


https://sourceforge.net/projects/tclvfs/files/tclvfs/tclvfs-20080503/
tclvfs-20080503.tar.gz

Try Igor Pavlov's 7-Zip (64-bit x64) for extraction.

Allocation for private headers, a patch (Japanese webpage)
for \tclvfs\generic\vfs.c,

  #endif
+ #include <tclPort.h>  /* moved in front of tcl.h */
  #include <tcl.h>
  /* Required to access the 'stat' structure fields, and TclInExit() */
  #include "tclInt.h"
- #include "tclPort.h"

  /*

and a patch for \tclvfs\win\rules.vc, were needed
in order to get tclvfs-1.4.2 to compile.

+ _HASH=^#
  _VC_MANIFEST_EMBED_EXE=
  _VC_MANIFEST_EMBED_DLL=
  VCVER=0
  !if ![echo VCVERSION=_MSC_VER > vercl.x] \
+     && ![echo $(_HASH)if defined(_M_IX86) >> vercl.x] \
+     && ![echo ARCH=IX86 >> vercl.x] \
+     && ![echo $(_HASH)elif defined(_M_AMD64) >> vercl.x] \
+     && ![echo ARCH=AMD64 >> vercl.x] \
+     && ![echo $(_HASH)endif >> vercl.x] \
     && ![cl -nologo -TC -P vercl.x $(ERRNULL)]
  !include vercl.i
- !if ![del /q vercl.x vercl.i $(ERRNULL)]
+ !if ![echo VCVER= ^\> vercl.vc] \
+     && ![set /a $(VCVERSION) / 100 - 6 >> vercl.vc]
+ !include vercl.vc
  !endif
- !if $(VCVERSION) >= 1500
- VCVER=9
- !elseif $(VCVERSION) >= 1400
- VCVER=8
- !elseif $(VCVERSION) >= 1300
- VCVER=7
- !elseif $(VCVERSION) >= 1200
- VCVER=6
  !endif
+ !if ![del $(ERRNUL) /q/f vercl.x vercl.i vercl.vc]
  !endif

  !if $(TCLINSTALL)
- _TCLBINDIR      = "$(_TCLDIR)\bin"
- TCLSH  = "$(_TCLBINDIR)\tclsh$(TCL_VERSION)$(SUFX).exe"
+ TCLSH  = "$(_TCLDIR)\tclsh$(TCL_VERSION)$(SUFX).exe"
  !if !exist($(TCLSH)) && $(TCL_THREADS)
- TCLSH           = "$(_TCLBINDIR)\tclsh$(TCL_VERSION)t$(SUFX).exe"
+ TCLSH           = "$(_TCLDIR)\bin\tclsh$(TCL_VERSION)t$(SUFX).exe"
  !endif

Open an x64_x86 Cross Tools Command Prompt as an administrator.

**********************************************************************
** Visual Studio 2017 Developer Command Prompt v15.0.26430.14
** Copyright (c) 2017 Microsoft Corporation
**********************************************************************
[vcvarsall.bat] Environment initialized for: 'x64_x86'

C:\Windows\System32>SET TCLDIR=c:\tcl866-src\tcl8.6.6

C:\Windows\System32>CD \tclvfs\win

C:\tclvfs\win>nmake.exe -f makefile.vc MACHINE=IX86

Microsoft (R) Program Maintenance Utility Version 14.10.25019.0
Copyright (C) Microsoft Corporation.  All rights reserved.

====================================================================
*** Compiler has 'Optimizations'
*** Compiler does not have 'Pentium 0x0f fix'
*** Linker does not have 'Win98 alignment problem'
*** Intermediate directory will be '.\Release_VC13\vfs_ThreadedDynamic'
*** Output directory will be '.\Release_VC13'
*** Suffix for binaries will be ''
*** Optional defines are '-DTCL_CFGVAL_ENCODING=\"cp1252\" -DSTDC_HEADERS -DTCL_THREADS=1 -DUSE_THREAD_ALLOC=1 -DUSE_THREAD_STORAGE=1 -DTCL_CFG_OPTIMIZED'
*** Compiler version 13. Target machine is IX86
*** Compiler options '-W3  -Ot -Oi -fp:strict -Gs -GS -GL  -RTC1 -W3'
*** Link options '-ltcg'
        rc -fo .\Release_VC13\vfs_ThreadedDynamic\tclvfs.res -r -i "..\generic" -D__WIN32__  -DCOMMAVERSION=1,4,0,0  -DDOTVERSION=\"1.4\"  -DVERSION=\"14\"  -d TCL_THREADS  ..\win\tclvfs.rc
Microsoft (R) Windows (R) Resource Compiler Version 10.0.10011.16384
Copyright (C) Microsoft Corporation.  All rights reserved.

        cl -DPACKAGE_NAME="\"vfs\""  -DPACKAGE_VERSION="\"1.4\""  -DBUILD_vfs -nologo -c -W3 -W3 -D _CRT_SECURE_NO_DEPRECATE -D _CRT_NONSTDC_NO_DEPRECATE -Fp.\Release_VC13\vfs_ThreadedDynamic\ -DUSE_TCL_STUBS  -Ot -Oi -fp:strict -Gs -GS -GL -MD -I"c:\tcl866-src\tcl8.6.6\generic" -I"c:\tcl866-src\tcl8.6.6\win" -I"..\win" -I"..\generic" -DTCL_CFGVAL_ENCODING=\"cp1252\" -DSTDC_HEADERS -DTCL_THREADS=1 -DUSE_THREAD_ALLOC=1 -DUSE_THREAD_STORAGE=1 -DTCL_CFG_OPTIMIZED -DBUILD_vfs -Fo.\Release_VC13\vfs_ThreadedDynamic\ @C:\Users\Eric\AppData\Local\Temp\nm193B.tmp
vfs.c
        link -nologo -machine:IX86 -ltcg -release -opt:ref -opt:icf,3 -dll -base:0x10A70000 -out:.\Release_VC13\vfs14.dll "c:\tcl866-src\tcl8.6.6\win\Release_VC13\tclstub86.lib" @C:\Users\Eric\AppData\Local\Temp\nm1C49.tmp
   Creating library .\Release_VC13\vfs14.lib and object .\Release_VC13\vfs14.exp
Generating code
Finished generating code
        if exist .\Release_VC13\vfs14.dll.manifest mt -nologo -manifest .\Release_VC13\vfs14.dll.manifest -outputresource:.\Release_VC13\vfs14.dll;2
        nmakehlp -s C:\Users\Eric\AppData\Local\Temp\nm1DD1.tmp ..\pkgIndex.tcl.in > .\Release_VC13\pkgIndex.tcl
        nmakehlp -s C:\Users\Eric\AppData\Local\Temp\nm1E20.tmp ..\library\vfs.tcl.in > .\Release_VC13\vfs.tcl

C:\tclvfs\win>MKDIR c:\progra~2\tcl\lib\vfs1.4

C:\tclvfs\win>MOVE ..\library\template c:\progra~2\tcl\lib\vfs1.4
        1 dir(s) moved.

C:\tclvfs\win>MOVE ..\library\*.tcl c:\progra~2\tcl\lib\vfs1.4
C:\tclvfs\library\ftpvfs.tcl
C:\tclvfs\library\httpvfs.tcl
C:\tclvfs\library\mk4vfs.tcl
C:\tclvfs\library\starkit.tcl
C:\tclvfs\library\tarvfs.tcl
C:\tclvfs\library\tclprocvfs.tcl
C:\tclvfs\library\testvfs.tcl
C:\tclvfs\library\tkvfs.tcl
C:\tclvfs\library\vfslib.tcl
C:\tclvfs\library\vfsUrl.tcl
C:\tclvfs\library\vfsUtils.tcl
C:\tclvfs\library\webdavvfs.tcl
C:\tclvfs\library\zipvfs.tcl
       13 file(s) moved.

C:\tclvfs\win>MOVE Release_VC13\*.dll c:\progra~2\tcl\lib\vfs1.4
C:\tclvfs\win\Release_VC13\vfs14.dll
        1 file(s) moved.

C:\tclvfs\win>MOVE Release_VC13\*.lib c:\progra~2\tcl\lib\vfs1.4
C:\tclvfs\win\Release_VC13\vfs14.lib
        1 file(s) moved.

C:\tclvfs\win>MOVE Release_VC13\*.tcl c:\progra~2\tcl\lib\vfs1.4
C:\tclvfs\win\Release_VC13\pkgIndex.tcl
C:\tclvfs\win\Release_VC13\vfs.tcl
        2 file(s) moved.

C:\tclvfs\win>

Updated: 12-07-2019

In examples\simpleExamples.tcl replace the 1st ftp address with
'ftp://ftp.belnet.be' and the remote file name to 'vfsTktest.tcl'.

The modified copy is here.

C:\tclvfs\win>CD %HOMEPATH%

C:\Users\Eric>tclsh86t.exe simpleExamples.tcl
(pwd is 'C:/Users/Eric', file volumes is 'C:/')
Adding ftp:// volume...
ftp.belnet.be listing
ftp://ftp.belnet.be/debian ftp://ftp.belnet.be/debian-cd ftp://ftp.belnet.be/mirror ftp://ftp.belnet.be/mirrors ftp://ftp.belnet.be/pub
----
(file volumes is 'ftp:// C:/')
Adding http:// volume...
Contents of <http://sourceforge.net/projects/tcl> web page
<html>
<head><title>301 Moved Permanently</title></head>
<body bgcolor="white">
<center><h1>301 Moved
(first 100 out of 171 characters)
----
(file volumes is 'ftp:// http:// C:/')
Mounting ftp://ftp.ucsd.edu/pub/alpha/ ...
(pwd is now 'C:/Users/Eric/localmount/tcl' which is effectively a transparent link to a remote ftp site)
Contents of remote directory is:
        Alphabugtest.sit
        MacOSprojects.tar.gz
        alphatk
        chanExec.patch
        defineclassbug.zip
        extensions
        iwidgets.diff.gz
        tclobjvfs.diff
        tclobjvfs.diff.gz
        tclvfs.diff
        test.txt
        tests.zip
        tip113.diff
        trace.diff.gz
        tracecmdexec.diff.gz
        tracecommand.patch.gz
        vfs.zip
        vfsTest.tcl
        vfsTktest.tcl
sourcing remote file 'vfsTktest.tcl', using 'source vfsTktest.tcl'
The vfs test file is being sourced
Done

C:\Users\Eric>EXIT

[   ]

NB: Either closing the wish86t.exe window, or entering in the console Ctrl+C returns you
to the the prompt. Some coders copy wish86t.exe to wish.exe and/or to wish86.exe; you'll
need to copy tclsh86t.exe to tclsh86.exe to compile trf2.1.4.

NB: For an x64 build of OpenSSL one doesn't need to install NASM and the commands run would be:

C:\openssl-1.0.2l>perl.exe Configure VC-WIN64A --prefix=c:\progra~1\openssl
C:\openssl-1.0.2l>ms\do_win64a.bat
C:\openssl-1.0.2l>nmake.exe -f ms\ntdll.mak
C:\openssl-1.0.2l>nmake.exe -f ms\ntdll.mak install

Updated: 25-09-2017

https://www.cpan.org/src/
perl-5.26.1.tar.gz

Try Igor Pavlov's 7-Zip (64-bit x64) for extraction.

In perl-5.26.1\win32\Makefile comment out CCTYPE
as MSVC60 and uncomment CCTYPE as MSVC141.

Open an x64 Native Tools Command Prompt as an administrator.

**********************************************************************

** Visual Studio 2017 Developer Command Prompt v15.0.26430.12

** Copyright (c) 2017 Microsoft Corporation

**********************************************************************

[vcvarsall.bat] Environment initialized for: 'x64'

:\Windows\System32>CD \perl-5.26.1\win32

C:\perl-5.26.1\win32>nmake.exe -f Makefile

...

C:\perl-5.26.1\win32>nmake.exe test

All tests successful.

Test Summary Report
-------------------
../ext/IPC-Open3/t/IPC-Open3.t                                   (Wstat: 0 Tests: 45 Failed: 0)
  TODO passed:   25
Files=2584, Tests=1155327, 3845 wallclock secs (252.78 usr + 17.80 sys = 270.58 CPU)
Result: PASS
        cd ..\win32

C:\perl-5.26.1\win32>nmake.exe -f Makefile install

...

C:\perl-5.26.1\win32>EXIT

Add "C:\perl\bin" to your System Environment Variable PATH.

http://www.nasm.us/pub/nasm/releasebuilds/2.13.01/win64/
nasm-2.13.01-installer-x64.exe

Run the above installer as an administrator.

Add "C:\Program Files\NASM" to your System Environment Variable PATH.

https://www.openssl.org/source/
openssl-1.0.2l.tar.gz

Try Igor Pavlov's 7-Zip (64-bit x64) for extraction.

Open an x64_x86 Cross Tools Command Prompt as an administrator.

**********************************************************************
** Visual Studio 2017 Developer Command Prompt v15.0.26430.14
** Copyright (c) 2017 Microsoft Corporation
**********************************************************************
[vcvarsall.bat] Environment initialized for: 'x64_x86'

C:\Windows\System32>CD \openssl-1.0.2l

C:\openssl-1.0.2l>perl.exe Configure VC-WIN32 --prefix=c:\progra~2\openssl

...

C:\openssl-1.0.2l>ms\do_ms.bat

...

C:\openssl-1.0.2l>ms\do_nasm.bat

...

C:\openssl-1.0.2l>nmake.exe -f ms\ntdll.mak

...

C:\openssl-1.0.2l>CD out32dll

C:\openssl-1.0.2l\out32dll>..\ms\test.bat

...
passed all tests

C:\openssl-1.0.2l\out32dll>CD ..

C:\openssl-1.0.2l>nmake.exe -f ms\ntdll.mak install

...

C:\openssl-1.0.2l>EXIT

Add "C:\Program Files (x86)\openssl\bin" to your System Environment Variable PATH.

http://www.bzip.org/downloads.html
bzip2-1.0.6.tar.gz

Try Igor Pavlov's 7-Zip (64-bit x64) for extraction.

https://github.com/vaerksted/bzip2
bzip2-master.zip

Add the git (Clone or download) .sln and .vcxproj files to the bzip2-1.0.6 directory.

Start the VS IDE and open the Project/Solution... file libbz2.sln, then from the IDE
menu's list box change from Debug to Release, and Build the Solution.

Close the IDE and open a Windows Command Prompt as an administrator.

Microsoft Windows [Version 10.0.14393]
(c) 2016 Microsoft Corporation. All rights reserved.

C:\WINDOWS\system32>CD \bzip2-1.0.6

C:\bzip2-1.0.6>MKDIR c:\progra~2\bzip2\bin

C:\bzip2-1.0.6>MOVE libbz2.dll c:\progra~2\bzip2\bin
        1 file(s) moved.

C:\bzip2-1.0.6>MKDIR c:\progra~2\bzip2\include

C:\bzip2-1.0.6>MOVE bzlib.h c:\progra~2\bzip2\include
        1 file(s) moved.

C:\bzip2-1.0.6>EXIT

Add "C:\Program Files (x86)\bzip2\bin" to your System Environment Variable PATH.

http://zlib.net/
zlib1211.zip

https://github.com/vaerksted/zlib
zlib-master.zip

Add the git (Clone or download) vc15 subdirectory to zlib-1.2.11/contrib/vstudio.

Start the VS IDE and open the Project/Solution... file vc15/zlibvc.sln, then from the IDE
menu's list box change from Debug to Release, and Build the Solution.

Close the IDE and open a Windows Command Prompt as an administrator.

Microsoft Windows [Version 10.0.14393]
(c) 2016 Microsoft Corporation. All rights reserved.

C:\WINDOWS\system32>CD \zlib1211\zlib-1.2.11

C:\zlib1211\zlib-1.2.11>SET ZLIBDIR=c:\progra~2\zlib

C:\zlib1211\zlib-1.2.11>MKDIR %ZLIBDIR%\bin

C:\zlib1211\zlib-1.2.11>MOVE contrib\vstudio\vc15\x86\ZlibDllRelease\zlibwapi.dll %ZLIBDIR%\bin
        1 file(s) moved.

C:\zlib1211\zlib-1.2.11>MKDIR %ZLIBDIR%\include

C:\zlib1211\zlib-1.2.11>MOVE zconf.h %ZLIBDIR%\include
        1 file(s) moved.

C:\zlib1211\zlib-1.2.11>MOVE zlib.h %ZLIBDIR%\include
        1 file(s) moved.

C:\zlib1211\zlib-1.2.11>EXIT

Add "C:\Program Files (x86)\zlib\bin" to your System Environment Variable PATH.

https://sourceforge.net/projects/tcltrf/
trf2.1.4.zip

Open a Windows Command Prompt as an administrator, copy the tclsh86t.exe and
wish86t.exe files, and the tcl8.6.6 private headers, and make some symbolic links.

Microsoft Windows [Version 10.0.14393]
(c) 2016 Microsoft Corporation. All rights reserved.

C:\WINDOWS\system32>CD \progra~2\tcl

C:\PROGRA~2\tcl>PUSHD bin

C:\PROGRA~2\tcl\bin>COPY tclsh86t.exe tclsh86.exe
        1 file(s) copied.

C:\PROGRA~2\tcl\bin>COPY wish86t.exe wish86.exe
        1 file(s) copied.

C:\PROGRA~2\tcl\bin>POPD

C:\PROGRA~2\tcl>MKDIR include\tcl-private\generic

C:\PROGRA~2\tcl>COPY \tcl8.6.6\generic\*.h include\tcl-private\generic

...

C:\PROGRA~2\tcl>MKDIR include\tcl-private\win

C:\PROGRA~2\tcl>COPY \tcl8.6.6\win\*.h include\tcl-private\win

...

C:\PROGRA~2\tcl>CD include\tcl-private\generic

C:\PROGRA~2\tcl\include\tcl-private\generic>DEL tcl.h tclDecls.h tclPlatDecls.h

C:\PROGRA~2\tcl\include\tcl-private\generic>mklink tcl.h ..\..\tcl.h
symbolic link created for tcl.h <<===>> ..\..\tcl.h

C:\PROGRA~2\tcl\include\tcl-private\generic>mklink tclDecls.h ..\..\tclDecls.h
symbolic link created for tclDecls.h <<===>> ..\..\tclDecls.h

C:\PROGRA~2\tcl\include\tcl-private\generic>mklink tclPlatDecls.h ..\..\tclPlatDecls.h
symbolic link created for tclPlatDecls.h <<===>> ..\..\tclPlatDecls.h

C:\PROGRA~2\tcl\include\tcl-private\generic>mklink tclWinInt.h ..\win\tclWinInt.h
symbolic link created for tclWinInt.h <<===>> ..\win\tclWinInt.h

C:\PROGRA~2\tcl\include\tcl-private\generic>mklink tclWinPort.h ..\win\tclWinPort.h
symbolic link created for tclWinPort.h <<===>> ..\win\tclWinPort.h

C:\PROGRA~2\tcl\include\tcl-private\generic>EXIT

Updated 01-08-2017

An /LTCG linker declaration needs to added to makefile.vc per the output of an earlier run of cl.exe (see below), and the alignment should be dealt with. The tcl8.6.6 (and tk8.6.6) makefile.vc files use
a link flag -nodefaultlib:libucrt.lib, add "baselibs    = $(baselibs) ucrt.lib" for _MSC_VER >= 1900, and an ALIGN98_HACK, the latter two being dependent on a rules.vc file.

See also: http://stevedower.id.au/blog/building-for-python-3-5/
http://stevedower.id.au/blog/building-for-python-3-5-part-two/

tclstub86.lib(tclStubLib.obj) : MSIL .netmodule or module compiled with /GL found; restarting link with /LTCG; add /LTCG to the link command line to improve linker performance

https://github.com/varehus/Watcom-1.9.0

Precompiled awk.exe, diff.exe, rm.exe, sed.exe, and (w)grep.exe, from
a build of open_watcom_1.9.0, if you want to use these from tcl scripts.

https://github.com/varehus/Watcom-v2

Precompiled awk.exe, cat.exe, chmod.exe, cp.exe, crlf.exe
[crlf.exe foo foo.txt], diff.exe, egrep.exe, head.exe, sed.exe,
sleep.exe, sort.exe, tee.exe, tr.exe, uniq.exe, wc.exe, and
which.exe, from a build of open-watcom-v2-master.zip.

https://sourceforge.net/projects/tmake/files/tmake/2.12/
tmake-2.12.zip
tmake-2.12.tar.bz2

It might be worth taking a look at whether Trolltech's 'tmake' could be utilised
to generate watcom makefiles for some other UNIX utilities such as cmp.exe,
ls.exe, mv.exe, pwd.exe, tail.exe, and touch.exe.

http://wiki.tcl.tk/15632 [9P (Plan 9 Filesystem Protocol) VFS]
http://wiki.tcl.tk/2701 [Tcl IO Drivers]
http://wiki.tcl.tk/2466 [tclvfs]
http://wiki.tcl.tk/479 [trf]

Additional Trf functionality: tls1.6.7-src.tar.gz, trfcrypt2.0p3.zip

https://core.tcl.tk/tcltls/wiki/Download
tcltls-1.7.12.tar.gz [SSL encryption]

https://core.tcl.tk/tcltls/uvlist?byage=1
older version .zip files are here

http://www.oche.de/~akupries/soft/trfcrypt/index.html
trfcrypt2.0p3.zip [crypto-algorithms]

A Slackware-14.2 (32-bit) install of trf2.1.4.tar.gz, where I manually entered
the path to the OpenSSL headers in the Makefile (after running the configure
script) and modified tests/defs as follows passed all in tests/*.test files except
base64.test, common.all.test, and transform.test, outputting 'invalid command
name "memchan"', and skipping binio.test, as the command was not compiled
into the package.

-    package require Memchan
+    package require tcl::chan::memchan

The Msys2 project has a cvs package.

https://sourceforge.net/projects/msys2/files/REPOS/MSYS2/x86_64/
cvs-1.11.23-2-x86_64.pkg.tar.xz

And, likewise a tclvfs-cvs package, where the tclvfs module was checked
out from the CVS server, but configured without threads enabled.

https://sourceforge.net/projects/msys2/files/REPOS/MINGW/x86_64/
mingw-w64-x86_64-tclvfs-cvs-20130425-3.src.tar.gz

[   ]