These are the GIT repositories for some of my various free software projects, and some other projects I hack on or just find useful to have local copies of. Feel free to browse them here.

The primary source for browsing these projects is https://git.distorted.org.uk/~mdw/. There's a similar browser at https://www.chiark.greenend.org.uk/ucgi/~mdw/git/ which might be faster, or more available, but very slightly less up-to-date.

Project foo can be cloned using any of the following URLs:

The https://… URLs are recommended if you can use them, because they provide a measure of authenticity (as well as the obvious privacy benefits).

In order to build many of these projects, you'll need to build and install cfd, and quite possibly one or more of the libraries mLib and catacomb. You'll also need recent-ish Autoconf, Automake and Libtool, and the Autoconf archive. General procedure is as follows:

If you wanted to build Debian packages, run mdw-setup –d instead. This will skip making a build directory, which is good because otherwise it interferes with the Debian build process. The various debian/rules targets should work OK after that.

Please mail me patches!

List all projects
Project Description Owner Last Change
adns GNU ADNS, an asynchronous... Mark Wooding 7 years ago
anag Simple word-game solver Mark Wooding 4 years ago
atoms Amusing computer-mediated... Mark Wooding 10 years ago
autoys A collection of utilities... Mark Wooding 5 weeks ago
backup-rotation Backup rotation scheduler... Mark Wooding 6 years ago
bascat BBC BASIC detokenizer Mark Wooding 11 years ago
become Management for shared accounts Mark Wooding 17 years ago
bridge-toys Some simple web-based contract... Mark Wooding 2 years ago
ca A simple X.509 certificate... Mark Wooding 14 months ago
catacomb Catacomb cryptographic library Mark Wooding 3 weeks ago
catacomb-perl Catacomb cryptographic library... Mark Wooding 18 years ago
catacomb-python Catacomb cryptographic library... Mark Wooding 8 months ago
cfd Common Files Distribution... Mark Wooding 21 months ago
checkpath Paranoid checking of path... Mark Wooding 5 years ago
checkpath-python Paranoid path checking: Python... Mark Wooding 17 years ago
chopwood A password-changing service. Mark Wooding 21 months ago
clg Common Lisp bindings for GTK... Mark Wooding 10 years ago
collect-bench Benchmark various techniques... Mark Wooding 2 years ago
cparse C parser and output (by Richar... Mark Wooding 18 years ago
cryptomail Generate and forward for encry... Mark Wooding 17 years ago
dep-ui Dependency-based calculations... Mark Wooding 3 years ago
disorder Multi-user software jukebox... Mark Wooding 2 years ago
disorder-misc-config Tracks which the jukebox shoul... Mark Wooding 5 weeks ago
disorder-toys Various random small utilities... Mark Wooding 2 years ago
distorted-ansible Ansible configuration for... Mark Wooding 8 years ago
distorted-ansible.secrets Secrets for distorted.org... Mark Wooding 8 years ago
distorted-backup A half-written backup system... Mark Wooding 11 years ago
distorted-bits Small utilities used to manage... Mark Wooding 9 years ago
distorted-chroot Machinery for managing Debian... Mark Wooding 2 years ago
distorted-keys A Userv-based key management... Mark Wooding 6 years ago
distorted-letsencrypt Wrapping around the EFF LetsEn... Mark Wooding 2 years ago
dnd Basic Dungeons & Dragons summa... Mark Wooding 8 years ago
dnserr A DNS zone with lots of (inten... Mark Wooding 7 years ago
doc/deny Deniably authenticated asymmet... Mark Wooding 12 years ago
doc/ips Introduction to Provable Secur... Mark Wooding 17 years ago
doc/modes New proofs for old modes Mark Wooding 17 years ago
doc/texmf Essential stuff to put on... Mark Wooding 3 years ago
doc/wrestlers The Wrestlers protocol: paper... Mark Wooding 4 years ago
dot-forward .forward file support for... Mark Wooding 18 years ago
dpkg Debian package manager --... Mark Wooding 3 years ago
drwho Story list and companion graph... Mark Wooding 17 months ago
dvddb Symbiosisware for maintaining... Mark Wooding 8 months ago
dvdrip Symbiosisware hack for copying... Mark Wooding 22 months ago
dyndns Simple dynamic DNS server... Mark Wooding 8 years ago
epls Symbiosisware and data for... Mark Wooding 8 months ago
exim-config The distorted.org.uk Exim... Mark Wooding 21 months ago
ezmlm Mailing list manager for qmail... Mark Wooding 18 years ago
fastforward /etc/aliases support for qmail... Mark Wooding 18 years ago
finally Macro for deferring cleanup... Mark Wooding 9 months ago
firewall Firewall scripts for distorted... Mark Wooding 2 months ago
fixed-hack Unpleasant hacking to restore... Mark Wooding 14 years ago
fringe The `same-fringe' problem... Mark Wooding 10 years ago
fwd Port forwarder with too many... Mark Wooding 5 years ago
getdate-python GNU get_date parser: trivial... Mark Wooding 11 years ago
glau gitolite-adduser: Allow Gitoli... Mark Wooding 9 years ago
hippotat Local modifications for Ian... Mark Wooding 6 years ago
ircbot A helpful IRC bot; import... Mark Wooding 6 years ago
jlisp Lisp/Java interface stuff... Mark Wooding 12 years ago
jog REXX interpreter extensions... Mark Wooding 17 years ago
kalyna-python Python bindings for Kalyna... Mark Wooding 6 years ago
latex-intro Intro to LaTeX for IBM retirees. Mark Wooding 23 months ago
libspamc SpamAssassin client library... Mark Wooding 18 years ago
lisp A small Lisp utilities library Mark Wooding 5 years ago
mLib mLib utilities library Mark Wooding 5 days ago
mLib-python mLib utilities library: Python... Mark Wooding 3 years ago
mdw-cross Simple framework for cross... Mark Wooding 3 years ago
mdwfonts LaTeX font selection hacking Mark Wooding 3 years ago
mdwslides LaTeX slides support (based... Mark Wooding 17 years ago
mdwtools Various LaTeX packages Mark Wooding 9 months ago
mgLib mgLib GTK+ library (small... Mark Wooding 18 years ago
mirror-admin Mirror scripts for distorted... Mark Wooding 9 years ago
misc Collection of miscellaneous... Mark Wooding 3 years ago
mm Simple Mastermind game Mark Wooding 4 years ago
mup Music publishing software... Mark Wooding 17 years ago
newkind Elite: The New Kind (by Christ... Mark Wooding 19 years ago
newsgate Simple news<->mail gateway... Mark Wooding 17 years ago
ocb-tv Generate test vectors for... Mark Wooding 6 years ago
odin-cgi CGI scripts for odin.gg services Mark Wooding 21 months ago
pixie Passphrase pixie for GPG ... Mark Wooding 18 years ago
preload-hacks LD_PRELOAD hacks Mark Wooding 5 years ago
profile Dotfiles and other configuration. Mark Wooding 4 days ago
pyke The Python Kit for Extensions... Mark Wooding 3 years ago
python-cdb Python bindings for Dan Bernst... Mark Wooding 6 years ago
qmail qmail mail transport (local... Mark Wooding 13 years ago
quine Enable arbitrary C programs... Mark Wooding 13 years ago
rcheck A simple remote monitoring... Mark Wooding 8 years ago
rhodes Distributed discrete log;... Mark Wooding 6 years ago
rocl Right On Command-Line: Elite... Mark Wooding 7 years ago
rsv Rust victim account configuration. Mark Wooding 10 months ago
rsync-backup Yet another backup script... Mark Wooding 6 years ago
rubik A solution to Rubik's cube... Mark Wooding 4 years ago
runlisp Run Common Lisp programs from... Mark Wooding 2 years ago
scad OpenSCAD models that I've... Mark Wooding 11 months ago
secnet Secnet virtual private network... Mark Wooding 4 years ago
services Manage /etc/services in chunks... Mark Wooding 18 years ago
sgt/agedu Simon Tatham's `agedu' utility... Mark Wooding 11 years ago
sgt/charset Simon Tatham's `charset' libra... Mark Wooding 11 years ago
sgt/halibut Simon Tatham's `halibut' docum... Mark Wooding 11 years ago
sgt/library Simon Tatham's data structures... Mark Wooding 11 years ago
sgt/putty Simon Tatham's PuTTY GUI SSH... Mark Wooding 10 years ago
sgt/puzzles Simon Tatham's portable puzzle... Mark Wooding 11 years ago
sgt/tweak Simon Tatham's `tweak' tool... Mark Wooding 14 years ago
sgt/utils Simon Tatham's `utils' collect... Mark Wooding 11 years ago
shells Various bizarro user shells... Mark Wooding 18 years ago
skel New file skeletons for Emacs Mark Wooding 4 years ago
sod Simple Object Design: an objec... Mark Wooding 3 years ago
ssh-ca A simple SSH certificate autho... Mark Wooding 6 years ago
ssr The Straylight Source Distribu... Mark Wooding 3 years ago
stgit GIT patch-maintenance porcelai... Mark Wooding 13 years ago
storin A 96-bit blockcipher designed... Mark Wooding 6 years ago
strayman LaTeX document class for vario... Mark Wooding 9 months ago
sw-tools Tools for managing local softw... Mark Wooding 18 years ago
termux-packages Unnamed repository; edit this... Mark Wooding 5 years ago
tgal Trivial Gallery: a simple... Mark Wooding 8 months ago
tig Full-screen terminal Git browser. Mark Wooding 17 years ago
tripe Trivial IP Encryption: a simpl... Mark Wooding 21 months ago
tripe-android Android app for the TrIPE... Mark Wooding 5 years ago
tunneluser Service user for establishing... Mark Wooding 8 years ago
udpkey Transmit and receive cryptogra... Mark Wooding 7 years ago
unet User network devices: Linux... Mark Wooding 18 years ago
userv-utils Userv utilities (local modific... Mark Wooding 6 years ago
vmctl Constrained VM management... Mark Wooding 8 years ago
with-authinfo-kludge Adverbial modifier conferring... Mark Wooding 5 years ago
xchg-rax-rax Unnamed repository; edit this... Mark Wooding 3 years ago
xfonts-traditional X11 fonts the way they used... Mark Wooding 12 years ago
xor XOR puzzle game, reimplemented... Mark Wooding 18 years ago
xtoys Various simple X tools Mark Wooding 11 months ago
yaid Yet Another Ident Daemon. Mark Wooding 4 years ago
zone Generate DNS zone files using... Mark Wooding 3 weeks ago
zoneconf Tool for BIND configuration... Mark Wooding 8 years ago
zones Zone files for the DNS zones... Mark Wooding 2 weeks ago
zx-fizzbuzz Unnamed repository; edit this... Mark Wooding 2 years ago