Audit new Tcl repository

We're making a new version control repository for Tcl - and you can help!

We need to go back through the tagged history in the repository and make sure that all the old releases can be reconstructed from their history.

How to help:

Sign up for a release on this page by putting your name next to it.

Go to the distribution archive at SourceForge and download the tarball corresponding to the release you've signed up for. Unpack the tarball somewhere.

Download the zip file for the 'core-*' tag corresponding to the release by clicking on a link below. Unpack that zip somewhere.

Report version inconsistencies, extra and missing files. It's probably easiest to do so in the Tcl Chatroom.

Once the release is finished, move it to the "Completed" list down below.

Thanks for your contribution to getting us back up and running!


TO DO:

*synthetic indicates a tag that required a synthetic branch to be created to satisfy. Special attention should be paid to these.

COMPLETED:

MJ -- OK is okay with difference in tclConfig.h.in which I suspect is caused by a borked autoconf on my machine (mix of 2.59 and 2.6x).


AK Note: The zip files from each tag are not directly comparable to the distributions at SF. The latter were generally made via 'make dist', removing non-distributable files and such. For true comparison the zip at the tag likely requires building and 'make dist'. And from the POV of today these old revisions may not even compile any longer due to system changes. So, we can do the compare, but interpretation of the results definitely requires human intelligence.

KBK A number of the files in the source tree contain $Source: $ RCS directives that introduce noise into the differences. The following script can be used to get rid of them from both trees before running diff.

# Script to un-substituted substituted $Source: $ and $Id: $
# CVS directives in a directory.
#
# Usage: tclsh nuke-Source.tcl directoryname

lassign $argv dir

proc do-file {file} {
    set f [open $file r+b]
    fconfigure $f -translation binary
    set data [read $f]
    if {[regsub -all  {\$(Id|Source): [^$\n]*\$} $data {$\1$} data]} {
        puts "$file"
        seek $f 0
        fconfigure $f -translation binary
        puts -nonewline $f $data
        chan truncate $f
    }
    close $f
}

proc do-directory {dir} {
    puts $dir
    foreach sub [glob -nocomplain -types d -directory $dir *] {
        do-directory $sub
    }
    foreach file [glob -nocomplain -types f -directory $dir *] {
        do-file $file
    }
}

do-directory $dir

KBK: The older 'configure' scripts do not run on a modern bash, because they contain a syntax error. The following script, run on a checkout or a distribution directory, fixes the syntax error; it should introduce corresponding changes in both areas and so not affect the quality of the 'diff'

# Script to get rid of the 'configure' syntax error for
# any configurator in a directory
#
# Usage: tclsh configurefix.tcl directoryname

set from {***=system=MP-RAS-`awk '{print }' /etc/.relid'`}
set to       {system=MP-RAS-`awk '{print }' /etc/.relid`}

lassign $argv dir

proc do-file {file} {
    puts $file
    set f [open $file r+b]
    fconfigure $f -translation binary
    set data [read $f]
    if {[regsub -all $::from $data $::to data]} {
        seek $f 0
        fconfigure $f -translation binary
        puts -nonewline $f $data
        chan truncate $f
    }
    close $f
}

proc do-directory {dir} {
    puts $dir
    foreach sub [glob -nocomplain -types d -directory $dir *] {
        do-directory $sub
    }
    foreach file [glob -nocomplain -types f -directory $dir configure] {
        do-file $file
    }
}

do-directory $dir

(Coming soon: Audit new Tk repository)