* reverse proxying support: gmid now can relay gemini requests to other hosts.
* install gg too: it's a simple gemini client ("gemini get") initially developed as part of the regression suite.
* added OCSP stapling support (by @The-King-of-Toasters, thanks!)
* add gencert, a simple script to generate self-signed certs.
* add renew-certs, a script to automatically renew self-signed certs.
* multiple -n partially dump the parsed configuration.
### Improvements
* reworked the fastcgi subsystem, now it's completely asynchronous.
* refactored the internal of the server too.
* refactored the regression suite (in particular reduced the timeout for single tests from 30 to 10 seconds.)
* configure: add support for --prefix=... autoconf-style flag.
* relax the "wont proxy" check: don't check that the port in the request is the same we're listening on. Suggested and discussed with Allen Sobot, thanks!
* relax the strict ordering of options, locations and proxy blocks inside a server block.
### Bug fixes
* don't pass through illegal replies from CGI scripts.
* fix the "double slash" error in logs.
* fix the configure for cross-compilation: don't run the test binaries just built. Suggested by Nikolay Korotkiy (@sikmir), thanks!
* (seccomp) allow ugetrlimit(2), needed by glibc on arm7l. By Max, thanks!
* fix the misleading example in the manpage: macros may not be reserved words
## 2021/07/10 - 1.7 “Space-dye Vest”
Starting from this version gmid doesn't depend on lex anymore, but yacc is still needed.
### New features
* initial fastcgi support! (it's still young!)
* added user-defined macros, either via ‘-Dname=val’ or directly in the configuration file.
* new ‘include’ keyword to load additional configuration files.
* new ‘env’ rule to define environment vars for CGI scripts.
* new ‘alias’ rule to define hostname aliases for a server.
* allow ‘root’ to be specified per-location block.
* pidfile support with the new ‘-P’ cli flag.
* define ‘TLS_VERSION’, ‘TLS_CIPHER’ and ‘TLS_CIPHER_STRENGTH’ for CGI scripts.
### Improvements
* remove limits on the number of virtual hosts and location blocks that can be defined.
* print the datetime when logging to stderr.
* use ‘text/x-patch’ for ‘.patch’ and ‘.diff’ files.
* sort the auto index alphabetically.
* various improvements to the log management.
* drop the dependency on lex.
* added ‘--help’ as synonym of ‘-h’ and ‘-V’/‘--version‘ to print the version.
* c-like handling of strings in the configuration file: when two or more strings are next to each-others, are automatically joined into a single string. This is particularly useful with $-macros.
### Bug fixes
* correctly handle CGI scripts that replies with the maxium header length allowed.
* fixed the static target.
* fixed recursive mkdirs for configless mode (i.e. create ‘~/.local/share/gmid’)
* logs sent to syslog now have proper priority (before every message ended up as LOG_CRIT). Found by Anna “CyberTailor”, thanks!
* ensure ‘%p’ (path) is always absolute in ‘block return’ rules.
* fix automatic certificate generation, it caused problems on some adroid devices. Found by Gnuserland, thanks!
* document the ‘log’ rule.
* the seccomp filter was reworked and now it's known to work properly on a vast range of architectures (to be more specific: all the architectures supported by alpine linux), see github issue #4. Prompted and tested by @begss, thanks!
* various improvements to the configure script, notified and fixed by Anna “CyberTailor”, thanks!
* added a timeout to the regression tests.
### Breaking changes
* if duplicate rules are found in the configuration file, an error is now raised instead of silently using only the last value.
* (sort of) ‘gg’ moved to ‘regress’ as it's only used in the regression suite.
* (notice) the “mime "mime-type" "extension"” rule was deprecated and replaced by the new “map "mime-type" to-ext "extension"”. The ‘mime’ rule will be removed in a future version because its syntax is incompatible with the new string auto-concat mechanism.