💾 Archived View for gemini.dimakrasner.com › loksh-is-boring.gmi captured on 2023-04-26 at 13:22:37. Gemini links have been rewritten to link to archived content

View Raw

More Information

⬅️ Previous capture (2022-06-04)

-=-=-=-=-=-=-

loksh is Boring

loksh is a good example of "boring is good". It's probably my oldest actively maintained project and it received a boost of popularity in the Shellshock days, when some people wanted to replace Bash.

It became really boring and easy to maintain 3 years ago, when I moved the OpenBSD compatibility bits from loksh (and sister projects like locwm) to a library, lolibc. It uses #include_next and other tricks to make (some) OpenBSD code work as-is on Linux. In addition, it's a Meson subproject, so I could remove all the Makefile changes in loksh, because Makefile is unused. Now, the difference between OpenBSD's ksh and loksh is only one line, and I don't have to change anything when a new OpenBSD release is out. Usually, I can draft a new loksh release the same day a new OpenBSD release is out, while other ksh ports (like oksh), which emphasize portability, tend to be slower in that regard. This is possible only because loksh is boring: it doesn't do anything exciting with ksh (a "vanilla" port) and has a very focused goal (Linux support, with either glibc or musl). Although I prefer fun side projects, the engineer in me likes the way loksh evolved: tools should be useful and boring.

diff against upstream

loksh

locwm

lolibc

oksh

Distros that ship loksh