diff --git a/.gitignore b/.gitignore index 1fa4a58..b04a3e8 100644 --- a/.gitignore +++ b/.gitignore @@ -6,20 +6,18 @@ files.h functions.h README.options bin2c -in.gophernicus +gophernicus # # Release files # *.gz -ChangeLog # # Debian packaging leftovers # build-stamp debian/files -debian/changelog debian/gophernicus.debhelper.log debian/gophernicus.postrm.debhelper debian/gophernicus.substvars diff --git a/INSTALL.md b/INSTALL.md index 5c5f158..a4c4fff 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -90,7 +90,7 @@ just run 'make withwrap'. For configuring IP access lists with TCP wrappers, take a look at the files `/etc/hosts.allow` and `/etc/hosts.deny` (because the -manual pages suck). Use the daemon name 'in.gophernicus' to +manual pages suck). Use the daemon name 'gophernicus' to make your access lists. @@ -101,7 +101,7 @@ below line should be added to your `/etc/inetd.conf` and the inetd process restarted. ``` -gopher stream tcp nowait nobody /usr/sbin/in.gophernicus in.gophernicus -h +gopher stream tcp nowait nobody /usr/sbin/gophernicus gophernicus -h ``` The Makefile will automatically do this for you and remove it when @@ -142,7 +142,7 @@ Gophernicus uses SYSV shared memory for session tracking and statistics. It creates the shared memory block using mode 600 and a predefined key which means that a shared memory block created with one user cannot be used by another user. Simply -said, running in.gophernicus under various different user +said, running gophernicus under various different user accounts may create a situation where the memory block is locked to the wrong user. diff --git a/Makefile b/Makefile index de2d7c5..c7c32cb 100644 --- a/Makefile +++ b/Makefile @@ -7,10 +7,10 @@ # NAME = gophernicus PACKAGE = $(NAME) -BINARY = in.$(NAME) -VERSION = `./version` +BINARY = $(NAME) +VERSION = 3.0 CODENAME = Dungeon Edition -AUTHOR = Kim Holviala and others +AUTHOR = h9bnks and fosslinux EMAIL = gophernicus@gophernicus.org STARTED = 2009 @@ -18,7 +18,7 @@ SOURCES = $(NAME).c file.c menu.c string.c platform.c session.c options.c HEADERS = functions.h files.h OBJECTS = $(SOURCES:.c=.o) README = README.md -DOCS = LICENSE README.md INSTALL.md TODO ChangeLog README.Gophermap gophertag +DOCS = LICENSE README.md INSTALL.md TODO changelog README.Gophermap gophertag INSTALL = PATH=$$PATH:/usr/sbin ./install-sh -o 0 -g 0 DESTDIR = /usr @@ -71,19 +71,8 @@ withwrap: # Special targets # deb: - printf "$(PACKAGE) ($(VERSION)) unstable; urgency=low\n\n * Automatically generated changelog\n\n" > debian/changelog - printf " -- $(AUTHOR) <$(EMAIL)> %s\n" "`LC_ALL=POSIX date "+%a, %d %b %Y %H:%M:%S %z"`" >> debian/changelog dpkg-buildpackage -rfakeroot -uc -us -ChangeLog: - if [ -d .git ]; then \ - (./git2changelog > ChangeLog; \ - cat changelog.old >> ChangeLog); \ - else true; fi - -.PHONY: ChangeLog - - # # Building # @@ -142,7 +131,7 @@ clean-shm: # # Install targets # -install: ChangeLog clean-shm +install: clean-shm @case `uname` in \ Darwin) $(MAKE) ROOT="$(OSXROOT)" DESTDIR="$(OSXDEST)" install-files install-docs install-root install-osx install-done; ;; \ Haiku) $(MAKE) SBINDIR=/boot/common/bin DOCDIR=/boot/common/share/doc/$(PACKAGE) \ diff --git a/README.md b/README.md index 99b167b..9caa1d7 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,23 @@ # Gophernicus +Version 3.0 + *Copyright (c) 2009-2019 Kim Holviala and others* Gophernicus is a modern full-featured (and hopefully) secure gopher daemon. It is licensed under the BSD license. +## Support/Contact + +Developers can be reached at . + +Our IRC channel is on irc.freenode.net #gophernicus. + +You most likely want to subscribe to the gophernicus mailing list at +https://lists.tildeverse.org/postorius/lists/gophernicus.lists.tildeverse.org/, +especially if you maintain a server. This is where all important announcements +are made. + ## Command line options -h hostname Change server hostname (FQDN) [$HOSTNAME] @@ -279,7 +292,7 @@ Example: ; Enable TCP wrappers libwrap = yes - service = in.gophernicus-tls + service = gophernicus-tls ; Gopher over TLS service [gophernicus] diff --git a/VERSIONING.md b/VERSIONING.md new file mode 100644 index 0000000..027a647 --- /dev/null +++ b/VERSIONING.md @@ -0,0 +1,55 @@ +# Versioning + +## Latest version + +3.0 + +## Changelog + + +### 3.0 (from 101): +**N.B. this version has two important changes that may make it backwards-incompatible:** + * binary changed from in.gophernicus to gophernicus + * virtual hosting NEVER WORKED and does not work in the way previously + described + +Other changes: + * prevent leak of executable gophermap contents + * make sure {x,}inetd works when systemd is on the system + * allow -j flag to work + * add h9bnks (yargo) and fosslinux into developer roles + * add -nx flag, blocks executable gophermaps + * add -nu flag, disable ~/public_gopher + * modify various documentation to markdown + * fix various formattings and typos + * allow inetd targets to work without update-inetd + * correct handling of inetd.conf + * remove list of supported platforms + * remove example gophermaps + * add dependencies for various distros to INSTALL.md + * fix query urls + * add travis ci + * add documentation about CI + +Upgrade guide: + +If you are running gophernicus on a **production** system, **do not** upgrade +to 3.0. Wait for 3.1. + +As a general guide: + +If you are running 101 and haven't upgraded to newer versions **because** of +instability worries, **wait for 3.1**. + +If you were running other rolling-release versions, **upgrade now**. + +## History + +Gophernicus has had a rough versioning history. + +Versions progressed through to 2.6. Then it changed to a rolling-release scheme. +This dosen't work very well, hence the decision was made to revert to a numbered +versioning scheme. In some places, it was referred to 101 (the git commit +number) or 2.99.101 (2.99.gitcommitnumber). + +These days (June 2019), the vast majority of gophernicus servers are on 101. diff --git a/changelog b/changelog new file mode 100644 index 0000000..2a75397 --- /dev/null +++ b/changelog @@ -0,0 +1,38 @@ +3.0 (from 101) +============== + +N.B. this version has two important changes that may make it +backwards-incompatible: + * binary changed from in.gophernicus to gophernicus + * virtual hosting NEVER WORKED and does not work in the way previously + described + +Other changes: + * prevent leak of executable gophermap contents + * make sure {x,}inetd works when systemd is on the system + * allow -j flag to work + * add h9bnks (yargo) and fosslinux into developer roles + * add -nx flag, blocks executable gophermaps + * add -nu flag, disable ~/public_gopher + * modify various documentation to markdown + * fix various formattings and typos + * allow inetd targets to work without update-inetd + * correct handling of inetd.conf + * remove list of supported platforms + * remove example gophermaps + * add dependencies for various distros to INSTALL.md + * fix query urls + * add travis ci + * add documentation about CI + +Upgrade guide: + +If you are running gophernicus on a **production** system, **do not** upgrade +to 3.0. Wait for 3.1. + +As a general guide, + +If you are running 101 and haven't upgraded to newer versions **because** of +instability worries, **wait for 3.1**. + +If you were running other rolling-release versions, **upgrade now**. diff --git a/changelog.old b/changelog.old index a867a05..a9be324 100644 --- a/changelog.old +++ b/changelog.old @@ -1,3 +1,6 @@ +This contains changelog up to 1.4. There are no changelogs from 1.4 +until 3.0. + 2012-12-02 Kim Holviala * Released version 1.4 diff --git a/debian/changelog b/debian/changelog new file mode 100644 index 0000000..50a25c0 --- /dev/null +++ b/debian/changelog @@ -0,0 +1,33 @@ +gophernicus (3.0-1.1) unstable; urgency=medium + + * N.B. this version has two important changes that may make it + backwards-incompatible: + * binary changed from in.gophernicus to gophernicus + * virtual hosting NEVER WORKED and does not work in the way previously + described + * Other changes: + * prevent leak of executable gophermap contents + * make sure {x,}inetd works when systemd is on the system + * allow -j flag to work + * add h9bnks (yargo) and fosslinux into developer roles + * add -nx flag, blocks executable gophermaps + * add -nu flag, disable ~/public_gopher + * modify various documentation to markdown + * fix various formattings and typos + * allow inetd targets to work without update-inetd + * correct handling of inetd.conf + * remove list of supported platforms + * remove example gophermaps + * add dependencies for various distros to INSTALL.md + * fix query urls + * add travis ci + * add documentation about CI + * Upgrade guide: + * If you are running gophernicus on a **production** system, **do not** upgrade + to 3.0. Wait for 3.1. + * As a general guide, + * If you are running 101 and haven't upgraded to newer versions **because** of + instability worries, **wait for 3.1**. + * If you were running other rolling-release versions, **upgrade now**. + + -- gophernicus developers Sun, 16 Jun 2019 17:49:46 +0000 diff --git a/debian/control b/debian/control index 4eca63d..cf593b0 100644 --- a/debian/control +++ b/debian/control @@ -1,10 +1,10 @@ Source: gophernicus Section: net Priority: extra -Maintainer: Kim Holviala +Maintainer: gophernicus developers Build-Depends: debhelper (>= 5), libwrap0-dev Standards-Version: 3.7.3 -Homepage: gopher://gophernicus.org/1/software/gophernicus/server/ +Homepage: https://github.com/gophernicus/gophernicus Package: gophernicus Architecture: any diff --git a/debian/copyright b/debian/copyright index ae18689..096df79 100644 --- a/debian/copyright +++ b/debian/copyright @@ -1,4 +1,5 @@ Gophernicus - Copyright (c) 2009-2018 Kim Holviala + 2019 gophernicus developers All rights reserved. Redistribution and use in source and binary forms, with or without diff --git a/debian/docs b/debian/docs index 994fb1d..f9ae1f7 100644 --- a/debian/docs +++ b/debian/docs @@ -1,5 +1,7 @@ -README +README.md README.Gophermap TODO INSTALL.md +VERSONING.md +changelog gophertag diff --git a/debian/gophernicus.default b/debian/gophernicus.default index af26579..c06f426 100644 --- a/debian/gophernicus.default +++ b/debian/gophernicus.default @@ -3,7 +3,7 @@ # If you are using Gophernicus with inetd this configuration file # is ignored and the real configuration is in /etc/inetd.conf # -# See README or run "in.gophernicus -?" to see a full list of +# See README or run "gophernicus -?" to see a full list of # configuration options. # # Example: diff --git a/debian/gophernicus.logcheck.ignore.server b/debian/gophernicus.logcheck.ignore.server index 5279b6f..5675585 100644 --- a/debian/gophernicus.logcheck.ignore.server +++ b/debian/gophernicus.logcheck.ignore.server @@ -1,4 +1,4 @@ -^\w{3} [ :0-9]{11} [._[:alnum:]-]+ in.gophernicus\[[0-9]+\]: request for "[^"]*" from [._[:alnum:]:-]+$ -^\w{3} [ :0-9]{11} [._[:alnum:]-]+ in.gophernicus\[[0-9]+\]: error "No such file or directory" for request "[^"]*" from [._[:alnum:]:-]+$ -^\w{3} [ :0-9]{11} [._[:alnum:]-]+ in.gophernicus\[[0-9]+\]: error "User not found" for request "/~[^"]*" from [._[:alnum:]:-]+$ +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ gophernicus\[[0-9]+\]: request for "[^"]*" from [._[:alnum:]:-]+$ +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ gophernicus\[[0-9]+\]: error "No such file or directory" for request "[^"]*" from [._[:alnum:]:-]+$ +^\w{3} [ :0-9]{11} [._[:alnum:]-]+ gophernicus\[[0-9]+\]: error "User not found" for request "/~[^"]*" from [._[:alnum:]:-]+$ ^\w{3} [ :0-9]{11} [._[:alnum:]-]+ systemd\[1\]: Start(ing|ed) Gophernicus gopher server \([^[:space:]]+\)\.+$ diff --git a/debian/postinst b/debian/postinst index 383e49d..f7e05db 100644 --- a/debian/postinst +++ b/debian/postinst @@ -11,7 +11,7 @@ ROOT=/var/gopher PACKAGE=gophernicus LOGDIR=/var/log/$PACKAGE LIBDIR=/usr/lib/$PACKAGE -BINARY=in.gophernicus +BINARY=gophernicus DEFAULT=/etc/default/$PACKAGE USER=nobody diff --git a/debian/rules b/debian/rules index cd85559..4db56c0 100755 --- a/debian/rules +++ b/debian/rules @@ -20,7 +20,6 @@ build-stamp: dh_testdir $(MAKE) - $(MAKE) ChangeLog touch $@ @@ -55,7 +54,7 @@ binary-indep: build install binary-arch: build install dh_testdir dh_testroot - dh_installchangelogs ChangeLog + dh_installchangelogs changelog dh_installdocs # dh_install # dh_installmenu diff --git a/git2changelog b/git2changelog deleted file mode 100755 index a7f8817..0000000 --- a/git2changelog +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/sh - -## -## Generate ChangeLog from git log -## - -VERSION=`git log | grep -c "^commit"` -FIRSTVER=93 -PREVIOUS= -IFS=\; - -echo "[ Automatically generated from git log ]" - -git log --pretty=tformat:"%ad %an <%ae>;%s" --date=short | \ -while read -r AUTHOR COMMENT; do - [ "$AUTHOR" != "$PREVIOUS" ] && printf "\n$AUTHOR\n\n" - - if [ $VERSION -ge $FIRSTVER ]; then - printf "\t* (v%d) %s\n" $VERSION "$COMMENT" - else - printf "\t* %s\n" "$COMMENT" - fi - - PREVIOUS="$AUTHOR" - VERSION=$(( VERSION - 1 )) -done - -echo -echo diff --git a/gophernicus.env b/gophernicus.env index fdc9d2f..13556df 100644 --- a/gophernicus.env +++ b/gophernicus.env @@ -1,6 +1,6 @@ # Options for Gophernicus # -# See README or run "in.gophernicus -?" to see a full list of +# See README or run "gophernicus -?" to see a full list of # configuration options. # # Example: diff --git a/gophernicus.xinetd b/gophernicus.xinetd index f6c429c..2ae9dc2 100644 --- a/gophernicus.xinetd +++ b/gophernicus.xinetd @@ -5,7 +5,7 @@ service gopher socket_type = stream wait = no user = nobody - server = /usr/sbin/in.gophernicus + server = /usr/sbin/gophernicus server_args = -r/var/gopher -h@HOSTNAME@ disable = no } diff --git a/gophernicus@.service b/gophernicus@.service index 47bd46c..dacb19b 100644 --- a/gophernicus@.service +++ b/gophernicus@.service @@ -4,7 +4,7 @@ Description=Gophernicus gopher server [Service] EnvironmentFile=-/etc/default/gophernicus EnvironmentFile=-/etc/sysconfig/gophernicus -ExecStart=/usr/sbin/in.gophernicus -h %H $OPTIONS +ExecStart=/usr/sbin/gophernicus -h %H $OPTIONS SuccessExitStatus=1 StandardInput=socket User=nobody diff --git a/org.gophernicus.server.plist b/org.gophernicus.server.plist index f2ed949..e6bb571 100644 --- a/org.gophernicus.server.plist +++ b/org.gophernicus.server.plist @@ -6,7 +6,7 @@ org.gophernicus.server ProgramArguments - /usr/local/sbin/in.gophernicus + /usr/local/sbin/gophernicus -h@HOSTNAME@ -r/Library/GopherServer diff --git a/version b/version deleted file mode 100755 index de6a73e..0000000 --- a/version +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/sh - -## -## Generate Gophernicus version/build number -## - -DEFAULT="120+" - -if which git >/dev/null && test -d .git; then - git log | grep -c "^commit" -else - echo $DEFAULT -fi -