Ian Jackson's software page (original) (raw)
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 ofpersonal git repositorieswhich 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 (despitehaving 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 theSinister 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 isdgit(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 forCitrix.
As a Xen committer and maintainer, I was a key contributor to of libxl, the main Xen toolstack library.
I wrote and help maintainosstest, 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.