Date: Sunday, December 1, 2013 @ 16:48:29 Author: dreisner Revision: 200672
archrelease: copy trunk to extra-i686, extra-x86_64 Added: varnish/repos/extra-i686/0001-Make-up-our-mind-Any-req.-we-receive-from-the-client.patch (from rev 200671, varnish/trunk/0001-Make-up-our-mind-Any-req.-we-receive-from-the-client.patch) varnish/repos/extra-i686/PKGBUILD (from rev 200671, varnish/trunk/PKGBUILD) varnish/repos/extra-i686/varnish-vcl-reload (from rev 200671, varnish/trunk/varnish-vcl-reload) varnish/repos/extra-i686/varnish.install (from rev 200671, varnish/trunk/varnish.install) varnish/repos/extra-i686/varnish.service (from rev 200671, varnish/trunk/varnish.service) varnish/repos/extra-x86_64/0001-Make-up-our-mind-Any-req.-we-receive-from-the-client.patch (from rev 200671, varnish/trunk/0001-Make-up-our-mind-Any-req.-we-receive-from-the-client.patch) varnish/repos/extra-x86_64/PKGBUILD (from rev 200671, varnish/trunk/PKGBUILD) varnish/repos/extra-x86_64/varnish-vcl-reload (from rev 200671, varnish/trunk/varnish-vcl-reload) varnish/repos/extra-x86_64/varnish.install (from rev 200671, varnish/trunk/varnish.install) varnish/repos/extra-x86_64/varnish.service (from rev 200671, varnish/trunk/varnish.service) Deleted: varnish/repos/extra-i686/PKGBUILD varnish/repos/extra-i686/varnish-vcl-reload varnish/repos/extra-i686/varnish.install varnish/repos/extra-i686/varnish.service varnish/repos/extra-x86_64/PKGBUILD varnish/repos/extra-x86_64/varnish-vcl-reload varnish/repos/extra-x86_64/varnish.install varnish/repos/extra-x86_64/varnish.service ------------------------------------------------------------------------------+ /PKGBUILD | 106 +++++++ /varnish-vcl-reload | 40 +++ /varnish.install | 12 /varnish.service | 20 + extra-i686/0001-Make-up-our-mind-Any-req.-we-receive-from-the-client.patch | 133 ++++++++++ extra-i686/PKGBUILD | 44 --- extra-i686/varnish-vcl-reload | 20 - extra-i686/varnish.install | 6 extra-i686/varnish.service | 10 extra-x86_64/0001-Make-up-our-mind-Any-req.-we-receive-from-the-client.patch | 133 ++++++++++ extra-x86_64/PKGBUILD | 44 --- extra-x86_64/varnish-vcl-reload | 20 - extra-x86_64/varnish.install | 6 extra-x86_64/varnish.service | 10 14 files changed, 444 insertions(+), 160 deletions(-) Copied: varnish/repos/extra-i686/0001-Make-up-our-mind-Any-req.-we-receive-from-the-client.patch (from rev 200671, varnish/trunk/0001-Make-up-our-mind-Any-req.-we-receive-from-the-client.patch) =================================================================== --- extra-i686/0001-Make-up-our-mind-Any-req.-we-receive-from-the-client.patch (rev 0) +++ extra-i686/0001-Make-up-our-mind-Any-req.-we-receive-from-the-client.patch 2013-12-01 15:48:29 UTC (rev 200672) @@ -0,0 +1,133 @@ +From 4bd5b7991bf602a6c46dd0d65fc04d4b8d9667a6 Mon Sep 17 00:00:00 2001 +From: Martin Blix Grydeland <mar...@varnish-software.com> +Date: Wed, 30 Oct 2013 13:48:20 +0100 +Subject: [PATCH] Make up our mind: Any req.* we receive from the client with + fundamental trouble gets failed back without VCL involvement. + +Fixes #1367 +--- + bin/varnishd/cache_center.c | 28 +++++++++++++++------------- + bin/varnishd/cache_http.c | 2 +- + bin/varnishtest/tests/r01367.vtc | 30 ++++++++++++++++++++++++++++++ + 3 files changed, 46 insertions(+), 14 deletions(-) + create mode 100644 bin/varnishtest/tests/r01367.vtc + +diff --git a/bin/varnishd/cache_center.c b/bin/varnishd/cache_center.c +index 19eb2ce..fdf7cee 100644 +--- a/bin/varnishd/cache_center.c ++++ b/bin/varnishd/cache_center.c +@@ -1474,9 +1474,12 @@ DOT start -> recv [style=bold,color=green] + static int + cnt_start(struct sess *sp) + { +- uint16_t done; ++ uint16_t err_code; + char *p; +- const char *r = "HTTP/1.1 100 Continue\r\n\r\n"; ++ const char *r_100 = "HTTP/1.1 100 Continue\r\n\r\n"; ++ const char *r_400 = "HTTP/1.1 400 Bad Request\r\n\r\n"; ++ const char *r_413 = "HTTP/1.1 413 Request Entity Too Large\r\n\r\n"; ++ const char *r_417 = "HTTP/1.1 417 Expectation Failed\r\n\r\n"; + + CHECK_OBJ_NOTNULL(sp, SESS_MAGIC); + AZ(sp->restarts); +@@ -1499,10 +1502,14 @@ cnt_start(struct sess *sp) + sp->wrk->vcl = NULL; + + http_Setup(sp->http, sp->ws); +- done = http_DissectRequest(sp); ++ err_code = http_DissectRequest(sp); + + /* If we could not even parse the request, just close */ +- if (done == 400) { ++ if (err_code == 400) ++ (void)write(sp->fd, r_400, strlen(r_400)); ++ else if (err_code == 413) ++ (void)write(sp->fd, r_413, strlen(r_413)); ++ if (err_code != 0) { + sp->step = STP_DONE; + vca_close_session(sp, "junk"); + return (0); +@@ -1514,12 +1521,6 @@ cnt_start(struct sess *sp) + /* Catch original request, before modification */ + HTTP_Copy(sp->http0, sp->http); + +- if (done != 0) { +- sp->err_code = done; +- sp->step = STP_ERROR; +- return (0); +- } +- + sp->doclose = http_DoConnection(sp->http); + + /* XXX: Handle TRACE & OPTIONS of Max-Forwards = 0 */ +@@ -1529,13 +1530,14 @@ cnt_start(struct sess *sp) + */ + if (http_GetHdr(sp->http, H_Expect, &p)) { + if (strcasecmp(p, "100-continue")) { +- sp->err_code = 417; +- sp->step = STP_ERROR; ++ (void)write(sp->fd, r_417, strlen(r_417)); ++ sp->step = STP_DONE; ++ vca_close_session(sp, "junk"); + return (0); + } + + /* XXX: Don't bother with write failures for now */ +- (void)write(sp->fd, r, strlen(r)); ++ (void)write(sp->fd, r_100, strlen(r_100)); + /* XXX: When we do ESI includes, this is not removed + * XXX: because we use http0 as our basis. Believed + * XXX: safe, but potentially confusing. +diff --git a/bin/varnishd/cache_http.c b/bin/varnishd/cache_http.c +index 8753acc..605975b 100644 +--- a/bin/varnishd/cache_http.c ++++ b/bin/varnishd/cache_http.c +@@ -601,7 +601,7 @@ http_splitline(struct worker *w, int fd, struct http *hp, + hp->hd[h2].e = p; + + if (!Tlen(hp->hd[h2])) +- return (413); ++ return (400); + + /* Skip SP */ + for (; vct_issp(*p); p++) { +diff --git a/bin/varnishtest/tests/r01367.vtc b/bin/varnishtest/tests/r01367.vtc +new file mode 100644 +index 0000000..e1de20a +--- /dev/null ++++ b/bin/varnishtest/tests/r01367.vtc +@@ -0,0 +1,30 @@ ++varnishtest "blank GET" ++ ++server s1 { ++ rxreq ++ txresp ++} -start ++ ++varnish v1 -vcl+backend { ++ sub vcl_error { ++ return (restart); ++ } ++} -start ++ ++client c1 { ++ send "GET \nHost: example.com\n\n" ++ rxresp ++ expect resp.status == 400 ++} -run ++ ++client c1 { ++ txreq -hdr "Expect: Santa-Claus" ++ rxresp ++ expect resp.status == 417 ++} -run ++ ++client c1 { ++ txreq ++ rxresp ++ expect resp.status == 200 ++} -run +-- +1.8.4.2 + Deleted: extra-i686/PKGBUILD =================================================================== --- extra-i686/PKGBUILD 2013-12-01 15:47:43 UTC (rev 200671) +++ extra-i686/PKGBUILD 2013-12-01 15:48:29 UTC (rev 200672) @@ -1,44 +0,0 @@ -# $Id$ -# Maintainer: Dave Reisner <dreis...@archlinux.org> -# Contributor: Jaroslav Lichtblau <dragonl...@aur.archlinux.org> -# Contributor: Douglas Soares de Andrade -# Contributor: Roberto Alsina <rals...@kde.org> - -pkgname=varnish -pkgver=3.0.4 -pkgrel=2 -pkgdesc="High-performance HTTP accelerator" -arch=('i686' 'x86_64') -url="http://www.varnish-cache.org/" -license=('BSD') -depends=('gcc' 'libedit' 'pcre') -backup=('etc/varnish/default.vcl') -install=$pkgname.install -source=("http://repo.varnish-cache.org/source/$pkgname-$pkgver.tar.gz" - varnish-vcl-reload - varnish.service) -md5sums=('a130ce9c3504b9603a46542635e18701' - '03196dee7fc68e75069393d52c370762' - 'a59b17d8e3066abcf3dd7755a2212dd4') - -build() { - cd "$pkgname-$pkgver" - - ./configure \ - --prefix=/usr \ - --sysconfdir=/etc \ - --localstatedir=/var/lib \ - --sbindir=/usr/bin - - make -} - -package() { - make -C "$pkgname-$pkgver" DESTDIR="$pkgdir" install - - install -m755 "$srcdir/varnish-vcl-reload" "$pkgdir/usr/bin" - install -Dm644 "$srcdir/$pkgname.service" "$pkgdir/usr/lib/systemd/system/$pkgname.service" - - # license - install -Dm644 "$pkgname-$pkgver/LICENSE" "$pkgdir/usr/share/licenses/$pkgname/LICENSE" -} Copied: varnish/repos/extra-i686/PKGBUILD (from rev 200671, varnish/trunk/PKGBUILD) =================================================================== --- extra-i686/PKGBUILD (rev 0) +++ extra-i686/PKGBUILD 2013-12-01 15:48:29 UTC (rev 200672) @@ -0,0 +1,53 @@ +# $Id$ +# Maintainer: Dave Reisner <dreis...@archlinux.org> +# Contributor: Jaroslav Lichtblau <dragonl...@aur.archlinux.org> +# Contributor: Douglas Soares de Andrade +# Contributor: Roberto Alsina <rals...@kde.org> + +pkgname=varnish +pkgver=3.0.4 +pkgrel=3 +pkgdesc="High-performance HTTP accelerator" +arch=('i686' 'x86_64') +url="http://www.varnish-cache.org/" +license=('BSD') +depends=('gcc' 'libedit' 'pcre') +backup=('etc/varnish/default.vcl') +install=$pkgname.install +source=("http://repo.varnish-cache.org/source/$pkgname-$pkgver.tar.gz" + '0001-Make-up-our-mind-Any-req.-we-receive-from-the-client.patch' + varnish-vcl-reload + varnish.service) +md5sums=('a130ce9c3504b9603a46542635e18701' + '189d3b91645dec80710ae06e03d4200b' + '03196dee7fc68e75069393d52c370762' + '276f1761b3c7c6a83688038659194bbb') + +prepare() { + cd "$pkgname-$pkgver" + + # https://www.varnish-cache.org/trac/ticket/1367 + patch -Np1 <"$srcdir/0001-Make-up-our-mind-Any-req.-we-receive-from-the-client.patch" +} + +build() { + cd "$pkgname-$pkgver" + + ./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --localstatedir=/var/lib \ + --sbindir=/usr/bin + + make +} + +package() { + make -C "$pkgname-$pkgver" DESTDIR="$pkgdir" install + + install -m755 "$srcdir/varnish-vcl-reload" "$pkgdir/usr/bin" + install -Dm644 "$srcdir/$pkgname.service" "$pkgdir/usr/lib/systemd/system/$pkgname.service" + + # license + install -Dm644 "$pkgname-$pkgver/LICENSE" "$pkgdir/usr/share/licenses/$pkgname/LICENSE" +} Deleted: extra-i686/varnish-vcl-reload =================================================================== --- extra-i686/varnish-vcl-reload 2013-12-01 15:47:43 UTC (rev 200671) +++ extra-i686/varnish-vcl-reload 2013-12-01 15:48:29 UTC (rev 200672) @@ -1,20 +0,0 @@ -#!/bin/sh - -cfg=${1:-/etc/varnish/default.vcl} -if [ ! -e "$cfg" ]; then - printf 'ERROR: VCL file %s does not exist\n' "$cfg" >&2 - exit 1 -fi - -activecfg=$(varnishadm 'vcl.list' | awk '/active/ { print $3 }') -if [ -z "$activecfg" ]; then - printf 'ERROR: No active VCL found!\n' >&2 - exit 1 -fi - -newcfg=$(date +'vcl-%s') -printf 'INFO: using new config %s\n' "$cfg" - -varnishadm "vcl.load $newcfg $cfg" && -varnishadm "vcl.use $newcfg" && -varnishadm "vcl.discard $activecfg" Copied: varnish/repos/extra-i686/varnish-vcl-reload (from rev 200671, varnish/trunk/varnish-vcl-reload) =================================================================== --- extra-i686/varnish-vcl-reload (rev 0) +++ extra-i686/varnish-vcl-reload 2013-12-01 15:48:29 UTC (rev 200672) @@ -0,0 +1,20 @@ +#!/bin/sh + +cfg=${1:-/etc/varnish/default.vcl} +if [ ! -e "$cfg" ]; then + printf 'ERROR: VCL file %s does not exist\n' "$cfg" >&2 + exit 1 +fi + +activecfg=$(varnishadm 'vcl.list' | awk '/active/ { print $3 }') +if [ -z "$activecfg" ]; then + printf 'ERROR: No active VCL found!\n' >&2 + exit 1 +fi + +newcfg=$(date +'vcl-%s') +printf 'INFO: using new config %s\n' "$cfg" + +varnishadm "vcl.load $newcfg $cfg" && +varnishadm "vcl.use $newcfg" && +varnishadm "vcl.discard $activecfg" Deleted: extra-i686/varnish.install =================================================================== --- extra-i686/varnish.install 2013-12-01 15:47:43 UTC (rev 200671) +++ extra-i686/varnish.install 2013-12-01 15:48:29 UTC (rev 200672) @@ -1,6 +0,0 @@ -#!/bin/sh - -# remove localstatedir -- compiled VCL and slab files will still be here. -post_remove() { - rm -rf var/lib/varnish -} Copied: varnish/repos/extra-i686/varnish.install (from rev 200671, varnish/trunk/varnish.install) =================================================================== --- extra-i686/varnish.install (rev 0) +++ extra-i686/varnish.install 2013-12-01 15:48:29 UTC (rev 200672) @@ -0,0 +1,6 @@ +#!/bin/sh + +# remove localstatedir -- compiled VCL and slab files will still be here. +post_remove() { + rm -rf var/lib/varnish +} Deleted: extra-i686/varnish.service =================================================================== --- extra-i686/varnish.service 2013-12-01 15:47:43 UTC (rev 200671) +++ extra-i686/varnish.service 2013-12-01 15:48:29 UTC (rev 200672) @@ -1,10 +0,0 @@ -[Unit] -Description=Web Application Accelerator -After=network.target - -[Service] -ExecStart=/usr/bin/varnishd -a 0.0.0.0:80 -f /etc/varnish/default.vcl -T localhost:6082 -s malloc,64M -u nobody -g nobody -F -ExecReload=/usr/bin/varnish-vcl-reload - -[Install] -WantedBy=multi-user.target Copied: varnish/repos/extra-i686/varnish.service (from rev 200671, varnish/trunk/varnish.service) =================================================================== --- extra-i686/varnish.service (rev 0) +++ extra-i686/varnish.service 2013-12-01 15:48:29 UTC (rev 200672) @@ -0,0 +1,10 @@ +[Unit] +Description=Web Application Accelerator +After=network.target + +[Service] +ExecStart=/usr/bin/varnishd -a 0.0.0.0:80,[::]:80 -f /etc/varnish/default.vcl -T localhost:6082 -s malloc,64M -u nobody -g nobody -F +ExecReload=/usr/bin/varnish-vcl-reload + +[Install] +WantedBy=multi-user.target Copied: varnish/repos/extra-x86_64/0001-Make-up-our-mind-Any-req.-we-receive-from-the-client.patch (from rev 200671, varnish/trunk/0001-Make-up-our-mind-Any-req.-we-receive-from-the-client.patch) =================================================================== --- extra-x86_64/0001-Make-up-our-mind-Any-req.-we-receive-from-the-client.patch (rev 0) +++ extra-x86_64/0001-Make-up-our-mind-Any-req.-we-receive-from-the-client.patch 2013-12-01 15:48:29 UTC (rev 200672) @@ -0,0 +1,133 @@ +From 4bd5b7991bf602a6c46dd0d65fc04d4b8d9667a6 Mon Sep 17 00:00:00 2001 +From: Martin Blix Grydeland <mar...@varnish-software.com> +Date: Wed, 30 Oct 2013 13:48:20 +0100 +Subject: [PATCH] Make up our mind: Any req.* we receive from the client with + fundamental trouble gets failed back without VCL involvement. + +Fixes #1367 +--- + bin/varnishd/cache_center.c | 28 +++++++++++++++------------- + bin/varnishd/cache_http.c | 2 +- + bin/varnishtest/tests/r01367.vtc | 30 ++++++++++++++++++++++++++++++ + 3 files changed, 46 insertions(+), 14 deletions(-) + create mode 100644 bin/varnishtest/tests/r01367.vtc + +diff --git a/bin/varnishd/cache_center.c b/bin/varnishd/cache_center.c +index 19eb2ce..fdf7cee 100644 +--- a/bin/varnishd/cache_center.c ++++ b/bin/varnishd/cache_center.c +@@ -1474,9 +1474,12 @@ DOT start -> recv [style=bold,color=green] + static int + cnt_start(struct sess *sp) + { +- uint16_t done; ++ uint16_t err_code; + char *p; +- const char *r = "HTTP/1.1 100 Continue\r\n\r\n"; ++ const char *r_100 = "HTTP/1.1 100 Continue\r\n\r\n"; ++ const char *r_400 = "HTTP/1.1 400 Bad Request\r\n\r\n"; ++ const char *r_413 = "HTTP/1.1 413 Request Entity Too Large\r\n\r\n"; ++ const char *r_417 = "HTTP/1.1 417 Expectation Failed\r\n\r\n"; + + CHECK_OBJ_NOTNULL(sp, SESS_MAGIC); + AZ(sp->restarts); +@@ -1499,10 +1502,14 @@ cnt_start(struct sess *sp) + sp->wrk->vcl = NULL; + + http_Setup(sp->http, sp->ws); +- done = http_DissectRequest(sp); ++ err_code = http_DissectRequest(sp); + + /* If we could not even parse the request, just close */ +- if (done == 400) { ++ if (err_code == 400) ++ (void)write(sp->fd, r_400, strlen(r_400)); ++ else if (err_code == 413) ++ (void)write(sp->fd, r_413, strlen(r_413)); ++ if (err_code != 0) { + sp->step = STP_DONE; + vca_close_session(sp, "junk"); + return (0); +@@ -1514,12 +1521,6 @@ cnt_start(struct sess *sp) + /* Catch original request, before modification */ + HTTP_Copy(sp->http0, sp->http); + +- if (done != 0) { +- sp->err_code = done; +- sp->step = STP_ERROR; +- return (0); +- } +- + sp->doclose = http_DoConnection(sp->http); + + /* XXX: Handle TRACE & OPTIONS of Max-Forwards = 0 */ +@@ -1529,13 +1530,14 @@ cnt_start(struct sess *sp) + */ + if (http_GetHdr(sp->http, H_Expect, &p)) { + if (strcasecmp(p, "100-continue")) { +- sp->err_code = 417; +- sp->step = STP_ERROR; ++ (void)write(sp->fd, r_417, strlen(r_417)); ++ sp->step = STP_DONE; ++ vca_close_session(sp, "junk"); + return (0); + } + + /* XXX: Don't bother with write failures for now */ +- (void)write(sp->fd, r, strlen(r)); ++ (void)write(sp->fd, r_100, strlen(r_100)); + /* XXX: When we do ESI includes, this is not removed + * XXX: because we use http0 as our basis. Believed + * XXX: safe, but potentially confusing. +diff --git a/bin/varnishd/cache_http.c b/bin/varnishd/cache_http.c +index 8753acc..605975b 100644 +--- a/bin/varnishd/cache_http.c ++++ b/bin/varnishd/cache_http.c +@@ -601,7 +601,7 @@ http_splitline(struct worker *w, int fd, struct http *hp, + hp->hd[h2].e = p; + + if (!Tlen(hp->hd[h2])) +- return (413); ++ return (400); + + /* Skip SP */ + for (; vct_issp(*p); p++) { +diff --git a/bin/varnishtest/tests/r01367.vtc b/bin/varnishtest/tests/r01367.vtc +new file mode 100644 +index 0000000..e1de20a +--- /dev/null ++++ b/bin/varnishtest/tests/r01367.vtc +@@ -0,0 +1,30 @@ ++varnishtest "blank GET" ++ ++server s1 { ++ rxreq ++ txresp ++} -start ++ ++varnish v1 -vcl+backend { ++ sub vcl_error { ++ return (restart); ++ } ++} -start ++ ++client c1 { ++ send "GET \nHost: example.com\n\n" ++ rxresp ++ expect resp.status == 400 ++} -run ++ ++client c1 { ++ txreq -hdr "Expect: Santa-Claus" ++ rxresp ++ expect resp.status == 417 ++} -run ++ ++client c1 { ++ txreq ++ rxresp ++ expect resp.status == 200 ++} -run +-- +1.8.4.2 + Deleted: extra-x86_64/PKGBUILD =================================================================== --- extra-x86_64/PKGBUILD 2013-12-01 15:47:43 UTC (rev 200671) +++ extra-x86_64/PKGBUILD 2013-12-01 15:48:29 UTC (rev 200672) @@ -1,44 +0,0 @@ -# $Id$ -# Maintainer: Dave Reisner <dreis...@archlinux.org> -# Contributor: Jaroslav Lichtblau <dragonl...@aur.archlinux.org> -# Contributor: Douglas Soares de Andrade -# Contributor: Roberto Alsina <rals...@kde.org> - -pkgname=varnish -pkgver=3.0.4 -pkgrel=2 -pkgdesc="High-performance HTTP accelerator" -arch=('i686' 'x86_64') -url="http://www.varnish-cache.org/" -license=('BSD') -depends=('gcc' 'libedit' 'pcre') -backup=('etc/varnish/default.vcl') -install=$pkgname.install -source=("http://repo.varnish-cache.org/source/$pkgname-$pkgver.tar.gz" - varnish-vcl-reload - varnish.service) -md5sums=('a130ce9c3504b9603a46542635e18701' - '03196dee7fc68e75069393d52c370762' - 'a59b17d8e3066abcf3dd7755a2212dd4') - -build() { - cd "$pkgname-$pkgver" - - ./configure \ - --prefix=/usr \ - --sysconfdir=/etc \ - --localstatedir=/var/lib \ - --sbindir=/usr/bin - - make -} - -package() { - make -C "$pkgname-$pkgver" DESTDIR="$pkgdir" install - - install -m755 "$srcdir/varnish-vcl-reload" "$pkgdir/usr/bin" - install -Dm644 "$srcdir/$pkgname.service" "$pkgdir/usr/lib/systemd/system/$pkgname.service" - - # license - install -Dm644 "$pkgname-$pkgver/LICENSE" "$pkgdir/usr/share/licenses/$pkgname/LICENSE" -} Copied: varnish/repos/extra-x86_64/PKGBUILD (from rev 200671, varnish/trunk/PKGBUILD) =================================================================== --- extra-x86_64/PKGBUILD (rev 0) +++ extra-x86_64/PKGBUILD 2013-12-01 15:48:29 UTC (rev 200672) @@ -0,0 +1,53 @@ +# $Id$ +# Maintainer: Dave Reisner <dreis...@archlinux.org> +# Contributor: Jaroslav Lichtblau <dragonl...@aur.archlinux.org> +# Contributor: Douglas Soares de Andrade +# Contributor: Roberto Alsina <rals...@kde.org> + +pkgname=varnish +pkgver=3.0.4 +pkgrel=3 +pkgdesc="High-performance HTTP accelerator" +arch=('i686' 'x86_64') +url="http://www.varnish-cache.org/" +license=('BSD') +depends=('gcc' 'libedit' 'pcre') +backup=('etc/varnish/default.vcl') +install=$pkgname.install +source=("http://repo.varnish-cache.org/source/$pkgname-$pkgver.tar.gz" + '0001-Make-up-our-mind-Any-req.-we-receive-from-the-client.patch' + varnish-vcl-reload + varnish.service) +md5sums=('a130ce9c3504b9603a46542635e18701' + '189d3b91645dec80710ae06e03d4200b' + '03196dee7fc68e75069393d52c370762' + '276f1761b3c7c6a83688038659194bbb') + +prepare() { + cd "$pkgname-$pkgver" + + # https://www.varnish-cache.org/trac/ticket/1367 + patch -Np1 <"$srcdir/0001-Make-up-our-mind-Any-req.-we-receive-from-the-client.patch" +} + +build() { + cd "$pkgname-$pkgver" + + ./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --localstatedir=/var/lib \ + --sbindir=/usr/bin + + make +} + +package() { + make -C "$pkgname-$pkgver" DESTDIR="$pkgdir" install + + install -m755 "$srcdir/varnish-vcl-reload" "$pkgdir/usr/bin" + install -Dm644 "$srcdir/$pkgname.service" "$pkgdir/usr/lib/systemd/system/$pkgname.service" + + # license + install -Dm644 "$pkgname-$pkgver/LICENSE" "$pkgdir/usr/share/licenses/$pkgname/LICENSE" +} Deleted: extra-x86_64/varnish-vcl-reload =================================================================== --- extra-x86_64/varnish-vcl-reload 2013-12-01 15:47:43 UTC (rev 200671) +++ extra-x86_64/varnish-vcl-reload 2013-12-01 15:48:29 UTC (rev 200672) @@ -1,20 +0,0 @@ -#!/bin/sh - -cfg=${1:-/etc/varnish/default.vcl} -if [ ! -e "$cfg" ]; then - printf 'ERROR: VCL file %s does not exist\n' "$cfg" >&2 - exit 1 -fi - -activecfg=$(varnishadm 'vcl.list' | awk '/active/ { print $3 }') -if [ -z "$activecfg" ]; then - printf 'ERROR: No active VCL found!\n' >&2 - exit 1 -fi - -newcfg=$(date +'vcl-%s') -printf 'INFO: using new config %s\n' "$cfg" - -varnishadm "vcl.load $newcfg $cfg" && -varnishadm "vcl.use $newcfg" && -varnishadm "vcl.discard $activecfg" Copied: varnish/repos/extra-x86_64/varnish-vcl-reload (from rev 200671, varnish/trunk/varnish-vcl-reload) =================================================================== --- extra-x86_64/varnish-vcl-reload (rev 0) +++ extra-x86_64/varnish-vcl-reload 2013-12-01 15:48:29 UTC (rev 200672) @@ -0,0 +1,20 @@ +#!/bin/sh + +cfg=${1:-/etc/varnish/default.vcl} +if [ ! -e "$cfg" ]; then + printf 'ERROR: VCL file %s does not exist\n' "$cfg" >&2 + exit 1 +fi + +activecfg=$(varnishadm 'vcl.list' | awk '/active/ { print $3 }') +if [ -z "$activecfg" ]; then + printf 'ERROR: No active VCL found!\n' >&2 + exit 1 +fi + +newcfg=$(date +'vcl-%s') +printf 'INFO: using new config %s\n' "$cfg" + +varnishadm "vcl.load $newcfg $cfg" && +varnishadm "vcl.use $newcfg" && +varnishadm "vcl.discard $activecfg" Deleted: extra-x86_64/varnish.install =================================================================== --- extra-x86_64/varnish.install 2013-12-01 15:47:43 UTC (rev 200671) +++ extra-x86_64/varnish.install 2013-12-01 15:48:29 UTC (rev 200672) @@ -1,6 +0,0 @@ -#!/bin/sh - -# remove localstatedir -- compiled VCL and slab files will still be here. -post_remove() { - rm -rf var/lib/varnish -} Copied: varnish/repos/extra-x86_64/varnish.install (from rev 200671, varnish/trunk/varnish.install) =================================================================== --- extra-x86_64/varnish.install (rev 0) +++ extra-x86_64/varnish.install 2013-12-01 15:48:29 UTC (rev 200672) @@ -0,0 +1,6 @@ +#!/bin/sh + +# remove localstatedir -- compiled VCL and slab files will still be here. +post_remove() { + rm -rf var/lib/varnish +} Deleted: extra-x86_64/varnish.service =================================================================== --- extra-x86_64/varnish.service 2013-12-01 15:47:43 UTC (rev 200671) +++ extra-x86_64/varnish.service 2013-12-01 15:48:29 UTC (rev 200672) @@ -1,10 +0,0 @@ -[Unit] -Description=Web Application Accelerator -After=network.target - -[Service] -ExecStart=/usr/bin/varnishd -a 0.0.0.0:80 -f /etc/varnish/default.vcl -T localhost:6082 -s malloc,64M -u nobody -g nobody -F -ExecReload=/usr/bin/varnish-vcl-reload - -[Install] -WantedBy=multi-user.target Copied: varnish/repos/extra-x86_64/varnish.service (from rev 200671, varnish/trunk/varnish.service) =================================================================== --- extra-x86_64/varnish.service (rev 0) +++ extra-x86_64/varnish.service 2013-12-01 15:48:29 UTC (rev 200672) @@ -0,0 +1,10 @@ +[Unit] +Description=Web Application Accelerator +After=network.target + +[Service] +ExecStart=/usr/bin/varnishd -a 0.0.0.0:80,[::]:80 -f /etc/varnish/default.vcl -T localhost:6082 -s malloc,64M -u nobody -g nobody -F +ExecReload=/usr/bin/varnish-vcl-reload + +[Install] +WantedBy=multi-user.target