Trf: News
Author: Andreas Kupries,,,

# News for Trf

[ Home | Sitemap ]

## Changes from 2.1p1 to 2.1p2

- Corrected inconsistency BUILD_Trf / BUILD_trf.

## Changes from 2.1 to 2.1p1

- Fixes in some tools used during installation (findinpath, fixhbline).
- [zip] is now able to handle additional data behind the compressed stream. By not reading it. No infinite loop for that case anymore. This also means that a pure-tcl version of gzip should be possible. Any takers ?
- Merged patch from Dave Bodenstab <imdave@mcs.net> to make the error messages better.
- Uptodate binaries for Windows, via crosscompiling mingw gcc.

## Changes from 2.0p7 to 2.1

- Adapted to the rewrite of the stacked channel functionality in 8.3.2. A single binary should now support all stubbed cores (8.1 upward) by switching its behaviour at runtime. Some voodoo is used to make sure that it is not relevant which version of the core was used to create that all-purpose binary. Only the 8.0.x series requires a separate binary because it is not stubbed.

## Changes from 2.0p6 to 2.0p7

- Bugfixes for - usage of wrong strings in the script 'transform'. - wrong variable in makefile - a buffer overun in the quoted-printable encoding. - static library support.
- Patch from Jan Nijtmans for usage of TEA build chain with mingw32.
- Added a link to the TclAH extension (Authentication Hashes) to the documentation.

## Changes from 2.0p5 to 2.0p6

- Bugfixes - in the TEA configure related to md5-crypt (Sigh). - A memory leak.
- Better/more support for building Trf as static library.

## Changes from 2.0p4 to 2.0p5

- Bugfix in the TEA configure related to md5-crypt.

## Changes from 2.0p3 to 2.0p4

- Bugfix in the TEA makefile.

## Changes from 2.0 to 2.0p3

- Fixed several small bugs.
- Fixed some annoying bugs related to the changes made to MD5.

## Changes from 1.8 to 2.0

