mirror of https://github.com/omar-polo/gmid.git
misc tweaks + changelog.gmi
This commit is contained in:
parent
ac42bb6c7f
commit
21dc379479
|
@ -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.
|
|
@ -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
|
||||
|
||||
|
|
134
site/index.gmi
134
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.
|
||||
|
|
|
@ -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”:
|
||||
|
||||
|
|
Loading…
Reference in New Issue