To: C-Kermit Developers and Testers Reply-to: kermit@columbia.edu bcc: Frank da Cruz , Christine M Gianone , Jeffrey Altman , Andrew Chee , vace@columbia.edu, ckermit@watsun Subject: C-Kermit 6.1 Beta.02 This is to announce C-Kermit 6.1 Beta.02. I'm still not announcing it to the general public, but this time it's to a wider list, which I've moved out of the headers. For the benefit of those of you who have not seen the earlier Alpha and Beta announcements, I enclose a VERY brief summary of the new features of C-Kermit 6.1 at the end. Let me know if you want to be removed from this mailing list (mailings will continue to go out about once or twice a month until C-Kermit 6.1 is done). KERBEROS The big item in Beta.02 is Kerberos authentication AND encryption for UNIX. It looks like the winner of that programming contest I announced a few weeks ago is... me :-)  There is now a new CONNECT module for Kerberos builds, ckucns.c (instead of ckucon.c), that uses select() rather than fork() as its control mechanism (more about this in the UNIX section below), thus allowing the Kerberos libraries to share variables, as they must. So far, there is exactly one Kerberized target in the makefile. It is for Linux with the Cygnus Kerberos libraries installed: http://www.cygnus.com/techie/kerbnet/ The current code is compatible with Kerberos V only. It is described in the kerberos.txt file. If you are in the USA or Canada, and you want to try the Kerberos support, or to adapt it to another platform, or adapt it to Kerberos IV, contact me, since certain modules are needed that can't be put on the public ftp site due to export restrictions. USING EXTERNAL COMMUNICATION PROGRAMS The other big item is a new PIPE command that lets C-Kermit use an external communications program to make the connection and do the communications i/o. So now you can have Kermit scripting and file transfer over all sorts of connections where you couldn't have them before, for example: . Use cu to make serial connections for which Kermit lacks permission . Run Kermit through secure and/or SOCKSified Telnet clients . Make rlogin connections without being root Like Kerberos, this feature is available only in UNIX. It works only with programs that use standard i/o. It is described in section 2.7 of the ckermit2.upd file. If you're interested in adapting this feature to non-UNIX platforms, or adapting it to use some mechanism other than pipes (e.g. ptys in UNIX so it might work with non-stdio programs), let me know. GENERAL CHANGES SINCE BETA.01: . Added: Server can now handle GET request for filenames containing spaces. . Added: Certain error messages that were missing from INPUT and OUTPUT. . Added: REMOTE SET FILE INCOMPLETE { DISCARD, KEEP }. . Added: New variable \v(osrelease) (from uname). . Fixed: REMOTE command redirection with short-form replies. . Fixed: Binary-mode mode file reception with SET PARITY SPACE. . Fixed: SET HOST switches for non-serial, non-TCP connection methods. . Fixed: Repeat-count compression could be skipped under certain conditions. . Fixed: Broken REMOTE SET BLOCK-CHECK, RECEIVE TIMEOUT, and FILE NAMES. . Fixed: Broken MKDIR & RMDIR commands when used in a macro or command file. . Fixed: Redirectors for remote commands that return short-form replies. . Fixed: Inability to edit the SET MODEM command. . Fixed: Inability to edit a multiline SET KEY command. . Increased: Maximum number of macro definitions for BIGBUFOK builds. UNIX-SPECIFIC CHANGES . Added: New UNIX CONNECT module based on select() rather than fork(). . Added: Kerberos V authentication AND encryption for Linux. . Added: PIPE command for using external communication programs. . Added: uname info is obtained at runtime. . Added: New variables \v(osname) and \v(osversion) from uname info. . Added: uname info to top of debug log. . Added: Designer banners for BSDI 2.x, 3.x. . Fixed: \v(cpu) to show machine name from uname in preference to "unknown". . Fixed: Hanging in Linux after using /dev/ttyS* device. . Fixed: HP-UX lockfile handling to be compatible across all versions. . Fixed: \v(xxx) variables for directory names to all end with "/". . Fixed: \v(inidir) when initialization file not found. . Fixed: Compilation on Sunsoft Interactive UNIX 4.1 (from Kenneth Cochran). . Fixed: "send /recursive foo" ("foo" not wild) didn't work. The new UNIX CONNECT module is not only for Kerberos, and does not need Kerberos to work. It's better than the old one in every way -- it's snappier, it runs completely in the main Kermit process (rather than in two forks) so there are no pipes or signals, tons of gross and error-prone code have been removed, etc -- but it is not necessarily portable to all UNIX platforms because it uses select() and requires that select() work on all file descriptors (serial ports, pipes, etc) and not just sockets. If you want to try it out: make clean mv ckucon.c ckucon.save mv ckucns.c ckucon.c make xxx and then try CONNECT sessions on (a) serial connections, (b) telnet or rlogin connections, and (c) pipe connections, and let me know the results. If it works on all three, you can change the makefile entry to refer to the "xermit" target instead of the "wermit" target, as was done in the SunOS 4.1 entry (sunos41), which I have tested heavily here. Open UNIX issues: . Linux uucp lockfiles (port name aliases, chasing symbolic links, etc). . More lockfiles needed for HP-UX? (C-Kermit now behaves just like cu.) . Still no C-Kermit 6.1 version for the BeBox (but we made some progress). VMS-SPECIFIC CHANGES . Added: Support for transfer of odd-record-length files (from Lucas Hart). . Added: Error message upon failure to spawn a process (from Lucas Hart). . Added: SET TCP commands that were missing for no good reason. . Fixed: Incorrect results from various "is-a-directory" tests (Lucas Hart). . Fixed: getsockname() compilation warning (Lucas Hart). . Fixed: Inability to receive a file with any name segment > 39 chars. . Fixed: Spurious "Interrupted" message when sending certain kinds of files. . Improved: Handling of RMDIR command failures. . Disabled: High-precision timers for VMS prior to 5.0 (William Bader). . Disabled: Reverse DNS lookup on UCX (doesn't work here). Open VMS issues: . LABELED mode lacks relative pathname option; directory-tree transfers don't work between two VMS systems because they go into LABELED mode automatically. . Confusion about SET TRANSFER MODE { AUTOMATIC, MANUAL } vs FILE TYPE IMAGE (should AUTOMATIC unset IMAGE? Should IMAGE set MANUAL? ...) . Need better error message for failure to receive a file in text mode that has lines longer than 32K, or else a way to recover when this happens, e.g. by breaking the long line. . DECnet-aware CD command -- work in progress, should be available in Beta.03. . Fractured fullscreen file transfer display during GET (can't reproduce). . I don't have access to Alpha VMS 6.x any more, can't make binaries, sorry. THE MACINTOSH VERSION There is no Macintosh version. My Macintosh died. I bought a new one, but it's a Power Mac and won't run MPW C 3.2, and nobody can figure out how to build C-Kermit with "Code Warrior" -- all the header files are different, etc, even in the "MPW compatibility mode". Conversion is evidently a massive job. Volunteers? WHERE TO FIND IT C-Kermit 6.1.193 Beta.02 is in the kermit/test tree at the Kermit ftp site, along with drafts of all the update documentation, etc: ftp://kermit.columbia.edu/kermit/test/tar/ cku193src.tar.Z Source code (UNIX and VMS), tar, UNIX compress cku193src.tar.gz Source code (UNIX and VMS), tar, gzipped cku193txt.tar.Z Other text files, tar, UNIX compress cku193txt.tar.gz Other text files, tar, gzipped ftp://kermit.columbia.edu/kermit/test/text/ Individual source and text files for UNIX, VMS, OS-9, AOS/VS, Stratus VOS, etc etc. Among the interesting text files: ckermit2.upd -- Detailed documentation of new features since 6.0. ckaaaa.hlp -- Overview of files, file naming conventions, etc. ckc193.upd -- Program edit history since 6.0. ckuins.doc -- UNIX installation instructions. ckvins.doc -- VMS installation instructions. ckvker.bwr -- VMS C-Kermit "beware file" (hints and tips). ckuker.bwr -- UNIX C-Kermit beware file. ckcplm.doc -- Program logic manual, API definition, etc. ckccfg.doc -- Program configuration options. alpha*.txt -- Announcements of each Alpha test. beta*.txt -- Announcements of each Beta test. kerberos.txt -- Preliminary documentation of Kerberos features. INDIVIDUAL BETA.02 BINARIES: The binaries marked with (+) are Beta.02, transferred using itself to the Kermit ftp site. The others are mostly Beta.01; some are earlier Alpha tests (built at sites I can't reach any more or that have since been upgraded to newer OS versions, or sent in by others). ftp://kermit.columbia.edu/kermit/test/bin/ ck9ker-net.bin OS-9/68K 2.4 ck9ker-nonet.bin OS-9/68K 2.4 + ckdker-aosvsii.pr DG MV 2500 AOS/VS-II 2.20.73 ckpker.plan9_68020 Plan 9 from Bell Labs on 680x0 ckpker.plan9_i386 Plan 9 from Bell Labs on PC ckpker.plan9_mips Plan 9 from Bell Labs on MIPS ckpker.plan9_sparc Plan 9 from Bell Labs on Sparc + ckuker.aix41 IBM RS/6000 AIX 4.1 + ckuker.bsd44-hp9000_300 HP-9000/300 4.4BSD-Lite ckuker.bsdi2-2.1 PC, BSDI 2.1 ckuker.bsdi2-3.0 PC, BSDI 3.0 + ckuker.bsdi2-3.1 PC, BSDI 3.1 + ckuker.du32 DEC Alpha Digital UNIX 3.2 + ckuker.du40 DEC Alpha Digital UNIX 4.0 + ckuker.hpux500wintcp HP-9000/550 HP-UX 5.21 TWG-TCP/IP 1.2 + ckuker.hpux80-hp9000_385 HP-9000/385 HP-UX 8.00 (no curses, no opt.) + ckuker.hpux80c-hp9000_385 HP-9000/385 HP-UX 8.00 (not optimized) + ckuker.hpux90-hp9000_712 HP-9000/712 HP-UX 9.05 (not optimized) + ckuker.hpux90o700-hp9000_712 HP-9000/712 HP-UX 9.05 (optimized for mod 700) + ckuker.hpux100-10.20 HP-9000/715/33 HP-UX 10.20 (not optimized) + ckuker.hpux100o-10.20 HP-9000/715/33 HP-UX 10.20 (optimized) + ckuker.irix53 SGI IRIX 5.3 + ckuker.irix62 SGI IRIX 6.2 ckuker.irix63 SGI IRIX 6.3 ckuker.is5r3jc-4.1 PC, Sunsoft Interactive UNIX 4.1 + ckuker.linux-1.2.13-i386 PC, Red Hat Linux 1.2.13 + ckuker.next-3.1-mc68040 NeXT 68040 NeXTSTEP 3.1 ckuker.next33-3.3-mc68040 NeXT 68040 NeXTSTEP 3.3 + ckuker.qnx16 QNX 4.24 16-bit + ckuker.qnx32 QNX 4.24 32-bit + ckuker.sco32v504 PC, SCO OpenServer 5.0.4 (no net) + ckuker.sco32v504net PC, SCO OpenServer 5.0.4 (TCP/IP) + ckuker.sinix542-5.42-mips SNI SINIX-N 5.4.2 MIPS (RM200) + ckuker.solaris24-2.4-sparc Sun Sparc, Solaris 2.4 + ckuker.solaris2xg-2.4-sparc Sun Sparc, Solaris 2.4 (made with gcc) + ckuker.solaris2x25-2.4-sparc Sun Sparc, Solaris 2.4 with SunLink X.25 + ckuker.solaris25-2.5.1-sparc Sun Sparc, Solaris 2.5.1 + ckuker.solaris25g-2.5.1-sparc Sun Sparc, Solaris 2.5.1 (made with gcc) ckuker.solaris26-2.6-sparc Sun Sparc, Solaris 2.6 + ckuker.sunos41c-4.1.3-sparc Sun Sparc, SunOS 4.1.3_U1 (full) + ckuker.sunos41m-4.1.3-sparc Sun Sparc, SunOS 4.1.3_U1 (no command parser) + ckuker.sunos41mi-4.1.3-sparc Sun Sparc, SunOS 4.1.3_U1 (minimum parser) + ckuker.sunos41gcc-4.1.3-sparc Sun Sparc, SunOS 4.1.3_U1 (full, with gcc) + ckuker.ultrix42c-4.3-mips DECstation 5000, Ultrix 4.3 ckuker.unixware2-2.1.1 PC, Unixware 2.1.1 + ckuker.unixware2-2.1.2 PC, Unixware 2.1.2 ckvaker-vms62-nonet.exe Alpha CPU, VMS 6.1, no TCP/IP ckvaker-vms62-tgv40a.exe Alpha CPU, VMS 6.1, MultiNet 4.0A + ckvaker-vms71-nonet.exe Alpha CPU, VMS 7.1, no TCP/IP + ckvaker-vms71-tgv40b.exe Alpha CPU, VMS 7.1, MultiNet 4.0B ckvvker-vms45-nonet.exe VAX CPU, VMS 4.5, no TCP/IP + ckvvker-vms55-nonet.exe VAX CPU, VMS 5.5-2, no TCP/IP + ckvvker-vms55-ucx20.exe VAX CPU, VMS 5.5-2, UCX 2.0 + ckvvker-vms61-nonet.exe VAX CPU, VMS 6.1, no TCP/IP + ckvvker-vms61-tgv40a.exe VAX CPU, VMS 6.1, MultiNet 4.0AX + ckvvker-vms71-nonet.exe VAX CPU, VMS 7.1, no TCP/IP + ckvvker-vms71-tgv40b.exe VAX CPU, VMS 7.1, MultiNet 4.0B Thanks to all of you for your help with and comments on this version so far! Please continue to beat on it and send any bug reports straight to me. If any of you can try building this version on platforms not listed above, please let me know the results. Thanks again! - Frank APPENDIX: MAJOR NEW FEATURES SINCE VERSION 6.0 * Program management: . Editor and web browser interfaces . Command modifiers (switches) * Making and Using Connections . Dialing improvements (10-digit dialing, blind dialing, etc) . New modem types and controls . New Telnet protocol options . External communication program interface * File Transfer and Management . File-transfer command switches . File-transfer pipes and filters . Automatic per-file text/binary mode switching (by name) . Transfer and preservation of file permissions . Ability to transfer directory trees between unlike systems . New file management commands and features . Improved performance and responsiveness . New display and log formats * New or improved client/server features * Greek character sets * Script Programming . Ability to pass more than ten arguments to a macro . New or improved built-in variables and functions . Built-in help for functions. . Function and variable diagnostics . New IF conditions . Autodownload during INPUT command execution . New OUTPUT command options . Automatic arrays . Array initializers . Assignment operators This is a very brief list; the complete story runs to about 100 printed pages, and can be found in the ckermit2.upd file, which is a supplement to "Using C-Kermit", 2nd Edition. (End)