- Dropped support for Tcl 7.6.
- Added support for TEA compliant building of this extension, see the subdirectory 'tea'. This requires at least Tcl/Tk 8.2. The old built facilities (unix, win) still exist and are still usable. Nevertheless TEA is the prefered way for Unix and Windows.
- Added stubs, i.e. Trf now exports its own stub table. Thanks to Jan Nijtmans for providing the basic changes to get me started.
- Revamped the way Trf is handling seek requests for transforms. BEHAVIOURAL INCOMPATIBILITY BINARY INCOMPATIBILITY (Trf_TypeDefinition's extended) See doc/html/trf_seek.html
- Added vector for querying the max number of bytes to read. BINARY INCOMPATIBILITY (Trf_TypeDefinition's extended)
- Squashed the bug in the 'bzip' (de)compressor. Squashed other bugs reported by Matt Newman <matt@sensus.org>
- Added compile time options to link zlib / bzlib statically. --enable-static-zlib, -DZLIB_STATIC_BUILD --enable-static-bzlib, -DBZLIB_STATIC_BUILD
- MD5 functionality is now loaded on demand. The source of the necessary shared library is part of the distribution and compiled if required (glibc2 Linux systems already have it).
- New commands: md5crypt, crypt, use in password authentication. New option: -nowrap for 'zip' transformation. See documentation.
- 'transform': Added operations 'query/maxRead' and 'query/ratio'.

## Changes from 1.7 to 1.8

- Marshall Rose made the 'base64' encoding MIME compliant and additionally donated his 'quoted-printable' converter.
- Jan Nijtmans donated the 'bzip2' (de)compressor transform. It is unfortunately not yet complete, the decompressor is not working.
- Rewrote the base code to handle the inclusion of the patch into the Tcl core (since 8.2) and the associated changes to the semantics of some of the functions. It now especially automagically distinguishes between unpatched 8.0, patched 8.0, unpatched 8.1, patched 8.1, 8.2 and beyond, and adapts itself accordingly, either at compile time (8.0.x) or runtime (8.1 and beyond).

## Changes from 1.6 to 1.7

- Headers now usable with a C++ compiler.
- Marshall Rose <mrose@dbc.mtview.ca.us> donated code to implement the otp variants of md5 and sha1, according to RFC 2289.
- The option processor now understands '--', it will stop the treatment of the following arguments as options. Again from Marshall Rose.
- The patchkit for Tcl 8.1 is usable for Tcl 8.1.1 too. No new patchkit was made.
- Made thread-safe if compiled against a thread-enabled 8.1. (Mutex used to serialize access to all written global variables)

## Changes from 1.6 to 1.6

- Added the patch kit for tcl 8.1 final

## Changes from 1.5 to 1.6

- The following information is valid only if Trf is used in conjunction with a 8.1 interpreter, as that is currently the only one implementing stubs. It is known that trf requires a patch to the core for full functionality (stacked channels). The core had to be patched to allow compilation of Trf, and its execution. Taking advantage of the new stub-mechanism Trf is now able to check for the existence of its patches at runtime. If loaded by an unpatched interpreter it will disable the features relying on the patch (-attach option of transforms, unstack), but run unimpeded otherwise. Due to some magic with #define and #ifdef it is now even possible to compile Trf against unpatched core without causing harm, the resulting library will have the complete functionality.

## Changes from 1.4 to 1.5

- Better handling of 'fileevent' and blocking-mode for transforms. Initial patch by Matt Newman <matt@novadigm.com> (<matt@sensus.org>).
- Fixed a nasty problem with my patch to the tcl core. Caused a crash if one tried to attach a transform to a new socket inside its accept script. Reason: Unwanted interaction between my handling of the refCount for the channel and tcl itself. Found by Matt Newman. Reworked all patchkits, except for 8.0[ab]*.

## Changes from 1.3 to 1.4

- Upgraded core patches for 8.1b2 and 8.0.4/5.
- Added detection and usage of stubs.

## Changes from 1.2 to 1.3

- No functional changes.
- Fixed several char / unsigned char mismatches and other nits reported by Larry Virden <lvirden@cas.org> and his UltraSparc compiler.
- Added technical explanation of the inner workings to the documentation, + images.
- Upgraded core patches for 8.1b1
- Extended configure with options for the explicit definition of the location of the zlib and crypto libraries. Added intelligence to all pairs of location-options to derive their values from each other if only one of them is specified. Suggested by Larry Virden <lvirden@cas.org>.
- Added windows binary distribution.

## Changes from 1.1 to 1.2

- Moved all encryption aware code and definitions into a separate package, TrfCrypt. This allows the inclusion of the base package into the consortium CD ROM (and the upload to Neosoft).

## Changes from 1.0 to 1.1

- Adapted to C-API changes between 8.0 and 8.1 Added patches for Tcl 8.1a2
- Compiles now with Tcl 7.6, 8.0 and 8.1a2
- binio is more reclusive, it and its support (byteorder patch) will be removed in the next release. Please use the official 'binary' command of Tcl 8.x instead.

## Changes from b3 to final

- WARNING to all users of earlier versions The script API was rewritten to take advantage of the Tcl 8.x object API. The ability to operate on channels was retained, albeit under a different syntax. Please reread the manual, at least chapter 5 (Available commands).
- a Extended C-level API allows for (block)cipher specific option processing.
- A general transformation was added, under the name 'transform'. It reflects the underlying functionality up into the script level.
- Added ciphers: <> ROT, for the fun of it. <> SAFER, by the author of IDEA. (uses *a)

## Changes from b2 to b3

- 'binio' command supported, but not included by default, because of equivalent functionality in 8.0b1, see 'binary' and 'fcopy'. Configure option '--enable-binio'.
- Reorganized code into generic and os dependent parts.
- Added Windows port.
- Some bug fixes.
- More algorithms: RC2, MD2, SHA-1 (SSLeay required) RIPEMD-160
- Commands created use the object-interface of tcl8.0b1 now. Runs with 7.6 nevertheless, BUT NOT with 8.0a1 or a2.

## Changes from b1 to b2

- The patches to the core are enhanced to associate channels with byteorder information.
- A new command 'binio' to pack and/or unpack binary information and to copy between channels (the latter is essentially 'unsupported0'). (Un)packing will reorder bytes as needed, using the information mentioned above.

Last update at Mon Aug 20 22:52:27 PDT 2001