[master] 10c81c1 Move XML changes files into changes.rst

Tollef Fog Heen tfheen at varnish-cache.org
Mon Oct 31 08:59:21 CET 2011


commit 10c81c11a60e13dbf6da32e0f7f8ba9c82f94499
Author: Tollef Fog Heen <tfheen at varnish-software.com>
Date:   Mon Oct 31 08:58:24 2011 +0100

    Move XML changes files into changes.rst
    
    Convert all the old changelogs to restructured text, drop xsltproc
    from the build system and adjust documentation appropriately.

diff --git a/configure.ac b/configure.ac
index 4591148..ebea42b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -45,11 +45,6 @@ CC="$PTHREAD_CC"
 AC_PROG_INSTALL
 AC_PROG_LIBTOOL
 AC_PROG_MAKE_SET
-AC_CHECK_PROGS(XSLTPROC, [xsltproc], "no")
-if test "x$XSLTPROC" = "xno"; then
-   AC_MSG_WARN([xsltproc not found – not building documentation])
-fi
-AM_CONDITIONAL(HAVE_XSLTPROC,[test "x$XSLTPROC" != "xno"])
 AC_ARG_WITH([rst2man],
                AS_HELP_STRING([--with-rst2man=PATH],
                               [Location of rst2man (auto)]),
diff --git a/doc/Makefile.am b/doc/Makefile.am
index 58d9dc7..cfd0fb5 100644
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
@@ -1,64 +1,6 @@
 #
 
-CHANGELOGS = \
-	changes-2.1.5.html \
-	changes-2.1.4.html \
-	changes-2.1.3.html \
-	changes-2.1.2.html \
-	changes-2.1.1.html \
-	changes-2.1.0.html \
-	changes-2.0.6.html \
-	changes-2.0.5.html \
-	changes-2.0.4.html \
-	changes-2.0.3.html \
-	changes-2.0.2.html \
-	changes-2.0.1.html \
-	changes-2.0.html \
-	changes-1.1.2.html \
-	changes-1.1.1.html \
-	changes-1.1.html \
-	changes-1.0.4.html
-
-XML = \
-	changes-2.1.4-2.1.5.xml \
-	changes-2.1.3-2.1.4.xml \
-	changes-2.1.2-2.1.3.xml \
-	changes-2.1.1-2.1.2.xml \
-	changes-2.1.0-2.1.1.xml \
-	changes-2.0.6-2.1.0.xml \
-	changes-2.0.5-2.0.6.xml \
-	changes-2.0.4-2.0.5.xml \
-	changes-2.0.3-2.0.4.xml \
-	changes-2.0.2-2.0.3.xml \
-	changes-2.0.1-2.0.2.xml \
-	changes-2.0-2.0.1.xml \
-	changes-1.1.2-2.0.xml \
-	changes-1.1.1-1.1.2.xml \
-	changes-1.1-1.1.1.xml \
-	changes-1.0.4-1.1.xml \
-	changes-1.0.3-1.0.4.xml \
-	${CHANGELOGS:.html=.xml}
-
-if HAVE_XSLTPROC
-all: ${CHANGELOGS}
-endif
-
-EXTRA_DIST = ${CHANGELOGS} ${XML} \
-	changes.css changes-html.xsl \
-	changes.rst changes.html
-
-CLEANFILES = ${CHANGELOGS}
-SUFFIXES = .xml .html
-
-.xml.html:
-if HAVE_XSLTPROC
-	${XSLTPROC} --xinclude -o $@ $<
-else
-	@echo "========================================"
-	@echo "You need xsltproc installed to make dist"
-	@echo "========================================"
-	@false
-endif
+EXTRA_DIST = changes.rst changes.html
 
 changes.html: changes.rst
 if HAVE_RST2HTML
@@ -70,7 +12,4 @@ else
 	@false
 endif
 
-
-${CHANGELOGS}: changes-html.xsl
-
 SUBDIRS = sphinx
diff --git a/doc/changes-1.0.3-1.0.4.xml b/doc/changes-1.0.3-1.0.4.xml
deleted file mode 100644
index 8cd010e..0000000
--- a/doc/changes-1.0.3-1.0.4.xml
+++ /dev/null
@@ -1,218 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE group [
-<!ENTITY mdash "—">
-]>
-<!-- $Id$ -->
-<group from="1.0.3" to="1.0.4">
-  <subsystem>
-    <name>varnishd</name>
-
-    <change type="enh,bug" ref="1277">
-      <para>The request workflow has been redesigned to simplify
-      request processing and eliminate code duplication.  All
-      codepaths which need to speak HTTP now share a single
-      implementation of the protocol.  Some new VCL hooks have been
-      added, though they aren't much use yet.  The only real
-      user-visible change should be that Varnish now handles
-      persistent backend connections correctly (see <ticket
-      ref="56"/>).</para>
-    </change>
-
-    <change type="enh" ref="1280">
-      <para>Support for multiple listen addresses has been
-      added.</para>
-    </change>
-
-    <change type="enh" ref="1281">
-      <para>An "include" facility has been added to VCL, allowing
-      VCL code to pull in code fragments from multiple files.</para>
-    </change>
-
-    <change type="enh" ref="1284">
-      <para>Multiple definitions of the same VCL function are now
-      concatenated into one in the order in which they appear in the
-      source.  This simplifies the mechanism for falling back to the
-      built-in default for cases which aren't handled in custom
-      code, and facilitates modularization.</para>
-    </change>
-
-    <change type="bug" ref="1287,1288">
-      <para>The code used to format management command arguments
-      before passing them on to the child process would
-      underestimate the amount of space needed to hold each argument
-      once quotes and special characters were properly escaped,
-      resulting in a buffer overflow.  This has been
-      corrected.</para>
-    </change>
-
-    <change type="enh,bug" ref="1289-1291,1294,1296-1303,1306">
-      <para>The VCL compiler has been overhauled.  Several memory
-      leaks have been plugged, and error detection and reporting has
-      been improved throughout.  Parts of the compiler have been
-      refactored to simplify future extension of the
-      language.</para>
-    </change>
-
-    <change type="bug" ref="1293">
-      <para>A bug in the VCL compiler which resulted in incorrect
-      parsing of the decrement (<code>-=</code>) operator has been
-      fixed.</para>
-    </change>
-
-    <change type="enh" ref="1309,1312,1381">
-      <para>A new <code>-C</code> command-line option has been added
-      which causes <code>varnishd</code> to compile the VCL code
-      (either from a file specified with <code>-f</code> or the
-      built-in default), print the resulting C code and exit.</para>
-    </change>
-
-    <change type="bug" ref="1359">
-      <para>When processing a backend response using chunked
-      encoding, if a chunk header crosses a read buffer boundary,
-      read additional bytes from the backend connection until the
-      chunk header is complete.</para>
-    </change>
-
-    <change type="enh" ref="1373">
-      <para>A new <code>ping_interval</code> run-time parameter
-      controls how often the management process checks that the
-      worker process is alive.</para>
-    </change>
-
-    <change type="bug" ref="1376">
-      <para>A bug which would cause the worker process to
-      dereference a <code>NULL</code> pointer and crash if the
-      backend did not respond has been fixed.</para>
-    </change>
-
-    <change type="bug" ref="1382">
-      <para>In some cases, such as when they are used by AJAX
-      applications to circumvent Internet Explorer's over-eager disk
-      cache, it may be desirable to cache <code>POST</code>
-      requests.  However, the code path responsible for delivering
-      objects from cache would only transmit the response body when
-      replying to a <code>GET</code> request.  This has been
-      extended to also apply to <code>POST</code>.</para>
-
-      <para>This should be revisited at a later date to allow VCL
-      code to control whether the body is delivered.</para>
-    </change>
-
-    <change type="bug" ref="1386">
-      <para>Varnish now respects <code>Cache-control:
-      s-maxage</code>, and prefers it to <code>Cache-control:
-      max-age</code> if both are present.</para>
-
-      <para>This should be revisited at a later date to allow VCL
-      code to control which headers are used and how they are
-      interpreted.</para>
-    </change>
-
-    <change type="enh" ref="1394">
-      <para>When loading a new VCL script, the management process
-      will now load the compiled object to verify that it links
-      correctly before instructing the worker process to load
-      it.</para>
-    </change>
-
-    <change type="enh" ref="1415">
-      <para>A new <code>-P</code> command-line options has been
-      added which causes <code>varnishd</code> to create a PID
-      file.</para>
-    </change>
-
-    <change type="bug" ref="1417">
-      <para>The <code>sendfile_threshold</code> run-time parameter's
-      default value has been set to infinity after a variety of
-      <code>sendfile()</code>-related bugs were discovered on
-      several platforms.</para>
-    </change>
-  </subsystem>
-
-  <subsystem>
-    <name>varnishlog</name>
-
-    <change type="bug" ref="1372,1374">
-      <para>When grouping log entries by request,
-      <code>varnishlog</code> attempts to collapse the log entry for
-      a call to a VCL function with the log entry for the
-      corresponding return from VCL.  When two VCL calls were made
-      in succession, <code>varnishlog</code> would incorrectly omit
-      the newline between the two calls (see <ticket
-      ref="95"/>).</para>
-    </change>
-
-    <change type="enh" ref="1411">
-      <para>New <code>-D</code> and <code>-P</code> command-line
-      options have been added to daemonize and create a pidfile,
-      respectively.</para>
-    </change>
-
-    <change type="bug" ref="1450">
-      <para>The flag that is raised upon reception of a
-      <code>SIGHUP</code> has been marked <code>volatile</code> so it
-      will not be optimized away by the compiler.</para>
-    </change>
-  </subsystem>
-
-  <subsystem>
-    <name>varnishncsa</name>
-
-    <change type="enh,bug" ref="1361-1363">
-      <para>The formatting callback has been largely rewritten for
-      clarity, robustness and efficiency.</para>
-
-      <para>If a request included a <code>Host:</code> header,
-      construct and output an absolute URL.  This makes
-      <code>varnishncsa</code> output from servers which handle
-      multiple virtual hosts far more useful.</para>
-    </change>
-
-    <change type="bug" ref="1450">
-      <para>The flag that is raised upon reception of a
-      <code>SIGHUP</code> has been marked <code>volatile</code> so it
-      will not be optimized away by the compiler.</para>
-    </change>
-  </subsystem>
-
-  <subsystem>
-    <name>Documentation</name>
-
-    <change type="enh">
-      <para>The documentation—especially the VCL
-      documentation—has been greatly extended and improved.</para>
-    </change>
-  </subsystem>
-
-  <subsystem>
-    <name>Build system</name>
-
-    <change type="bug" ref="1364">
-      <para>The name and location of the <code>curses</code> or
-      <code>ncurses</code> library is now correctly detected by the
-      <code>configure</code> script instead of being hardcoded into
-      affected Makefiles.  This allows Varnish to build correctly on
-      a wider range of platforms.</para>
-    </change>
-
-    <change type="enh" ref="1368">
-      <para>Compatibility shims for <code>clock_gettime()</code> are
-      now correctly applied where needed, allowing Varnish to build
-      on MacOS X.</para>
-    </change>
-
-    <change type="bug" ref="1399">
-      <para>The <code>autogen.sh</code> script will now correctly
-      detect and warn about <code>automake</code> versions which are
-      known not to work correctly.</para>
-    </change>
-  </subsystem>
-
-  <!--subsystem>
-    <name>Packaging</name>
-
-    <change type="enh">
-      <para>XXX</para>
-    </change>
-  </subsystem-->
-</group>
diff --git a/doc/changes-1.0.4-1.1.xml b/doc/changes-1.0.4-1.1.xml
deleted file mode 100644
index 7bbfc47..0000000
--- a/doc/changes-1.0.4-1.1.xml
+++ /dev/null
@@ -1,267 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE group [
-<!ENTITY mdash "—">
-]>
-<!-- $Id$ -->
-<group from="1.0.4" to="1.1">
-  <subsystem>
-    <name>varnishd</name>
-
-    <change type="enh" ref="1388">
-      <para>Readability of the C source code generated from VCL code
-      has been improved.</para>
-    </change>
-
-    <change type="enh" ref="1389">
-      <para>Equality (<code>==</code>) and inequality
-      (<code>!=</code>) operators have been implemented for IP
-      addresses (which previously could only be compared using
-      ACLs).</para>
-    </change>
-
-    <change type="enh" ref="1390">
-      <para>The address of the listening socket on which the client
-      connection was received is now available to VCL as the
-      <code>server.ip</code> variable.</para>
-    </change>
-
-    <change type="enh" ref="1395,1397,1398">
-      <para>Each object's hash key is now computed based on a string
-      which is available to VCL as <code>req.hash</code>.  A VCL hook
-      named <code>vcl_hash</code> has been added to allow VCL scripts
-      to control hash generation (for instance, whether or not to
-      include the value of the <code>Host:</code> header in the
-      hash).</para>
-    </change>
-
-    <change type="bug" ref="1423,1559">
-      <para>The setup code for listening sockets has been modified to
-      detect and handle situations where a host name resolves to
-      multiple IP addresses.  It will now attempt to bind to each IP
-      address separately, and report a failure only if none of them
-      worked.</para>
-    </change>
-
-    <change type="enh" ref="1474">
-      <para>Network or protocol errors that occur while retrieving an
-      object from a backend server now result in a synthetic error
-      page being inserted into the cache with a 30-second TTL.  This
-      should help avoid driving an overburdened backend server into
-      the ground by repeatedly requesting the same object.</para>
-    </change>
-
-    <change type="enh" ref="1482">
-      <para>The child process will now drop root privileges
-      immediately upon startup.  The user and group to use are
-      specified with the <code>user</code> and <code>group</code>
-      run-time parameters, which default to <code>nobody</code> and
-      <code>nogroup</code>, respectively.  Other changes have been
-      made in an effort to increase the isolation between parent and
-      child, and reduce the impact of a compromise of the child
-      process.</para>
-    </change>
-
-    <change type="enh" ref="1506">
-      <para>Objects which are received from the backend with a
-      <code>Vary:</code> header are now stored separately according to
-      the values of the headers specified in <code>Vary:</code>.  This
-      allows Varnish to correctly cache e.g. compressed and
-      uncompressed versions of the same object.</para>
-    </change>
-
-    <change type="enh" ref="1521,1524,1525,1526,1528,1532,1533,1572,1573,1581">
-      <para>Each Varnish instance now has a name, which by default is
-      the host name of the machine it runs on, but can be any string
-      that would be valid as a relative or absolute directory name.
-      It is used to construct the name of a directory in which the
-      server state as well as all temporary files are stored.  This
-      makes it possible to run multiple Varnish instances on the same
-      machine without conflict.</para>
-    </change>
-
-    <change type="enh" ref="1549">
-      <para>When invoked with the <code>-C</code> option,
-      <code>varnishd</code> will now not just translate the VCL code
-      to C, but also compile the C code and attempt to load the
-      resulting shared object.</para>
-    </change>
-
-    <change type="enh" ref="1552,1576">
-      <para>Attempts by VCL code to reference a variable outside its
-      scope or to assign a value to a read-only variable will now
-      result in compile-time rather than run-time errors.</para>
-    </change>
-
-    <change type="enh" ref="1557,1558">
-      <para>The new command-line option <code>-F</code> will make
-      <code>varnishd</code> run in the foreground, without enabling
-      debugging.</para>
-    </change>
-
-    <change type="enh" ref="1560">
-      <para>New VCL variables have been introduced to allow inspection
-      and manipulation of the request sent to the backend
-      (<code>bereq.request</code>, <code>bereq.url</code>,
-      <code>bereq.proto</code> and <code>bereq.http</code>) and the
-      response to the client (<code>resp.proto</code>,
-      <code>resp.status</code>, <code>resp.response</code> and
-      <code>resp.http</code>).</para>
-    </change>
-
-    <change type="enh" ref="1564,1565">
-      <para>Statistics from the storage code (including the amount of
-      data and free space in the cache) are now available to
-      <code>varnishstat</code> and other statistics-gathering
-      tools.</para>
-    </change>
-
-    <change type="enh" ref="1548,1561,1567,1568,1570,1586">
-      <para>Objects are now kept on an LRU list which is kept loosely
-      up-to-date (to within a few seconds).  When cache runs out, the
-      objects at the tail end of the LRU list are discarded one by one
-      until there is enough space for the freshly requested object(s).
-      A VCL hook, <code>vcl_discard</code>, is allowed to inspect each
-      object and determine its fate by returning either
-      <code>keep</code> or <code>discard</code>.</para>
-    </change>
-
-    <change type="enh" ref="1612,1640">
-      <para>A new VCL hook, <code>vcl_deliver</code>, provides a
-      chance to adjust the response before it is sent to the
-      client.</para>
-    </change>
-
-    <change type="enh" ref="1626">
-      <para>A new management command, <code>vcl.show</code>, displays
-      the VCL source code of any loaded configuration.</para>
-    </change>
-
-    <change type="enh" ref="1628">
-      <para>A new VCL variable, <code>now</code>, provides VCL scripts
-      with the current time in seconds since the epoch.</para>
-    </change>
-
-    <change type="enh" ref="1628,1629,1630">
-      <para>A new VCL variable, <code>obj.lastuse</code>, reflects the
-      time in seconds since the object in question was last
-      used.</para>
-    </change>
-
-    <change type="enh" ref="1645,1646,1648">
-      <para>VCL scripts can now add an HTTP header (or modify the
-      value of an existing one) by assigning a value to the
-      corresponding variable, and strip an HTTP header by using the
-      <code>remove</code> keyword.</para>
-    </change>
-
-    <change type="enh" ref="1661,1662">
-      <para>VCL scripts can now modify the HTTP status code of cached
-      objects (<code>obj.status</code>) and responses
-      (<code>resp.status</code>)</para>
-    </change>
-
-    <change type="enh" ref="1663">
-      <para>Numeric and other non-textual variables in VCL can now be
-      assigned to textual variables; they will be converted as
-      needed.</para>
-    </change>
-
-    <change type="enh" ref="1666,1667">
-      <para>VCL scripts can now apply regular expression substitutions
-      to textual variables using the <code>regsub</code>
-      function.</para>
-    </change>
-
-    <change type="enh" ref="1674,1675">
-      <para>A new management command, <code>status</code>, returns the
-      state of the child.</para>
-    </change>
-
-    <change type="enh" ref="1719-1721">
-      <para>Varnish will now build and run on Mac OS X.</para>
-    </change>
-  </subsystem>
-
-  <subsystem>
-    <name>varnishadm</name>
-
-    <change type="enh" ref="1502">
-      <para>This is a new utility which sends a single command to a
-      Varnish server's management port and prints the result to
-      <code>stdout</code>, greatly simplifying the use of the
-      management port from scripts.</para>
-    </change>
-  </subsystem>
-
-  <subsystem>
-    <name>varnishhist</name>
-
-    <change type="enh" ref="1593">
-      <para>The user interface has been greatly improved; the
-      histogram will be automatically rescaled and redrawn when the
-      window size changes, and it is updated regularly rather than at
-      a rate dependent on the amount of log data gathered.  In
-      addition, the name of the Varnish instance being watched is
-      displayed in the upper right corner.</para>
-    </change>
-  </subsystem>
-
-  <subsystem>
-    <name>varnishncsa</name>
-
-    <change type="enh" ref="1479">
-      <para>In addition to client traffic, <code>varnishncsa</code>
-      can now also process log data from backend traffic.</para>
-    </change>
-
-    <change type="bug" ref="1531">
-      <para>A bug that would cause <code>varnishncsa</code> to
-      segfault when it encountered an empty HTTP header in the log
-      file has been fixed.</para>
-    </change>
-  </subsystem>
-
-  <subsystem>
-    <name>varnishreplay</name>
-
-    <change type="enh" ref="1574,1594,1595,1597,1598,1620,1623,1624,1625">
-      <para>This new utility will attempt to recreate the HTTP traffic
-      which resulted in the raw Varnish log data which it is
-      fed.</para>
-    </change>
-  </subsystem>
-
-  <subsystem>
-    <name>varnishstat</name>
-
-    <change type="enh" ref="1587">
-      <para>Don't print lifetime averages when it doesn't make any
-      sense—for instance, there is no point in dividing the
-      amount in bytes of free cache space by the lifetime in seconds
-      of the <code>varnishd</code> process.</para>
-    </change>
-
-    <change type="enh" ref="1589,1590,1591">
-      <para>The user interface has been greatly improved;
-      <code>varnishstat</code> will no longer print more than fits in
-      the terminal, and will respond correctly to window resize
-      events.  The output produced in one-shot mode has been modified
-      to include symbolic names for each entry.  In addition, the name
-      of the Varnish instance being watched is displayed in the upper
-      right corner in curses mode.</para>
-    </change>
-  </subsystem>
-
-  <subsystem>
-    <name>varnishtop</name>
-
-    <change type="enh" ref="1592,1596">
-      <para>The user interface has been greatly improved;
-      <code>varnishtop</code> will now respond correctly to window
-      resize events, and one-shot mode (<code>-1</code>) actually
-      works.  In addition, the name of the Varnish instance being
-      watched is displayed in the upper right corner in curses
-      mode.</para>
-    </change>
-  </subsystem>
-</group>
diff --git a/doc/changes-1.0.4.xml b/doc/changes-1.0.4.xml
deleted file mode 100644
index 739b1bd..0000000
--- a/doc/changes-1.0.4.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<?xml-stylesheet type="text/xml" href="changes-html.xsl"?>
-<!DOCTYPE changelog [
- <!ENTITY mdash "—">
-]>
-<!-- $Id$ -->
-<changelog xmlns:xi="http://www.w3.org/2001/XInclude">
-  <package>Varnish</package>
-  <version>1.0.4</version>
-
-  <xi:include href="changes-1.0.3-1.0.4.xml"/>
-  <!--xi:include href="changes-1.0.2-1.0.3.xml"/-->
-  <!--xi:include href="changes-1.0.1-1.0.2.xml"/-->
-  <!--xi:include href="changes-1.0-1.0.1.xml"/-->
-  <!--xi:include href="changes-0.9-1.0.xml"/-->
-</changelog>
diff --git a/doc/changes-1.1-1.1.1.xml b/doc/changes-1.1-1.1.1.xml
deleted file mode 100644
index 78d6648..0000000
--- a/doc/changes-1.1-1.1.1.xml
+++ /dev/null
@@ -1,136 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE group [
-<!ENTITY mdash "—">
-]>
-<!-- $Id$ -->
-<group from="1.1" to="1.1.1">
-  <subsystem>
-    <name>varnishd</name>
-
-    <change type="bug" ref="1745">
-      <para>The code required to allow VCL to read
-      <code>obj.status</code>, which had accidentally been left out,
-      has now been added.</para>
-    </change>
-
-    <change type="bug" ref="1750">
-      <para>Varnish will now always include a <code>Connection:</code>
-      header in its reply to the client, to avoid possible
-      misunderstandings.</para>
-    </change>
-
-    <change type="buf" ref="1751">
-      <para>A bug that triggered an assertion failure when generating
-      synthetic error documents has been corrected.</para>
-    </change>
-
-    <change type="enh" ref="1761,1762,1765,1828">
-      <para>A new VCL function, <code>purge_url</code>, provides the
-      same functionality as the <code>url.purge</code> management
-      command.</para>
-    </change>
-
-    <change type="enh" ref="1780">
-      <para>Previously, Varnish assumed that the response body should
-      be sent only if the request method was <code>GET</code>.  This
-      was a problem for custom request methods (such as
-      <code>PURGE</code>), so the logic has been changed to always
-      send the response body except in the specific case of a
-      <code>HEAD</code> request.</para>
-    </change>
-
-    <change type="bug" ref="1795">
-      <para>Changes to run-time parameters are now correctly
-      propagated to the child process.</para>
-    </change>
-
-    <change type="bug" ref="1797">
-      <para>Due to the way run-time parameters are initialized at
-      startup, <code>varnishd</code> previously required the
-      <code>nobody</code> user and the <code>nogroup</code> group to
-      exist even if a different user and group were specified on the
-      command line.  This has been corrected.</para>
-    </change>
-
-    <change type="bug" ref="1800">
-      <para>Under certain conditions, the VCL compiler would carry on
-      after a syntax error instead of exiting after reporting the
-      error.  This has been corrected.</para>
-    </change>
-
-    <change type="enh" ref="1803-1806">
-      <para>The manner in which the hash string is assembled has been
-      modified to reduce memory usage and memory-to-memory
-      copying.</para>
-    </change>
-
-    <change type="bug" ref="1807">
-      <para>Before calling <code>vcl_miss</code>, Varnish assembles a
-      tentative request object for the backend request which will
-      usually follow.  This object would be leaked if
-      <code>vcl_miss</code> returned anything else than
-      <code>fetch</code>.  This has been corrected.</para>
-    </change>
-
-    <change type="bug" ref="1808">
-      <para>The code necessary to handle an <code>error</code> return
-      from <code>vcl_fetch</code> and <code>vcl_deliver</code> had
-      inadvertantly been left out.  This has been corrected.</para>
-    </change>
-
-    <change type="bug" ref="1810">
-      <para>Varnish no longer prints a spurious "child died" message
-      (the result of reaping the compiler process) after compiling a
-      new VCL configuration.</para>
-    </change>
-
-    <change type="bug" ref="1838">
-      <para>Under some circumstances, due to an error in the workspace
-      management code, Varnish would lose the "tail" of a request,
-      i.e. the part of the request that has been received from the
-      client but not yet processed.  The most obvious symptom of this
-      was that POST requests would work with some browsers but not
-      others, depending on details of the browser's HTTP
-      implementation.  This has been corrected.</para>
-    </change>
-
-    <change type="bug" ref="1855,1859">
-      <para>On some platforms, due to incorrect assumptions in the CLI
-      code, the management process would crash while processing
-      commands received over the management port.  This has been
-      corrected.</para>
-    </change>
-  </subsystem>
-
-  <subsystem>
-    <name>Build system</name>
-
-    <change type="bug" ref="1752">
-      <para>The top-level Makefile will now honor
-      <code>$DESTDIR</code> when creating the state directory.</para>
-    </change>
-
-    <change type="enh" ref="1743,1846">
-      <para>The Debian and RedHat packages are now split into three
-      (main / lib / devel) as is customary.</para>
-    </change>
-
-    <change type="enh" ref="1753,1754,1783-1791,1798,1823,1794">
-      <para>A number of compile-time and run-time portability issues
-      have been addressed.</para>
-    </change>
-
-    <change type="enh" ref="1811">
-      <para>The <code>autogen.sh</code> script had workarounds for
-      problems with the GNU autotools on FreeBSD; these are no longer
-      needed and have been removed.</para>
-    </change>
-
-    <change type="enh" ref="1817">
-      <para>The <code>libcompat</code> library has been renamed to
-      <code>libvarnishcompat</code> and is now dynamic rather than
-      static.  This simplifies the build process and resolves an issue
-      with the Mac OS X linker.</para>
-    </change>
-  </subsystem>
-</group>
diff --git a/doc/changes-1.1.1-1.1.2.xml b/doc/changes-1.1.1-1.1.2.xml
deleted file mode 100644
index 5f59902..0000000
--- a/doc/changes-1.1.1-1.1.2.xml
+++ /dev/null
@@ -1,157 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE group [
-<!ENTITY mdash "—">
-]>
-<!-- $Id$ -->
-<group from="1.1.1" to="1.1.2">
-  <subsystem>
-    <name>varnishd</name>
-
-    <change type="bug" ref="1809,1913">
-      <para>When switching to a new VCL configuration, a race
-      condition exists which may cause Varnish to reference a backend
-      which no longer exists (see <ticket ref="144"/>).  This race
-      condition has not been entirely eliminated, but it should occur
-      less frequently.</para>
-    </change>
-
-    <change type="bug" ref="1942">
-      <para>When dropping a TCP session before any requests were
-      processed, an assertion would be triggered due to an
-      uninitialized timestamp (see <ticket ref="132"/>).  The
-      timestamp is now correctly initialized.</para>
-    </change>
-
-    <change type="bug" ref="1955,1976,1977">
-      <para>Varnish will now correctly generate a <code>Date:</code>
-      header for every response instead of copying the one it got from
-      the backend (see <ticket ref="157"/>).</para>
-    </change>
-
-    <change type="bug" ref="1971">
-      <para>Comparisons in VCL which involve a non-existent string
-      (usually a header which is not present in the request or object
-      being processed) would cause a NULL pointer dereference; now the
-      comparison will simply fail.</para>
-    </change>
-
-    <change type="bug" ref="1972">
-      <para>A bug in the VCL compiler which would cause a double-free
-      when processing <code>include</code> directives has been
-      fixed.</para>
-    </change>
-
-    <change type="bug" ref="1991">
-      <para>A resource leak in the worker thread management code has
-      been fixed.</para>
-    </change>
-
-    <change type="bug" ref="1809">
-      <para>When connecting to a backend, Varnish will usually get the
-      address from a cache.  When the cache is refreshed, existing
-      connections may end up with a reference to an address structure
-      which no longer exists, resulting in a crash.  This race
-      condition has been somewhat mitigated, but not entirely
-      eliminated (see <ticket ref="144"/>.)</para>
-    </change>
-
-    <change type="bug" ref="1888">
-      <para>Varnish will now pass the correct protocol version in pipe
-      mode: the backend will get what the client sent, and vice
-      versa.</para>
-    </change>
-
-    <change type="bug" ref="2057,2077,2080,2086">
-      <para>The core of the pipe mode code has been rewritten to
-      increase robustness and eliminate spurious error messages when
-      either end closes the connection in a manner Varnish did not
-      anticipate.</para>
-    </change>
-
-    <change type="bug" ref="2181">
-      <para>A memory leak in the backend code has been plugged.</para>
-    </change>
-
-    <change type="bug" ref="2232">
-      <para>When using the <code>kqueue</code> acceptor, if a client
-      shuts down the request side of the connection (as many clients
-      do after sending their final request), it was possible for the
-      acceptor code to receive the <code>EOF</code> event and recycle
-      the session while the last request was still being serviced,
-      resulting in a assertion failure and a crash when the worker
-      thread later tried to delete the session.  This should no longer
-      happen (see <ticket ref="162"/>.)</para>
-    </change>
-
-    <change type="bug" ref="2275">
-      <para>A mismatch between the recorded length of a cached object
-      and the amount of data actually present in cache for that object
-      can occasionally occur (see <ticket ref="167"/>.)  This has been
-      partially fixed, but may still occur for error pages generated
-      by Varnish when a problem arises while retrieving an object from
-      the backend.</para>
-    </change>
-
-    <change type="bug" ref="2285,2286">
-      <para>Some socket-related system calls may return unexpected
-      error codes when operating on a TCP connection that has been
-      shut down at the other end.  These error codes would previously
-      cause assertion failures, but are now recognized as harmless
-      conditions.</para>
-    </change>
-  </subsystem>
-
-  <subsystem>
-    <name>varnishhist</name>
-
-    <change type="enh">
-      <para>Pressing <code>0</code> though <code>9</code> while
-      <code>varnishhist</code> is running will change the refresh
-      interval to the corresponding power of two, in seconds.</para>
-    </change>
-  </subsystem>
-
-  <subsystem>
-    <name>varnishncsa</name>
-
-    <change type="enh">
-      <para>The <code>varnishncsa</code> tool can now daemonize and
-      write a PID file like <code>varnishlog</code>, using the same
-      command-line options.  It will also reopen its output upon receipt
-      of a <code>SIGHUP</code> if invoked with <code>-w</code>.</para>
-    </change>
-  </subsystem>
-
-  <subsystem>
-    <name>varnishstat</name>
-
-    <change type="enh">
-      <para>Pressing <code>0</code> though <code>9</code> while
-      <code>varnishstat</code> is running will change the refresh
-      interval to the corresponding power of two, in seconds.</para>
-    </change>
-  </subsystem>
-
-  <subsystem>
-    <name>Build system</name>
-
-    <change type="enh" ref="2033">
-      <para>Varnish's <code><queue.h></code> has been modified
-      to avoid conflicts with <code><sys/queue.h></code> on
-      platforms where the latter is included indirectly through system
-      headers.</para>
-    </change>
-
-    <change type="enh" ref="2032,2133,2097,2106,2222-2228">
-      <para>Several steps have been taken towards Solaris
-      support, but this is not yet complete.</para>
-    </change>
-
-    <change type="bug" ref="2116,2154">
-      <para>When <code>configure</code> was run without an explicit
-      prefix, Varnish's idea of the default state directory would be
-      garbage and a state directory would have to be specified
-      manually with <code>-n</code>.  This has been corrected.</para>
-    </change>
-  </subsystem>
-</group>
diff --git a/doc/changes-1.1.1.xml b/doc/changes-1.1.1.xml
deleted file mode 100644
index 784249e..0000000
--- a/doc/changes-1.1.1.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<?xml-stylesheet type="text/xml" href="changes-html.xsl"?>
-<!DOCTYPE changelog [
- <!ENTITY mdash "—">
-]>
-<!-- $Id$ -->
-<changelog xmlns:xi="http://www.w3.org/2001/XInclude">
-  <package>Varnish</package>
-  <version>1.1.1</version>
-
-  <xi:include href="changes-1.1-1.1.1.xml"/>
-</changelog>
diff --git a/doc/changes-1.1.2-2.0.xml b/doc/changes-1.1.2-2.0.xml
deleted file mode 100644
index 1b56acb..0000000
--- a/doc/changes-1.1.2-2.0.xml
+++ /dev/null
@@ -1,199 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE group [
-<!ENTITY mdash "—">
-]>
-<!-- $Id$ -->
-<group from="1.1.2" to="2.0">
-  <subsystem>
-    <name>varnishd</name>
-
-    <change type="bug">
-      <para>Only look for sendfile on platforms where we know how to
-      use it, which is FreeBSD for now.</para>
-    </change>
-
-    <change type="bug">
-      <para>Make it possible to adjust the shared memory log size and
-      bump the size from 8MB to 80MB.</para>
-    </change>
-
-    <change type="enh">
-      <para>Fix up the handling of request bodies to better match
-      what RFC2616 mandates.  This makes PUT, DELETE, OPTIONS and
-      TRACE work in addition to POST. </para>
-    </change>
-
-    <change type="enh">
-      <para>Change how backends are defined, to a constant structural
-      defintion style.  See
-      http://varnish.projects.linpro.no/wiki/VclSyntaxChanges for the
-      details.</para>
-    </change>
-
-    <change type="enh">
-      <para>Add directors, which wrap backends.  Currently, there's a
-	random director and a round-robin director.</para>
-    </change>
-
-    <change type="enh">
-      <para>Add "grace", which is for how long and object will be
-	served, even after it has expired.  To use this, both the
-	object's and the request's <code>grace</code> parameter need
-	to be set.</para>
-    </change>
-
-    <change type="enh">
-      <para>Manual pages have been updated for new VCL syntax and
-      varnishd options.</para>
-    </change>
-
-    <change type="enh">
-      <para>Man pages and other docs have been updated.</para>
-    </change>
-
-    <change type="enh">
-      <para>The shared memory log file is now locked in memory, so it
-      should not be paged out to disk.</para>
-    </change>
-
-    <change type="enh">
-      <para>We now handle Vary correctly, as well as Expect.</para>
-    </change>
-
-    <change type="enh">
-      <para>ESI include support is implemented.</para>
-    </change>
-
-    <change type="enh">
-      <para>Make it possible to limit how much memory the malloc uses.</para>
-    </change>
-
-    <change type="enh">
-      <para>Solaris is now supported.</para>
-    </change>
-
-    <change type="enh">
-      <para>There is now a <code>regsuball</code> function, which
-      works like <code>regsub</code> except it replaces all
-      occurences of the regex, not just the first.</para>
-    </change>
-
-    <change type="enh">
-      <para>Backend and director declarations can have
-      a <code>.connect_timeout</code> parameter, which tells us how
-      long to wait for a successful connection.</para>
-    </change>
-
-    <change type="enh">
-      <para>It is now possible to select the acceptor to use by
-      changing the <code>acceptor</code> parameter.</para>
-    </change>
-
-    <change type="enh">
-      <para>Backends can have probes associated with them, which can
-      be checked with <code>req.backend.health</code> in VCL as well as
-      being handled by directors which do load-balancing.</para>
-    </change>
-
-    <change type="enh">
-      <para>Support larger-than-2GB files also on 32 bit hosts.
-      Please note that this does not mean we can support caches
-      bigger than 2GB, it just means logfiles and similar can be
-      bigger.</para>
-    </change>
-
-    <change type="bug">
-      <para>In some cases, we would remove the wrong header when we
-      were stripping Content-Transfer-Encoding headers from a
-      request.  This has been fixed.</para>
-    </change>
-
-    <change type="enh">
-      <para>Backends can have a <code>.max_connections</code>
-      associated with them.</para>
-    </change>
-
-    <change type="bug">
-      <para>On Linux, we need to set the dumpable bit on the child if
-      we want core dumps.  Make sure it's set.</para>
-    </change>
-
-    <change type="bug">
-      <para>Doing <code>purge.hash()</code> with an empty string
-      would cause us to dump core.  Fixed so we don't do that any
-      more.</para>
-    </change>
-
-    <change type="bug">
-      <para>We ran into a problem with glibc's malloc on Linux where
-      it seemed like it failed to ever give memory back to the OS,
-      causing the system to swap.  We have now switched to jemalloc
-      which appears not to have this problem.</para>
-    </change>
-
-    <change type="bug">
-      <para><code>max_restarts</code> was never checked, so we always
-      ended up running out of workspace.  Now, <code>vcl_error</code>
-      is called when we reach <code>max_restarts</code>.</para>
-    </change>
-  </subsystem>
-  <subsystem>
-    <name>varnishtest</name>
-
-    <change type="enh">
-      <para><code>varnishtest</code> is a tool to do correctness tests
-      of varnishd.  The test suite is run by using <code>make
-      check</code>.</para>
-    </change>
-  </subsystem>
-
-  <subsystem>
-    <name>varnishtop</name>
-
-    <change type="enh">
-      <para>We now set the field widths dynamically based on the size
-      of the terminal and the name of the longest field.</para>
-    </change>
-  </subsystem>
-
-  <subsystem>
-    <name>varnishstat</name>
-
-    <change type="enh">
-      <para><code>varnishstat -1</code> now displays the uptime too.</para>
-    </change>
-  </subsystem>
-
-  <subsystem>
-    <name>varnishncsa</name>
-
-    <change type="bug">
-      <para><code>varnishncsa</code> now does fflush after each
-      write.  This makes <code>tail -f</code> work correctly, as well
-      as avoiding broken lines in the log file.</para>
-    </change>
-
-    <change type="enh">
-      <para>It is possible to get <code>varnishncsa</code> to output
-      the <code>X-Forwarded-For</code> instead of the client IP by
-      passing <code>-f</code> to it.</para>
-    </change>
-  </subsystem>
-
-  <subsystem>
-    <name>Build system</name>
-
-    <change type="bug">
-      <para>Various sanity checks have been added
-      to <code>configure</code>, it now complains about no ncurses or
-      if SO_RCVTIMEO or SO_SNDTIMEO are non-functional.  It also
-      aborts if there's no working acceptor mechanism </para>
-    </change>
-
-    <change type="enh">
-      <para>The C compiler invocation is decided by the configure
-      script and can now be overridden by passing <code>VCC_CC</code>
-      when running configure.</para>
-    </change>
-  </subsystem>
-</group>
diff --git a/doc/changes-1.1.2.xml b/doc/changes-1.1.2.xml
deleted file mode 100644
index e629003..0000000
--- a/doc/changes-1.1.2.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<?xml-stylesheet type="text/xml" href="changes-html.xsl"?>
-<!DOCTYPE changelog [
- <!ENTITY mdash "—">
-]>
-<!-- $Id$ -->
-<changelog xmlns:xi="http://www.w3.org/2001/XInclude">
-  <package>Varnish</package>
-  <version>1.1.2</version>
-
-  <xi:include href="changes-1.1.1-1.1.2.xml"/>
-</changelog>
diff --git a/doc/changes-1.1.xml b/doc/changes-1.1.xml
deleted file mode 100644
index a1b1c38..0000000
--- a/doc/changes-1.1.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<?xml-stylesheet type="text/xml" href="changes-html.xsl"?>
-<!DOCTYPE changelog [
- <!ENTITY mdash "—">
-]>
-<!-- $Id$ -->
-<changelog xmlns:xi="http://www.w3.org/2001/XInclude">
-  <package>Varnish</package>
-  <version>1.1</version>
-
-  <xi:include href="changes-1.0.4-1.1.xml"/>
-</changelog>
diff --git a/doc/changes-2.0-2.0.1.xml b/doc/changes-2.0-2.0.1.xml
deleted file mode 100644
index 39422ab..0000000
--- a/doc/changes-2.0-2.0.1.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE group [
-<!ENTITY mdash "—">
-]>
-<!-- $Id$ -->
-<group from="2.0" to="2.0.1">
-  <subsystem>
-    <name>varnishd</name>
-
-    <change type="bug" ref="354">
-      <para>When receiving a garbled HTTP
-      request, <code>varnishd</code> would sometimes crash.  This has
-      been fixed.</para>
-    </change>
-
-    <change type="bug">
-      <para>There was an off-by-one error in the ACL compilation.
-      Now fixed.</para>
-    </change>
-  </subsystem>
-
-  <subsystem>
-    <name>Red Hat spec file</name>
-
-    <change type="bug">
-      <para>A typo in the spec file made the .rpm file names wrong.</para>
-    </change>
-  </subsystem>
-</group>
diff --git a/doc/changes-2.0.1-2.0.2.xml b/doc/changes-2.0.1-2.0.2.xml
deleted file mode 100644
index 51e5627..0000000
--- a/doc/changes-2.0.1-2.0.2.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE group [
-<!ENTITY mdash "—">
-]>
-<!-- $Id$ -->
-<group from="2.0.1" to="2.0.2">
-  <subsystem>
-    <name>varnishd</name>
-
-    <change type="bug" ref="345">
-      <para>In high-load situations, when using
-      ESI, <code>varnishd</code> would sometimes mishandle objects and
-      crash.  This has been worked around. </para>
-    </change>
-  </subsystem>
-
-  <subsystem>
-    <name>varnishreplay</name>
-
-    <change type="bug">
-      <para><code>varnishreplay</code> did not work correctly on
-      Linux, due to a too small stack.  This has now been fixed.</para>
-    </change>
-  </subsystem>
-</group>
diff --git a/doc/changes-2.0.1.xml b/doc/changes-2.0.1.xml
deleted file mode 100644
index 9d84398..0000000
--- a/doc/changes-2.0.1.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<?xml-stylesheet type="text/xml" href="changes-html.xsl"?>
-<!DOCTYPE changelog [
- <!ENTITY mdash "—">
-]>
-<!-- $Id$ -->
-<changelog xmlns:xi="http://www.w3.org/2001/XInclude">
-  <package>Varnish</package>
-  <version>2.0.1</version>
-
-  <xi:include href="changes-2.0-2.0.1.xml"/>
-</changelog>
diff --git a/doc/changes-2.0.2-2.0.3.xml b/doc/changes-2.0.2-2.0.3.xml
deleted file mode 100644
index 1c0737a..0000000
--- a/doc/changes-2.0.2-2.0.3.xml
+++ /dev/null
@@ -1,225 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE group [
-<!ENTITY mdash "—">
-]>
-<!-- $Id$ -->
-<group from="2.0.2" to="2.0.3">
-  <subsystem>
-    <name>varnishd</name>
-
-    <change type="bug" ref="386">
-      <para>Handle If-Modified-Since and ESI sub-objects better,
-      fixing a problem where we sometimes neglected to insert
-      included objects.</para>
-    </change>
-
-    <change type="enh" ref="365">
-      <para><code>restart</code> in <code>vcl_hit</code> is now supported.</para>
-    </change>
-
-    <change type="bug">
-      <para>Setting the TTL of an object to 0 seconds would sometimes
-      cause it to be delivered for up to one second - epsilon.  This
-      has been corrected and we should now never deliver those
-      objects to other clients.</para>
-    </change>
-
-    <change type="enh">
-      <para>The malloc storage backend now prints the maximum storage
-      size, just like the file backend.</para>
-    </change>
-
-    <change type="bug" ref="362">
-      <para>Various small documentation bugs have been fixed.</para>
-    </change>
-
-    <change type="bug" >
-      <para>Varnish did not set a default interval for backend
-      probes, causing it to poll the backend continuously.  This has
-      been corrected.</para>
-    </change>
-
-    <change type="enh">
-      <para>Allow "true" and "false" when setting boolean parameters,
-      in addition to on/off, enable/disable and yes/no.</para>
-    </change>
-
-    <change type="enh">
-      <para>Default to always talking HTTP 1.1 with the backend.</para>
-    </change>
-
-    <change type="bug" ref="368">
-      <para>Varnish did not make sure the file it was loading was a
-      regular file.   This could cause Varnish to crash if it was
-      asked to load a directory or other non-regular file.  We now
-      check that the file is a regular file before loading it.</para>
-    </change>
-
-    <change type="enh" ref="210">
-      <para>The binary heap used for expiry processing had
-      scalability problems.  Work around this by using stripes of a
-      fixed size, which should make this scale better, particularly
-      when starting up and having lots of objects.</para>
-    </change>
-
-    <change type="bug">
-      <para>When we imported the <code>jemalloc</code> library into
-      the Varnish tree, it did not compile without warnings.  This
-      has now been fixed.</para>
-    </change>
-
-    <change type="bug" ref="278">
-      <para>Varnish took a very long time to detect that the backend
-      did not respond.  To remedy this, we now have read timeouts in
-      addition to the connect timeout.  Both
-      the <code>first_byte_timeout</code> and
-      the <code>between_bytes_timeout</code> defaults to 60 seconds.
-      The connect timeout is no longer in milliseconds, but rather in
-      seconds.</para>
-    </change>
-
-    <change type="enh">
-      <para>Previously, the VCL to C conversion as well as the
-      invocation of the C compiler was done in the management
-      process.  This is now done in a separate sub-process.  This
-      prevents any bugs in the VCL compiler from affecting the
-      management process.</para>
-    </change>
-
-    <change type="bug">
-      <para>Chunked encoding headers were counted in the statistics
-      for header bytes.  They no longer are.</para>
-    </change>
-
-    <change type="bug">
-      <para>ESI processed objects were not counted in the statistics
-      for body bytes.  They now are.</para>
-    </change>
-
-    <change type="enh">
-      <para>It is now possible to adjust the maximum record length of
-      log entries in the shmlog by tuning the <code>shm_reclen</code>
-      parameter.</para>
-    </change>
-
-    <change type="enh">
-      <para>The management parameters listed in the CLI were not
-      sorted, which made it hard to find the parameter you were
-      looking for.  They are now sorted, which should make this
-      easier.</para>
-    </change>
-
-    <change type="enh">
-      <para>Add a new hashing type, "critbit", which uses a lock-less
-      tree based lookup algorithm.  This is experimental and should
-      not be enabled in production environments without proper
-      testing.</para>
-    </change>
-
-    <change type="enh">
-      <para>The session workspace had a default size of 8k.  It is
-      now 16k, which should make VCLs where many headers are
-      processed less prone to panics.</para>
-    </change>
-
-    <change type="enh">
-      <para>We have seen that people seem to be confused as to which
-      actions in the different VCL functions return and which ones
-      don't.  Add a new syntax <code>return(action)</code> to make
-      this more explicit.  The old syntax is still supported.</para>
-    </change>
-
-    <change type="bug" ref="97">
-      <para>Varnish would return an error if any of the management
-      IPs listed in the <code>-T</code> parameter could not be
-      listened to.  We now only return an error if none of them can
-      be listened to.</para>
-    </change>
-
-    <change type="bug" ref="416">
-      <para>In the case of the backend or client giving us too many
-      parameters, we used to just ignore the overflowing headers.
-      This is problematic if you end up ignoreing Content-Length,
-      Transfer-Encoding and similar headers.  We now give out a 400
-      error to the client if it sends us too many and 503 if we get
-      too many from the backend.</para>
-    </change>
-
-    <change type="bug" ref="387">
-      <para>We used panic if we got a too large chunked header.
-      This behaviour has been changed into just failing the
-      transaction.</para>
-    </change>
-
-    <change type="enh">
-      <para>Varnish now supports an extended purge method where it is
-      possible to do <code>purge req.http.host ~ "web1.com" && req.url ~ "\.png"
-      </code> and similar.  See the documentation for details.</para>
-    </change>
-
-    <change type="bug" ref="418">
-      <para>Under heavy load, Varnish would sometimes crash when
-      trying to update the per-request statistics.  This has now been
-      fixed.</para>
-    </change>
-
-    <change type="enh">
-      <para>It is now possible to not save the hash string in the
-      session and object workspace.  This will save a lot of memory
-      on sites with many small objects.  Disabling
-      the <code>purge_hash</code> parameter also disables
-      the <code>purge.hash</code> facility.</para>
-    </change>
-
-    <change type="enh">
-      <para>Varnish now supports <code>!~</code> as a "no match"
-      regular expression matcher.</para>
-    </change>
-
-    <change type="bug" ref="425">
-      <para>In some cases, you could get serialised access to "pass"
-      objects.  We now make it default to the default_ttl value; this
-      can be overridden in vcl_fetch.</para>
-    </change>
-
-    <change type="bug" ref="417">
-      <para>Varnish did not check the syntax of <code>regsub</code>
-      calls properly.  More checking has been added.</para>
-    </change>
-
-    <change type="bug" ref="427">
-      <para>If the client closed the connection while Varnish was
-      processing ESI elements, Varnish would crash while trying to
-      write the object to the client.  We now check if the client has
-      closed the connection.</para>
-    </change>
-
-    <change type="bug" ref="433">
-      <para>The ESI parser had a bug where it would crash if an XML
-      comment would span storage segments.  This has been
-      fixed.</para>
-    </change>
-  </subsystem>
-
-  <subsystem>
-    <name>VCL Manual page</name>
-
-    <change type="bug">
-      <para>The documentation on how capturing parentheses work was
-      wrong.  This has been corrected.</para>
-    </change>
-
-    <change type="enh">
-      <para>Grace has now been documented.</para>
-    </change>
-  </subsystem>
-
-  <subsystem>
-    <name>varnishreplay</name>
-
-    <change type="bug">
-      <para><code>varnishreplay</code> did not work correctly on
-      Linux, due to a too small stack.  This has now been fixed.</para>
-    </change>
-  </subsystem>
-</group>
diff --git a/doc/changes-2.0.2.xml b/doc/changes-2.0.2.xml
deleted file mode 100644
index c56ca46..0000000
--- a/doc/changes-2.0.2.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<?xml-stylesheet type="text/xml" href="changes-html.xsl"?>
-<!DOCTYPE changelog [
- <!ENTITY mdash "—">
-]>
-<!-- $Id$ -->
-<changelog xmlns:xi="http://www.w3.org/2001/XInclude">
-  <package>Varnish</package>
-  <version>2.0.2</version>
-
-  <xi:include href="changes-2.0.1-2.0.2.xml"/>
-</changelog>
diff --git a/doc/changes-2.0.3-2.0.4.xml b/doc/changes-2.0.3-2.0.4.xml
deleted file mode 100644
index d7bb0b8..0000000
--- a/doc/changes-2.0.3-2.0.4.xml
+++ /dev/null
@@ -1,98 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE group [
-<!ENTITY mdash "—">
-]>
-<!-- $Id$ -->
-<group from="2.0.3" to="2.0.4">
-  <subsystem>
-    <name>varnishd</name>
-
-    <change type="enh">
-      <para>Make Varnish more portable by pulling in fixes for
-      Solaris and NetBSD.</para>
-    </change>
-
-    <change type="bug">
-      <para>Correct description of -a in the manual page.</para>
-    </change>
-
-    <change type="bug">
-      <para>Ensure we are compiling in C99 mode.</para>
-    </change>
-
-    <change type="bug" ref="458">
-      <para>If error was called with a null reason, we would crash on
-      Solaris.  Make sure this no longer happens.</para>
-    </change>
-
-    <change type="bug" ref="428">
-      <para>Varnish used to crash if you asked it to use a
-      non-existent waiter.  This has now been fixed.</para>
-    </change>
-
-    <change type="enh">
-      <para>Add documentation to the default VCL explaining that
-      using <code>Connection: close</code> in <code>vcl_close</code>
-      is generally a good idea.</para>
-    </change>
-
-    <change type="enh">
-      <para>Add minimal facility for dealing with TELNET option
-	negotiation by returning WONT to DO and DONT requests.</para>
-    </change>
-
-    <change type="enh">
-      <para>If the backend is unhealthy, use a graced object if one is
-      available.</para>
-    </change>
-
-    <change type="enh">
-      <para>Make <code>server.hostname</code>
-      and <code>server.identity</code> available to VCL.  The latter
-      can be set with the <code>-i</code> parameter
-      to <code>varnishd</code>.</para>
-    </change>
-
-    <change type="enh">
-      <para>Make <code>restart</code> available
-      from <code>vcl_error</code>.</para>
-    </change>
-
-    <change type="enh">
-      <para>Previously, only the TTL of an object was considered in
-      whether it would be marked as cacheable.  This has been changed
-      to take the grace into consideration as well.</para>
-    </change>
-
-    <change type="bug" ref="445">
-      <para>Previously, if an included ESI fragment had a zero size,
-      we would send out a zero-sized chunk which signifies
-      end-of-transmission.  We now ignore zero-sized chunks.</para>
-    </change>
-
-    <change type="bug">
-      <para>We accidentially slept for far too long when we reached
-      the maximum number of open file descriptors.  This has been
-      corrected and <code>accept_fd_holdoff</code> now works
-      correctly.</para>
-    </change>
-    <change type="bug" ref="476">
-      <para>Previously, when ESI processing, we did not look at the
-      full length, but stopped at the first NULL byte.  We no longer
-      do that, enabling ESI processing of binary data.</para>
-    </change>
-  </subsystem>
-
-  <subsystem>
-    <name>varnishtest</name>
-    <change type="bug">
-      <para>Make sure system "..." returns successfully to ensure
-      test failures do not go unnoticed.</para>
-    </change>
-
-    <change type="enh">
-      <para>Make it possible to send NULL bytes through the testing
-      framework.</para>
-    </change>
-  </subsystem>
-</group>
diff --git a/doc/changes-2.0.3.xml b/doc/changes-2.0.3.xml
deleted file mode 100644
index 69dd9fd..0000000
--- a/doc/changes-2.0.3.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<?xml-stylesheet type="text/xml" href="changes-html.xsl"?>
-<!DOCTYPE changelog [
- <!ENTITY mdash "—">
-]>
-<!-- $Id$ -->
-<changelog xmlns:xi="http://www.w3.org/2001/XInclude">
-  <package>Varnish</package>
-  <version>2.0.3</version>
-
-  <xi:include href="changes-2.0.2-2.0.3.xml"/>
-</changelog>
diff --git a/doc/changes-2.0.4-2.0.5.xml b/doc/changes-2.0.4-2.0.5.xml
deleted file mode 100644
index ff5e15d..0000000
--- a/doc/changes-2.0.4-2.0.5.xml
+++ /dev/null
@@ -1,161 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE group [
-<!ENTITY mdash "—">
-]>
-<!-- $Id$ -->
-<group from="2.0.4" to="2.0.5">
-  <subsystem>
-    <name>varnishd</name>
-
-    <change type="bug" ref="498">
-      <para>Handle object workspace overruns better.</para>
-    </change>
-
-    <change type="enh">
-      <para>Allow turning off ESI processing per request by using
-      <code>set req.esi = off</code>.</para>
-    </change>
-
-    <change type="enh">
-      <para>Tell the kernel that we expect to use the mmap-ed file in
-      a random fashion.  On Linux, this turns off/down readahead and
-      increases performance.</para>
-    </change>
-
-    <change type="enh">
-      <para>Make it possible to change the maximum number of HTTP
-      headers we allow by
-      passing <code>--with-max-header-fields=NUM</code> rather than
-      changing the code.</para>
-    </change>
-
-    <change type="enh" ref="428">
-      <para>Implement support for HTTP continuation lines.</para>
-    </change>
-
-    <change type="enh">
-      <para>Change how connections are closed and only use SO_LINGER
-      for orderly connection closure.  This should hopefully make
-      worker threads less prone to hangups on network problems.</para>
-    </change>
-
-    <change type="bug" ref="502">
-      <para>Handle multi-element purges correctly.  Previously we
-      ended up with parse errors when this was done from VCL.</para>
-    </change>
-
-    <change type="bug" ref="506, 549">
-      <para>Handle illegal responses from the backend better by
-      serving a 503 page rather than panic-ing.</para>
-    </change>
-
-    <change type="enh">
-      <para>When we run into an assertion that is not true, Varnish
-      would previously dump a little bit of information about itself.
-      Extend that information with a backtrace.  Note that this relies
-      on the varnish binary being unstripped.</para>
-    </change>
-
-    <change type="enh">
-      <para>Add a session_max parameter that limits the maximum
-      number of sessions we keep open before we start dropping new
-      connections summarily.</para>
-    </change>
-
-    <change type="bug">
-      <para>Try to consume less memory when doing ESI processing by
-      properly rolling back used workspace after processing an
-      object.  This should make it possible to
-      turn <code>sess_workspace</code> quite a bit for users with
-      ESI-heavy pages.</para>
-    </change>
-
-    <change type="enh">
-      <para>Turn on <code>session_linger</code> by default.  Tests
-      have shown that <code>session_linger</code> helps a fair bit
-      with performance.</para>
-    </change>
-
-    <change type="enh">
-      <para>Rewrite the epoll acceptor for better performance.  This
-      should lead to both higher processing rates and maximum number
-      of connections on Linux.</para>
-    </change>
-
-    <change type="enh">
-      <para>Add If-None-Match support, this gives significant
-      bandwidth savings for users with compliant browsers.</para>
-    </change>
-
-    <change type="bug" ref="529">
-      <para>RFC2616 specifies
-      that <code>ETag</code>, <code>Content-Location</code>, <code>Expires</code>, <code>Cache-Control</code>
-      and <code>Vary</code> should be emitted when delivering a
-      response with the 304 response code.</para>
-    </change>
-
-    <change type="bug" ref="531">
-      <para>Various fixes which makes Varnish compile and work on AIX.</para>
-    </change>
-
-    <change type="enh">
-      <para>Turn on TCP_DEFER_ACCEPT on Linux.  This should make us
-      less suspecible to denial of service attacks as well as give us
-      slightly better performance.</para>
-    </change>
-
-    <change type="enh">
-      <para>Add an <code>.initial</code> property to the backend
-      probe specification.  This is the number of good probes we
-      pretend to have seen.  The default is one less than .threshold,
-      which means the first probe will decide if we consider the
-      backend healthy.</para>
-    </change>
-
-    <change type="enh">
-      <para>Make it possible to compare strings against other
-      string-like objects, not just plain strings.  This allows you to
-      compare two headers, for instance.</para>
-    </change>
-
-    <change type="bug">
-      <para>When support for <code>restart</code>
-      in <code>vcl_error</code> was added, there was no check to
-      prevent infinte recursion.  This has now been fixed.
-     </para>
-    </change>
-
-    <change type="enh">
-      <para>Turn on purge_dups by default.  This should make us
-      consume less memory when there are many bans for the same
-      pattern added.</para>
-    </change>
-
-    <change type="enh">
-      <para>Add a new log tag called <code>FetchError</code> which
-      tries to explain why we could not fetch an object from the
-      backend.</para>
-    </change>
-
-    <change type="enh">
-      <para>Change the default <code>srcaddr_ttl</code> to 0.  It is
-      not used by anything and has been removed in the development
-      version.  This will increase performance somewhat.</para>
-    </change>
-
-  </subsystem>
-
-  <subsystem>
-    <name>varnishtop</name>
-    <change type="bug" ref="514">
-      <para>varnishtop did not handle variable-length log fields
-      correctly. This is now fixed.</para>
-    </change>
-
-    <change type="enh">
-      <para>varnishtop previously did not print the name of the tag,
-      which made it very hard to understand.  We now print out the
-      tag name.</para>
-    </change>
-  </subsystem>
-</group>
diff --git a/doc/changes-2.0.4.xml b/doc/changes-2.0.4.xml
deleted file mode 100644
index bf08056..0000000
--- a/doc/changes-2.0.4.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<?xml-stylesheet type="text/xml" href="changes-html.xsl"?>
-<!DOCTYPE changelog [
- <!ENTITY mdash "—">
-]>
-<!-- $Id$ -->
-<changelog xmlns:xi="http://www.w3.org/2001/XInclude">
-  <package>Varnish</package>
-  <version>2.0.4</version>
-
-  <xi:include href="changes-2.0.3-2.0.4.xml"/>
-</changelog>
diff --git a/doc/changes-2.0.5-2.0.6.xml b/doc/changes-2.0.5-2.0.6.xml
deleted file mode 100644
index 257bd0e..0000000
--- a/doc/changes-2.0.5-2.0.6.xml
+++ /dev/null
@@ -1,53 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE group [
-<!ENTITY mdash "—">
-]>
-<!-- $Id$ -->
-<group from="2.0.5" to="2.0.6">
-  <subsystem>
-    <name>varnishd</name>
-
-    <change type="bug" ref="585">
-      <para>2.0.5 had an off-by-one error in the ESI handling causing
-      includes to fail a large part of the time. This has now been
-      fixed.</para>
-    </change>
-
-    <change type="bug" ref="584">
-      <para>Try harder to not confuse backends when sending them
-      backend probes.  We half-closed the connection, something some
-      backends thought meant we had dropped the connection.  Stop
-      doing so, and add the capability for specifying the expected
-      response code.</para>
-    </change>
-
-    <change type="bug">
-      <para>In 2.0.5, session lingering was turned on.  This caused
-      statistics to not be counted often enough in some cases.  This
-      has now been fixed.</para>
-    </change>
-
-    <change type="bug" ref="547">
-      <para>Avoid triggering an assert if the other end closes the
-      connection while we are lingering and waiting for another
-      request from them.</para>
-    </change>
-
-    <change type="bug" ref="577">
-      <para>When generating backtraces, prefer the built-in backtrace
-      function if such exists.  This fixes a problem compiling 2.0.5
-      on Solaris.</para>
-    </change>
-
-    <change type="enh" ref="572">
-      <para>Make it possible to specify the per-thread stack size.
-      This might be useful on 32 bit systems with their limited
-      address space.</para>
-    </change>
-
-    <change type="bug" ref="559">
-      <para>Document the <code>-C</code> option
-      to <code>varnishd</code>.</para>
-    </change>
-  </subsystem>
-</group>
diff --git a/doc/changes-2.0.5.xml b/doc/changes-2.0.5.xml
deleted file mode 100644
index 5c6c47a..0000000
--- a/doc/changes-2.0.5.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<?xml-stylesheet type="text/xml" href="changes-html.xsl"?>
-<!DOCTYPE changelog [
- <!ENTITY mdash "—">
-]>
-<!-- $Id$ -->
-<changelog xmlns:xi="http://www.w3.org/2001/XInclude">
-  <package>Varnish</package>
-  <version>2.0.5</version>
-
-  <xi:include href="changes-2.0.4-2.0.5.xml"/>
-</changelog>
diff --git a/doc/changes-2.0.6-2.1.0.xml b/doc/changes-2.0.6-2.1.0.xml
deleted file mode 100644
index 7ecbd59..0000000
--- a/doc/changes-2.0.6-2.1.0.xml
+++ /dev/null
@@ -1,316 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE group [
-<!ENTITY mdash "—">
-]>
-<!-- $Id$ -->
-<group from="2.0.6" to="2.1.0">
-  <subsystem>
-    <name>varnishd</name>
-
-    <change type="enh">
-      <para>Persistent storage is now experimentally supported using
-      the <code>persistent</code> stevedore.  It has the same command
-      line arguments as the file stevedore.</para>
-    </change>
-
-    <change type="enh">
-      <para><code>obj.*</code> is now called <code>beresp.*</code>
-      in <code>vcl_fetch</code>, and <code>obj.*</code> is now
-      read-only.</para>
-    </change>
-
-    <change type="enh">
-      <para>The regular expression engine is now PCRE instead of POSIX
-      regular expressions.</para>
-    </change>
-
-    <change type="enh">
-      <para><code>req.*</code> is now available
-      in <code>vcl_deliver</code>.</para>
-    </change>
-
-    <change type="enh">
-      <para>Add saint mode where we can attempt to grace an object if
-	we don't like the backend response for some reason.</para>
-
-      <para>Related, add <code>saintmode_threshold</code> which is the
-	threshold for the number of objects to be added to the trouble
-	list before the backend is considered sick.</para>
-    </change>
-
-    <change type="enh">
-      <para>Add a new hashing method called critbit.  This autoscales
-      and should work better on large object workloads than the
-      classic hash.  Critbit has been made the default hash algorithm.</para>
-    </change>
-
-    <change type="enh">
-      <para>When closing connections, we experimented with sending RST
-      to free up load balancers and free up threads more quickly.
-      This caused some problems with NAT routers and so has been
-      reverted for now.</para>
-    </change>
-
-    <change type="enh">
-      <para>Add thread that checks objects against ban list in order
-	to prevent ban list from growing forever.  Note that this
-	needs purges to be written so they don't depend
-	on <code>req.*</code>.  Enabled by
-	setting <code>ban_lurker_sleep</code> to a nonzero
-	value.</para>
-    </change>
-
-    <change type="enh">
-      <para>The shared memory log file format was limited to maximum
-      64k simultaneous connections.  This is now a 32 bit field which
-      removes this limitation.</para>
-    </change>
-
-    <change type="enh">
-      <para>Remove obj_workspace, this is now sized automatically.
-	</para>
-    </change>
-
-    <change type="enh">
-      <para>Rename acceptors to waiters</para>
-    </change>
-
-    <change type="enh">
-      <para><code>vcl_prefetch</code> has been removed.  It was never
-      fully implemented.</para>
-    </change>
-
-    <change type="enh">
-      <para>Add support for authenticating CLI connections.</para>
-    </change>
-
-    <change type="enh">
-      <para>Add hash director that chooses which backend to use
-      depending on <code>req.hash</code>.</para>
-    </change>
-
-    <change type="enh">
-      <para>Add client director that chooses which backend to use
-      depending on the client's IP address.  Note that this ignores
-      the <code>X-Forwarded-For</code> header.</para>
-    </change>
-
-    <change type="enh">
-      <para><code>varnishd</code> now displays a banner by default
-      when you connect to the CLI.</para>
-    </change>
-
-    <change type="enh">
-      <para>Increase performance somewhat by moving statistics
-	gathering into a per-worker structure that is regularly
-	flushed to the global stats.</para>
-    </change>
-
-    <change type="enh">
-      <para>Make sure we store the header and body of object together.
-	This may in some cases improve performance and is needed for
-	persistence.</para>
-    </change>
-
-    <change type="enh">
-      <para>Remove client-side address accounting.  It was never used
-      for anything and presented a performance problem.</para>
-    </change>
-
-    <change type="enh">
-      <para>Add a timestamp to bans, so you can know how old they are.</para>
-    </change>
-
-    <change type="enh">
-      <para>Quite a few people got confused over the warning about not
-	being able to lock the shared memory log into RAM, so stop
-	warning about that.</para>
-    </change>
-
-    <change type="enh" ref="329">
-      <para>Change the default CLI timeout to 10 seconds.</para>
-    </change>
-
-    <change type="bug" ref="444">
-      <para>We previously forced all inserts into the cache to be GET
-	requests.  This has been changed to allow POST as well in
-	order to be able to implement purge-on-POST semantics.</para>
-    </change>
-
-    <change type="enh">
-      <para>The CLI command <code>stats</code> now only lists non-zero
-	values.</para>
-    </change>
-
-    <change type="enh">
-      <para>The CLI command <code>stats</code> now only lists non-zero
-	values.</para>
-    </change>
-
-    <change type="enh">
-      <para>Use <code>daemon(3)</code> from <code>libcompat</code> on
-	Darwin.</para>
-    </change>
-
-    <change type="enh">
-      <para>Remove <code>vcl_discard</code> as it causes too much
-	complexity and never actually worked particularly well.</para>
-    </change>
-
-    <change type="enh">
-      <para>Remove <code>vcl_timeout</code> as it causes too much
-	complexity and never actually worked particularly well.</para>
-    </change>
-
-    <change type="enh">
-      <para>Update the documentation so it refers
-      to <code>sess_workspace</code>, not <code>http_workspace</code>.</para>
-    </change>
-
-    <change type="enh">
-      <para>Document the <code>-i</code> switch
-      to <code>varnishd</code> as well as
-      the <code>server.identity</code>
-      and <code>server.hostname</code> VCL variables.</para>
-    </change>
-
-    <change type="enh">
-      <para><code>purge.hash</code> is now deprecated and no longer
-      shown in help listings.</para>
-    </change>
-
-    <change type="enh" ref="607">
-      <para>When processing ESI, replace the five mandatory XML
-      entities when we encounter them.</para>
-    </change>
-
-    <change type="enh">
-      <para>Add string representations of time and relative
-	time.</para>
-    </change>
-
-    <change type="bug" ref="604">
-      <para>Add locking for <code>n_vbe_conn</code> to make it stop
-      underflowing.</para>
-    </change>
-
-    <change type="bug" ref="207">
-      <para>When ESI-processing content, check for illegal XML
-      character entities.</para>
-    </change>
-
-    <change type="bug" ref="207">
-      <para>Varnish can now connect its CLI to a remote instance when
-      starting up, rather than just being connected to.</para>
-    </change>
-
-    <change type="enh">
-      <para>It is no longer needed to specify the maximum number of
-	HTTP headers to allow from backends.  This is now a run-time
-	parameter.</para>
-    </change>
-
-    <change type="enh" ref="601, 540">
-      <para>The <code>X-Forwarded-For</code> header is now generated
-      by <code>vcl_recv</code> rather than the C code.</para>
-    </change>
-
-    <change type="enh">
-      <para>It is now possible to not send all CLI traffic to
-	syslog.</para>
-    </change>
-
-    <change type="enh">
-      <para>It is now possible to not send all CLI traffic to
-	syslog.</para>
-    </change>
-
-    <change type="enh">
-      <para>In the case of varnish crashing, it now outputs a
-      identifying string with the OS, OS revision, architecture and
-      storage parameters together with the backtrace.</para>
-    </change>
-
-    <change type="enh">
-      <para>Use exponential backoff when we run out of file
-	descriptors or sessions.</para>
-    </change>
-
-    <change type="enh" ref="635">
-      <para>Allow setting backend timeouts to zero.</para>
-    </change>
-
-    <change type="enh">
-      <para>Count uptime in the shared memory log.</para>
-    </change>
-
-    <change type="enh" ref="620">
-      <para>Try to detect the case of two running varnishes with the
-      same shmlog and storage by writing the master and child process
-      ids to the shmlog and refusing to start if they are still
-      running.</para>
-    </change>
-
-    <change type="bug" ref="524">
-      <para>Make sure to use EOF mode when serving ESI content to
-	HTTP/1.0 clients.</para>
-    </change>
-
-    <change type="bug" ref="495">
-      <para>Make sure we close the connection if it either
-	sends <code>Connection: close</code> or it is a HTTP/1.0
-	backend that does not send <code>Connection:
-	keep-alive</code>.</para>
-    </change>
-
-    <change type="enh">
-      <para>Increase the default session workspace to 64k on 64-bit
-	systems.</para>
-    </change>
-
-    <change type="bug" ref="644">
-      <para>Make the <code>epoll</code> waiter use level triggering,
-      not edge triggering as edge triggering caused problems on very
-      busy servers.</para>
-    </change>
-
-    <change type="bug" ref="626">
-      <para>Handle unforeseen client disconnections better on Solaris.</para>
-    </change>
-
-    <change type="enh">
-      <para>Make session lingering apply to new sessions, not just
-      reused sessions.</para>
-    </change>
-  </subsystem>
-  <subsystem>
-    <name>varnishstat</name>
-
-    <change type="enh">
-      <para>Make use of the new uptime field in the shared memory log
-      rather than synthesizing it from the start time.</para>
-    </change>
-  </subsystem>
-  <subsystem>
-    <name>varnishlog</name>
-
-    <change type="enh">
-      <para>Exit at the end of the file when started
-	with <code>-d</code>.</para>
-    </change>
-  </subsystem>
-
-  <subsystem>
-    <name>varnishadm</name>
-
-    <change type="enh">
-      <para><code>varnishadm</code> can now have a timeout when trying
-      to connect to the running <code>varnishd</code>.</para>
-    </change>
-
-    <change type="enh">
-      <para><code>varnishadm</code> now knows how to respond to the
-      secret from a secured <code>varnishd</code></para>
-    </change>
-  </subsystem>
-</group>
diff --git a/doc/changes-2.0.6.xml b/doc/changes-2.0.6.xml
deleted file mode 100644
index bf742f0..0000000
--- a/doc/changes-2.0.6.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<?xml-stylesheet type="text/xml" href="changes-html.xsl"?>
-<!DOCTYPE changelog [
- <!ENTITY mdash "—">
-]>
-<!-- $Id$ -->
-<changelog xmlns:xi="http://www.w3.org/2001/XInclude">
-  <package>Varnish</package>
-  <version>2.0.6</version>
-
-  <xi:include href="changes-2.0.5-2.0.6.xml"/>
-</changelog>
diff --git a/doc/changes-2.0.xml b/doc/changes-2.0.xml
deleted file mode 100644
index a510d76..0000000
--- a/doc/changes-2.0.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<?xml-stylesheet type="text/xml" href="changes-html.xsl"?>
-<!DOCTYPE changelog [
- <!ENTITY mdash "—">
-]>
-<!-- $Id$ -->
-<changelog xmlns:xi="http://www.w3.org/2001/XInclude">
-  <package>Varnish</package>
-  <version>2.0</version>
-
-  <xi:include href="changes-1.1.2-2.0.xml"/>
-</changelog>
diff --git a/doc/changes-2.1.0-2.1.1.xml b/doc/changes-2.1.0-2.1.1.xml
deleted file mode 100644
index 3c3a7c9..0000000
--- a/doc/changes-2.1.0-2.1.1.xml
+++ /dev/null
@@ -1,93 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE group [
-<!ENTITY mdash "—">
-]>
-<!-- $Id: changes-2.0.6-2.1.0.xml 4672 2010-04-19 10:26:23Z tfheen $ -->
-<group from="2.0.6" to="2.1.0">
-  <subsystem>
-    <name>varnishd</name>
-
-    <change type="bug">
-      <para>The changelog in 2.1.0 included syntax errors, causing
-      the generated changelog to be empty.</para>
-    </change>
-
-    <change type="bug">
-      <para>The help text for <code>default_grace</code> was wrongly
-      formatted and included a syntax error.  This has now been fixed.</para>
-    </change>
-
-    <change type="bug">
-      <para><code>varnishd</code> now closes the file descriptor used
-      to read the management secret file (from the <code>-S</code>
-      parameter).</para>
-    </change>
-
-    <change type="bug" ref="669">
-      <para>The child would previously try to close every valid file
-	descriptor, something which could cause problems if the file
-	descriptor ulimit was set too high.  We now keep track of all
-	the file descriptors we open and only close up to that number.
-	</para>
-    </change>
-
-    <change type="bug">
-      <para>ESI was partially broken in 2.1.0 due to a bug in the
-      rollback of session workspace.  This has been fixed.</para>
-    </change>
-
-    <change type="bug">
-      <para>Reject the <code>auth</code>command rather than crash if
-      there is no <code>-S</code> parameter given.</para>
-    </change>
-
-    <change type="enh">
-      <para>Align pointers in allocated objects.  This will in theory
-      make Varnish a tiny bit faster at the expense of slightly more
-      memory usage.</para>
-    </change>
-
-    <change type="bug">
-      <para>Ensure the master process process id is updated in the
-      shared memory log file after we go into the background.</para>
-    </change>
-
-    <change type="bug" id="679">
-      <para><code>HEAD</code> requests would be converted to GET
-      requests too early, which affected <code>pass</code>
-      and <code>pipe</code>.  This has been fixed.</para>
-    </change>
-
-    <change type="bug">
-      <para>Update the documentation to point out that the TTL is no
-      longer taken into account to decide whether an object is
-      cacheable or not.</para>
-    </change>
-
-    <change type="enh">
-      <para>Add support for completely obliterating an object and all
-      variants of it.  Currently, this has to be done using inline C.</para>
-    </change>
-
-    <change type="enh">
-      <para>Add experimental support for the <code>Range</code>
-      header.  This has to be enabled using the parameter
-      http_range_support.</para>
-    </change>
-
-    <change type="bug" id="684">
-      <para>The <code>critbit</code> hasher could get into a deadlock
-      and had a race condition.  Both those have now been fixed.</para>
-    </change>
-
-  </subsystem>
-  <subsystem>
-    <name>varnishsizes</name>
-
-    <change type="enh">
-      <para><code>varnishsizes</code>, which is
-      like <code>varnishhost</code>, but for the length of objects,
-      has been added..</para>
-    </change>
-  </subsystem>
-</group>
diff --git a/doc/changes-2.1.0.xml b/doc/changes-2.1.0.xml
deleted file mode 100644
index 73305c5..0000000
--- a/doc/changes-2.1.0.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<?xml-stylesheet type="text/xml" href="changes-html.xsl"?>
-<!DOCTYPE changelog [
- <!ENTITY mdash "—">
-]>
-<!-- $Id$ -->
-<changelog xmlns:xi="http://www.w3.org/2001/XInclude">
-  <package>Varnish</package>
-  <version>2.1</version>
-
-  <xi:include href="changes-2.0.6-2.1.0.xml"/>
-</changelog>
diff --git a/doc/changes-2.1.1-2.1.2.xml b/doc/changes-2.1.1-2.1.2.xml
deleted file mode 100644
index 486d530..0000000
--- a/doc/changes-2.1.1-2.1.2.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE group [
-<!ENTITY mdash "—">
-]>
-<!-- $Id: changes-2.0.6-2.1.0.xml 4672 2010-04-19 10:26:23Z tfheen $ -->
-<group from="2.1.1" to="2.1.2">
-  <subsystem>
-    <name>varnishd</name>
-
-    <change type="bug" ref="694">
-      <para>When adding <code>Range</code> support for 2.1.1, we
-      accidentially introduced a bug which would append garbage to
-      objects larger than the chunk size, by default 128k. Browsers
-      would do the right thing due to Content-Length, but some load
-      balancers would get very confused.</para>
-    </change>
-
-  </subsystem>
-</group>
diff --git a/doc/changes-2.1.1.xml b/doc/changes-2.1.1.xml
deleted file mode 100644
index f5a91ba..0000000
--- a/doc/changes-2.1.1.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<?xml-stylesheet type="text/xml" href="changes-html.xsl"?>
-<!DOCTYPE changelog [
- <!ENTITY mdash "—">
-]>
-<!-- $Id: changes-2.1.1.xml 4709 2010-04-21 10:40:27Z tfheen $ -->
-<changelog xmlns:xi="http://www.w3.org/2001/XInclude">
-  <package>Varnish</package>
-  <version>2.1</version>
-
-  <xi:include href="changes-2.1.0-2.1.1.xml"/>
-</changelog>
diff --git a/doc/changes-2.1.2-2.1.3.xml b/doc/changes-2.1.2-2.1.3.xml
deleted file mode 100644
index 638bbf4..0000000
--- a/doc/changes-2.1.2-2.1.3.xml
+++ /dev/null
@@ -1,75 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE group [
-<!ENTITY mdash "—">
-]>
-<!-- $Id: changes-2.1.2-2.1.3.xml 4672 2010-04-19 10:26:23Z tfheen $ -->
-<group from="2.1.2" to="2.1.3">
-  <subsystem>
-    <name>varnishd</name>
-
-    <change type="enh">
-      <para>Improve scalability of critbit.</para>
-    </change>
-
-    <change type="bug">
-      <para>The critbit hash algorithm has now been tightened to make
-      sure the tree is in a consistent state at all points, and the
-      time we wait for an object to cool off after it is eligible for
-      garbage collection has been tweaked.</para>
-    </change>
-
-    <change type="enh">
-      <para>Add <code>log</code> command to VCL.  This emits
-      a <code>VCL_log</code> entry into the shared memory log.</para>
-    </change>
-
-    <change type="bug">
-      <para>Only emit Length and ReqEnd log entries if we actually
-      have an XID.  This should get rid of some empty log lines in
-      varnishncsa.</para>
-    </change>
-
-    <change type="bug" ref="722">
-      <para>Destroy directors in a predictable fashion, namely reverse
-      of creation order.</para>
-    </change>
-
-    <change type="bug" ref="719">
-      <para>Fix bug when ESI elements spanned storage elements causing
-      a panic.</para>
-    </change>
-
-    <change type="enh">
-      <para>In some cases, the VCL compiler would panic instead of
-      giving sensible messages.  This has now been fixed.</para>
-    </change>
-
-    <change type="bug">
-      <para>Correct an off-by-one error when the requested range
-      exceeds the size of an object.</para>
-    </change>
-
-    <change type="bug">
-      <para>Handle requests for the end of an object correctly.</para>
-    </change>
-
-    <change type="bug" ref="700">
-      <para>Allow tabulator characters in the third field of the
-      first line of HTTP requests</para>
-    </change>
-
-    <change type="bug">
-      <para>On Solaris, if the remote end sends us an RST, all system
-      calls related to that socket will return EINVAL.  We now handle
-      this better.</para>
-    </change>
-  </subsystem>
-  <subsystem>
-    <name>libvarnishapi</name>
-    <change type="bug">
-      <para>The <code>-X</code> parameter didn't work correctly.  This
-      has been fixed.</para>
-    </change>
-  </subsystem>
-
-</group>
diff --git a/doc/changes-2.1.2.xml b/doc/changes-2.1.2.xml
deleted file mode 100644
index c34aae6..0000000
--- a/doc/changes-2.1.2.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<?xml-stylesheet type="text/xml" href="changes-html.xsl"?>
-<!DOCTYPE changelog [
- <!ENTITY mdash "—">
-]>
-<!-- $Id: changes-2.1.1.xml 4709 2010-04-21 10:40:27Z tfheen $ -->
-<changelog xmlns:xi="http://www.w3.org/2001/XInclude">
-  <package>Varnish</package>
-  <version>2.1.2</version>
-
-  <xi:include href="changes-2.1.1-2.1.2.xml"/>
-</changelog>
diff --git a/doc/changes-2.1.3-2.1.4.xml b/doc/changes-2.1.3-2.1.4.xml
deleted file mode 100644
index 775b6bd..0000000
--- a/doc/changes-2.1.3-2.1.4.xml
+++ /dev/null
@@ -1,170 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE group [
-<!ENTITY mdash "—">
-]>
-<group from="2.1.3" to="2.1.4">
-  <subsystem>
-    <name>varnishd</name>
-    <change type="bug">
-      <para>An embarrasing typo in the new binary heap layout caused
-      inflated obj/objcore/objhdr counts and could cause odd problems
-      when the LRU expunge mechanism was invoked.  This has been
-      fixed.</para>
-    </change>
-
-    <change type="enh">
-      <para>We now have updated documentation in the reStructuredText
-      format.  Manual pages and reference documentation are both built
-      from this.</para>
-    </change>
-
-    <change type="enh">
-      <para>We now include a DNS director which uses DNS for choosing
-      which backend to route requests to.  Please see the
-      documentation for more details.</para>
-    </change>
-
-    <change type="bug" ref="758">
-      <para>If you restarted a request, the HTTP header
-      <code>X-Forwarded-For</code> would be updated multiple times.
-      This has been fixed.</para>
-    </change>
-
-    <change type="bug" ref="742">
-      <para>If a VCL contained a % sign, and the <code>vcl.show</code>
-      CLI command was used, varnishd would crash.  This has been
-      fixed.</para>
-    </change>
-
-    <change type="bug" ref="730">
-      <para>When doing a pass operation, we would remove the
-      <code>Content-Length</code>, <code>Age</code> and
-      <code>Proxy-Auth</code> headers.  We are no longer doing
-      this.</para>
-    </change>
-
-    <change type="enh">
-      <para><code>now</code> has a string representation, making it
-      easier to construct <code>Expires</code> headers in VCL.</para>
-    </change>
-
-    <change type="bug" ref="739">
-      <para>In a high traffic environment, we would sometimes reuse a
-      file descriptor before flushing the logs from a worker thread to
-      the shared log buffer.  This would cause confusion in some of
-      the tools.  This has been fixed by explicitly flushing the log
-      when a backend connection is closed.</para>
-    </change>
-
-    <change type="bug" ref="744">
-      <para>If the communication between the management and the child
-      process gets out of sync, we have no way to recover.
-      Previously, <code>varnishd</code> would be confused, but we now
-      just kill the child and restart it.</para>
-    </change>
-
-    <change type="bug" ref="479">
-      <para>If the backend closes the connection on us just as we sent
-      a request to it, we retry the request.  This should solve some
-      interoperability problems with Apache and the mpm-itk multi
-      processing module.</para>
-    </change>
-
-    <change type="enh">
-      <para><code>varnishd</code> now only provides help output the
-      current CLI session is authenticated for.</para>
-    </change>
-
-    <change type="bug" ref="733">
-      <para>If the backend does not tell us which length indication it
-      is using, we now assume the resource ends EOF at.</para>
-    </change>
-
-    <change type="enh">
-      <para>The client director now has a variable
-      <code>client.identity</code> which is used to choose which
-      backend should receive a given request.</para>
-    </change>
-
-    <change type="enh">
-      <para>The Solaris <code>port</code> waiter has been updated, and
-      other portability fixes for Solaris.</para>
-    </change>
-
-    <change type="bug" ref="746">
-      <para>There was a corner case in the close-down processing of pipes, this has now been fixed.</para>
-    </change>
-
-    <change type="bug">
-      <para>Previously, if we stopped polling a backend which was
-      sick, it never got marked as healthy.  This has now been
-      changed.</para>
-    </change>
-
-    <change type="enh">
-      <para>It is now possible to specify ports as part of the <code>.host</code> field in VCL.</para>
-    </change>
-
-    <change type="bug" ref="768">
-      <para>The synthetic counters were not locked properly, and so
-      the <code>sms_</code> counters could underflow.  This has now
-      been fixed.</para>
-    </change>
-
-    <change type="bug" ref="769">
-      <para>The value of <code>obj.status</code> as a string in vcl_error would not be correct in all cases.  This has been fixed.</para>
-    </change>
-
-    <change type="bug" ref="776">
-      <para>Varnish would try to trim storage segments completely
-      filled when using the malloc stevedore and the object was
-      received chunked encoding.  This has been fixed.</para>
-    </change>
-
-    <change type="bug" ref="763">
-      <para>If a buggy backend sends us a <code>Vary</code> header
-      with two colons, we would previously abort.  We now rather fix
-      this up and ignore the extra colon.</para>
-    </change>
-
-    <change type="enh">
-      <para><code>req.hash_always_miss</code> and
-      <code>req.hash_ignore_busy</code> has been added, to make
-      preloading or periodically refreshing content work better.</para>
-    </change>
-
-  </subsystem>
-  <subsystem>
-    <name>varnishncsa</name>
-    <change type="bug">
-      <para><code>varnishncsa</code> would in some cases be confused
-      by ESI requests and output invalid lines.  This has now been
-      fixed.</para>
-    </change>
-  </subsystem>
-
-  <subsystem>
-    <name>varnishlog</name>
-    <change type="enh">
-      <para><code>varnishlog</code> now allows <code>-o</code> and <code>-u</code> together.</para>
-    </change>
-  </subsystem>
-
-  <subsystem>
-    <name>varnishtop</name>
-    <change type="bug">
-      <para><code>varnishtop</code> would crash on 32 bit
-      architectures.  This has been fixed.</para>
-    </change>
-  </subsystem>
-
-  <subsystem>
-    <name>libvarnishapi</name>
-    <change type="bug">
-      <para>Regex inclusion and exclusion had problems with matching
-      particular parts of the string being matched.  This has been
-      fixed.</para>
-    </change>
-  </subsystem>
-
-</group>
diff --git a/doc/changes-2.1.3.xml b/doc/changes-2.1.3.xml
deleted file mode 100644
index 6cfe24d..0000000
--- a/doc/changes-2.1.3.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<?xml-stylesheet type="text/xml" href="changes-html.xsl"?>
-<!DOCTYPE changelog [
- <!ENTITY mdash "—">
-]>
-<!-- $Id: changes-2.1.3.xml 4709 2010-04-21 10:40:27Z tfheen $ -->
-<changelog xmlns:xi="http://www.w3.org/2001/XInclude">
-  <package>Varnish</package>
-  <version>2.1.3</version>
-
-  <xi:include href="changes-2.1.2-2.1.3.xml"/>
-</changelog>
diff --git a/doc/changes-2.1.4-2.1.5.xml b/doc/changes-2.1.4-2.1.5.xml
deleted file mode 100644
index 9b7e8ae..0000000
--- a/doc/changes-2.1.4-2.1.5.xml
+++ /dev/null
@@ -1,132 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE group [
-<!ENTITY mdash "—">
-]>
-<group from="2.1.4" to="2.1.5">
-  <subsystem>
-    <name>varnishd</name>
-    <change type="bug" ref="801">
-      <para>On pass from vcl_recv, we did not remove the backends Content-Length
-      header before adding our own. This could cause confusion for
-      browsers and has been fixed.</para>
-    </change>
-   
-    <change type="bug" ref="806">
-      <para>Make pass with content-length work again. An issue with regards
-      to 304, Content-Length and pass has been resolved.</para>
-    </change>
-
-    <change type="bug" ref="803">
-      <para>An issue relating to passed requests with If-Modified-Since
-      headers has been fixed. Varnish did not recognize that the
-      304-response did not have a body.</para>
-    </change>
-   
-    <change type="bug">
-      <para>A potential lock-inversion with the ban lurker thread has been
-      resolved.</para>
-    </change>
-
-    <change type="bug">
-      <para>Several build-dependency issues relating to rst2man have been
-      fixed. Varnish should now build from source without rst2man if you
-      are using tar-balls.</para>
-    </change>
-
-    <change type="bug" ref="780">
-      <para>Ensure Varnish reads the expected last CRLF after chunked data
-      from the backend. This allows re-use of the connection.</para>
-    </change>
-
-    <change type="bug">
-      <para>Remove a GNU Make-ism during <code>make dist</code> to make BSD
-      happier.</para>
-    </change>
-
-    <change type="enh">
-      <para>Document the log, set, unset, return and restart statements in
-      the VCL documentation.</para>
-    </change>
-
-    <change type="bug" ref="808">
-      <para>Fix an embarrassingly old bug where Varnish would run out of
-      workspace when requests come in fast over a single connection,
-      typically during synthetic benchmarks.</para>
-    </change>
-
-    <change type="bug" ref="795">
-      <para>Varnish will now allow <code>If-Modified-Since</code> requests
-      to objects without a <code>Last-Modified</code>-header, and instead
-      use the time the object was cached instead.</para>
-    </change>
-
-    <change type="bug" ref="789">
-      <para>Do not filter out <code>Content-Range</code> headers in
-      pass.</para>
-    </change>
-
-    <change type="enh">
-      <para>Require -d, -b, -f, -S or -T when starting Varnishd. In human
-      terms, this means that it is legal to start varnishd without a Vcl or
-      backend, but only if you have a CLI channel of some kind.</para>
-    </change>
-
-    <change type="bug">
-      <para>Don't suppress <code>Cache-Control</code> headers in pass
-      responses.</para>
-    </change>
-
-    <change type="enh">
-      <para>Merge multi-line Cache-Control and Vary header fields. Until
-      now, no browsers have needed this, but Chromium seems to find it
-      necessary to spread its Cache-Control across two lines, and we get to
-      deal with it.</para>
-    </change>
-
-    <change type="bug" ref="812">
-      <para>Make new-purge not touch busy objects. This fixes a potential
-      crash when calling <code>VRT_purge</code>.</para>
-    </change>
-    
-    <change type="enh">
-      <para>If there are everal grace-able objects, pick the least expired
-      one.</para>
-    </change>
-
-    <change type="bug" ref="817">
-      <para>Fix an issue with <code>varnishadm -T :6082</code>
-      shorthand.</para>
-    </change>
-
-    <change type="enh">
-      <para>Add bourn-shell like "here" documents on the CLI. Typical
-      usage:
-      <code>
-      vcl.inline vcl_new << 42
-      backend foo {...}
-      sub vcl_recv {...}
-      42
-      </code></para>
-    </change>
-
-    <change type="enh">
-      <para>Add CLI version to the CLI-banner, starting with version 1.0 to
-      mark here-documents.</para>
-    </change>
-
-    <change type="bug">
-      <para>Fix a problem with the expiry thread slacking off during high
-      load.</para>
-    </change>
-
-  </subsystem>
-
-  <subsystem>
-    <name>varnishtest</name>
-    <change type="bug" ref="804">
-      <para>Remove no longer existing <code>-L</code> option.</para>
-    </change>
-  </subsystem>
-
-
-</group>
diff --git a/doc/changes-2.1.4.xml b/doc/changes-2.1.4.xml
deleted file mode 100644
index c9211d8..0000000
--- a/doc/changes-2.1.4.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<?xml-stylesheet type="text/xml" href="changes-html.xsl"?>
-<!DOCTYPE changelog [
- <!ENTITY mdash "—">
-]>
-<!-- $Id: changes-2.1.4.xml 4709 2010-04-21 10:40:27Z tfheen $ -->
-<changelog xmlns:xi="http://www.w3.org/2001/XInclude">
-  <package>Varnish</package>
-  <version>2.1.4</version>
-
-  <xi:include href="changes-2.1.3-2.1.4.xml"/>
-</changelog>
diff --git a/doc/changes-2.1.5.xml b/doc/changes-2.1.5.xml
deleted file mode 100644
index 7e37731..0000000
--- a/doc/changes-2.1.5.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<?xml-stylesheet type="text/xml" href="changes-html.xsl"?>
-<!DOCTYPE changelog [
- <!ENTITY mdash "—">
-]>
-<changelog xmlns:xi="http://www.w3.org/2001/XInclude">
-  <package>Varnish</package>
-  <version>2.1.5</version>
-
-  <xi:include href="changes-2.1.4-2.1.5.xml"/>
-</changelog>
diff --git a/doc/changes-html.xsl b/doc/changes-html.xsl
deleted file mode 100644
index eeaa1a4..0000000
--- a/doc/changes-html.xsl
+++ /dev/null
@@ -1,92 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE stylesheet [
- <!ENTITY space " ">
- <!ENTITY nbsp " ">
-]>
-<!-- $Id$ -->
-<xsl:stylesheet version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns="http://www.w3.org/1999/xhtml">
-  <xsl:output method="xml" encoding="utf-8" media-type="text/html" indent="yes"/>
-
-  <xsl:strip-space elements="*"/>
-
-  <xsl:template match="/changelog">
-    <html>
-      <head>
-	<title><xsl:call-template name="title"/></title>
-	<link rel="stylesheet" type="text/css" href="changes.css"/>
-      </head>
-      <body>
-	<h1><xsl:call-template name="title"/></h1>
-	<xsl:apply-templates select="group"/>
-      </body>
-    </html>
-  </xsl:template>
-
-  <xsl:template name="title">
-    <xsl:text>Change log for&space;</xsl:text>
-    <xsl:value-of select="package"/>
-    <xsl:text>&space;</xsl:text>
-    <xsl:value-of select="version"/>
-  </xsl:template>
-
-  <xsl:template match="group">
-    <h2>
-      <xsl:text>Changes between&space;</xsl:text>
-      <xsl:value-of select="@from"/>
-      <xsl:text>&space;and&space;</xsl:text>
-      <xsl:value-of select="@to"/>
-    </h2>
-    <xsl:apply-templates select="subsystem"/>
-  </xsl:template>
-
-  <xsl:template match="subsystem">
-    <h3>
-      <xsl:value-of select="name"/>
-    </h3>
-    <ul>
-      <xsl:apply-templates select="change"/>
-    </ul>
-  </xsl:template>
-
-  <xsl:template match="change">
-    <li>
-      <xsl:apply-templates/>
-    </li>
-  </xsl:template>
-
-  <xsl:template match="para">
-    <p>
-      <xsl:apply-templates/>
-    </p>
-  </xsl:template>
-
-  <xsl:template match="ticket">
-    <a>
-      <xsl:attribute name="href">
-	<xsl:text>http://varnish.projects.linpro.no/ticket/</xsl:text>
-	<xsl:value-of select="@ref"/>
-      </xsl:attribute>
-      <xsl:text>ticket #</xsl:text>
-      <xsl:value-of select="@ref"/>
-    </a>
-  </xsl:template>
-
-  <xsl:template match="code">
-    <span>
-      <xsl:attribute name="class">
-	<xsl:value-of select="name()"/>
-      </xsl:attribute>
-      <xsl:apply-templates/>
-    </span>
-  </xsl:template>
-
-  <xsl:template match="*" priority="-1">
-    <xsl:message>Warning: no template for element <xsl:value-of select="name(
-)"/></xsl:message>
-    <xsl:value-of select="concat('<', name(), '>')"/>
-    <xsl:apply-templates/>
-    <xsl:value-of select="concat('</', name(), '>')"/>
-  </xsl:template>
-</xsl:stylesheet>
diff --git a/doc/changes-wiki.xsl b/doc/changes-wiki.xsl
deleted file mode 100644
index 9ff0d11..0000000
--- a/doc/changes-wiki.xsl
+++ /dev/null
@@ -1,76 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE stylesheet [
- <!ENTITY lf "
">
-]>
-<!-- $Id$ -->
-<xsl:stylesheet version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns="http://www.w3.org/1999/xhtml">
-  <xsl:output method="text" encoding="utf-8"/>
-
-  <xsl:strip-space elements="*"/>
-
-  <xsl:template match="/changelog">
-    <xsl:text>== </xsl:text>
-    <xsl:call-template name="title"/>
-    <xsl:text> ==&lf;</xsl:text>
-    <xsl:apply-templates select="group"/>
-  </xsl:template>
-
-  <xsl:template name="title">
-    <xsl:text>Change log for </xsl:text>
-    <xsl:value-of select="package"/>
-    <xsl:text> </xsl:text>
-    <xsl:value-of select="version"/>
-  </xsl:template>
-
-  <xsl:template match="group">
-    <xsl:text>=== </xsl:text>
-    <xsl:text>Changes between </xsl:text>
-    <xsl:value-of select="@from"/>
-    <xsl:text> and </xsl:text>
-    <xsl:value-of select="@to"/>
-    <xsl:text> ===&lf;</xsl:text>
-    <xsl:apply-templates select="subsystem"/>
-  </xsl:template>
-
-  <xsl:template match="subsystem">
-    <xsl:text>==== </xsl:text>
-    <xsl:value-of select="name"/>
-    <xsl:text> ====&lf;</xsl:text>
-    <xsl:apply-templates select="change"/>
-  </xsl:template>
-
-  <xsl:template match="change">
-    <xsl:text> * </xsl:text>
-    <xsl:apply-templates/>
-  </xsl:template>
-
-  <xsl:template match="para">
-    <xsl:apply-templates/>
-    <xsl:text>&lf;</xsl:text>
-  </xsl:template>
-
-  <xsl:template match="ticket">
-    <xsl:text>#</xsl:text>
-    <xsl:value-of select="@ref"/>
-  </xsl:template>
-
-  <xsl:template match="code">
-    <xsl:text> {{{</xsl:text>
-    <xsl:apply-templates/>
-    <xsl:text>}}} </xsl:text>
-  </xsl:template>
-
-  <xsl:template match="text()">
-    <xsl:value-of select="normalize-space()"/>
-  </xsl:template>
-
-  <xsl:template match="*" priority="-1">
-    <xsl:message>Warning: no template for element <xsl:value-of select="name(
-)"/></xsl:message>
-    <xsl:value-of select="concat('<', name(), '>')"/>
-    <xsl:apply-templates/>
-    <xsl:value-of select="concat('</', name(), '>')"/>
-  </xsl:template>
-</xsl:stylesheet>
diff --git a/doc/changes.css b/doc/changes.css
deleted file mode 100644
index f3d5c71..0000000
--- a/doc/changes.css
+++ /dev/null
@@ -1,31 +0,0 @@
-/* $Id$ */
-
-body {
-	background-color: white;
-	color: black;
-	font-family: sans-serif;
-	max-width: 40em;
-	margin: 1in auto 1in auto;
-}
-
-h1 {
-	font-size: 200%;
-	font-weight: bold;
-	color: maroon;
-}
-
-h2 {
-	font-size: 160%;
-	font-weight: bold;
-	color: maroon;
-}
-
-h3 {
-	font-size: 120%;
-	font-weight: bold;
-	color: maroon;
-}
-
-.code {
-	font-family: monospace;
-}
diff --git a/doc/changes.rst b/doc/changes.rst
index 06540bf..cbf4834 100644
--- a/doc/changes.rst
+++ b/doc/changes.rst
@@ -425,3 +425,1416 @@ Other
   version.
 - The documentation has been improved all over and should now be in
   much better shape than before
