Unless there is a serious problem, FreeBSD ports usually contains the latest stable syslog-ng release. However, sometimes people want to compile a git snapshot to test a new feature or bugfix. To do that, one way is to generate a syslog-ng release tgz on FreeBSD and edit the syslog-ng port files yourself. However, this needs some practice. As such, an easier solution is to use my weekly development snapshots.

Typically, once every week, I build a syslog-ng release tgz for myself from the very latest syslog-ng git master sources, and then try to compile it on openSUSE, Fedora and FreeBSD. Recently, I started to publish the release tgz on my website and the Makefile of the ports on GitHub. Mind you that I cannot guarantee to push out a snapshot each week, as it’s just a best effort project. But if it’s there, using it is easier than doing everything yourself.

Before you begin

I did all my development and testing on FreeBSD 13.1 with all the latest security updates and up-to-date FreeBSD ports and packages installed. However, the snapshot most likely also works on any supported FreeBSD release and also with the quarterly branch of ports.

You will need Git to download my ports development snapshot. I have the git-lite port installed, as it has a lot less dependencies and it is more than enough to download sources.

Downloading sources

Change to a directory that does not have a “freebsd” sub-directory, and then run:

git clone https://github.com/czanik/freebsd

This will clone my FreeBSD repo to the local directory. Change to the freebsd/syslog-ng4-devel directory. From here on, everything works as in a regular FreeBSD ports directory.

A single make command will let you configure which syslog-ng features are enabled, download sources from my web server and compile syslog-ng with the configured options. Run:


To install the latest syslog-ng git snapshot build on your system and clean up the directory, run:

make install clean


You are now ready to test the latest syslog-ng 4 git snapshot build on your FreeBSD system. If you use the default syslog-ng configuration, you will not notice any changes compared to syslog-ng 3.x. However, if you use PatternDB or the JSON parser, many destinations will behave differently, as data type information from these parsers are now preserved and used correctly on the destination side.

What is next?

If you run into any problems, please provide us with feedback 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.

Related Content