‹ back home

My packaging policy

2022-08-13 #open-source

The open source sphere has continuously had a lot of discussion regarding packaging, and there’s often an expectation that upstream developers should distribution packages. I want to make it clear where I stand on this, what users of my projects can expect, and what how packagers can contribute.

As a general rule, for projects I maintain, I’ll only do source releases (e.g.: tag a version as v2.0.1 and sign that tag or tarball). For a few, I’ll provide binary releases (this applies especially to compiled languages where downloading the binary is actually meaningful). Anyone is free to download, build and use these, since that’s the whole point of open source software.

Obviously, this is rather inconvenient for many users: it’s much more convenient to use a deb, apkg orrpm package that they can easily install and keep updated via their distribution’s package manager.

Honestly, it’s usually too much work for me (an most upstream developers) to provide these packages. I don’t use Debian and Fedora. I’m not familiar with all the quirks of rpm and deb. Even if I take the time to build these, I’ll be shipping a packages for platforms that I don’t use. There would be zero quality control. And that additional work is not something for which I want to sign up. I want to focus on maintaining upstream.

Attempting to ship a single deb package as upstream also neglects the different distributions and release channels out there. Some users are on Debian-stable, others on Debian-testing, others on Mint, others on Ubuntu, etc. Availability of dependencies vary, and each platform has its own quirks. While expecting upstream to ship deb packages sounds simple, in reality there’s a very large permutation of targets for which one must build and test, and shipping a single deb package is just opening the door for a plethora of bug reports.

That said, I’ve nothing against others packaging my tools for different platforms. In fact, I encourage it! If someone with the right expertise wants to build a Debian package for caffeine-ng, darkman, vdirsyncer or any other project, I welcome the effort. My focus is on shipping releases ready to be packaged, and let packagers do their jobs.

Additionally, if any packager finds obstacles, or needs to apply patches for code to build on a given platform, please open an issue (or send a patch). I don’t mind giving guidance. But don’t expect me to know all the quirks of every distribution.

Update 2022-08-14

Added a mention of how a single deb won’t work on every Debian-based distro.

Have comments or want to discuss this topic?
Send an email to my public inbox: ~whynothugo/public-inbox@lists.sr.ht.
Or feel free to reply privately by email: hugo@whynothugo.nl.

— § —