OpenBSD Journal

d2k17 Hackathon Report: Antoine Jacoutot on rc.d, syspatch, and more

Contributed by rueda on from the shell be right, mate dept.

Our next d2k17 report comes from Antoine Jacoutot (ajacoutot@), who writes:

My name is Antoine Jacoutot. After five hours on a hellish train ride, I have come to Starnberg with only one goal: to fix rc.d. But to do that, I can't be the OpenBSD developer I once was. To honor systemd's memory, I must be someone else. I must be something else.

So yeah... at d2k17 I worked on rc.d(8). It's disturbing yet amazing that after 7 years I still enjoy a lot working on that shell based framework. While hackathons are great for many things, what I like the most about them is that they empower people to start and/or finalize tricky projects. The small rc.d bit that I committed there was the actual result of two previous hackathons. It all started in Cambridge UK, went to Brisbane Oz and ended up in Starnberg DE. While the diff is small, it is the result of a few ping pong brain games between fellow developers and myself. It did two things:

  • introduce a background timer so that a fucked up or misconfigured daemon cannot hang the boot process; and we can now display a timeout marker when such a process reaches $daemon_timeout
  • a daemon that is not able to background itself (thank you systemd for encouraging that stupid trend by the way) and must use shell job control will now return a proper error code if it fails

Nothing shabby but well, "shell sucks!"
"Oh but I love shell <3 <3 <3 #DrinkTheKorn-Aid"
"Oh well, shell is hard, let's go shopping..."

Thank $DEITY I can now concentrate on syspatch(8) \o/
Good thing it's not shell again. Err.. wait... and people wonder why we consume so many beers during hackathons!
Anyway, I had a small todo list for to enhance that new hipster tool. Output is now much better when running from cron(8); because we all know how well `unattended-upgrades' work ;-) And because I'm into fashion computing, I made it more tolerant against small /tmp partitions so that my AWS instances could actually benefit from binary patching.

Then of course because I love pain at least as much as I love shell, I crawled into my lovely ports tree and did some terrible things like:

  • updating stuff (including a major update of cyrus-imapd to version 3.0.1)
  • fixing stuff (like fixing the output of Hashicorp "vault version")
  • cleaning and reviewing stuff (hello!)
  • laundering stuff (define HMAC_Update to NSS_HMAC_Update in Mozilla NSS to prevent a clashing symbol with libcrypto)
  • massaging rc.d(8) scripts after my rampage on rc.subr(8)

As usual I had a lot of fun. Thanks to the OpenBSD gang, the OpenBSD Foundation, genua gmbh and the girl who yelled at mpi@ after he watered her at the lake.

Thanks Antoine!

(Comments are closed)

  1. By Marc Espie (espie) on

    Well, at least you didn't stay stranded on San Servolo during the first ports hackathon.

  2. By brynet (Brynet) on

    > "Oh but I love shell <3 <3 <3 #DrinkTheKorn-Aid"

    Silly aja, hashtags can't contain hyphens.. this will never go viral.

    Nice write-up! ;-)

  3. By Renaud Allard (renaud) on

    Nice ideas for enhancing rc.d and syspatch.

    Let me guess you watched a lot of episodes of "Arrow" when in the train. ;)

  4. By Marc Espie (espie) on

    > Nothing shabby but well, "shell sucks!"
    > "Oh but I love shell <3 <3 <3 #DrinkTheKorn-Aid"

    Ah, but Antoine is the fastest shell-coder alive.

  5. By kraileth ( on

    Thanks for doing that work! For a while now it sounds like (thanks to Systemd) continuing to support GNOMEł on OpenBSD might no longer be feasible. This post now explicitly mentions the MATE desktop. Does that mean that it is likely to end up in ports in the near future?

  6. By Blake (2001:1b48:4:4:cabc:c8ff:fe96:6d2f) on

    "a daemon that is not able to background itself " is not really a daemon :-)

Latest Articles


Copyright © - Daniel Hartmeier. All rights reserved. Articles and comments are copyright their respective authors, submission implies license to publish on this web site. Contents of the archive prior to as well as images and HTML templates were copied from the fabulous original with Jose's and Jim's kind permission. This journal runs as CGI with httpd(8) on OpenBSD, the source code is BSD licensed. undeadly \Un*dead"ly\, a. Not subject to death; immortal. [Obs.]