What can software authors do to help Linux distributions and BSDs package their software?

2 min read Original article ↗

Even though it seems as though operating system package managers are almost falling out of favor in exchange for a proliferation of language-specific package managers—what can software authors do to make it easier for people package their software?

Some aspects that I've been thinking about:

  • What can be done to minimize friction with building and installation?
  • Is a curl | bash pattern okay enough for packagers or should it be expected that they will always try to build things the hard way from source?
  • Are there entire languages or ecosystems to avoid for software that desires to be packaged?
  • What's the most recent dependencies and language version may be or should authors aim to use the latest versions of everything have the packagers sort it out?
  • Are there projects that serve as positive or negative examples that could be referenced?
  • What is some information that would be useful to have for the people who backport bugfixes and security vulnerability fixes to older, packaged versions of the software?

For C/C++ in particular:

  • Is autotools still the way to go to provide a “uniform” build environment?
  • Are plain Makefiles okay if they respond to DESTDIR and PREFIX?
  • Is it reasonable to use other build systems that include build-time dependencies beyond make (e.g. scons, CMake)?