Gentoo Archives: gentoo-commits

From: Christian Ruppert <idl0r@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: net-proxy/haproxy/
Date: Tue, 18 May 2021 11:13:00
Message-Id: 1621336373.96c57bb0d88d8c57ebf956ba822b61fd9e9122f1.idl0r@gentoo
1 commit: 96c57bb0d88d8c57ebf956ba822b61fd9e9122f1
2 Author: Christian Ruppert <idl0r <AT> gentoo <DOT> org>
3 AuthorDate: Tue May 18 11:12:39 2021 +0000
4 Commit: Christian Ruppert <idl0r <AT> gentoo <DOT> org>
5 CommitDate: Tue May 18 11:12:53 2021 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=96c57bb0
7
8 net-proxy/haproxy: 2.4.x
9
10 Package-Manager: Portage-3.0.18, Repoman-3.0.3
11 Signed-off-by: Christian Ruppert <idl0r <AT> gentoo.org>
12
13 net-proxy/haproxy/Manifest | 1 +
14 net-proxy/haproxy/haproxy-2.4.0.ebuild | 180 ++++++++++++++++++++++++++++++
15 net-proxy/haproxy/haproxy-2.4.9999.ebuild | 180 ++++++++++++++++++++++++++++++
16 3 files changed, 361 insertions(+)
17
18 diff --git a/net-proxy/haproxy/Manifest b/net-proxy/haproxy/Manifest
19 index b895048584d..8793e9a0410 100644
20 --- a/net-proxy/haproxy/Manifest
21 +++ b/net-proxy/haproxy/Manifest
22 @@ -9,3 +9,4 @@ DIST haproxy-2.2.14.tar.gz 2923727 BLAKE2B 6a234490247b5b0d8bf9131683deaa7b7fd44
23 DIST haproxy-2.2.5.tar.gz 2876429 BLAKE2B 1da993769302186ab0d7e1b0c8651c7e9a151295176da44bc854461f6b27831cadaa01a71b153046a23b43de91b2ba17b11ee52ecea12f744ae7af5b9f66ee98 SHA512 74e3c8b2b786f1fb5fcb8b8071751450f45a58ff847b336a8e4413727dea87b7d5a140853e3a445603ae5c4079f371ce9aa31a9f06c18ff4eea7462661775dca
24 DIST haproxy-2.3.10.tar.gz 2942240 BLAKE2B 1fecbf3dde98b4839911e3e6437fa01ebf2e8b5b534665619703d42c9163afcd2b19768d408b27484ad73061e10b54b4bb512f09444944c403a30431814e8f8a SHA512 595a62d677240cb8a463245e5d5d497bb584a379852e533d82e45a77e1b91b469f84e386adcd42b6ec24e5806e256fc2708f672a0da5c1c4f784e3b76a9e7318
25 DIST haproxy-2.3.9.tar.gz 2928660 BLAKE2B 48b56aa72d50d4783bf54c6dbf642388d6f12d4e2ede09e86e9262d62a981177365dc2d2999e76c2be124c0576fe0b8d16a7a5bf412133fcbf87d45d8abfe3dd SHA512 49ee2a9be8dc7836e73be8e01ccbde52e29522f94d0bc80cf753fe76f4b32657fb123df7d443228afef36928f5a6cef67b693f05008a891001082b4264f015f6
26 +DIST haproxy-2.4.0.tar.gz 3570069 BLAKE2B f37df37232edd5066564bb0f8b02125f697dc1e4d1d8121321a7a5e5089a63c16fb6919f329ac0adf8450f3088efc959fd0cad873151bddf5b53c149530a6e8e SHA512 846faffb7ac2ccbfe314f7c72d4ab3f1955338f3be45906e76a53934c32934e6a3ed9b7a04411717e9a91966e55266183e9cf583df5375f67d03d26c6c6fc273
27
28 diff --git a/net-proxy/haproxy/haproxy-2.4.0.ebuild b/net-proxy/haproxy/haproxy-2.4.0.ebuild
29 new file mode 100644
30 index 00000000000..d277faa8bc4
31 --- /dev/null
32 +++ b/net-proxy/haproxy/haproxy-2.4.0.ebuild
33 @@ -0,0 +1,180 @@
34 +# Copyright 1999-2021 Gentoo Authors
35 +# Distributed under the terms of the GNU General Public License v2
36 +
37 +EAPI="7"
38 +
39 +[[ ${PV} == *9999 ]] && SCM="git-r3"
40 +inherit toolchain-funcs flag-o-matic systemd linux-info ${SCM}
41 +
42 +MY_P="${PN}-${PV/_beta/-dev}"
43 +
44 +DESCRIPTION="A TCP/HTTP reverse proxy for high availability environments"
45 +HOMEPAGE="http://www.haproxy.org"
46 +if [[ ${PV} != *9999 ]]; then
47 + SRC_URI="http://haproxy.1wt.eu/download/$(ver_cut 1-2)/src/${MY_P}.tar.gz"
48 + KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~x86"
49 +else
50 + EGIT_REPO_URI="http://git.haproxy.org/git/haproxy-$(ver_cut 1-2).git/"
51 + EGIT_BRANCH=master
52 +fi
53 +
54 +LICENSE="GPL-2 LGPL-2.1"
55 +SLOT="0/$(ver_cut 1-2)"
56 +IUSE="+crypt doc examples +slz +net_ns +pcre pcre-jit pcre2 pcre2-jit prometheus-exporter
57 +ssl systemd +threads tools vim-syntax -zlib lua device-atlas 51degrees wurfl"
58 +REQUIRED_USE="pcre-jit? ( pcre )
59 + pcre2-jit? ( pcre2 )
60 + pcre? ( !pcre2 )
61 + device-atlas? ( pcre )
62 + ?? ( slz zlib )"
63 +
64 +DEPEND="
65 + pcre? (
66 + dev-libs/libpcre
67 + pcre-jit? ( dev-libs/libpcre[jit] )
68 + )
69 + pcre2? (
70 + dev-libs/libpcre
71 + pcre2-jit? ( dev-libs/libpcre2[jit] )
72 + )
73 + ssl? (
74 + dev-libs/openssl:0=[zlib?]
75 + )
76 + slz? ( dev-libs/libslz:= )
77 + systemd? ( sys-apps/systemd )
78 + zlib? ( sys-libs/zlib )
79 + lua? ( dev-lang/lua:5.3 )
80 + device-atlas? ( dev-libs/device-atlas-api-c )"
81 +RDEPEND="${DEPEND}
82 + acct-group/haproxy
83 + acct-user/haproxy"
84 +
85 +S="${WORKDIR}/${MY_P}"
86 +
87 +DOCS=( CHANGELOG CONTRIBUTING MAINTAINERS README )
88 +EXTRAS=( admin/halog admin/iprange dev/tcploop dev/hpack )
89 +
90 +haproxy_use() {
91 + (( $# != 2 )) && die "${FUNCNAME} <USE flag> <make option>"
92 +
93 + usex "${1}" "USE_${2}=1" "USE_${2}="
94 +}
95 +
96 +pkg_setup() {
97 + if use net_ns; then
98 + CONFIG_CHECK="~NET_NS"
99 + linux-info_pkg_setup
100 + fi
101 +}
102 +
103 +src_compile() {
104 + local -a args=(
105 + V=1
106 + TARGET=linux-glibc
107 + )
108 +
109 + # TODO: PCRE2_WIDTH?
110 + args+=( $(haproxy_use threads THREAD) )
111 + args+=( $(haproxy_use crypt LIBCRYPT) )
112 + args+=( $(haproxy_use net_ns NS) )
113 + args+=( $(haproxy_use pcre PCRE) )
114 + args+=( $(haproxy_use pcre-jit PCRE_JIT) )
115 + args+=( $(haproxy_use pcre2 PCRE2) )
116 + args+=( $(haproxy_use pcre2-jit PCRE2_JIT) )
117 + args+=( $(haproxy_use ssl OPENSSL) )
118 + args+=( $(haproxy_use slz SLZ) )
119 + args+=( $(haproxy_use zlib ZLIB) )
120 + args+=( $(haproxy_use lua LUA) )
121 + args+=( $(haproxy_use 51degrees 51DEGREES) )
122 + args+=( $(haproxy_use device-atlas DEVICEATLAS) )
123 + args+=( $(haproxy_use wurfl WURFL) )
124 + args+=( $(haproxy_use systemd SYSTEMD) )
125 + args+=( $(haproxy_use prometheus-exporter PROMEX) )
126 +
127 + # For now, until the strict-aliasing breakage will be fixed
128 + append-cflags -fno-strict-aliasing
129 +
130 + # Bug #668002
131 + if use ppc || use arm || use hppa; then
132 + TARGET_LDFLAGS=-latomic
133 + fi
134 +
135 + # HAProxy really needs some of those "SPEC_CFLAGS", like -fno-strict-aliasing
136 + emake CFLAGS="${CFLAGS} \$(SPEC_CFLAGS)" LDFLAGS="${LDFLAGS}" CC=$(tc-getCC) EXTRA_OBJS="${EXTRA_OBJS}" TARGET_LDFLAGS="${TARGET_LDFLAGS}" PCRE_LIB=${ERROT}/usr/$(get_libdir) ${args[@]}
137 + emake -C admin/systemd CFLAGS="${CFLAGS} \$(SPEC_CFLAGS)" LDFLAGS="${LDFLAGS}" CC=$(tc-getCC) EXTRA_OBJS="${EXTRA_OBJS}" TARGET_LDFLAGS="${TARGET_LDFLAGS}" PCRE_LIB=${ERROT}/usr/$(get_libdir) SBINDIR=/usr/sbin
138 +
139 + if use tools ; then
140 + for extra in ${EXTRAS[@]} ; do
141 + if [ "${extra}" = "admin/halog" ]; then
142 + emake CFLAGS="${CFLAGS} \$(SPEC_CFLAGS)" LDFLAGS="${LDFLAGS}" CC=$(tc-getCC) EXTRA_OBJS="${EXTRA_OBJS}" TARGET_LDFLAGS="${TARGET_LDFLAGS}" PCRE_LIB=${ERROT}/usr/$(get_libdir) ${args[@]} admin/halog/halog
143 + elif [ "${extra}" = "dev/hpack" ]; then
144 + emake CFLAGS="${CFLAGS} \$(SPEC_CFLAGS)" LDFLAGS="${LDFLAGS}" CC=$(tc-getCC) EXTRA_OBJS="${EXTRA_OBJS}" TARGET_LDFLAGS="${TARGET_LDFLAGS}" PCRE_LIB=${ERROT}/usr/$(get_libdir) ${args[@]} dev/hpack/{decode,gen-enc,gen-rht}
145 + else
146 + # Those two includes are a workaround for hpack Makefile missing those
147 + emake -C ${extra} \
148 + CFLAGS="${CFLAGS} -I../../include/ -I../../ebtree/" OPTIMIZE="${CFLAGS}" LDFLAGS="${LDFLAGS}" CC=$(tc-getCC) ${args[@]}
149 + fi
150 + done
151 + fi
152 +}
153 +
154 +src_install() {
155 + dosbin haproxy
156 + dosym ../sbin/haproxy /usr/bin/haproxy
157 +
158 + newconfd "${FILESDIR}/${PN}.confd" ${PN}
159 + newinitd "${FILESDIR}/${PN}.initd-r6" ${PN}
160 +
161 + doman doc/haproxy.1
162 +
163 + systemd_dounit admin/systemd/haproxy.service
164 +
165 + einstalldocs
166 +
167 + # The errorfiles are used by upstream defaults.
168 + insinto /etc/haproxy/errors/
169 + doins examples/errorfiles/*
170 +
171 + if use doc; then
172 + dodoc ROADMAP doc/*.txt
173 + #if use lua; then
174 + # TODO: doc/lua-api/
175 + #fi
176 + fi
177 +
178 + if use tools ; then
179 + has admin/halog "${EXTRAS[@]}" && dobin admin/halog/halog
180 + has admin/iprange "${EXTRAS[@]}" && { newbin admin/iprange/iprange haproxy_iprange; newbin admin/iprange/ip6range haproxy_ip6range; }
181 + has dev/tcploop "${EXTRAS[@]}" && newbin dev/tcploop/tcploop haproxy_tcploop
182 + has dev/hpack "${EXTRAS[@]}" && {
183 + newbin dev/hpack/gen-rht haproxy_gen-rht
184 + newbin dev/hpack/gen-enc haproxy_gen-enc
185 + newbin dev/hpack/decode haproxy_decode
186 + }
187 + fi
188 +
189 + if use examples ; then
190 + docinto examples
191 + dodoc examples/*.cfg
192 + dodoc doc/seamless_reload.txt
193 + fi
194 +
195 + if use vim-syntax ; then
196 + insinto /usr/share/vim/vimfiles/syntax
197 + doins admin/syntax-highlight/haproxy.vim
198 + fi
199 +}
200 +
201 +pkg_postinst() {
202 + if [[ ! -f "${EROOT}/etc/haproxy/haproxy.cfg" ]] ; then
203 + ewarn "You need to create /etc/haproxy/haproxy.cfg before you start the haproxy service."
204 + ewarn "It's best practice to not run haproxy as root, user and group haproxy was therefore created."
205 + ewarn "Make use of them with the \"user\" and \"group\" directives."
206 +
207 + if [[ -d "${EROOT}/usr/share/doc/${PF}" ]]; then
208 + einfo "Please consult the installed documentation for learning the configuration file's syntax."
209 + einfo "The documentation and sample configuration files are installed here:"
210 + einfo " ${EROOT}/usr/share/doc/${PF}"
211 + fi
212 + fi
213 +}
214
215 diff --git a/net-proxy/haproxy/haproxy-2.4.9999.ebuild b/net-proxy/haproxy/haproxy-2.4.9999.ebuild
216 new file mode 100644
217 index 00000000000..d277faa8bc4
218 --- /dev/null
219 +++ b/net-proxy/haproxy/haproxy-2.4.9999.ebuild
220 @@ -0,0 +1,180 @@
221 +# Copyright 1999-2021 Gentoo Authors
222 +# Distributed under the terms of the GNU General Public License v2
223 +
224 +EAPI="7"
225 +
226 +[[ ${PV} == *9999 ]] && SCM="git-r3"
227 +inherit toolchain-funcs flag-o-matic systemd linux-info ${SCM}
228 +
229 +MY_P="${PN}-${PV/_beta/-dev}"
230 +
231 +DESCRIPTION="A TCP/HTTP reverse proxy for high availability environments"
232 +HOMEPAGE="http://www.haproxy.org"
233 +if [[ ${PV} != *9999 ]]; then
234 + SRC_URI="http://haproxy.1wt.eu/download/$(ver_cut 1-2)/src/${MY_P}.tar.gz"
235 + KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~x86"
236 +else
237 + EGIT_REPO_URI="http://git.haproxy.org/git/haproxy-$(ver_cut 1-2).git/"
238 + EGIT_BRANCH=master
239 +fi
240 +
241 +LICENSE="GPL-2 LGPL-2.1"
242 +SLOT="0/$(ver_cut 1-2)"
243 +IUSE="+crypt doc examples +slz +net_ns +pcre pcre-jit pcre2 pcre2-jit prometheus-exporter
244 +ssl systemd +threads tools vim-syntax -zlib lua device-atlas 51degrees wurfl"
245 +REQUIRED_USE="pcre-jit? ( pcre )
246 + pcre2-jit? ( pcre2 )
247 + pcre? ( !pcre2 )
248 + device-atlas? ( pcre )
249 + ?? ( slz zlib )"
250 +
251 +DEPEND="
252 + pcre? (
253 + dev-libs/libpcre
254 + pcre-jit? ( dev-libs/libpcre[jit] )
255 + )
256 + pcre2? (
257 + dev-libs/libpcre
258 + pcre2-jit? ( dev-libs/libpcre2[jit] )
259 + )
260 + ssl? (
261 + dev-libs/openssl:0=[zlib?]
262 + )
263 + slz? ( dev-libs/libslz:= )
264 + systemd? ( sys-apps/systemd )
265 + zlib? ( sys-libs/zlib )
266 + lua? ( dev-lang/lua:5.3 )
267 + device-atlas? ( dev-libs/device-atlas-api-c )"
268 +RDEPEND="${DEPEND}
269 + acct-group/haproxy
270 + acct-user/haproxy"
271 +
272 +S="${WORKDIR}/${MY_P}"
273 +
274 +DOCS=( CHANGELOG CONTRIBUTING MAINTAINERS README )
275 +EXTRAS=( admin/halog admin/iprange dev/tcploop dev/hpack )
276 +
277 +haproxy_use() {
278 + (( $# != 2 )) && die "${FUNCNAME} <USE flag> <make option>"
279 +
280 + usex "${1}" "USE_${2}=1" "USE_${2}="
281 +}
282 +
283 +pkg_setup() {
284 + if use net_ns; then
285 + CONFIG_CHECK="~NET_NS"
286 + linux-info_pkg_setup
287 + fi
288 +}
289 +
290 +src_compile() {
291 + local -a args=(
292 + V=1
293 + TARGET=linux-glibc
294 + )
295 +
296 + # TODO: PCRE2_WIDTH?
297 + args+=( $(haproxy_use threads THREAD) )
298 + args+=( $(haproxy_use crypt LIBCRYPT) )
299 + args+=( $(haproxy_use net_ns NS) )
300 + args+=( $(haproxy_use pcre PCRE) )
301 + args+=( $(haproxy_use pcre-jit PCRE_JIT) )
302 + args+=( $(haproxy_use pcre2 PCRE2) )
303 + args+=( $(haproxy_use pcre2-jit PCRE2_JIT) )
304 + args+=( $(haproxy_use ssl OPENSSL) )
305 + args+=( $(haproxy_use slz SLZ) )
306 + args+=( $(haproxy_use zlib ZLIB) )
307 + args+=( $(haproxy_use lua LUA) )
308 + args+=( $(haproxy_use 51degrees 51DEGREES) )
309 + args+=( $(haproxy_use device-atlas DEVICEATLAS) )
310 + args+=( $(haproxy_use wurfl WURFL) )
311 + args+=( $(haproxy_use systemd SYSTEMD) )
312 + args+=( $(haproxy_use prometheus-exporter PROMEX) )
313 +
314 + # For now, until the strict-aliasing breakage will be fixed
315 + append-cflags -fno-strict-aliasing
316 +
317 + # Bug #668002
318 + if use ppc || use arm || use hppa; then
319 + TARGET_LDFLAGS=-latomic
320 + fi
321 +
322 + # HAProxy really needs some of those "SPEC_CFLAGS", like -fno-strict-aliasing
323 + emake CFLAGS="${CFLAGS} \$(SPEC_CFLAGS)" LDFLAGS="${LDFLAGS}" CC=$(tc-getCC) EXTRA_OBJS="${EXTRA_OBJS}" TARGET_LDFLAGS="${TARGET_LDFLAGS}" PCRE_LIB=${ERROT}/usr/$(get_libdir) ${args[@]}
324 + emake -C admin/systemd CFLAGS="${CFLAGS} \$(SPEC_CFLAGS)" LDFLAGS="${LDFLAGS}" CC=$(tc-getCC) EXTRA_OBJS="${EXTRA_OBJS}" TARGET_LDFLAGS="${TARGET_LDFLAGS}" PCRE_LIB=${ERROT}/usr/$(get_libdir) SBINDIR=/usr/sbin
325 +
326 + if use tools ; then
327 + for extra in ${EXTRAS[@]} ; do
328 + if [ "${extra}" = "admin/halog" ]; then
329 + emake CFLAGS="${CFLAGS} \$(SPEC_CFLAGS)" LDFLAGS="${LDFLAGS}" CC=$(tc-getCC) EXTRA_OBJS="${EXTRA_OBJS}" TARGET_LDFLAGS="${TARGET_LDFLAGS}" PCRE_LIB=${ERROT}/usr/$(get_libdir) ${args[@]} admin/halog/halog
330 + elif [ "${extra}" = "dev/hpack" ]; then
331 + emake CFLAGS="${CFLAGS} \$(SPEC_CFLAGS)" LDFLAGS="${LDFLAGS}" CC=$(tc-getCC) EXTRA_OBJS="${EXTRA_OBJS}" TARGET_LDFLAGS="${TARGET_LDFLAGS}" PCRE_LIB=${ERROT}/usr/$(get_libdir) ${args[@]} dev/hpack/{decode,gen-enc,gen-rht}
332 + else
333 + # Those two includes are a workaround for hpack Makefile missing those
334 + emake -C ${extra} \
335 + CFLAGS="${CFLAGS} -I../../include/ -I../../ebtree/" OPTIMIZE="${CFLAGS}" LDFLAGS="${LDFLAGS}" CC=$(tc-getCC) ${args[@]}
336 + fi
337 + done
338 + fi
339 +}
340 +
341 +src_install() {
342 + dosbin haproxy
343 + dosym ../sbin/haproxy /usr/bin/haproxy
344 +
345 + newconfd "${FILESDIR}/${PN}.confd" ${PN}
346 + newinitd "${FILESDIR}/${PN}.initd-r6" ${PN}
347 +
348 + doman doc/haproxy.1
349 +
350 + systemd_dounit admin/systemd/haproxy.service
351 +
352 + einstalldocs
353 +
354 + # The errorfiles are used by upstream defaults.
355 + insinto /etc/haproxy/errors/
356 + doins examples/errorfiles/*
357 +
358 + if use doc; then
359 + dodoc ROADMAP doc/*.txt
360 + #if use lua; then
361 + # TODO: doc/lua-api/
362 + #fi
363 + fi
364 +
365 + if use tools ; then
366 + has admin/halog "${EXTRAS[@]}" && dobin admin/halog/halog
367 + has admin/iprange "${EXTRAS[@]}" && { newbin admin/iprange/iprange haproxy_iprange; newbin admin/iprange/ip6range haproxy_ip6range; }
368 + has dev/tcploop "${EXTRAS[@]}" && newbin dev/tcploop/tcploop haproxy_tcploop
369 + has dev/hpack "${EXTRAS[@]}" && {
370 + newbin dev/hpack/gen-rht haproxy_gen-rht
371 + newbin dev/hpack/gen-enc haproxy_gen-enc
372 + newbin dev/hpack/decode haproxy_decode
373 + }
374 + fi
375 +
376 + if use examples ; then
377 + docinto examples
378 + dodoc examples/*.cfg
379 + dodoc doc/seamless_reload.txt
380 + fi
381 +
382 + if use vim-syntax ; then
383 + insinto /usr/share/vim/vimfiles/syntax
384 + doins admin/syntax-highlight/haproxy.vim
385 + fi
386 +}
387 +
388 +pkg_postinst() {
389 + if [[ ! -f "${EROOT}/etc/haproxy/haproxy.cfg" ]] ; then
390 + ewarn "You need to create /etc/haproxy/haproxy.cfg before you start the haproxy service."
391 + ewarn "It's best practice to not run haproxy as root, user and group haproxy was therefore created."
392 + ewarn "Make use of them with the \"user\" and \"group\" directives."
393 +
394 + if [[ -d "${EROOT}/usr/share/doc/${PF}" ]]; then
395 + einfo "Please consult the installed documentation for learning the configuration file's syntax."
396 + einfo "The documentation and sample configuration files are installed here:"
397 + einfo " ${EROOT}/usr/share/doc/${PF}"
398 + fi
399 + fi
400 +}