diff options
Diffstat (limited to 'net-proxy/haproxy/haproxy-1.6.1.ebuild')
-rw-r--r-- | net-proxy/haproxy/haproxy-1.6.1.ebuild | 161 |
1 files changed, 161 insertions, 0 deletions
diff --git a/net-proxy/haproxy/haproxy-1.6.1.ebuild b/net-proxy/haproxy/haproxy-1.6.1.ebuild new file mode 100644 index 00000000000..e9cd80d6b5f --- /dev/null +++ b/net-proxy/haproxy/haproxy-1.6.1.ebuild @@ -0,0 +1,161 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI="5" + +inherit user versionator toolchain-funcs flag-o-matic systemd linux-info + +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 ~ppc ~x86" +IUSE="+crypt doc examples net_ns +pcre pcre-jit ssl tools vim-syntax +zlib" # lua + +DEPEND="pcre? ( dev-libs/libpcre + pcre-jit? ( dev-libs/libpcre[jit] ) + ) + ssl? ( dev-libs/openssl:0[zlib?] ) + zlib? ( sys-libs/zlib )" +# lua? ( dev-lang/lua:5.3 ) +RDEPEND="${DEPEND}" + +S="${WORKDIR}/${MY_P}" + +pkg_setup() { + enewgroup haproxy + enewuser haproxy -1 -1 -1 haproxy + + if use net_ns; then + CONFIG_CHECK="~NET_NS" + linux-info_pkg_setup + fi +} + +src_prepare() { + sed -e 's:@SBINDIR@:'/usr/bin':' contrib/systemd/haproxy.service.in \ + > contrib/systemd/haproxy.service || die + + sed -ie 's:/usr/sbin/haproxy:/usr/bin/haproxy:' src/haproxy-systemd-wrapper.c || die +} + +src_compile() { + local args="TARGET=linux2628 USE_GETADDRINFO=1" + + if use crypt ; then + args="${args} USE_LIBCRYPT=1" + else + args="${args} USE_LIBCRYPT=" + fi + +# bug 541042 +# if use lua; then +# args="${args} USE_LUA=1" +# else + args="${args} USE_LUA=" +# fi + + if use net_ns; then + args="${args} USE_NS=1" + else + args="${args} USE_NS=" + fi + + 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 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} + + 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() { + dobin haproxy + + newconfd "${FILESDIR}/${PN}.confd" $PN + newinitd "${FILESDIR}/${PN}.initd-r3" $PN + + dodoc CHANGELOG CONTRIBUTING MAINTAINERS + doman doc/haproxy.1 + + dobin haproxy-systemd-wrapper + systemd_dounit contrib/systemd/haproxy.service + + if use doc; then + dodoc ROADMAP doc/{close-options,configuration,cookie-options,intro,linux-syn-cookies,management,proxy-protocol}.txt + fi + + if use tools ; then + for contrib in halog iprange ; do + dobin contrib/${contrib}/${contrib} + done + fi + + if use net_ns && use doc; then + dodoc doc/network-namespaces.txt + fi + + if use examples ; then + docinto examples + dodoc examples/*.cfg + dodoc examples/seamless_reload.txt + fi + + if use vim-syntax ; then + insinto /usr/share/vim/vimfiles/syntax + doins examples/haproxy.vim + fi +} + +pkg_postinst() { + if [[ ! -f "${ROOT}/etc/haproxy/haproxy.cfg" ]] ; then + ewarn "You need to create /etc/haproxy/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 +} |