+
+===========================
+Changes from 2.1.4 to 2.1.5
+===========================
+
+varnishd
+--------
+
+-  On pass from vcl\_recv, we did not remove the backends Content-Length
+   header before adding our own. This could cause confusion for browsers
+   and has been fixed.
+
+-  Make pass with content-length work again. An issue with regards to
+   304, Content-Length and pass has been resolved.
+
+-  An issue relating to passed requests with If-Modified-Since headers
+   has been fixed. Varnish did not recognize that the 304-response did
+   not have a body.
+
+-  A potential lock-inversion with the ban lurker thread has been
+   resolved.
+
+-  Several build-dependency issues relating to rst2man have been fixed.
+   Varnish should now build from source without rst2man if you are using
+   tar-balls.
+
+-  Ensure Varnish reads the expected last CRLF after chunked data from
+   the backend. This allows re-use of the connection.
+
+-  Remove a GNU Make-ism during make dist to make BSD happier.
+
+-  Document the log, set, unset, return and restart statements in the
+   VCL documentation.
+
+-  Fix an embarrassingly old bug where Varnish would run out of
+   workspace when requests come in fast over a single connection,
+   typically during synthetic benchmarks.
+
+-  Varnish will now allow If-Modified-Since requests to objects without
+   a Last-Modified-header, and instead use the time the object was
+   cached instead.
+
+-  Do not filter out Content-Range headers in pass.
+
+-  Require -d, -b, -f, -S or -T when starting Varnishd. In human terms,
+   this means that it is legal to start varnishd without a Vcl or
+   backend, but only if you have a CLI channel of some kind.
+
+-  Don't suppress Cache-Control headers in pass responses.
+
+-  Merge multi-line Cache-Control and Vary header fields. Until now, no
+   browsers have needed this, but Chromium seems to find it necessary to
+   spread its Cache-Control across two lines, and we get to deal with
+   it.
+
+-  Make new-purge not touch busy objects. This fixes a potential crash
+   when calling VRT\_purge.
+
+-  If there are everal grace-able objects, pick the least expired one.
+
+-  Fix an issue with varnishadm -T :6082 shorthand.
+
+-  Add bourn-shell like "here" documents on the CLI. Typical usage:
+   vcl.inline vcl\_new << 42 backend foo {...} sub vcl\_recv {...} 42
+
+-  Add CLI version to the CLI-banner, starting with version 1.0 to mark
+   here-documents.
+
+-  Fix a problem with the expiry thread slacking off during high load.
+
+varnishtest
+-----------
+
+-  Remove no longer existing -L option.
+
+===========================
+Changes from 2.1.3 to 2.1.4
+===========================
+
+varnishd
+--------
+
+-  An embarrasing typo in the new binary heap layout caused inflated
+   obj/objcore/objhdr counts and could cause odd problems when the LRU
+   expunge mechanism was invoked. This has been fixed.
+
+-  We now have updated documentation in the reStructuredText format.
+   Manual pages and reference documentation are both built from this.
+
+-  We now include a DNS director which uses DNS for choosing which
+   backend to route requests to. Please see the documentation for more
+   details.
+
+-  If you restarted a request, the HTTP header X-Forwarded-For would be
+   updated multiple times. This has been fixed.
+
+-  If a VCL contained a % sign, and the vcl.show CLI command was used,
+   varnishd would crash. This has been fixed.
+
+-  When doing a pass operation, we would remove the Content-Length, Age
+   and Proxy-Auth headers. We are no longer doing this.
+
+-  now has a string representation, making it easier to construct
+   Expires headers in VCL.
+
+-  In a high traffic environment, we would sometimes reuse a file
+   descriptor before flushing the logs from a worker thread to the
+   shared log buffer. This would cause confusion in some of the tools.
+   This has been fixed by explicitly flushing the log when a backend
+   connection is closed.
+
+-  If the communication between the management and the child process
+   gets out of sync, we have no way to recover. Previously, varnishd
+   would be confused, but we now just kill the child and restart it.
+
+-  If the backend closes the connection on us just as we sent a request
+   to it, we retry the request. This should solve some interoperability
+   problems with Apache and the mpm-itk multi processing module.
+
+-  varnishd now only provides help output the current CLI session is
+   authenticated for.
+
+-  If the backend does not tell us which length indication it is using,
+   we now assume the resource ends EOF at.
+
+-  The client director now has a variable client.identity which is used
+   to choose which backend should receive a given request.
+
+-  The Solaris port waiter has been updated, and other portability fixes
+   for Solaris.
+
+-  There was a corner case in the close-down processing of pipes, this
+   has now been fixed.
+
+-  Previously, if we stopped polling a backend which was sick, it never
+   got marked as healthy. This has now been changed.
+
+-  It is now possible to specify ports as part of the .host field in
+   VCL.
+
+-  The synthetic counters were not locked properly, and so the sms\_
+   counters could underflow. This has now been fixed.
+
+-  The value of obj.status as a string in vcl\_error would not be
+   correct in all cases. This has been fixed.
+
+-  Varnish would try to trim storage segments completely filled when
+   using the malloc stevedore and the object was received chunked
+   encoding. This has been fixed.
+
+-  If a buggy backend sends us a Vary header with two colons, we would
+   previously abort. We now rather fix this up and ignore the extra
+   colon.
+
+-  req.hash\_always\_miss and req.hash\_ignore\_busy has been added, to
+   make preloading or periodically refreshing content work better.
+
+varnishncsa
+-----------
+
+-  varnishncsa would in some cases be confused by ESI requests and
+   output invalid lines. This has now been fixed.
+
+varnishlog
+----------
+
+-  varnishlog now allows -o and -u together.
+
+varnishtop
+----------
+
+-  varnishtop would crash on 32 bit architectures. This has been fixed.
+
+libvarnishapi
+-------------
+
+-  Regex inclusion and exclusion had problems with matching particular
+   parts of the string being matched. This has been fixed.
+
+
+===========================
+Changes from 2.1.2 to 2.1.3
+===========================
+
+varnishd
+--------
+
+-  Improve scalability of critbit.
+
+-  The critbit hash algorithm has now been tightened to make sure the
+   tree is in a consistent state at all points, and the time we wait for
+   an object to cool off after it is eligible for garbage collection has
+   been tweaked.
+
+-  Add log command to VCL. This emits a VCL\_log entry into the shared
+   memory log.
+
+-  Only emit Length and ReqEnd log entries if we actually have an XID.
+   This should get rid of some empty log lines in varnishncsa.
+
+-  Destroy directors in a predictable fashion, namely reverse of
+   creation order.
+
+-  Fix bug when ESI elements spanned storage elements causing a panic.
+
+-  In some cases, the VCL compiler would panic instead of giving
+   sensible messages. This has now been fixed.
+
+-  Correct an off-by-one error when the requested range exceeds the size
+   of an object.
+
+-  Handle requests for the end of an object correctly.
+
+-  Allow tabulator characters in the third field of the first line of
+   HTTP requests
+
+-  On Solaris, if the remote end sends us an RST, all system calls
+   related to that socket will return EINVAL. We now handle this better.
+
+libvarnishapi
+-------------
+
+-  The -X parameter didn't work correctly. This has been fixed.
+
+===========================
+Changes from 2.1.1 to 2.1.2
+===========================
+
+varnishd
+--------
+
+-  When adding Range support for 2.1.1, we accidentially introduced a
+   bug which would append garbage to objects larger than the chunk size,
+   by default 128k. Browsers would do the right thing due to
+   Content-Length, but some load balancers would get very confused.
+
+===========================
+Changes from 2.1.1 to 2.1.1
+===========================
+
+varnishd
+--------
+
+-  The changelog in 2.1.0 included syntax errors, causing the generated
+   changelog to be empty.
+
+-  The help text for default\_grace was wrongly formatted and included a
+   syntax error. This has now been fixed.
+
+-  varnishd now closes the file descriptor used to read the management
+   secret file (from the -S parameter).
+
+-  The child would previously try to close every valid file descriptor,
+   something which could cause problems if the file descriptor ulimit
+   was set too high. We now keep track of all the file descriptors we
+   open and only close up to that number.
+
+-  ESI was partially broken in 2.1.0 due to a bug in the rollback of
+   session workspace. This has been fixed.
+
+-  Reject the authcommand rather than crash if there is no -S parameter
+   given.
+
+-  Align pointers in allocated objects. This will in theory make Varnish
+   a tiny bit faster at the expense of slightly more memory usage.
+
+-  Ensure the master process process id is updated in the shared memory
+   log file after we go into the background.
+
+-  HEAD requests would be converted to GET requests too early, which
+   affected pass and pipe. This has been fixed.
+
+-  Update the documentation to point out that the TTL is no longer taken
+   into account to decide whether an object is cacheable or not.
+
+-  Add support for completely obliterating an object and all variants of
+   it. Currently, this has to be done using inline C.
+
+-  Add experimental support for the Range header. This has to be enabled
+   using the parameter http\_range\_support.
+
+-  The critbit hasher could get into a deadlock and had a race
+   condition. Both those have now been fixed.
+
+varnishsizes
+-----------~
+
+-  varnishsizes, which is like varnishhost, but for the length of
+   objects, has been added..
+
+
+===========================
+Changes from 2.0.6 to 2.1.0
+===========================
+
+varnishd
+--------
+
+-  Persistent storage is now experimentally supported using the
+   persistent stevedore. It has the same command line arguments as the
+   file stevedore.
+
+-  obj.\* is now called beresp.\* in vcl\_fetch, and obj.\* is now
+   read-only.
+
+-  The regular expression engine is now PCRE instead of POSIX regular
+   expressions.
+
+-  req.\* is now available in vcl\_deliver.
+
+-  Add saint mode where we can attempt to grace an object if we don't
+   like the backend response for some reason.
+
+   Related, add saintmode\_threshold which is the threshold for the
+   number of objects to be added to the trouble list before the backend
+   is considered sick.
+
+-  Add a new hashing method called critbit. This autoscales and should
+   work better on large object workloads than the classic hash. Critbit
+   has been made the default hash algorithm.
+
+-  When closing connections, we experimented with sending RST to free up
+   load balancers and free up threads more quickly. This caused some
+   problems with NAT routers and so has been reverted for now.
+
+-  Add thread that checks objects against ban list in order to prevent
+   ban list from growing forever. Note that this needs purges to be
+   written so they don't depend on req.\*. Enabled by setting
+   ban\_lurker\_sleep to a nonzero value.
+
+-  The shared memory log file format was limited to maximum 64k
+   simultaneous connections. This is now a 32 bit field which removes
+   this limitation.
+
+-  Remove obj\_workspace, this is now sized automatically.
+
+-  Rename acceptors to waiters
+
+-  vcl\_prefetch has been removed. It was never fully implemented.
+
+-  Add support for authenticating CLI connections.
+
+-  Add hash director that chooses which backend to use depending on
+   req.hash.
+
+-  Add client director that chooses which backend to use depending on
+   the client's IP address. Note that this ignores the X-Forwarded-For
+   header.
+
+-  varnishd now displays a banner by default when you connect to the
+   CLI.
+
+-  Increase performance somewhat by moving statistics gathering into a
+   per-worker structure that is regularly flushed to the global stats.
+
+-  Make sure we store the header and body of object together. This may
+   in some cases improve performance and is needed for persistence.
+
+-  Remove client-side address accounting. It was never used for anything
+   and presented a performance problem.
+
+-  Add a timestamp to bans, so you can know how old they are.
+
+-  Quite a few people got confused over the warning about not being able
+   to lock the shared memory log into RAM, so stop warning about that.
+
+-  Change the default CLI timeout to 10 seconds.
+
+-  We previously forced all inserts into the cache to be GET requests.
+   This has been changed to allow POST as well in order to be able to
+   implement purge-on-POST semantics.
+
+-  The CLI command stats now only lists non-zero values.
+
+-  The CLI command stats now only lists non-zero values.
+
+-  Use daemon(3) from libcompat on Darwin.
+
+-  Remove vcl\_discard as it causes too much complexity and never
+   actually worked particularly well.
+
+-  Remove vcl\_timeout as it causes too much complexity and never
+   actually worked particularly well.
+
+-  Update the documentation so it refers to sess\_workspace, not
+   http\_workspace.
+
+-  Document the -i switch to varnishd as well as the server.identity and
+   server.hostname VCL variables.
+
+-  purge.hash is now deprecated and no longer shown in help listings.
+
+-  When processing ESI, replace the five mandatory XML entities when we
+   encounter them.
+
+-  Add string representations of time and relative time.
+
+-  Add locking for n\_vbe\_conn to make it stop underflowing.
+
+-  When ESI-processing content, check for illegal XML character
+   entities.
+
+-  Varnish can now connect its CLI to a remote instance when starting
+   up, rather than just being connected to.
+
+-  It is no longer needed to specify the maximum number of HTTP headers
+   to allow from backends. This is now a run-time parameter.
+
+-  The X-Forwarded-For header is now generated by vcl\_recv rather than
+   the C code.
+
+-  It is now possible to not send all CLI traffic to syslog.
+
+-  It is now possible to not send all CLI traffic to syslog.
+
+-  In the case of varnish crashing, it now outputs a identifying string
+   with the OS, OS revision, architecture and storage parameters
+   together with the backtrace.
+
+-  Use exponential backoff when we run out of file descriptors or
+   sessions.
+
+-  Allow setting backend timeouts to zero.
+
+-  Count uptime in the shared memory log.
+
+-  Try to detect the case of two running varnishes with the same shmlog
+   and storage by writing the master and child process ids to the shmlog
+   and refusing to start if they are still running.
+
+-  Make sure to use EOF mode when serving ESI content to HTTP/1.0
+   clients.
+
+-  Make sure we close the connection if it either sends Connection:
+   close or it is a HTTP/1.0 backend that does not send Connection:
+   keep-alive.
+
+-  Increase the default session workspace to 64k on 64-bit systems.
+
+-  Make the epoll waiter use level triggering, not edge triggering as
+   edge triggering caused problems on very busy servers.
+
+-  Handle unforeseen client disconnections better on Solaris.
+
+-  Make session lingering apply to new sessions, not just reused
+   sessions.
+
+varnishstat
+-----------
+
+-  Make use of the new uptime field in the shared memory log rather than
+   synthesizing it from the start time.
+
+varnishlog
+----------
+
+-  Exit at the end of the file when started with -d.
+
+varnishadm
+----------
+
+-  varnishadm can now have a timeout when trying to connect to the
+   running varnishd.
+
+-  varnishadm now knows how to respond to the secret from a secured
+   varnishd
+
+===========================
+Changes from 2.0.5 to 2.0.6
+===========================
+
+varnishd
+--------
+
+-  2.0.5 had an off-by-one error in the ESI handling causing includes to
+   fail a large part of the time. This has now been fixed.
+
+-  Try harder to not confuse backends when sending them backend probes.
+   We half-closed the connection, something some backends thought meant
+   we had dropped the connection. Stop doing so, and add the capability
+   for specifying the expected response code.
+
+-  In 2.0.5, session lingering was turned on. This caused statistics to
+   not be counted often enough in some cases. This has now been fixed.
+
+-  Avoid triggering an assert if the other end closes the connection
+   while we are lingering and waiting for another request from them.
+
+-  When generating backtraces, prefer the built-in backtrace function if
+   such exists. This fixes a problem compiling 2.0.5 on Solaris.
+
+-  Make it possible to specify the per-thread stack size. This might be
+   useful on 32 bit systems with their limited address space.
+
+-  Document the -C option to varnishd.
+
+===========================
+Changes from 2.0.4 to 2.0.5
+===========================
+
+varnishd
+--------
+
+-  Handle object workspace overruns better.
+
+-  Allow turning off ESI processing per request by using set req.esi =
+   off.
+
+-  Tell the kernel that we expect to use the mmap-ed file in a random
+   fashion. On Linux, this turns off/down readahead and increases
+   performance.
+
+-  Make it possible to change the maximum number of HTTP headers we
+   allow by passing --with-max-header-fields=NUM rather than changing
+   the code.
+
+-  Implement support for HTTP continuation lines.
+
+-  Change how connections are closed and only use SO\_LINGER for orderly
+   connection closure. This should hopefully make worker threads less
+   prone to hangups on network problems.
+
+-  Handle multi-element purges correctly. Previously we ended up with
+   parse errors when this was done from VCL.
+
+-  Handle illegal responses from the backend better by serving a 503
+   page rather than panic-ing.
+
+-  When we run into an assertion that is not true, Varnish would
+   previously dump a little bit of information about itself. Extend that
+   information with a backtrace. Note that this relies on the varnish
+   binary being unstripped.
+
+-  Add a session\_max parameter that limits the maximum number of
+   sessions we keep open before we start dropping new connections
+   summarily.
+
+-  Try to consume less memory when doing ESI processing by properly
+   rolling back used workspace after processing an object. This should
+   make it possible to turn sess\_workspace quite a bit for users with
+   ESI-heavy pages.
+
+-  Turn on session\_linger by default. Tests have shown that
+   session\_linger helps a fair bit with performance.
+
+-  Rewrite the epoll acceptor for better performance. This should lead
+   to both higher processing rates and maximum number of connections on
+   Linux.
+
+-  Add If-None-Match support, this gives significant bandwidth savings
+   for users with compliant browsers.
+
+-  RFC2616 specifies that ETag, Content-Location, Expires, Cache-Control
+   and Vary should be emitted when delivering a response with the 304
+   response code.
+
+-  Various fixes which makes Varnish compile and work on AIX.
+
+-  Turn on TCP\_DEFER\_ACCEPT on Linux. This should make us less
+   suspecible to denial of service attacks as well as give us slightly
+   better performance.
+
+-  Add an .initial property to the backend probe specification. This is
+   the number of good probes we pretend to have seen. The default is one
+   less than .threshold, which means the first probe will decide if we
+   consider the backend healthy.
+
+-  Make it possible to compare strings against other string-like
+   objects, not just plain strings. This allows you to compare two
+   headers, for instance.
+
+-  When support for restart in vcl\_error was added, there was no check
+   to prevent infinte recursion. This has now been fixed.
+
+-  Turn on purge\_dups by default. This should make us consume less
+   memory when there are many bans for the same pattern added.
+
+-  Add a new log tag called FetchError which tries to explain why we
+   could not fetch an object from the backend.
+
+-  Change the default srcaddr\_ttl to 0. It is not used by anything and
+   has been removed in the development version. This will increase
+   performance somewhat.
+
+varnishtop
+----------
+
+-  varnishtop did not handle variable-length log fields correctly. This
+   is now fixed.
+
+-  varnishtop previously did not print the name of the tag, which made
+   it very hard to understand. We now print out the tag name.
+
+===========================
+Changes from 2.0.3 to 2.0.4
+===========================
+
+varnishd
+--------
+
+-  Make Varnish more portable by pulling in fixes for Solaris and
+   NetBSD.
+
+-  Correct description of -a in the manual page.
+
+-  Ensure we are compiling in C99 mode.
+
+-  If error was called with a null reason, we would crash on Solaris.
+   Make sure this no longer happens.
+
+-  Varnish used to crash if you asked it to use a non-existent waiter.
+   This has now been fixed.
+
+-  Add documentation to the default VCL explaining that using
+   Connection: close in vcl\_close is generally a good idea.
+
+-  Add minimal facility for dealing with TELNET option negotiation by
+   returning WONT to DO and DONT requests.
+
+-  If the backend is unhealthy, use a graced object if one is available.
+
+-  Make server.hostname and server.identity available to VCL. The latter
+   can be set with the -i parameter to varnishd.
+
+-  Make restart available from vcl\_error.
+
+-  Previously, only the TTL of an object was considered in whether it
+   would be marked as cacheable. This has been changed to take the grace
+   into consideration as well.
+
+-  Previously, if an included ESI fragment had a zero size, we would
+   send out a zero-sized chunk which signifies end-of-transmission. We
+   now ignore zero-sized chunks.
+
+-  We accidentially slept for far too long when we reached the maximum
+   number of open file descriptors. This has been corrected and
+   accept\_fd\_holdoff now works correctly.
+
+-  Previously, when ESI processing, we did not look at the full length,
+   but stopped at the first NULL byte. We no longer do that, enabling
+   ESI processing of binary data.
+
+varnishtest
+-----------
+
+-  Make sure system "..." returns successfully to ensure test failures
+   do not go unnoticed.
+
+-  Make it possible to send NULL bytes through the testing framework.
+
+===========================
+Changes from 2.0.2 to 2.0.3
+===========================
+
+varnishd
+--------
+
+-  Handle If-Modified-Since and ESI sub-objects better, fixing a problem
+   where we sometimes neglected to insert included objects.
+
+-  restart in vcl\_hit is now supported.
+
+-  Setting the TTL of an object to 0 seconds would sometimes cause it to
+   be delivered for up to one second - epsilon. This has been corrected
+   and we should now never deliver those objects to other clients.
+
+-  The malloc storage backend now prints the maximum storage size, just
+   like the file backend.
+
+-  Various small documentation bugs have been fixed.
+
+-  Varnish did not set a default interval for backend probes, causing it
+   to poll the backend continuously. This has been corrected.
+
+-  Allow "true" and "false" when setting boolean parameters, in addition
+   to on/off, enable/disable and yes/no.
+
+-  Default to always talking HTTP 1.1 with the backend.
+
+-  Varnish did not make sure the file it was loading was a regular file.
+   This could cause Varnish to crash if it was asked to load a directory
+   or other non-regular file. We now check that the file is a regular
+   file before loading it.
+
+-  The binary heap used for expiry processing had scalability problems.
+   Work around this by using stripes of a fixed size, which should make
+   this scale better, particularly when starting up and having lots of
+   objects.
+
+-  When we imported the jemalloc library into the Varnish tree, it did
+   not compile without warnings. This has now been fixed.
+
+-  Varnish took a very long time to detect that the backend did not
+   respond. To remedy this, we now have read timeouts in addition to the
+   connect timeout. Both the first\_byte\_timeout and the
+   between\_bytes\_timeout defaults to 60 seconds. The connect timeout
+   is no longer in milliseconds, but rather in seconds.
+
+-  Previously, the VCL to C conversion as well as the invocation of the
+   C compiler was done in the management process. This is now done in a
+   separate sub-process. This prevents any bugs in the VCL compiler from
+   affecting the management process.
+
+-  Chunked encoding headers were counted in the statistics for header
+   bytes. They no longer are.
+
+-  ESI processed objects were not counted in the statistics for body
+   bytes. They now are.
+
+-  It is now possible to adjust the maximum record length of log entries
+   in the shmlog by tuning the shm\_reclen parameter.
+
+-  The management parameters listed in the CLI were not sorted, which
+   made it hard to find the parameter you were looking for. They are now
+   sorted, which should make this easier.
+
+-  Add a new hashing type, "critbit", which uses a lock-less tree based
+   lookup algorithm. This is experimental and should not be enabled in
+   production environments without proper testing.
+
+-  The session workspace had a default size of 8k. It is now 16k, which
+   should make VCLs where many headers are processed less prone to
+   panics.
+
+-  We have seen that people seem to be confused as to which actions in
+   the different VCL functions return and which ones don't. Add a new
+   syntax return(action) to make this more explicit. The old syntax is
+   still supported.
+
+-  Varnish would return an error if any of the management IPs listed in
+   the -T parameter could not be listened to. We now only return an
+   error if none of them can be listened to.
+
+-  In the case of the backend or client giving us too many parameters,
+   we used to just ignore the overflowing headers. This is problematic
+   if you end up ignoreing Content-Length, Transfer-Encoding and similar
+   headers. We now give out a 400 error to the client if it sends us too
+   many and 503 if we get too many from the backend.
+
+-  We used panic if we got a too large chunked header. This behaviour
+   has been changed into just failing the transaction.
+
+-  Varnish now supports an extended purge method where it is possible to
+   do purge req.http.host ~ "web1.com" && req.url ~ "\\.png" and
+   similar. See the documentation for details.
+
+-  Under heavy load, Varnish would sometimes crash when trying to update
+   the per-request statistics. This has now been fixed.
+
+-  It is now possible to not save the hash string in the session and
+   object workspace. This will save a lot of memory on sites with many
+   small objects. Disabling the purge\_hash parameter also disables the
+   purge.hash facility.
+
+-  Varnish now supports !~ as a "no match" regular expression matcher.
+
+-  In some cases, you could get serialised access to "pass" objects. We
+   now make it default to the default\_ttl value; this can be overridden
+   in vcl\_fetch.
+
+-  Varnish did not check the syntax of regsub calls properly. More
+   checking has been added.
+
+-  If the client closed the connection while Varnish was processing ESI
+   elements, Varnish would crash while trying to write the object to the
+   client. We now check if the client has closed the connection.
+
+-  The ESI parser had a bug where it would crash if an XML comment would
+   span storage segments. This has been fixed.
+
+VCL Manual page
+--------------~
+
+-  The documentation on how capturing parentheses work was wrong. This
+   has been corrected.
+
+-  Grace has now been documented.
+
+varnishreplay
+-------------
+
+-  varnishreplay did not work correctly on Linux, due to a too small
+   stack. This has now been fixed.
+
+===========================
+Changes from 2.0.1 to 2.0.2
+===========================
+
+varnishd
+--------
+
+-  In high-load situations, when using ESI, varnishd would sometimes
+   mishandle objects and crash. This has been worked around.
+
+varnishreplay
+-------------
+
+-  varnishreplay did not work correctly on Linux, due to a too small
+   stack. This has now been fixed.
+
+
+=========================
+Changes from 2.0 to 2.0.1
+=========================
+
+varnishd
+--------
+
+-  When receiving a garbled HTTP request, varnishd would sometimes
+   crash. This has been fixed.
+
+-  There was an off-by-one error in the ACL compilation. Now fixed.
+
+Red Hat spec file
+----------------~
+
+-  A typo in the spec file made the .rpm file names wrong.
+
+=========================
+Changes from 1.1.2 to 2.0
+=========================
+
+varnishd
+--------
+
+-  Only look for sendfile on platforms where we know how to use it,
+   which is FreeBSD for now.
+
+-  Make it possible to adjust the shared memory log size and bump the
+   size from 8MB to 80MB.
+
+-  Fix up the handling of request bodies to better match what RFC2616
+   mandates. This makes PUT, DELETE, OPTIONS and TRACE work in addition
+   to POST.
+
+-  Change how backends are defined, to a constant structural defintion
+   style. See http://varnish.projects.linpro.no/wiki/VclSyntaxChanges
+   for the details.
+
+-  Add directors, which wrap backends. Currently, there's a random
+   director and a round-robin director.
+
+-  Add "grace", which is for how long and object will be served, even
+   after it has expired. To use this, both the object's and the
+   request's grace parameter need to be set.
+
+-  Manual pages have been updated for new VCL syntax and varnishd
+   options.
+
+-  Man pages and other docs have been updated.
+
+-  The shared memory log file is now locked in memory, so it should not
+   be paged out to disk.
+
+-  We now handle Vary correctly, as well as Expect.
+
+-  ESI include support is implemented.
+
+-  Make it possible to limit how much memory the malloc uses.
+
+-  Solaris is now supported.
+
+-  There is now a regsuball function, which works like regsub except it
+   replaces all occurences of the regex, not just the first.
+
+-  Backend and director declarations can have a .connect\_timeout
+   parameter, which tells us how long to wait for a successful
+   connection.
+
+-  It is now possible to select the acceptor to use by changing the
+   acceptor parameter.
+
+-  Backends can have probes associated with them, which can be checked
+   with req.backend.health in VCL as well as being handled by directors
+   which do load-balancing.
+
+-  Support larger-than-2GB files also on 32 bit hosts. Please note that
+   this does not mean we can support caches bigger than 2GB, it just
+   means logfiles and similar can be bigger.
+
+-  In some cases, we would remove the wrong header when we were
+   stripping Content-Transfer-Encoding headers from a request. This has
+   been fixed.
+
+-  Backends can have a .max\_connections associated with them.
+
+-  On Linux, we need to set the dumpable bit on the child if we want
+   core dumps. Make sure it's set.
+
+-  Doing purge.hash() with an empty string would cause us to dump core.
+   Fixed so we don't do that any more.
+
+-  We ran into a problem with glibc's malloc on Linux where it seemed
+   like it failed to ever give memory back to the OS, causing the system
+   to swap. We have now switched to jemalloc which appears not to have
+   this problem.
+
+-  max\_restarts was never checked, so we always ended up running out of
+   workspace. Now, vcl\_error is called when we reach max\_restarts.
+
+varnishtest
+-----------
+
+-  varnishtest is a tool to do correctness tests of varnishd. The test
+   suite is run by using make check.
+
+varnishtop
+----------
+
+-  We now set the field widths dynamically based on the size of the
+   terminal and the name of the longest field.
+
+varnishstat
+-----------
+
+-  varnishstat -1 now displays the uptime too.
+
+varnishncsa
+-----------
+
+-  varnishncsa now does fflush after each write. This makes tail -f work
+   correctly, as well as avoiding broken lines in the log file.
+
+-  It is possible to get varnishncsa to output the X-Forwarded-For
+   instead of the client IP by passing -f to it.
+
+Build system
+-----------~
+
+-  Various sanity checks have been added to configure, it now complains
+   about no ncurses or if SO\_RCVTIMEO or SO\_SNDTIMEO are
+   non-functional. It also aborts if there's no working acceptor
+   mechanism
+
+-  The C compiler invocation is decided by the configure script and can
+   now be overridden by passing VCC\_CC when running configure.
+
+===========================
+Changes from 1.1.1 to 1.1.2
+===========================
+
+varnishd
+--------
+
+-  When switching to a new VCL configuration, a race condition exists
+   which may cause Varnish to reference a backend which no longer exists
+   (see `ticket #144 <http://varnish.projects.linpro.no/ticket/144>`_).
+   This race condition has not been entirely eliminated, but it should
+   occur less frequently.
+
+-  When dropping a TCP session before any requests were processed, an
+   assertion would be triggered due to an uninitialized timestamp (see
+   `ticket #132 <http://varnish.projects.linpro.no/ticket/132>`_). The
+   timestamp is now correctly initialized.
+
+-  Varnish will now correctly generate a Date: header for every response
+   instead of copying the one it got from the backend (see `ticket
+   #157 <http://varnish.projects.linpro.no/ticket/157>`_).
+
+-  Comparisons in VCL which involve a non-existent string (usually a
+   header which is not present in the request or object being processed)
+   would cause a NULL pointer dereference; now the comparison will
+   simply fail.
+
+-  A bug in the VCL compiler which would cause a double-free when
+   processing include directives has been fixed.
+
+-  A resource leak in the worker thread management code has been fixed.
+
+-  When connecting to a backend, Varnish will usually get the address
+   from a cache. When the cache is refreshed, existing connections may
+   end up with a reference to an address structure which no longer
+   exists, resulting in a crash. This race condition has been somewhat
+   mitigated, but not entirely eliminated (see `ticket
+   #144 <http://varnish.projects.linpro.no/ticket/144>`_.)
+
+-  Varnish will now pass the correct protocol version in pipe mode: the
+   backend will get what the client sent, and vice versa.
+
+-  The core of the pipe mode code has been rewritten to increase
+   robustness and eliminate spurious error messages when either end
+   closes the connection in a manner Varnish did not anticipate.
+
+-  A memory leak in the backend code has been plugged.
+
+-  When using the kqueue acceptor, if a client shuts down the request
+   side of the connection (as many clients do after sending their final
+   request), it was possible for the acceptor code to receive the EOF
+   event and recycle the session while the last request was still being
+   serviced, resulting in a assertion failure and a crash when the
+   worker thread later tried to delete the session. This should no
+   longer happen (see `ticket
+   #162 <http://varnish.projects.linpro.no/ticket/162>`_.)
+
+-  A mismatch between the recorded length of a cached object and the
+   amount of data actually present in cache for that object can
+   occasionally occur (see `ticket
+   #167 <http://varnish.projects.linpro.no/ticket/167>`_.) This has been
+   partially fixed, but may still occur for error pages generated by
+   Varnish when a problem arises while retrieving an object from the
+   backend.
+
+-  Some socket-related system calls may return unexpected error codes
+   when operating on a TCP connection that has been shut down at the
+   other end. These error codes would previously cause assertion
+   failures, but are now recognized as harmless conditions.
+
+varnishhist
+-----------
+
+-  Pressing 0 though 9 while varnishhist is running will change the
+   refresh interval to the corresponding power of two, in seconds.
+
+varnishncsa
+-----------
+
+-  The varnishncsa tool can now daemonize and write a PID file like
+   varnishlog, using the same command-line options. It will also reopen
+   its output upon receipt of a SIGHUP if invoked with -w.
+
+varnishstat
+-----------
+
+-  Pressing 0 though 9 while varnishstat is running will change the
+   refresh interval to the corresponding power of two, in seconds.
+
+Build system
+-----------~
+
+-  Varnish's <queue.h> has been modified to avoid conflicts with
+   <sys/queue.h> on platforms where the latter is included indirectly
+   through system headers.
+
+-  Several steps have been taken towards Solaris support, but this is
+   not yet complete.
+
+-  When configure was run without an explicit prefix, Varnish's idea of
+   the default state directory would be garbage and a state directory
+   would have to be specified manually with -n. This has been corrected.
+
+=========================
+Changes from 1.1 to 1.1.1
+=========================
+
+varnishd
+--------
+
+-  The code required to allow VCL to read obj.status, which had
+   accidentally been left out, has now been added.
+
+-  Varnish will now always include a Connection: header in its reply to
+   the client, to avoid possible misunderstandings.
+
+-  A bug that triggered an assertion failure when generating synthetic
+   error documents has been corrected.
+
+-  A new VCL function, purge\_url, provides the same functionality as
+   the url.purge management command.
+
+-  Previously, Varnish assumed that the response body should be sent
+   only if the request method was GET. This was a problem for custom
+   request methods (such as PURGE), so the logic has been changed to
+   always send the response body except in the specific case of a HEAD
+   request.
+
+-  Changes to run-time parameters are now correctly propagated to the
+   child process.
+
+-  Due to the way run-time parameters are initialized at startup,
+   varnishd previously required the nobody user and the nogroup group to
+   exist even if a different user and group were specified on the
+   command line. This has been corrected.
+
+-  Under certain conditions, the VCL compiler would carry on after a
+   syntax error instead of exiting after reporting the error. This has
+   been corrected.
+
+-  The manner in which the hash string is assembled has been modified to
+   reduce memory usage and memory-to-memory copying.
+
+-  Before calling vcl\_miss, Varnish assembles a tentative request
+   object for the backend request which will usually follow. This object
+   would be leaked if vcl\_miss returned anything else than fetch. This
+   has been corrected.
+
+-  The code necessary to handle an error return from vcl\_fetch and
+   vcl\_deliver had inadvertantly been left out. This has been
+   corrected.
+
+-  Varnish no longer prints a spurious "child died" message (the result
+   of reaping the compiler process) after compiling a new VCL
+   configuration.
+
+-  Under some circumstances, due to an error in the workspace management
+   code, Varnish would lose the "tail" of a request, i.e. the part of
+   the request that has been received from the client but not yet
+   processed. The most obvious symptom of this was that POST requests
+   would work with some browsers but not others, depending on details of
+   the browser's HTTP implementation. This has been corrected.
+
+-  On some platforms, due to incorrect assumptions in the CLI code, the
+   management process would crash while processing commands received
+   over the management port. This has been corrected.
+
+Build system
+-----------~
+
+-  The top-level Makefile will now honor $DESTDIR when creating the
+   state directory.
+
+-  The Debian and RedHat packages are now split into three (main / lib /
+   devel) as is customary.
+
+-  A number of compile-time and run-time portability issues have been
+   addressed.
+
+-  The autogen.sh script had workarounds for problems with the GNU
+   autotools on FreeBSD; these are no longer needed and have been
+   removed.
+
+-  The libcompat library has been renamed to libvarnishcompat and is now
+   dynamic rather than static. This simplifies the build process and
+   resolves an issue with the Mac OS X linker.
+
+=========================
+Changes from 1.0.4 to 1.1
+=========================
+
+varnishd
+--------
+
+-  Readability of the C source code generated from VCL code has been
+   improved.
+
+-  Equality (==) and inequality (!=) operators have been implemented for
+   IP addresses (which previously could only be compared using ACLs).
+
+-  The address of the listening socket on which the client connection
+   was received is now available to VCL as the server.ip variable.
+
+-  Each object's hash key is now computed based on a string which is
+   available to VCL as req.hash. A VCL hook named vcl\_hash has been
+   added to allow VCL scripts to control hash generation (for instance,
+   whether or not to include the value of the Host: header in the hash).
+
+-  The setup code for listening sockets has been modified to detect and
+   handle situations where a host name resolves to multiple IP
+   addresses. It will now attempt to bind to each IP address separately,
+   and report a failure only if none of them worked.
+
+-  Network or protocol errors that occur while retrieving an object from
+   a backend server now result in a synthetic error page being inserted
+   into the cache with a 30-second TTL. This should help avoid driving
+   an overburdened backend server into the ground by repeatedly
+   requesting the same object.
+
+-  The child process will now drop root privileges immediately upon
+   startup. The user and group to use are specified with the user and
+   group run-time parameters, which default to nobody and nogroup,
+   respectively. Other changes have been made in an effort to increase
+   the isolation between parent and child, and reduce the impact of a
+   compromise of the child process.
+
+-  Objects which are received from the backend with a Vary: header are
+   now stored separately according to the values of the headers
+   specified in Vary:. This allows Varnish to correctly cache e.g.
+   compressed and uncompressed versions of the same object.
+
+-  Each Varnish instance now has a name, which by default is the host
+   name of the machine it runs on, but can be any string that would be
+   valid as a relative or absolute directory name. It is used to
+   construct the name of a directory in which the server state as well
+   as all temporary files are stored. This makes it possible to run
+   multiple Varnish instances on the same machine without conflict.
+
+-  When invoked with the -C option, varnishd will now not just translate
+   the VCL code to C, but also compile the C code and attempt to load
+   the resulting shared object.
+
+-  Attempts by VCL code to reference a variable outside its scope or to
+   assign a value to a read-only variable will now result in
+   compile-time rather than run-time errors.
+
+-  The new command-line option -F will make varnishd run in the
+   foreground, without enabling debugging.
+
+-  New VCL variables have been introduced to allow inspection and
+   manipulation of the request sent to the backend (bereq.request,
+   bereq.url, bereq.proto and bereq.http) and the response to the client
+   (resp.proto, resp.status, resp.response and resp.http).
+
+-  Statistics from the storage code (including the amount of data and
+   free space in the cache) are now available to varnishstat and other
+   statistics-gathering tools.
+
+-  Objects are now kept on an LRU list which is kept loosely up-to-date
+   (to within a few seconds). When cache runs out, the objects at the
+   tail end of the LRU list are discarded one by one until there is
+   enough space for the freshly requested object(s). A VCL hook,
+   vcl\_discard, is allowed to inspect each object and determine its
+   fate by returning either keep or discard.
+
+-  A new VCL hook, vcl\_deliver, provides a chance to adjust the
+   response before it is sent to the client.
+
+-  A new management command, vcl.show, displays the VCL source code of
+   any loaded configuration.
+
+-  A new VCL variable, now, provides VCL scripts with the current time
+   in seconds since the epoch.
+
+-  A new VCL variable, obj.lastuse, reflects the time in seconds since
+   the object in question was last used.
+
+-  VCL scripts can now add an HTTP header (or modify the value of an
+   existing one) by assigning a value to the corresponding variable, and
+   strip an HTTP header by using the remove keyword.
+
+-  VCL scripts can now modify the HTTP status code of cached objects
+   (obj.status) and responses (resp.status)
+
+-  Numeric and other non-textual variables in VCL can now be assigned to
+   textual variables; they will be converted as needed.
+
+-  VCL scripts can now apply regular expression substitutions to textual
+   variables using the regsub function.
+
+-  A new management command, status, returns the state of the child.
+
+-  Varnish will now build and run on Mac OS X.
+
+varnishadm
+----------
+
+-  This is a new utility which sends a single command to a Varnish
+   server's management port and prints the result to stdout, greatly
+   simplifying the use of the management port from scripts.
+
+varnishhist
+-----------
+
+-  The user interface has been greatly improved; the histogram will be
+   automatically rescaled and redrawn when the window size changes, and
+   it is updated regularly rather than at a rate dependent on the amount
+   of log data gathered. In addition, the name of the Varnish instance
+   being watched is displayed in the upper right corner.
+
+varnishncsa
+-----------
+
+-  In addition to client traffic, varnishncsa can now also process log
+   data from backend traffic.
+
+-  A bug that would cause varnishncsa to segfault when it encountered an
+   empty HTTP header in the log file has been fixed.
+
+varnishreplay
+-------------
+
+-  This new utility will attempt to recreate the HTTP traffic which
+   resulted in the raw Varnish log data which it is fed.
+
+varnishstat
+-----------
+
+-  Don't print lifetime averages when it doesn't make any sense—for
+   instance, there is no point in dividing the amount in bytes of free
+   cache space by the lifetime in seconds of the varnishd process.
+
+-  The user interface has been greatly improved; varnishstat will no
+   longer print more than fits in the terminal, and will respond
+   correctly to window resize events. The output produced in one-shot
+   mode has been modified to include symbolic names for each entry. In
+   addition, the name of the Varnish instance being watched is displayed
+   in the upper right corner in curses mode.
+
+varnishtop
+----------
+
+-  The user interface has been greatly improved; varnishtop will now
+   respond correctly to window resize events, and one-shot mode (-1)
+   actually works. In addition, the name of the Varnish instance being
+   watched is displayed in the upper right corner in curses mode.
+
+===========================
+Changes from 1.0.3 to 1.0.4
+===========================
+
+varnishd
+--------
+
+-  The request workflow has been redesigned to simplify request
+   processing and eliminate code duplication. All codepaths which need
+   to speak HTTP now share a single implementation of the protocol. Some
+   new VCL hooks have been added, though they aren't much use yet. The
+   only real user-visible change should be that Varnish now handles
+   persistent backend connections correctly (see `ticket
+   #56 <http://varnish.projects.linpro.no/ticket/56>`_).
+
+-  Support for multiple listen addresses has been added.
+
+-  An "include" facility has been added to VCL, allowing VCL code to
+   pull in code fragments from multiple files.
+
+-  Multiple definitions of the same VCL function are now concatenated
+   into one in the order in which they appear in the source. This
+   simplifies the mechanism for falling back to the built-in default for
+   cases which aren't handled in custom code, and facilitates
+   modularization.
+
+-  The code used to format management command arguments before passing
+   them on to the child process would underestimate the amount of space
+   needed to hold each argument once quotes and special characters were
+   properly escaped, resulting in a buffer overflow. This has been
+   corrected.
+
+-  The VCL compiler has been overhauled. Several memory leaks have been
+   plugged, and error detection and reporting has been improved
+   throughout. Parts of the compiler have been refactored to simplify
+   future extension of the language.
+
+-  A bug in the VCL compiler which resulted in incorrect parsing of the
+   decrement (-=) operator has been fixed.
+
+-  A new -C command-line option has been added which causes varnishd to
+   compile the VCL code (either from a file specified with -f or the
+   built-in default), print the resulting C code and exit.
+
+-  When processing a backend response using chunked encoding, if a chunk
+   header crosses a read buffer boundary, read additional bytes from the
+   backend connection until the chunk header is complete.
+
+-  A new ping\_interval run-time parameter controls how often the
+   management process checks that the worker process is alive.
+
+-  A bug which would cause the worker process to dereference a NULL
+   pointer and crash if the backend did not respond has been fixed.
+
+-  In some cases, such as when they are used by AJAX applications to
+   circumvent Internet Explorer's over-eager disk cache, it may be
+   desirable to cache POST requests. However, the code path responsible
+   for delivering objects from cache would only transmit the response
+   body when replying to a GET request. This has been extended to also
+   apply to POST.
+
+   This should be revisited at a later date to allow VCL code to control
+   whether the body is delivered.
+
+-  Varnish now respects Cache-control: s-maxage, and prefers it to
+   Cache-control: max-age if both are present.
+
+   This should be revisited at a later date to allow VCL code to control
+   which headers are used and how they are interpreted.
+
+-  When loading a new VCL script, the management process will now load
+   the compiled object to verify that it links correctly before
+   instructing the worker process to load it.
+
+-  A new -P command-line options has been added which causes varnishd to
+   create a PID file.
+
+-  The sendfile\_threshold run-time parameter's default value has been
+   set to infinity after a variety of sendfile()-related bugs were
+   discovered on several platforms.
+
+varnishlog
+----------
+
+-  When grouping log entries by request, varnishlog attempts to collapse
+   the log entry for a call to a VCL function with the log entry for the
+   corresponding return from VCL. When two VCL calls were made in
+   succession, varnishlog would incorrectly omit the newline between the
+   two calls (see `ticket
+   #95 <http://varnish.projects.linpro.no/ticket/95>`_).
+
+-  New -D and -P command-line options have been added to daemonize and
+   create a pidfile, respectively.
+
+-  The flag that is raised upon reception of a SIGHUP has been marked
+   volatile so it will not be optimized away by the compiler.
+
+varnishncsa
+-----------
+
+-  The formatting callback has been largely rewritten for clarity,
+   robustness and efficiency.
+
+   If a request included a Host: header, construct and output an
+   absolute URL. This makes varnishncsa output from servers which handle
+   multiple virtual hosts far more useful.
+
+-  The flag that is raised upon reception of a SIGHUP has been marked
+   volatile so it will not be optimized away by the compiler.
+
+Documentation
+-------------
+
+-  The documentation—especially the VCL documentation—has been greatly
+   extended and improved.
+
+Build system
+------------
+
+-  The name and location of the curses or ncurses library is now
+   correctly detected by the configure script instead of being hardcoded
+   into affected Makefiles. This allows Varnish to build correctly on a
+   wider range of platforms.
+
+-  Compatibility shims for clock\_gettime() are now correctly applied
+   where needed, allowing Varnish to build on MacOS X.
+
+-  The autogen.sh script will now correctly detect and warn about
+   automake versions which are known not to work correctly.
diff --git a/doc/sphinx/installation/install.rst b/doc/sphinx/installation/install.rst
index d725f81..fe8496d 100644
--- a/doc/sphinx/installation/install.rst
+++ b/doc/sphinx/installation/install.rst
@@ -92,7 +92,6 @@ installed. On a Debian or Ubuntu system these are:
 * libtool 
 * autoconf
 * libncurses-dev
-* xsltproc
 * groff-base
 * libpcre3-dev
 * pkg-config
@@ -107,7 +106,6 @@ packages installed:
 * autoconf 
 * libtool
 * ncurses-devel
-* libxslt
 * groff
 * pcre-devel
 * pkgconfig
diff --git a/redhat/varnish.spec b/redhat/varnish.spec
index 5cf9c97..ead5745 100644
--- a/redhat/varnish.spec
+++ b/redhat/varnish.spec
@@ -15,7 +15,7 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 # To build from git, start with a make dist, see redhat/README.redhat 
 # You will need at least automake autoconf libtool python-docutils
 #BuildRequires: automake autoconf libtool python-docutils
-BuildRequires: ncurses-devel libxslt groff pcre-devel pkgconfig
+BuildRequires: ncurses-devel groff pcre-devel pkgconfig
 Requires: varnish-libs = %{version}-%{release}
 Requires: logrotate
 Requires: ncurses



More information about the varnish-commit mailing list