# Copyright 1999-2016 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 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_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 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} 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 newinitd "${FILESDIR}/haproxy.initd-r2" 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 dobin 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 }