Umbrellix Left politics, programming, and self-hosted Internet services: experiences, lessons and hope


libsuitcase is a suitcase of mostly-unrelated headers and libraries which we think would be of purpose to some user.

Origin story

The… second? iteration of MXF-Remote, part of Nightmare Mail was somewhere between frustrating and an abomination unto God, so I decided I needed to kill it. However, the event loop portion, using UTHash to store the actions to take on checking the requested events, pivoting about an iopause_stamp() (/pkg/, worked flawlessly. So I wanted to extract it and turn it into something useful.


Not yet. It’s vapourware right now.



This package begrudgingly requires /pkg/, which it references as /package/prog/skalibs. Without this, some components will not be available, like the event loop (which requires iopause, and tai, both of which are part of skalibs), and a local stand-in will be used for stralloc. While I do not like them, the skalibs are a good thing, and you should have them installed, under the disendorsed /package.

Some components require, and are only useful if you use, the Tcl scripting language. Without Tcl, these components are useless. Their installation does not, in any way, require Tcl, and they are already correctly installed as soon as you symlink the package to its current-version address of /pkg/


This package is host/ under /package, which we do not endorse, and under /pkg described in the same document as our disendorsement of /package.

It should really be structured as multiple packages, consisting of its entirely separate components.


We plan to use an autotools-like installation process, though without any GNU utilities (other than your compiler if you use GCC, and your Make if you use GNU Make) - ./configure && make -jN && make install where N is the number of CPU threads you would like to devote to compiling the compiled portions of suitcase. Make will internally invoke redo for compilation, the system install program (or a supplied one) for installation to staging, and system tar (which is expected to be bsdtar) for the construction of packages. It will also be possible to build the package without Make. If redo is not correctly installed at your site, we endorse Leah Neukirchen’s C implementation, at, which does not have a name under /pkg or /package. We suggest installing it to, and then symlinking it to /cmd or another appropriate path.

We also plan on technical compatibility with Jarc’s sptools. For this reason, we will not be using @-prefixed commit code version numbers as is legal in /pkg.