Commit Diff


commit - ac42bb6c7f9f30028fbc63f623bf4bba99b725ad
commit + 21dc3794790a6cc12f093cacc38e25f90396852c
blob - 42185a3ab09b751c7dc77382ada0d92244871a23
blob + 59721e3ee36c7706a537d1dd9caed630c383c68b
--- site/contrib.gmi
+++ site/contrib.gmi
@@ -1,17 +1,12 @@
-=> / Home
-=> /quickstart.gmi Quickstart
-=> /gmid.1.txt docs
+# contributed files
 
-# Contrib
-
 This directory is for additional contributed files which may be useful.
 
 ## Dockerfile
 
 => 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
 
 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 c
 
 Read the documentation with: perldoc renew-certs
 
-## Vim syntax files
+## vim syntax files
 
 => https://git.omarpolo.com/gmid/tree/contrib/vim contrib/vim
 
blob - /dev/null
blob + 1c3e764d3d76aa6ddb98606a2fb743cd66617869 (mode 644)
--- /dev/null
+++ 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.
blob - 7d72f0f848c9a136115a3329c4bd07ba1cd64cb7
blob + fd65c4f29509d1c9b89bda38ef33d170028665d7
--- site/index.gmi
+++ 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 ta
 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.
blob - 08f62a60e79f3834cf73bbdacab60933dbd436df
blob + 83d589fd5094ae871020bca348204ac12b6b24db
--- site/quickstart.gmi
+++ site/quickstart.gmi
@@ -1,9 +1,5 @@
-=> / Home
-=> contrib.gmi contrib
-=> /gmid.1.txt docs
+# gmid quickstart guide
 
-# gmid quickstart
-
 gmid can be run in two different “modes”:
 
 * configless: a quick way to serve a directory tree from the shell, useful for testing a capsule before uploading it