Skip to content
Snippets Groups Projects
Commit 3a5b3c4e authored by Kevin Lyda's avatar Kevin Lyda :speech_balloon:
Browse files

Add description of repo

Add initial description of the repo.
parents
No related branches found
No related tags found
No related merge requests found
/convert-vms-record-fmt
.PHONY: all
all: convert-vms-record-fmt
convert-vms-record-fmt: convert-vms-record-fmt.c
gcc -o convert-vms-record-fmt convert-vms-record-fmt.c
# 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
[this guy](http://web.mit.edu/london/www/home.html).
## Where to find BULLETIN
The place to get it seems to be the
[DECUS archives](http://decuslib.com/).
I tracked it down with help from Kent Brodie who I traced via
[an old USENET post](https://groups.google.com/forum/#!search/bulletin$20vms/comp.os.vms/rzM2LQMl6Jo/y1BKhO7dv80J)
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](http://decuslib.com/zips/) 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 git repo
The BULLETIN git repo is created by a shell script, `mkBULLETIN.sh`
based on edits to the various versions of bulletin that were extracted
from the ZIP archives.
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 commit logs for this repo
cover those steps, but to explain in a bit more detail:
### 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.
### .zoo and .zip files
Within the zip files there are sometimes other archive files.
These had to be extracted.
### 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"
```
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <stdint.h>
int
main(int argc, char *argv[])
{
uint16_t len;
size_t bytes;
unsigned char line[0xffff + 2];
while (1) {
bytes = fread(&len, 1, sizeof(uint16_t), stdin);
if (bytes != 2) {
break;
}
if (len % 2 == 1) {
len++;
}
bytes = fread(line, 1, len, stdin);
if (bytes != len) {
break;
}
line[len] = '\0';
printf("%s\n", line);
}
exit(0);
return 0;
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment