From 21dc3794790a6cc12f093cacc38e25f90396852c Mon Sep 17 00:00:00 2001 From: Omar Polo Date: Fri, 28 Jan 2022 08:34:39 +0000 Subject: misc tweaks + changelog.gmi --- site/changelog.gmi | 92 ++++++++++++++++++++++++++++++++++++ site/contrib.gmi | 15 ++---- site/index.gmi | 134 +++++++--------------------------------------------- site/quickstart.gmi | 6 +-- 4 files changed, 114 insertions(+), 133 deletions(-) create mode 100644 site/changelog.gmi (limited to 'site') diff --git a/site/changelog.gmi b/site/changelog.gmi new file mode 100644 index 0000000..1c3e764 --- /dev/null +++ b/site/changelog.gmi @@ -0,0 +1,92 @@ +# change log + +## 2021/10/15 - 1.7.5 “Space-dye Vest” fifth bugfix release + +This version includes the following bugfix + +* don’t die when a connection is closed before being accepted by gmid (i.e. handle ‘ECONNRESET’) + + +## 2021/09/24 - 1.7.4 “Space-dye Vest” fourth bugfix release + +This version includes the following bugfix: + +* fix a possible out-of-bound access when handling a request for a non-existent file in the root directory of a vhost that's matched by the cgi option + +and the relative regression test. + + +## 2021/09/19 - 1.7.3 “Space-dye Vest” third bugfix release + +### Improvements + +* follows symlinks +* improved documentation and added key generation example (thanks! Anna) + +### Bugfix + +* fix syslog logging on FreeBSD. Reported by Karl Jeacle, thanks! +* don't crash if ``-c'' is missing in configtest mode (-n). Reported by heph, thanks! +* allow fstat64 on linux (needed by glibc on aarch64). Reported by pine, thanks! + + +## 2021/07/19 - 1.7.2 “Space-dye Vest” second bugfix release + +This version incudes the following bugfix: + +* an un-initialized field in the configless code path leads to a crash on the first request. + +and the relative regression test. + + +## 2021/07/11 - 1.7.1 “Space-dye Vest” bugfix release + +This version includes two bugfixes: +* use ${MAKE} to recursively call make. +* 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. diff --git a/site/contrib.gmi b/site/contrib.gmi index 42185a3..59721e3 100644 --- a/site/contrib.gmi +++ b/site/contrib.gmi @@ -1,8 +1,4 @@ -=> / Home -=> /quickstart.gmi Quickstart -=> /gmid.1.txt docs - -# Contrib +# contributed files This directory is for additional contributed files which may be useful. @@ -10,8 +6,7 @@ This directory is for additional contributed files which may be useful. => https://git.omarpolo.com/gmid/tree/contrib/Dockerfile contrib/Dockerfile -A sample Dockerfile. The resulting image is a classic alpine linux image with a statically linked gmid installed as /bin/gmid. -To build the image: +A sample Dockerfile. The resulting image is a classic alpine linux image with a statically linked gmid installed as /bin/gmid. Build the image with: ```instructions to build the image # docker build -f contrib/Dockerfile -t gmid . @@ -45,9 +40,9 @@ contrib/gmid is a sample service file for OpenBSD rc(8). To install it: then the usual ‘rcctl [start|stop|enable|restart] gmid’ are available. -## Systemd unit file +## systemd unit file -=> https://git.omarpolo.com/gmid/tree/contrib/gmid.service gmid.service +=> https://git.omarpolo.com/gmid/tree/contrib/gmid.service contrib/gmid.service A simple service file for systemd. To install it @@ -81,7 +76,7 @@ contrib/renew-certs is a script meant to be run in a crontab that watch for cert Read the documentation with: perldoc renew-certs -## Vim syntax files +## vim syntax files => https://git.omarpolo.com/gmid/tree/contrib/vim contrib/vim diff --git a/site/index.gmi b/site/index.gmi index 7d72f0f..fd65c4f 100644 --- a/site/index.gmi +++ b/site/index.gmi @@ -1,7 +1,3 @@ -=> contrib.gmi contrib -=> /quickstart.gmi Quickstart -=> /gmid.1.txt docs - # gmid > A Gemini server @@ -18,24 +14,27 @@ * event-based asynchronous I/O model * rich configuration file -=> gmid.1.txt Read the manpage. +gmid also bundles a small gemini client called ‘gg’ (gemini get) + +=> gmid.1.MANEXT gmid(1) manpage +=> gg.1.MANEXT gg(1) manpage ## Install Some distros provide a package — thanks to the maintainers! -=> https://repology.org/project/gmid/versions [https] Repology: packaging status for gmid +=> REPOLOGY Repology: packaging status for gmid Source code and precompiled binaries for linux are available: -=> https://github.com/omar-polo/gmid/releases/download/1.7.5/gmid-1.7.5.tar.gz gmid-1.7.5.tar.gz +=> GITHUB/releases/download/VERS/gmid-VERS.tar.gz gmid-VERS.tar.gz => https://git.omarpolo.com/gmid/ git repository => gemini://git.omarpolo.com/gmid.git/ git repository via Gemini -=> https://github.com/omar-polo/gmid GitHub mirror +=> GITHUB GitHub mirror -=> https://github.com/omar-polo/gmid/releases/download/1.7.5/gmid.linux.aarch64 gmid.linux.aarch64 -=> https://github.com/omar-polo/gmid/releases/download/1.7.5/gmid.linux.amd64 gmid.linux.amd64 +=> GITHUB/releases/download/VERS/gmid.linux.aarch64 gmid.linux.aarch64 +=> GITHUB/releases/download/VERS/gmid.linux.amd64 gmid.linux.amd64 When in doubt, compile from source: it’s easy and takes less than a minute on a raspberry pi 3. The dependencies are: @@ -47,19 +46,19 @@ When in doubt, compile from source: it’s easy and takes less than a minute on Once all the dependencies are installed, building is as easy as: ```Example of how to compile from source -$ curl -LO https://github.com/omar-polo/gmid/releases/download/1.7.5/gmid-1.7.5.tar.gz -$ tar xzvf gmid-1.7.5.tar.gz -$ cd gmid-1.7.5 +$ curl -LO GITHUB/releases/download/VERS/gmid-VERS.tar.gz +$ tar xzvf gmid-VERS.tar.gz +$ cd gmid-VERS $ ./configure $ make $ sudo make install # eventually ``` -A SHA256 file is available. However, that only checks for accidental corruption: you can use signify (SHA256.sig and the public key gmid-1.7.pub) or GPG. The hash of the signify public key is also included in the SHA256 file and thus signed with my GPG. The signify public key for the next release ‘gmid-1.8.pub’ is also included. +A SHA256 file is available. However, that only checks for accidental corruption: you can use signify (SHA256.sig and the public key gmid-CURV.pub) or GPG. The hash of the signify public key is also included in the SHA256 file and thus signed with my GPG. The signify public key for the next release ‘gmid-NEXTV.pub’ is also included. -=> https://github.com/omar-polo/gmid/releases/download/1.7.5/SHA256 SHA256 -=> https://github.com/omar-polo/gmid/releases/download/1.7.5/SHA256 SHA256.gpg -=> https://github.com/omar-polo/gmid/releases/download/1.7.5/SHA256.sig SHA256.sig +=> GITHUB/releases/download/VERS/SHA256 SHA256 +=> GITHUB/releases/download/VERS/SHA256 SHA256.gpg +=> GITHUB/releases/download/VERS/SHA256.sig SHA256.sig To verify the signatures with signify(1) @@ -72,104 +71,3 @@ gmid-1.8.pub: OK gmid.linux.aarch64: OK gmid.linux.amd64: OK ``` - -## Change log for the last versions - -1.7.5 “Space-dye Vest” fifth bugfix release — Released October 15, 2021 - -This version includes the following bugfix - -* don’t die when a connection is closed before being accepted by gmid (i.e. handle ‘ECONNRESET’) - - - - -1.7.4 “Space-dye Vest” fourth bugfix release — Released September 24, 2021 - -This version includes the following bugfix: - -* fix a possible out-of-bound access when handling a request for a non-existent file in the root directory of a vhost that's matched by the cgi option - -and the relative regression test. - - - - -1.7.3 “Space-dye Vest” third bugfix release — Released September 19, 2021 - -### Improvements - -* follows symlinks -* improved documentation and added key generation example (thanks! Anna) - -### Bugfix - -* fix syslog logging on FreeBSD. Reported by Karl Jeacle, thanks! -* don't crash if ``-c'' is missing in configtest mode (-n). Reported by heph, thanks! -* allow fstat64 on linux (needed by glibc on aarch64). Reported by pine, thanks! - - - - -1.7.2 “Space-dye Vest” second bugfix release — Released July 19, 2021 - -This version incudes the following bugfix: - -* an un-initialized field in the configless code path leads to a crash on the first request. - -and the relative regression test. - - - -1.7.1 “Space-dye Vest” bugfix release — Released July 11, 2021 - -This version includes two bugfixes: -* use ${MAKE} to recursively call make. -* fix the misleading example in the manpage: macros may not be reserved words - - - -1.7 “Space-dye Vest” — Released July 10, 2021 - -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. diff --git a/site/quickstart.gmi b/site/quickstart.gmi index 08f62a6..83d589f 100644 --- a/site/quickstart.gmi +++ b/site/quickstart.gmi @@ -1,8 +1,4 @@ -=> / Home -=> contrib.gmi contrib -=> /gmid.1.txt docs - -# gmid quickstart +# gmid quickstart guide gmid can be run in two different “modes”: -- cgit v1.2.3