summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Lauer <patrick@gentoo.org>2017-11-30 07:20:59 +0000
committerPatrick Lauer <patrick@gentoo.org>2017-11-30 07:20:59 +0000
commit1016c8d09a77369c4b37e511bf6b3f03922f7c23 (patch)
treeb4d41e9a7e49980514e163b16ac1843df36dd478 /net-proxy/haproxy/haproxy-1.5.19-r2.ebuild
parentmedia-libs/mesa: Print full path to patents.txt (diff)
downloadgentoo-1016c8d09a77369c4b37e511bf6b3f03922f7c23.tar.gz
gentoo-1016c8d09a77369c4b37e511bf6b3f03922f7c23.tar.bz2
gentoo-1016c8d09a77369c4b37e511bf6b3f03922f7c23.zip
net-proxy/haproxy: Fix init script
The change in https://bugs.gentoo.org/show_bug.cgi?id=584410 only worked because of multiple bugs interacting. Due to variable shadowing https://bugs.gentoo.org/show_bug.cgi?id=639164 the loop did not actually work, and the /run/haproxy.pid was used in every loop iteration. This only worked because of a bug in openrc: https://bugs.gentoo.org/show_bug.cgi?id=639218 which was fixed in 0.34.11 So before it killed all processes called haproxy if nbproc > 1 in the config (which means multiple haproxy instances are all killed if one is stopped!) After the bugfix it doesn't kill, so we're back to the original situation of leftover processes. And we don't want to rely on the cgroup killer! The fix is obviously to use start-stop-daemon directly instead of calling openrc internals that don't do what you think they do. Package-Manager: Portage-2.3.16, Repoman-2.3.6 RepoMan-Options: --force
Diffstat (limited to 'net-proxy/haproxy/haproxy-1.5.19-r2.ebuild')
-rw-r--r--net-proxy/haproxy/haproxy-1.5.19-r2.ebuild135
1 files changed, 135 insertions, 0 deletions
diff --git a/net-proxy/haproxy/haproxy-1.5.19-r2.ebuild b/net-proxy/haproxy/haproxy-1.5.19-r2.ebuild
new file mode 100644
index 000000000000..7b4655b91afa
--- /dev/null
+++ b/net-proxy/haproxy/haproxy-1.5.19-r2.ebuild
@@ -0,0 +1,135 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+
+inherit user versionator toolchain-funcs flag-o-matic systemd
+
+MY_P="${PN}-${PV/_beta/-dev}"
+
+DESCRIPTION="A TCP/HTTP reverse proxy for high availability environments"
+HOMEPAGE="http://haproxy.1wt.eu"
+SRC_URI="http://haproxy.1wt.eu/download/$(get_version_component_range 1-2)/src/${MY_P}.tar.gz"
+
+LICENSE="GPL-2 LGPL-2.1"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~ppc ~x86"
+IUSE="+crypt examples libressl +pcre pcre-jit ssl tools vim-syntax +zlib"
+
+DEPEND="
+ pcre? (
+ dev-libs/libpcre
+ pcre-jit? ( dev-libs/libpcre[jit] )
+ )
+ ssl? (
+ !libressl? ( dev-libs/openssl:0=[zlib?] )
+ libressl? ( dev-libs/libressl:0= )
+ )
+ zlib? ( sys-libs/zlib )"
+RDEPEND="${DEPEND}"
+
+S="${WORKDIR}/${MY_P}"
+
+pkg_setup() {
+ enewgroup haproxy
+ enewuser haproxy -1 -1 -1 haproxy
+}
+
+src_compile() {
+ local args="TARGET=linux2628 USE_GETADDRINFO=1"
+
+ if use pcre ; then
+ args="${args} USE_PCRE=1"
+ if use pcre-jit; then
+ args="${args} USE_PCRE_JIT=1"
+ else
+ args="${args} USE_PCRE_JIT="
+ fi
+ else
+ args="${args} USE_PCRE= USE_PCRE_JIT="
+ fi
+
+# if use kernel_linux; then
+# args="${args} USE_LINUX_SPLICE=1 USE_LINUX_TPROXY=1"
+# else
+# args="${args} USE_LINUX_SPLICE= USE_LINUX_TPROXY="
+# fi
+
+ if use crypt ; then
+ args="${args} USE_LIBCRYPT=1"
+ else
+ args="${args} USE_LIBCRYPT="
+ fi
+
+ if use ssl ; then
+ args="${args} USE_OPENSSL=1"
+ else
+ args="${args} USE_OPENSSL="
+ fi
+
+ if use zlib ; then
+ args="${args} USE_ZLIB=1"
+ else
+ args="${args} USE_ZLIB="
+ fi
+
+ # For now, until the strict-aliasing breakage will be fixed
+ append-cflags -fno-strict-aliasing
+
+ emake CFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}" CC=$(tc-getCC) ${args}
+ emake -C contrib/systemd SBINDIR=/usr/sbin
+
+ if use tools ; then
+ for contrib in halog iprange ; do
+ emake -C contrib/${contrib} \
+ CFLAGS="${CFLAGS}" OPTIMIZE="${CFLAGS}" LDFLAGS="${LDFLAGS}" CC=$(tc-getCC) ${args}
+ done
+ fi
+}
+
+src_install() {
+ dosbin haproxy
+ dosym /usr/sbin/haproxy /usr/bin/haproxy
+
+ newinitd "${FILESDIR}/haproxy.initd-r6" haproxy
+
+ # Don't install useless files
+# rm examples/build.cfg doc/*gpl.txt
+
+ dodoc CHANGELOG ROADMAP doc/{configuration,haproxy-en}.txt
+ doman doc/haproxy.1
+
+ dosbin haproxy-systemd-wrapper
+ dosym /usr/sbin/haproxy-systemd-wrapper /usr/bin/haproxy-systemd-wrapper
+ systemd_dounit contrib/systemd/haproxy.service
+
+ if use tools ; then
+ for contrib in halog iprange ; do
+ dobin contrib/${contrib}/${contrib}
+ done
+ fi
+
+ if use examples ; then
+ docinto examples
+ dodoc examples/*.cfg
+ fi
+
+ if use vim-syntax ; then
+ insinto /usr/share/vim/vimfiles/syntax
+ doins examples/haproxy.vim
+ fi
+}
+
+pkg_postinst() {
+ if [[ ! -f "${ROOT}/etc/haproxy.cfg" ]] ; then
+ ewarn "You need to create /etc/haproxy.cfg before you start the haproxy service."
+ ewarn "It's best practice to not run haproxy as root, user and group haproxy was therefore created."
+ ewarn "Make use of them with the \"user\" and \"group\" directives."
+
+ if [[ -d "${ROOT}/usr/share/doc/${PF}" ]]; then
+ einfo "Please consult the installed documentation for learning the configuration file's syntax."
+ einfo "The documentation and sample configuration files are installed here:"
+ einfo " ${ROOT}usr/share/doc/${PF}"
+ fi
+ fi
+}