blob: 47cc1f8742230a8f18939b1958dac027245ab832 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
|
# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
PYTHON_COMPAT=( python3_{10..14} )
inherit autotools systemd python-r1
DESCRIPTION="Varnish is a state-of-the-art, high-performance HTTP accelerator"
HOMEPAGE="https://vinyl-cache.org/"
SRC_URI="https://vinyl-cache.org/downloads/varnish-${PV}.tgz"
S="${WORKDIR}/varnish-${PV}"
LICENSE="BSD-2 GPL-2"
SLOT="0/2"
KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~x86"
IUSE="jit selinux static-libs unwind"
COMMON_DEPEND="
sys-libs/readline:=
dev-libs/libedit
dev-libs/libpcre2[jit?]
sys-libs/ncurses:=
unwind? ( sys-libs/libunwind:= )
"
# varnish compiles stuff at run time
RDEPEND="
${PYTHON_DEPS}
${COMMON_DEPEND}
acct-user/varnish
acct-group/varnish
sys-devel/gcc
selinux? ( sec-policy/selinux-varnishd )
"
DEPEND="
${COMMON_DEPEND}
dev-python/docutils
dev-python/sphinx
virtual/pkgconfig
"
REQUIRED_USE="${PYTHON_REQUIRED_USE}"
PATCHES=(
"${FILESDIR}/varnish-8.0.0-configure-make-python-output-match-autotools.patch" # Bug: 882725
)
# Upstream acknowledge that a small number of tests fail sporadically, including on their
# test boxes. We SKIP problematic tests here. Check https://vinyl-cache.org/vtest/
SKIP_TESTS=(
"u00021.vtc" # Commit: 83d9fbb2961c
"r02686.vtc" # Bug: 880627
"r02990.vtc" # Bug: 880627
"u00008.vtc" # Bug: 880627
"u00009.vtc" # Bug: 880627
"t02014.vtc" # Bug: 964041
)
src_prepare() {
default
# Fix python shebangs for python-exec[-native-symlinks], #909330
# skip vmodtool, as that gets installed by python_replicate_script later
local shebangs=($(grep -rl "#!/usr/bin/env python3"|grep -v vmodtool || die))
python_setup
python_fix_shebang -q ${shebangs[*]}
# SKIP unreliable tests
local t
for t in ${SKIP_TESTS[*]}; do
sed -i -e '/^varnishtest.*$/a feature cmd false' bin/varnishtest/tests/${t} || die
done
# Remove -Werror bug #528354
sed -i -e 's/-Werror\([^=]\)/\1/g' configure.ac || die
# Upstream doesn't put varnish.m4 in the m4/ directory
# We link because the Makefiles look for the file in
# the original location
ln -sf ../varnish.m4 m4/varnish.m4 || die
eautoreconf
}
src_configure() {
local myeconfargs=(
--with-contrib
$(use_enable static-libs static)
$(use_enable jit pcre2-jit)
$(use_with unwind)
--without-jemalloc
)
econf "${myeconfargs[@]}"
}
src_install() {
emake DESTDIR="${D}" install
python_replicate_script "${D}/usr/share/varnish/vmodtool.py"
newinitd "${FILESDIR}"/varnishlog.initd varnishlog
newconfd "${FILESDIR}"/varnishlog.confd varnishlog
newinitd "${FILESDIR}"/varnishncsa.initd varnishncsa
newconfd "${FILESDIR}"/varnishncsa.confd varnishncsa
newinitd "${FILESDIR}"/varnishd.initd-r4 varnishd
newconfd "${FILESDIR}"/varnishd.confd-r4 varnishd
insinto /etc/logrotate.d/
newins "${FILESDIR}/varnishd.logrotate-r2" varnishd
diropts -m750
keepdir /var/lib/varnish
keepdir /var/log/varnish
systemd_dounit "${FILESDIR}/varnishd.service"
insinto /etc/varnish/
doins vmod/vmod_*.vcc
doins etc/example.vcl
dodoc README.rst
dodoc doc/changes.rst
fowners root:varnish /etc/varnish/
fowners varnish:varnish /var/lib/varnish/
fperms 0750 /var/lib/varnish/ /etc/varnish/
find "${ED}" -name "*.la" -delete || die
}
|