Skip to content
Snippets Groups Projects
Select Git revision
2 results

bulletin

  • Clone with SSH
  • Clone with HTTPS
  • Kevin Lyda's avatar
    Kevin Lyda authored
    Really need to record the steps I'm taking. Already rolled
    some changes back so clearly this is a mistake-prone process.
    
    So this will live in a "conversion" branch which I'll eventually
    use to make a "master" branch (staging each commit with the proper
    author attributes and the best commit message I can derive - later
    dirs seem to have announcement files so that helps).
    61b292dc
    History

    Recreating bulletin

    Back in university we used to use a system called BULLETIN on the local VAX/VMS cluster. It eventually went away due to security issues. But I was thinking it might be fun to recreate. First though I'd like an historic git repo that covers the early years.

    This repo is not it. It's where I attempt to recreate it.

    Who wrote it

    First, git commits need an author. It would be nice to figure out the author. The version I used I suspect was written by Mark London.

    Where to find BULLETIN

    The place to get it seems to be the DECUS archives. I tracked it down with help from Kent Brodie who I discovered via an old USENET post where he too was trying to track the software down. In 1994.

    Extracting from tape

    To trawl through looking for bulletin source distros (using the zip files from decuslib:

    for f in *.zip; do
      unzip -l $f 2> /dev/null | grep -qi /bulletin && echo $f;
    done

    That yields this list of zip files:

    I did this on an internet server since my bandwidth is tiny. I only copied down the relevant bits of the zip files which I extracted like so:

    for f in *.zip; do
      unzip -l $f 2> /dev/null | grep -qi /bulletin \
        && unzip $f $(unzip -l $f | grep -i /bulletin | awk '{print $4}');
    done
    tar jcf decus.tar.bz2 decus

    This was used to create decus.tar.bz2 which was then extracted as decus/ in this archive.

    Creating the BULLETIN source repo (or branch)

    The files in the ZIP archives are not ready in their current state to make the repo. A number of things had to be done to get them ready for a proper historical source code archive. The conversion branch tracks the steps taken to prepare to recreate the historical archive.

    Once the conversion branch seems complete, I'll start creating the historical archive.

    The subsections below track the major conversion probems encountered and the steps taken to address them.

    Dependencies

    The shell snippets assume zsh (the **/*.ext idiom gets used a lot). Need a gcc toolchain. Need the unzip, unar and zoo utilities.

    File conversions

    Some files are in VMS record formats. These are handled by convert-vms-record-fmt.c which is compiled to convert-vms-record-fmt.

    .mai files

    I think these are mail archives. Might need a script to turn those into mbox files.

    Unpacking archives.

    Within the zip files there are sometimes other archive files. These had to be extracted.

    For .zoo files:

    for f in **/*.zoo; do
      (cd ${f%\/*} && zoo -extract ${f##*\/} && rm ${f##*\/});
    done

    For .zip files:

    for f in **/*.zip; do
      (cd ${f%\/*} && unzip ${f##*\/} && rm ${f##*\/});
    done

    For .lzh files:

    for f in **/*.lzh; do
      (cd ${f%\/*} && unar ${f##*\/} && rm ${f##*\/});
    done

    .com files

    So it might be possible to run DCL on Linux. A rather exhaustive list of the options seems to indicate that PC-DCL might be an option.

    General cleanup

    • Removed exe and obj files: git rm **/*.{exe,obj}

    Committing to the BULLETIN git repo

    To get the right dates and authors in git, need to tweak these environment variables for each commit.

    export GIT_AUTHOR_NAME="Mark London"
    export GIT_AUTHOR_EMAIL="mrl%foo@bar"
    export GIT_AUTHOR_DATE="Jan 28 20:52:53 1982 +0000"