Ian Jackson's free software
I have written a number of pieces of free software. Almost all of
these are released under one of the GNU General Public Licences.
Some of them are more-or-less proper software products.
This page is ordered not by quality or importance. Rather, at the
top you will find things which are you less likely to find
elsewhere.
Projects of my own
Things that other people have actually used, or which are otherwise
particularly interesting include:
- Otter,
a game server for arbitrary board games. (blog post, source),
- authbind (source),
an LD_PRELOAD + setid helper for controlled delegation of binding to
privileged ports.
- xtrlock,
a minimal X display locking program (now maintained by others).
- YARRG, a play aid
(client and web service) for trading in the proprietary online game
Yohoho Puzzle Pirates (source),
- plag-mangler
(webpage,
source),
a tool for manipulation and layout of planar graphs, which I used to
good effect to make a replacement board for the board
game Pandemic Rising Tide.
- rc-dlist-deque,
yet another doubly linked list library for Rust (but a useful one
this time).
(source,
crates.io)
- SAUCE aka "Software Against Unsolicited
Commercial Email", an SMTP Rejection Agent. It mediates access to
your real MTA and tries to block spam.
- In 1989 I released my first piece of GPL'd software, via a postal
software library: udefchar, a user-defined character set editor for
the Sinclair QL.
- I have done a fair amount
of design
for 3D printing; the most productised is probably
my hard case for
Fairphone 2.
I also have a large amount of other software stuff which is not very
productised.
I tend to push even unproductised and unreleased stuff to my several
sets of
personal
git
repositories
which as you will see also contain random clones of other projects,
generally because I wanted to share some (proposed) changes with
someone.
GNU
I am a GNU maintainer (despite
having
differences with RMS).
adns, an alternative,
asynchronous resolver library
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.
It also provides a convenient shell utility for querying the DNS and
getting directly useable answers. (Tools like dig and host are less
useful for scripting DNS clients, but much better for debugging the
DNS itself.)
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.
Inherited
I now
maintain secnet,
an interesting VPN program. It is currently mainly used by the
Sinister Greenend Organisation but I feel it has potential for much
wider application. I inherited it from Steve Early and I am
trying to improve and properly productise it.
In lieu of anyone else, I now appear to be the only person
maintaining the X11 window manager I
use, vtwm.
Debian
I have been heavily involved in Debian approximately forever.
My current main project in Debian is
dgit
(source),
which is part of various plans to try to make git workflows in and
around Debian more official, more useful and more automatic.
I'm a founder member of the Debian Ecosystem Init Diversity
Team, a joint venture between Debian contributors, folks from
Devuan, and upstream developers, working to maintain and improve
support in Debian and its derivatives for running with a variety of
non-systemd init systems.
I'm the current maintainer of a number of packages, including a few
of my own, and quite a number on a caretaker basis.
Past work
I originally wrote:
- dpkg, the Debian Project's package installation tool
- the Debian Bug Tracking System
- various Debian packaging utilities
- the first version of the Debian Policy Manual
- debiandoc-sgml, an SGML DTD and processing system which was
until recently used for the Debian Policy Manual
- autopkgtest, the test framework used for as-installed testing by
Debian and Ubuntu
- Debian's Constitution.
These have been substantially improved and extended, and are now maintained, by others.
I've maintained a number of Debian packages at one point or another.
I also served a term as Project Leader, during which I drafted the
Constitution which the project accepted by a plebiscite, and I
served for many years on the Debian Technical Committee.
Tor, Arti
Since the start of 2022,
I have worked for the Tor Project
on Arti,
the project to rewrite the primary Tor implementation in Rust.
Xen
Until the end of 2021,
my day job was to work on Xen for
Citrix.
As a Xen committer and maintainer, I was a key contributor to
of libxl,
the main Xen toolstack library.
I wrote and help maintain
osstest,
the Xen Project's CI system.
I helped the Xen Project draft and adopt
its Security
Policy and I am member of the Security Team.
I also try to help maintain the Xen packages in Debian.
Ian Jackson /
ijackson@chiark.greenend.org.uk