This contains changelog up to 1.4. There are no changelogs from 1.4
until 3.0.

2012-12-02  Kim Holviala  <kim@holviala.com>

	* Released version 1.4
	* Added logcheck ignore file for Debian
	* Fixed compile without HAVE_SHMEM
	* Autogenerated caps.txt now works without SHMEM
	* Support for Haiku R1 (make && make install works)
	* CGIs now have $LOCAL_ADDR
	* Debian package no longer depends on lsb-release
	* CPU type is now properly detected on AIX
	* Makefile supports cross-compiling (CC & HOSTCC)
	* Option -nr disables root user checking (for debugging)
	* Platform detection for Linux/mips boards (routers)
	* Fixes for OpenBSD (thanks to Brian Callahan)
	* Last remaining sprintf() replaced with snprintf()
	* max() is no longer a function but a #define
	* Clang fixes (thanks to Jacob Dahl Pind)
	* Removed system-info.sh & dmidecode from Debian package


2012-06-12  Kim Holviala  <kim@holviala.com>

	* Released version 1.3
	* Support for headerless HTTP/0.9
	* Code cleanups
	* Platform probing now knows about RedHat and Slackware
	* lsb_release no longer gets called if it doesn't exist
	  (bugreport from Jacob Dahl Pind)
	* Changed menu errors from type "i" text to type "3"
	  (bugreport from Damien Carol)
	* Removed the special OSX Carbonized build
	* Fixed a bug in menu.c: popen() needs pclose()
	* Fixed a off-by-one in gopher_filetype()
	* Changed the filetype of documents (doc/ps/pdf) to "d"


2012-05-04  Kim Holviala  <kim@holviala.com>

	* Released version 1.2 (finally...)
	* On the fly selector rewriting (like Apache mod_rewrite)
	* Gophertags are properly converted to output charset
	* Server admin email can be specified for caps.txt
	* Server location for caps.txt
	* Split options.c from gophernicus.c
	* Removed support for Gopher over HTTP proxies
	* Hack to make "gopher example.com" work
	  (UMN gopher client assumes gopher+ which we don't support)


2010-12-01  Kim Holviala  <kim@holviala.com>

	* Released version 1.1
	* Content-based detection of gif/png/jpg/ps/pdf/html/gz
	* Gophermap virtual host list (%) only lists FQDNs
	* Serve out caps.txt from a file if it exists
	* Option -na disables autogenerated caps.txt
	* Changed option -l to -b (show BSD license)
	* Changed option -m to -l (log to file)
	* README and LICENSE weren't zero-terminated strings (duh)
	* Querying /server-status no longer updates statistics
	  (because Munin statistics collection was being throttled)
	* Internal charset variables are now enums and not strings


2010-10-05  Kim Holviala  <kim@holviala.com>

	* Released version 1.0
	* Support for caps.txt as suggested by Cameron Kaiser
	* Support for gophertags (lifted from Bucktooth)
	* HTTP requests are redirected to a public gopher proxy
	* Allow directories named "gophermap" and "gophertag"
	  (only files are special)
	* Removed duplicate call to strniconv()
	* A few ENABLE_STRICT_RFC1436 additions
	* Much more descriptive error logging
	* Self references /./ are removed from request
	* Apache-compatible file logging in combined log format (-m)
	* FIFOs in directories no longer crash the server (duh!)
	* Support for Mac OS X (tested with 10.5 on Intel)
	* Reworked Makefile with platform-specific build targets
	* Fixed a call to dirname(path) (don't assume it modifies path)
        * Makefile installer now supports xinetd and launchd
	* Makefile installer installs default /var/gopher/gophermap and
	  links the document directory as /docs/
	* Added SERVER_ARCH, SERVER_VERSION and SERVER_DESCRIPTION to
	  CGI env variables
	* Fixed a segfault where shm was used uninitialized (duh!)
	* Generate native Debian/Ubuntu package with "make deb"
	* platform() now tries to figure out Linux distribution
	* platform() knows about Linux ARM boards
	* Added argument -nm (No shared Memory) for debugging
	* Fixed AIX make glitch when compiling bin2c (bug in make?)
	* Changed the name of the project from "Gophernicus Server"
	  to plain "Gophernicus"
	* Menus without footer (-nf) were missing the dot at the end
	* Footer message is now right-aligned
	* server-status and caps.txt requests now update sessions
	* Compile-time option ENABLE_AUTOHIDING hides manually listed
	  resources from generated menus (to prevent double listings)


2010-07-03  Kim Holviala  <kim@holviala.com>

	* Released version 0.9
	* Added option to disable HTTP-style query strings
	* Fixed a regression where some binary files were served out
	  as text (which broke them)
	* BinHex files are now mapped to filetype 4
	* Disabling vhosting disables sessions (mostly)


2010-04-30  Kim Holviala  <kim@holviala.com>

	* Released version 0.8
	* Security bug in hURL handler fixed
	* Error pages are now correctly generated for type 'h'
	* Menu error page more compatible with clients
	* New macro sstrncmp() compares without explicit sizeof()
	* Removed all traces of gopher++ protocol (extra headers)
	  as it just didn't work with older (circa '92) servers
	* Added option to disable automatic menu headers (titles)
	* Do a chdir() to the resource dir before doing anything
	* Double-slashes were slashed in QUERY_STRING by accident
	* Relative links to external hosts work properly in gophermap
	* Gophermaps can include other gophermaps with =/path/to/file
	* Executable gophermaps are parsed just like static ones


2010-04-13  Kim Holviala  <kim@holviala.com>

	* Released version 0.7
	* This release is feature complete, no new features in sight
	* Support for NetBSD (a typo prevented building - duh)
	* Replaced the poorly-working scandir() with opendir/qsort
	* Directory listings (menus) are limited to 1024 entries
	* Changed the filetype of movies from "v" to ";" (which sucks)
	* Fixed a compatibility issue with bucktooth gophermaps
	* Finally wrote decent documentation (README and INSTALL)


2010-04-11  Kim Holviala  <kim@holviala.com>

	* Released version 0.6
	* platform() results are kept in shared memory
	* Support for AIX 5.1 and newer
	* IPv4-in-IPv6 prefix ::ffff: is removed from remote_addr
	* Replaced install(1) with the install-sh script
	* /server-status CPULoad can be parsed from /usr/bin/uptime
	* Replaced text2c/hexdump with bin2c.c (less dependencies)
	* Files with extension .q (type 7 query) are considered CGIs
	* Filetype handling completely rewritten
	* Configurable gopher filetypes using the "-e ext=X" argument
	* Per-directory filetype overrides in gophermaps with ":ext=X"
	* Refuse to serve out gophermaps (why didn't I catch this before?)
	* Cleaned up main()
	* Output filters - run files through an external program (php!)


2010-04-05  Kim Holviala  <kim@holviala.com>

	* Released version 0.5
	* Code tested to work on 32-bit Linux/armv5tel
	* Filetype 7 query errors are now handled properly
	* HTTP-style query string overrides type 7 query
	* Protocol detection (0/+/++) works properly
	* gopher++ extra headers parsed correctly
	* gopher++ works ok with a patched NSCA Mosaic!
	* ISO-8859-1 (Latin-1) output
	* Full UTF-8 output support (without widechars)
	* Gophermaps are converted to output charset
	* All type 0 output is converted to output charset
	* All charset conversions can be disabled with option -no
	* !Titles in gophermaps are converted to gopher menu titles
	* Automatically generates gopher title resources for menus
	* Compile-time option to strictly adhere to RFC 1436
	* Compile-time option to disable all gopher++ support


2010-03-29  Kim Holviala  <kim@holviala.com>

	* Released version 0.4
	* Renamed the project to "Gophernicus Server"
	* Major rewrite with much cleaner code
	* Changed all strncpy's to the OpenBSD strlcpy
	* Server can guess the request type (menu/text/binary)
	* Errors are formatted for current filetype (menu/text)
	* Errors for images (types g&I) are outputted as an image
	* /~luser (/home/luser/public_gopher) must be owned by luser
	* Configurable output width for menus
	* Files are outputted using sendfile() if available
	* Locale forced to POSIX for strftime()
	* Filetype '-' in gophermaps hides files
	* Gopher+ requests are now handled gracefully
	* Relative selectors in gophemaps work
	* Filesizes in menus are now human-readable (KB/MB/GB etc)
	* Refuse to serve world-writeable content
	* Support for Apache-style /server-status
	* HTTP requests for /server-status work (munin monitoring ftw!)
	* Session tracking using shared memory
	* Referer support for CGIs
	* Replaced iconv() with own charset conversion routine
	* Automatic throttling for users who hit the server too much
	* Replaced static compile-time uname with uname()
	* Support for virtual hosting (with gopher0 no less!)


2010-01-07  Kim Holviala  <kim@holviala.com>

	* Released version 0.3
        * Automatic detection of text vs. binary filetype for files
	  which have no (known) suffix
	* hURL redirect pages now respect -f (no footer) option
	* IPv6 support for logging & CGI REMOTE_ADDR
	* Inline gophermaps
	* Removed support for relative resource names in gophermaps
	* Support for virtual userdirs (~user -> /home/user/public_gopher)
	* Automatic listing of userdirs in gophermap
	* Redirect accidental http requests to gopher
	* License included in the binary -> install no longer installs docs
	* Changed command line options (I was running out of arg letters...)
	* Debug to syslog with '-d' option


2010-01-02  Kim Holviala  <kim@holviala.com>

	* Released version 0.2
	* Logging to syslog
	* Support for gophermaps
	* Support for executable gophermaps
	* Support for CGI scripts
	* Support for type 7 search queries
	* Support for hURL redirect pages
	* Support for non-ASCII resource/file names (tested with UTF-8)
	* Support for both %hex and #octal request encodings
	* Try to get server hostname from $HOSTNAME or gethostname()
	* Basic support for different platforms via HAVE_XX defines


2009-12-30  Kim Holviala  <kim@holviala.com>

	* Released version 0.1
	* Basic rfc1436 functionality works
	* Fancy menus with file dates & sizes
	* Options via command line (with sensible defaults)


2009-12-28  Kim Holviala  <kim@holviala.com>

	* Started coding kgopherd
	* Trying to remember how "C" works...

