Commit 10c81c11 authored by Tollef Fog Heen's avatar Tollef Fog Heen

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.
parent ea6f0a4a
......@@ -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)]),
......
#
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
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE group [
<!ENTITY mdash "&#8212;">
]>
<!-- $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&mdash;especially the VCL
documentation&mdash;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>
This diff is collapsed.
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xml" href="changes-html.xsl"?>
<!DOCTYPE changelog [
<!ENTITY mdash "&#8212;">
]>
<!-- $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>
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE group [
<!ENTITY mdash "&#8212;">
]>
<!-- $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>
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE group [
<!ENTITY mdash "&#8212;">
]>
<!-- $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>&lt;queue.h&gt;</code> has been modified
to avoid conflicts with <code>&lt;sys/queue.h&gt;</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>
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xml" href="changes-html.xsl"?>
<!DOCTYPE changelog [
<!ENTITY mdash "&#8212;">
]>
<!-- $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>
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE group [
<!ENTITY mdash "&#8212;">
]>
<!-- $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>
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xml" href="changes-html.xsl"?>
<!DOCTYPE changelog [
<!ENTITY mdash "&#8212;">
]>
<!-- $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>
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xml" href="changes-html.xsl"?>
<!DOCTYPE changelog [
<!ENTITY mdash "&#8212;">
]>
<!-- $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>
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE group [
<!ENTITY mdash "&#8212;">
]>
<!-- $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>
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE group [
<!ENTITY mdash "&#8212;">
]>
<!-- $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>
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xml" href="changes-html.xsl"?>
<!DOCTYPE changelog [
<!ENTITY mdash "&#8212;">
]>
<!-- $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>
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE group [
<!ENTITY mdash "&#8212;">
]>
<!-- $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" &amp;&amp; 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>
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xml" href="changes-html.xsl"?>
<!DOCTYPE changelog [
<!ENTITY mdash "&#8212;">
]>
<!-- $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>
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE group [
<!ENTITY mdash "&#8212;">
]>
<!-- $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>
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xml" href="changes-html.xsl"?>
<!DOCTYPE changelog [
<!ENTITY mdash "&#8212;">
]>
<!-- $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>
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE group [
<!ENTITY mdash "&#8212;">
]>
<!-- $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>
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xml" href="changes-html.xsl"?>
<!DOCTYPE changelog [
<!ENTITY mdash "&#8212;">
]>
<!-- $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>
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE group [
<!ENTITY mdash "&#8212;">
]>
<!-- $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>
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xml" href="changes-html.xsl"?>
<!DOCTYPE changelog [
<!ENTITY mdash "&#8212;">
]>
<!-- $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>
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE group [
<!ENTITY mdash "&#8212;">
]>
<!-- $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>
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xml" href="changes-html.xsl"?>
<!DOCTYPE changelog [
<!ENTITY mdash "&#8212;">
]>
<!-- $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>
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xml" href="changes-html.xsl"?>
<!DOCTYPE changelog [
<!ENTITY mdash "&#8212;">
]>
<!-- $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>
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE group [
<!ENTITY mdash "&#8212;">
]>
<!-- $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>
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xml" href="changes-html.xsl"?>
<!DOCTYPE changelog [
<!ENTITY mdash "&#8212;">
]>
<!-- $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>
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE group [
<!ENTITY mdash "&#8212;">
]>
<!-- $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>
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xml" href="changes-html.xsl"?>
<!DOCTYPE changelog [
<!ENTITY mdash "&#8212;">
]>
<!-- $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>
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE group [
<!ENTITY mdash "&#8212;">
]>
<!-- $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>
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xml" href="changes-html.xsl"?>
<!DOCTYPE changelog [
<!ENTITY mdash "&#8212;">
]>
<!-- $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>
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE group [
<!ENTITY mdash "&#8212;">
]>
<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>
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xml" href="changes-html.xsl"?>
<!DOCTYPE changelog [
<!ENTITY mdash "&#8212;">
]>
<!-- $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>
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE group [
<!ENTITY mdash "&#8212;">
]>
<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 &lt;&lt; 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>
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xml" href="changes-html.xsl"?>
<!DOCTYPE changelog [
<!ENTITY mdash "&#8212;">
]>
<!-- $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>
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xml" href="changes-html.xsl"?>
<!DOCTYPE changelog [
<!ENTITY mdash "&#8212;">
]>
<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>
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE stylesheet [
<!ENTITY space "&#32;">
<!ENTITY nbsp "&#160;">
]>
<!-- $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('&lt;', name(), '&gt;')"/>
<xsl:apply-templates/>
<xsl:value-of select="concat('&lt;/', name(), '&gt;')"/>
</xsl:template>
</xsl:stylesheet>
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE stylesheet [
<!ENTITY lf "&#10;">
]>
<!-- $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('&lt;', name(), '&gt;')"/>
<xsl:apply-templates/>
<xsl:value-of select="concat('&lt;/', name(), '&gt;')"/>
</xsl:template>
</xsl:stylesheet>
/* $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;
}
This diff is collapsed.
......@@ -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
......
......@@ -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
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment