--- /dev/null
+Title: FLOSS activity in January/February 2024
+Slug: activity-2024-02
+Date: 2024-03-04 10:39:50 +00:00
+Category: columbiform
+Tags: activity, columbiform, freexian, planet-debian, planet-ubuntu
+
+Two months into my [new gig]({filename}/going-freelance.md) and it's going
+great! [Tracking my time]({filename}/task-management.md) has taken a bit of
+getting used to, but having something that amounts to a queryable database
+of everything I've done has also allowed some helpful introspection.
+
+Freexian [sponsors](https://www.freexian.com/about/debian-contributions/) up
+to 20% of my time on Debian tasks of my choice. In fact I've been spending
+the bulk of my time on
+[debusine](https://freexian-team.pages.debian.net/debusine/) which is itself
+intended to accelerate work on Debian, but more details on that later.
+While I contribute to Freexian's
+[summaries](https://www.freexian.com/tags/debian-contributions/) now, I've
+also decided to start writing monthly posts about my free software activity
+as many others do, to get into some more detail.
+
+## January 2024
+
+ * I [added Incus
+ support](https://salsa.debian.org/ci-team/autopkgtest/-/merge_requests/272)
+ to autopkgtest. [Incus](https://linuxcontainers.org/incus/) is a system
+ container and virtual machine manager, forked from [Canonical's
+ LXD](https://github.com/canonical/lxd). I switched my laptop over to it
+ and then quickly found that it was inconvenient not to be able to run
+ Debian package test suites using
+ [autopkgtest](https://manpages.debian.org/man/autopkgtest), so I tweaked
+ autopkgtest's existing LXD integration to support using either LXD or
+ Incus.
+ * I discovered [Perl::Critic](https://metacpan.org/dist/Perl-Critic) and
+ used it to tidy up some poor practices in several of my packages,
+ including debconf. Perl used to be my language of choice but I've been
+ mostly using Python for over a decade now, so I'm not as fluent as I used
+ to be and some mechanical assistance with spotting common errors is
+ helpful; besides, I'm generally a big fan of applying static analysis to
+ everything possible in the hope of reducing bug density. Of course, this
+ did result in a couple of regressions
+ ([1](https://salsa.debian.org/pkg-debconf/debconf/-/commit/4f8b9f969679fa4a38aca8da2702057ea861ffae),
+ [2](https://salsa.debian.org/pkg-debconf/debconf/-/commit/7274bf66e82b2557156813f93ed0592539a2ac1c)),
+ but at least we caught them fairly quickly.
+ * I did some overdue debconf maintenance, mainly around tidying up error
+ message handling in several places ([1](https://bugs.debian.org/797071),
+ [2](https://bugs.debian.org/754123),
+ [3](https://bugs.debian.org/682508)).
+ * I did some routine maintenance to move several of my upstream projects to
+ a new [Gnulib stable
+ branch](https://www.gnu.org/software/gnulib/manual/html_node/Stable-Branches.html).
+ * [debmirror](https://salsa.debian.org/debian/debmirror) includes a [useful
+ summary](https://salsa.debian.org/debian/debmirror/-/blob/master/mirror_size)
+ of how big a Debian mirror is, but it hadn't been updated since 2010 and
+ the script to do so had bitrotted quite badly. I [fixed
+ that](https://salsa.debian.org/debian/debmirror/-/commit/7ae93742377d9205c57b7e47ef96d4663110f0ff)
+ and added a recurring task for myself to refresh this every six months.
+
+## February 2024
+
+ * Some time back I added AppArmor and seccomp confinement to man-db. This
+ was mainly motivated by a desire to [support manual pages in
+ snaps](https://forum.snapcraft.io/t/support-for-man-pages/2299/24) (which
+ is [still open](https://bugs.launchpad.net/snapd/+bug/1575593) several
+ years later ...), but since reading manual pages involves a [non-trivial
+ text processing toolchain mostly written in
+ C++](https://www.gnu.org/software/groff/), I thought it was reasonable to
+ assume that some day it might have a vulnerability even though its track
+ record has been good; so `man` now restricts the system calls that
+ `groff` can execute and the parts of the file system that it can access.
+ I stand by this, but it did cause some problems that have needed a
+ succession of small fixes over the years. This month I issued
+ [DLA-3731-1](https://lists.debian.org/debian-lts-announce/2024/02/msg00001.html),
+ backporting some of those fixes to buster.
+ * I spent some time chasing a [console-setup build
+ failure](https://bugs.debian.org/1063413) following the removal of
+ kFreeBSD support, which was uploaded by mistake. I suggested a [set of
+ fixes](https://salsa.debian.org/holgerw/console-setup/-/merge_requests/1)
+ for this, but the author of the change to remove kFreeBSD support decided
+ to take a different approach (fair enough), so I've abandoned this.
+ * I updated the [Debian zope.testrunner
+ package](https://tracker.debian.org/pkg/zope.testrunner) to 6.3.1.
+ * openssh:
+ * A Freexian collaborator had a problem with automating installations
+ involving changes to `/etc/ssh/sshd_config`. This turned out to be
+ resolvable without any changes, but in the process of investigating I
+ noticed that my dodgy arrangements to avoid
+ [ucf](https://manpages.debian.org/man/ucf) prompts in certain cases
+ had bitrotted slightly, which meant that some people might be prompted
+ unnecessarily. I [fixed this and arranged for it not to happen
+ again](https://salsa.debian.org/ssh-team/openssh/-/commit/b9671cc74475922fa61e9ebdba56ec84446d19ac).
+ * Following a [recent debian-devel
+ discussion](https://lists.debian.org/debian-devel/2024/02/msg00239.html),
+ I realized that some particularly awkward code in the OpenSSH
+ packaging was now obsolete, and [removed
+ it](https://salsa.debian.org/ssh-team/openssh/-/commit/a6c7b9ef532489671e3a654ad38102cc30d94b5a).
+ * I backported a [python-channels-redis
+ fix](https://bugs.debian.org/1027387) to bookworm. I wasn't the first
+ person to run into this, but I rediscovered it while working on debusine
+ and it was confusing enough that it seemed worth fixing in stable.
+ * I fixed a [simple build failure in
+ storm](https://bugs.debian.org/1064699).
+ * I dug into a very confusing cluster of celery build failures
+ ([1](https://bugs.debian.org/1056232),
+ [2](https://bugs.debian.org/1058317),
+ [3](https://bugs.debian.org/1063345)), and tracked the hardest bit down
+ to a [Python 3.12
+ regression](https://github.com/python/cpython/issues/115874), now fixed
+ in unstable thanks to Stefano Rivera. Getting celery back into testing
+ is blocked on the [64-bit `time_t`
+ transition](https://wiki.debian.org/ReleaseGoals/64bit-time) for now, but
+ once that's out of the way it should flow smoothly again.