TCL IPv6 enabled ( nGn systems for Euro6IX -2003 ): ======================================================= Send comments, questions to : rafael.martinez@novagnet.com 0.- Abstract 1.- ChangeLog 2.- Detected bugs 3.- TODO 4.- Installing 5.- Usefull notes for programmers. 0.- Abstract ------------- TCL is powerfull scripting language, runnable at different platforms (Unix, win, macos) allowing some O.S facilites, file-access, socket programming. It's widely known by one of its graphical libraries, Tk. This patch enables the TCL interpreter to connect and bind with IPv6 addresses, provided your O.S platform is IPv6 enabled. If the old API socket allowed: % socket www.elmundo.es 80 % socket 157.97.34.524 23 % socket 157.97.34.524 echo % socket -server accept 9999 now, you can also type: % socket linux-g.ngn.euro6ix.org 7 % socket linux-g.ngn.euro6ix.org echo % fconfigure sock3 % socket 2003:800:40:2a05::10 23 % socket -server accept 9999 1.- ChangleLog ---------------- + 2004-05-10: Fixing a misstype error. "TCP_IPv6" instead of "TCL_IPv6" (socket -myaddr 2001:800::fe12:4023::1 irck.ert.com 7777 ) was failure Now it is fixed + 2003-10-04: Unix version available. Tested on: i386-unknown-linux i386-freebsd-5.1 i386-solaris-sun 2.- Detected bugs ----------------- 3.- TODO --------- + Trying the port to non-Unix systems ( win32 ,macos...) + A more exhaustive test for IPv6 capabilities by rewriting socket.test 4.- Installing -------------- - Download tcl8.4.4-src.tar.gz from http://tcl.sourceforge.net/ - Download tcl-8.4.4-v6-20031005.diff from http://www.ngn.euro6ix.org/IPv6/tcl bash-2.04$ tar xzvf /path/to/tcl8.4.4-src.tar.gz bash-2.04$ patch -p0 < /path/to/tcl-8.4.4-v6-20031005.diff bash-2.04$ cd tcl8-4.4/unix bash-2.04$ autoconf ** bash-2.04$ ./configure --prefix=$HOME --enable-ipv6 bash-2.04$ make bash-2.04$ make test *** bash-2.04$ make install ** This pass is necessary for building the next configurew script. A crash has been detected by using newer versions of autoconf (2.57) . This is NOT properly a bug from the IPv6 patch (it also occurs without applying it) , but a backwards syntax-compatibility with the old format on m4 files. When trouble , you can - Either Install locally GNU autoconf <=2.52 - Or get the "configure" script on a operative boss and copy here, without loss of portability. (also present at the above URL's ) *** 'make test' may fail depending if you are running a "private" IP and there are problems with DNS resolution. This used to happen even at non-patched version. Read the "socket.test" info . If you run the test with a public IP, you will be succesfull. Running IPv6-patched 'make test' under the same circunstances should be right. Even if 'make test' fails at socket.test module, you are warrantied to use it at your TCL programs. 5.- Usefull notes for programmers. --------------------------------- Advanced control on sockets: ----------------------------- Remember that original tcl-8.4.4 did not deal with UDP sockets. Neither this patch DNS resolution: ------------ DNS resolution solves firstly IPv6 address, if this exists, IPv4 otherwise. This may make your programs surprisingly fail if the remote server exports the service on IPv4, but not on IPv6.