Ian Jackson's free software

I have written a number of pieces of free software. Almost all of these are released under the GNU General Public Licence. Some of them are more-or-less proper software products.

dpkg, the Debian Project's package installation tool

I wrote the current implementation of dpkg, the package installation tool used by Debian GNU/Linux. Some of the early specification was done by Ian Murdock; Klee Dienes now maintains the source tree but I still do development.

adns, an advanced alternative, asynchronous resolver

adns is a replacement resolver library. Its programming interface is at once easier to use and more powerful than the standard libresolv. For example, responses are automatically decoded into native C formats, and it is possible to launch many queries and once and deal with the responses asynchronously.

userv, the `user services' trust-boundary-crossing program call facility

userv (pronounced you-serve) is a program which, according to the specification, is
a Unix system facility to allow one program to invoke another when only limited trust exists between them.

The Debian bug tracking software

Now available in a form suitable for use by other projects, this system is a set of scripts which maintain a database of problem reports. All input and manipulation of reports is done by email, and the outstanding, recently closed and other listings of reports are made available via a webserver.


I was annoyed at what I saw as deficiencies in Linuxdoc-SGML, so I wrote my own miniature SGML processing system. It takes input in its own DTD (which specifies the features of the system precisely) and generates plain text (optionally with nroff-like overstrikes), HTML and PostScript (via Lout, the typesetter by Jeffrey Kingston).

debiandoc-sgml is available as a Debian package; the source .tar.gz file from the Debian FTP archive should be useable on most modern systems.

Emacs auto-pgp

A program to smooth the interoperation between Emacs and PGP2. This can still be found on some PGP FTP sites and I still use this, but more sophisticated tools are now available.


A program for demultiplexing a single NNRP connection across several NNRP servers based on the newsgroup(s) being accessed, and which supports an [X]AUTHINFO GENERIC authentication mechanism. This is not a well-documented, well-supported product, but available in the download area are the source code and Debian/i386 binary package. The CVS repository is also available via cvsweb and rsync.

SAUCE - Software Against Unsolicited Commercial Email

An SMTP-receiver that mediates access to your real MTA, and has the following features: See the web page for full blurb and download details.

Mokie-coke - A virtual software project

This is not the software you are looking for. Its main purpose is to provide exposure for various contact addresses, which are specially handled as described above.


I used to maintain the Linux FAQ. I've write or helped write a number of the Linux Documentation Project's section 2 manpages (the ones which document system calls).

I've maintained a number of Debian packages at one point or another; in the course of this and otherwise I've submitted patches (most of which were accepted) to many free software packages, including the Linux kernel, GCC, GNU tar, GNU texinfo.

I've written various other small programs, which may make it onto this page at some point.

Access to Ian Jackson's projects by CVS

The CVS repositories of many of my software projects, including some unreleased ones, are available. For these projects, the repositories are available by the following routes:


Both of these mechanisms access the same mirror of the repository; they do not access the repositories themselves, most of which are kept on my home systems. This means there will be a delay of up to a week between me checking in changes or making a release and the publicly available CVS being updated.

Legal notices, release status, etc

Any software licences or redistribution permissions, release status documentation, and the like you get via CVS are NOT INTENDED to have legal effect. Just because I check a document into CVS does not mean that I stand by its contents.

For released programs, you may redistribute all versions of the source code you obtain via the CVS interfaces under the same terms as the most recently publicly released version of the program.

For unreleased programs, you should check out the CVS HEAD. If it has a permission notice allowing redistribution under the terms of the GNU GPL, version 2 or later, then you may redistribute any CVS version under those terms.

If you check out any version and it has some files whose copyright holder is not me, and which claim to be licensed under the GNU GPL or GNU LGPL, then the GNU GPL applies to whole of that version. If you redistribute you must ensure that the copyright notices reflect this (for example by changing any references to the LGPL to the GPL).

Otherwise I (and any other authors) retain all rights and you may not redistribute the program at all.

For the avoidance of doubt, let me restate some consequences of this: Licences and permissions you find on CVS branches, or non-GPL licences you find in the CVS repository, do not apply. Even the GPL, found on the CVS HEAD, may not apply - see above for details.

Ian Jackson / ian@chiark.greenend.org.uk.

Use any browser Campaign for a non-browser-specific WWW