To: C-Kermit Developers and Testers <kermit@columbia.edu>
Reply-to: kermit@columbia.edu
bcc: Frank da Cruz <fdc@watsun.cc.columbia.edu>,
    Christine M Gianone <cmg@watsun.cc.columbia.edu>,
    Jeffrey Altman <jaltman@watsun.cc.columbia.edu>,
    Andrew Chee <achee@watsun.cc.columbia.edu>, 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)
