It took way longer than it should have, but I eventually built a Dovecot plugin that adds support for SCRYPT (a password hashing algorithm). My poor cloud servers take too long to compute ARGON2 hashes (which are harder to attack than other algorithms), hence the plugin.
Some kind soul already wrote the code, but it didn’t work on modern versions of Dovecot, and I wanted it built into a Debian package I could add on to a Dovecot in a Docker image. So off to work.
Gitea has a built-in repository for Debian packages, and I used its Gitea Actions to automate the build, packaging and uploading, then I tweaked my Dovecot image to include my new repository and install the plugin from there.
I never built a Debian package before; it turns out that they’re quite simple most of the time, just the files/directories you want to install and some metadata files to indicate dependencies, architectures, versions, etc.
The hardest bit was understanding the API change and fixing the code. Along the way I learned more about Linux libraries and the tools for inspecting them.
All in all it was a fun side project to tackle. I learned the #Dovecot #API, #LibSodium, #Gitea Actions, #Linux libraries, and #Debian packaging. Not a bad way to spend a slow time in my work schedule.