summaryrefslogtreecommitdiff
path: root/www-servers/vinyl-cache/vinyl-cache-8.0.1.ebuild
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
}