Hi all,
I am very happy to release Gophernicus version 3.1. A large number of changes have been made since the last release, including:
* OpenBSD pledge and unveil support. * A new filetypes system. * -nH to disable HTTP responses. * A new build system. * A manual page. * An official Debian package coming in the next stable release of Debian! * A wide variety of bug fixes.
Please note that the way in which Gophernicus is built and installed has changed significantly. It now uses a more traditional `./configure && make && make install` setup, with a hand-written configure script, that attempts to emulate autotools to an extent. Please note that a `--listener` argument is required. As you may be aware, Gophernicus does not listen to a port. It requires a tool such as systemd, inetd or xinetd to work and pass through requests to Gophernicus. In the past, this was auto-detected in the Makefile, but often poorly and not portably. The option to autodetect is still there, but you must be explicit about it, by using `--listener=autodetect`. Otherwise, choose a listener using the same argument, for example `--listener=systemd`.
For clarity, this is an example install:
``` ./configure --listener=xinetd make sudo make install ```
The previous build system did not support parallelization, but the new one does. You can pass `-jx` to make now.
Thanks to the work of @ryanakca, we will now have a Debian package available just in time for the next stable release of Debian (hopefully!). If you are a deb package user, note that we have removed the debian packaging scripts from the repository, to allow downstream to manage this. You have 3 options.
* wait for the official Debian package to come into your repositories and apt will handle the rest. You will not need to do anything but will not have the 3.1 release for a number of months. * compile and install manually, preferably to /usr/local or /opt as not to mess with the system package; when the new Debian package comes, you can easily remove the manual install. * take the Debian package scripts from the downstream repository and manually create a package, once these scripts are complete. This document will be edited when this occurs.
Along with this release we are now distributing binaries. They are:
* An x86_64 glibc binary, linked against glibc 2.30. * An x86_64 static binary. * An x86_64 musl-linked binary (1.1 series). * An AARCH64 glibc binary, linked against glibc 2.30. * An AARCH64 static binary.
These are available here. https://github.com/gophernicus/gophernicus/releases/tag/3.1.
I would like to thank all these contributors, especially those who made quite significant changes, particularly @augfab (proper manual page, `-nH`) and @vext01 (OpenBSD pledge and unveil support), as well as @hb9kns (Gophernicus maintainer).
``` 72 fosslinux 9 Augustin Fabre 4 Emil Engler 2 Bradley D. Thornton 2 Yargo 2 bdeshi 1 Edd Barrett 1 Ryan Kavanagh 1 cdmnky73 ```
Full list of (user-seen) changes (not all commits included):
- Allow document roots specified with relative paths - Drop debian packaging - New build system - Rework logging logic - Replace spurious tabs in menu with dashes - Don't install documentation - Fix parallel builds - Declare function prototypes explicitly - Sort the ~ selector by date modified - Rework manual page - Propagate FLAGS value to recursive MAKE calls - Fix memory leak in gophermap parsing - Add option -nH to disable HTTP response to HTTP GET/POST requests (#66) - Make description in die() appears everywhere - fix LDFLAGS - Filetypes2 (#57) Re-do filetypes system. - corrected some typos in author's names (#55) - build: Force create symlink - ci: New Travis system for linux and macOS builds and installs - refactor: New hierarchy and refactored Makefile - use user-defined CC by default - add -b option to git clone instead of git checkout - Add OpenBSD pledge(2) and unveil(2) support. - change default charset to utf-8 - change max-width to 67 (#39)
Please feel free to ask any questions!
-fosslinux and the Gophernicus developers
gophernicus@lists.tildeverse.org