Syslog-ng uses a container-based system to generate the official source tgz and to build ready-to-use packages for various Linux distributions. Recently, we added support for some rolling RPM Linux distributions, allowing us to spot breaking changes before a stable release of the OS would become available.
How does it work?
On each pull request on GitHub, we build packages for various platforms to see if the change breaks the build and to do some minimal testing on them. With this change, we now build packages not only for regular Linux releases, but also for two rolling RPM Linux distributions. One of these is Fedora Rawhide, which is the development version of Fedora Linux and the upcoming RHEL releases in the long term. The other one is CentOS Stream 9, which is the development version of RHEL 9 releases. As the majority of our users run syslog-ng on RHEL and compatible Linux distributions, these package builds will give us valuable early warnings on breaking changes.
This build system is called DBLD (Docker Build) and is useful not just for developers, but also for regular syslog-ng users as well. You can learn more about it from one of my previous blogs: https://www.syslog-ng.com/community/b/blog/posts/dbld-a-syslog-ng-developer-tool-not-just-for-developers or from the README on GitHub: https://github.com/syslog-ng/syslog-ng/tree/master/dbld
How can you use it yourself?
First of all, you need Docker or Podman (as I wrote in the above-mentioned blog, Podman works perfectly, too). And you also need git to check out the syslog-ng sources:
git clone https://github.com/syslog-ng/syslog-ng/
Once the sources are ready, change to the syslog-ng directory and build a source tgz:
dbld/rules tarball
As a first step, it will download a container setup for building syslog-ng. Then, it will build the source tgz file. You can find the resulting file in the dbld/build sub-directory.
Starting the command without any arguments will give you some help information. Among others, it lists the supported operating systems. To generate packages for CentOS Stream 9, you can use the following command:
dbld/rules rpm-centos-stream9
You will find the packages in the above-mentioned directory.
What is next?
Of course, being able to build syslog-ng on a given platform does not mean that everything works as expected. The number of possible configurations is practically endless, so testing and feedback are very much appreciated! You can report issues at https://github.com/syslog-ng/syslog-ng/issues
-
If you have questions or comments related to syslog-ng, do not hesitate to contact us. You can reach us by email or even chat with us. For a list of possibilities, check our GitHub page under the “Community” section at https://github.com/syslog-ng/syslog-ng. On Twitter, I am available as @PCzanik, on Mastodon as @Pczanik@fosstodon.org.