KERMIT 95 SOURCE FILES This directory contains the source files for Kermit 95 2.1.3 (K95 for short), released 1 January 2003, with updates by Jeffrey Altman through 2007, which are listed here: http://www.columbia.edu/kermit/k95-fixes-since-213.txt The modules which are shared with C-Kermit for Unix, VMS, and other platforms (ckc*.*, cku*.*) correspond to those of C-Kermit 8.0.207 (which was never actually released), but with updates either from the main C-Kermit development branch, or K95-specific by Jeff. No attempt has been made to reconcile the sources with those of C-Kermit 9.0; that would be a big job indeed (but one that is worth doing if a new Open Source Kermit 95 release is to be created). Only the minimum changes to convert the K95 source code to an Open Source license have been made: . A new COPYING.TXT file . New copyright notices in ckcmai.c (the K95 main program module). . Elimination of restrictive license text from all files that are Copyright Trustees of Columbia University in the City of New York (these files have 19 July 2011 modification dates). The COPYING.TXT file applies to any file with a Columbia University copyright. . Exclusion of any module whose license prohibits open distribution (there was only one, p_omalloc.c; see below). No attempt has been made to compile or link these source files on Windows or OS/2 or anywhere else. Any new version of K95 will have to deal with the following considerations: . All registration, serial number, and license enforcement code should be removed. . There will be no Dialer. The Dialer was built using a commercial GUI-builder called Zinc; that company ceased to exist years ago. Columbia had a source license to Zinc and made many modifications and bug fixes necessary to build the Dialer. But Columbia does not have the right to distribute Zinc nor any patches to it. . The Console version for Windows is obsolete since later Windows versions do not support it. . The XYZMODEM protocol code was contributed from Finland. All of the modules but one have an open license: /*****************************************************************************/ /* Copyright (c) 1994 by Jyrki Salmi */ /* You may modify, recompile and distribute this file freely. */ /*****************************************************************************/ But one module, p_omalloc.c (a "more friendlier interface to OS/2's DosAllocMem and DosFreeMem API calls"), has this, and is therefore excluded from the distribution (since the copyright holders can no longer be located): /*****************************************************************************/ /* */ /* Copyright (c) 1995 by Oy Online Solutions Ltd. */ /* */ /* Distribution of this source code is strictly forbbidden. Use of this */ /* source code is granted to the University of Columbia C-Kermit project */ /* to be distributed in binary format only. Please familiarize yourself */ /* with the accompanying LICENSE.P file. */ /* */ /*****************************************************************************/ The p_omalloc module has only two entry points, p_omalloc() and p_ofree(), which are replacements for the regular malloc() and free(), but with more arguments, whose usage can be inferred from the invocations that appear in other p_*.c modules. . The SSH code contains known security weaknesses that need to be fixed. A new SSH module should be developed from scratch. The openssh sources it was derived from in 2002 have diverged too much to be fixed. . Other security code (Kerberos, SSL/TLS, and SRP) needs to brought up to date with current releases of those libraries. . To take advantage of all the new developments in C-Kermit since 8.0.207, and to return to a common code base for C-Kermit and K95, K95 should be integrated with the C-Kermit source files (ck[cu]*.[ch] and ckcpro.w). K95 was last built with Microsoft SDK November 2001 / Visual Studio 6.0. The makefile is ckoker.mak. Before running it, it's necessary to set the "include" and "lib" environment variables for the many external libraries K95 is linked with (such as OpenSSL, SRP, and Kerberos) [each of these is one long line broken for readability]: set include=%include%;c:\src\kermit\k95; c:\src\openssl\0.9.7\inc32; c:\src\srp\include; c:\src\pwsdk\inc32; c:\src\kerberos\kfw-2.2-beta-2\athena\wshelper\include; c:\src\superlat\include; c:\src\kerberos\kfw-2.2-beta-2\athena\auth\krb5\src\include; c:\src\kermit\k95\kui; c:\src\zinc\include; set lib=%lib%;c:\src\kerberos\kfw-2.2-beta-2\target\lib\i386\rel; c:\src\zinc\lib\mvcpp500 Note that Zinc is not included in this distribution, nor Meridian Technologies SuperLAT, support for which was included in K95 under license. Any -DSUPERLAT definition should be removed the makefile. I'm not sure how avoid Zinc. The makefile can then be invoked with something like this: SET PLATFORM=NT SET K95BUILD=K95 nmake /nologo /e /f ckoker.mak msvc |& tee comp.out.nt | list /s The principal authors of Kermit 95, Jeff Altman and Frank da Cruz, no longer have jobs at Columbia University and may or may not be available for advice due to the exigencies of real life.