diff options
author | Robin H. Johnson <robbat2@gentoo.org> | 2016-12-04 16:53:39 -0800 |
---|---|---|
committer | Robin H. Johnson <robbat2@gentoo.org> | 2016-12-05 07:56:22 -0800 |
commit | e9676800911f550b2dd174a5916bc4e555ad0159 (patch) | |
tree | 56947f0e1e4b63c0025df94fa7a6f282fde5a44d /net-proxy | |
parent | net-proxy/haproxy: prepare for split 9999 on different major versions (diff) | |
download | gentoo-e9676800911f550b2dd174a5916bc4e555ad0159.tar.gz gentoo-e9676800911f550b2dd174a5916bc4e555ad0159.tar.bz2 gentoo-e9676800911f550b2dd174a5916bc4e555ad0159.zip |
net-proxy/haproxy: 9999-style builds for current major versions.
Package-Manager: portage-2.3.2
Diffstat (limited to 'net-proxy')
-rw-r--r-- | net-proxy/haproxy/files/haproxy-1.7-contrib.patch | 42 | ||||
-rw-r--r-- | net-proxy/haproxy/haproxy-1.6.9999.ebuild | 57 | ||||
-rw-r--r-- | net-proxy/haproxy/haproxy-1.7.9999.ebuild | 165 | ||||
-rw-r--r-- | net-proxy/haproxy/metadata.xml | 3 |
4 files changed, 248 insertions, 19 deletions
diff --git a/net-proxy/haproxy/files/haproxy-1.7-contrib.patch b/net-proxy/haproxy/files/haproxy-1.7-contrib.patch new file mode 100644 index 000000000000..836c4cf71de1 --- /dev/null +++ b/net-proxy/haproxy/files/haproxy-1.7-contrib.patch @@ -0,0 +1,42 @@ +diff -Nuar --exclude '*~' haproxy-1.7.9999.orig/contrib/tcploop/Makefile haproxy-1.7.9999/contrib/tcploop/Makefile +--- haproxy-1.7.9999.orig/contrib/tcploop/Makefile 2016-12-04 16:08:05.497256646 -0800 ++++ haproxy-1.7.9999/contrib/tcploop/Makefile 2016-12-04 16:12:20.558141392 -0800 +@@ -5,7 +5,7 @@ + OBJS = tcploop + + tcploop: tcploop.c +- $(CC) $(OPTIMIZE) $(DEFINE) $(INCLUDE) -o $@ $^ ++ $(CC) $(OPTIMIZE) $(DEFINE) $(INCLUDE) $(LDFLAGS) -o $@ $^ $(LIBS) + + clean: + rm -f $(OBJS) *.[oas] *~ +diff -Nuar --exclude '*~' haproxy-1.7.9999.orig/contrib/tcploop/tcploop.c haproxy-1.7.9999/contrib/tcploop/tcploop.c +--- haproxy-1.7.9999.orig/contrib/tcploop/tcploop.c 2016-12-04 16:08:05.498256665 -0800 ++++ haproxy-1.7.9999/contrib/tcploop/tcploop.c 2016-12-04 16:11:13.877864378 -0800 +@@ -39,6 +39,7 @@ + #include <ctype.h> + #include <errno.h> + #include <fcntl.h> ++#include <limits.h> + #include <netdb.h> + #include <poll.h> + #include <signal.h> +diff -Nuar --exclude '*~' haproxy-1.7.9999.orig/contrib/spoa_example/Makefile haproxy-1.7.9999/contrib/spoa_example/Makefile +--- haproxy-1.7.9999.orig/contrib/spoa_example/Makefile 2016-12-04 15:56:49.068302156 -0800 ++++ haproxy-1.7.9999/contrib/spoa_example/Makefile 2016-12-04 15:58:51.360644213 -0800 +@@ -6,13 +6,13 @@ + LD = $(CC) + + CFLAGS = -g -O2 -Wall -Werror -pthread +-LDFLAGS = -lpthread ++LIBS = -lpthread + + OBJS = spoa.o + + + spoa: $(OBJS) +- $(LD) $(LDFLAGS) -o $@ $^ ++ $(LD) $(LDFLAGS) -o $@ $^ $(LIBS) + + install: spoa + install spoa $(DESTDIR)$(BINDIR) diff --git a/net-proxy/haproxy/haproxy-1.6.9999.ebuild b/net-proxy/haproxy/haproxy-1.6.9999.ebuild index 97a58d9c88f9..df81d1e500a9 100644 --- a/net-proxy/haproxy/haproxy-1.6.9999.ebuild +++ b/net-proxy/haproxy/haproxy-1.6.9999.ebuild @@ -4,18 +4,24 @@ EAPI="6" -inherit user versionator toolchain-funcs flag-o-matic systemd linux-info git-r3 +[[ ${PV} == *9999 ]] && SCM="git-r3" +inherit user versionator toolchain-funcs flag-o-matic systemd linux-info $SCM MY_P="${PN}-${PV/_beta/-dev}" DESCRIPTION="A TCP/HTTP reverse proxy for high availability environments" HOMEPAGE="http://haproxy.1wt.eu" -EGIT_REPO_URI="http://master.formilux.org/git/people/willy/haproxy.git" +if [[ ${PV} != *9999 ]]; then + SRC_URI="http://haproxy.1wt.eu/download/$(get_version_component_range 1-2)/src/${MY_P}.tar.gz" + KEYWORDS="~amd64 ~arm ~ppc ~x86" +else + EGIT_REPO_URI="http://git.haproxy.org/git/haproxy-$(get_version_component_range 1-2).git/" + EGIT_BRANCH=master +fi LICENSE="GPL-2 LGPL-2.1" SLOT="0" -KEYWORDS="" -IUSE="+crypt doc examples libressl slz net_ns +pcre pcre-jit ssl tools vim-syntax +zlib" # lua +IUSE="+crypt doc examples libressl slz net_ns +pcre pcre-jit ssl tools vim-syntax +zlib lua device-atlas 51degrees wurfl" REQUIRED_USE="pcre-jit? ( pcre ) ?? ( slz zlib )" @@ -29,13 +35,18 @@ DEPEND=" libressl? ( dev-libs/libressl:0= ) ) slz? ( dev-libs/libslz:= ) - zlib? ( sys-libs/zlib )" -# lua? ( dev-lang/lua:5.3 ) + zlib? ( sys-libs/zlib ) + lua? ( dev-lang/lua:5.3 ) + device-atlas? ( dev-libs/device-atlas-api-c )" RDEPEND="${DEPEND}" S="${WORKDIR}/${MY_P}" -DOCS=( CHANGELOG CONTRIBUTING MAINTAINERS ) +DOCS=( CHANGELOG CONTRIBUTING MAINTAINERS README ) +version_is_at_least 1.7.0 $PV && PATCHES=( "${FILESDIR}"/haproxy-1.7-contrib.patch ) +CONTRIBS=( halog iprange ) +# ip6range is present in 1.6, but broken. +version_is_at_least 1.7.0 $PV && CONTRIBS+=( ip6range spoa_example tcploop ) haproxy_use() { (( $# != 2 )) && die "${FUNCNAME} <USE flag> <make option>" @@ -66,19 +77,20 @@ src_compile() { local -a args=( TARGET=linux2628 USE_GETADDRINFO=1 + USE_TFO=1 ) args+=( $(haproxy_use crypt LIBCRYPT) ) - -# bug 541042 -# args+=( $(haproxy_use lua LUA) ) - args+=( $(haproxy_use net_ns NS) ) args+=( $(haproxy_use pcre PCRE) ) args+=( $(haproxy_use pcre-jit PCRE_JIT) ) args+=( $(haproxy_use ssl OPENSSL) ) args+=( $(haproxy_use slz SLZ) ) args+=( $(haproxy_use zlib ZLIB) ) + args+=( $(haproxy_use lua LUA) ) + args+=( $(haproxy_use 51degrees 51DEGREES) ) + args+=( $(haproxy_use device-atlas DEVICEATLAS) ) + args+=( $(haproxy_use wurfl WURFL) ) # For now, until the strict-aliasing breakage will be fixed append-cflags -fno-strict-aliasing @@ -86,7 +98,7 @@ src_compile() { emake CFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}" CC=$(tc-getCC) ${args[@]} if use tools ; then - for contrib in halog iprange ; do + for contrib in ${CONTRIBS[@]} ; do emake -C contrib/${contrib} \ CFLAGS="${CFLAGS}" OPTIMIZE="${CFLAGS}" LDFLAGS="${LDFLAGS}" CC=$(tc-getCC) ${args[@]} done @@ -106,17 +118,24 @@ src_install() { einstalldocs + # The errorfiles are used by upstream defaults. + insinto /etc/haproxy/errors/ + doins examples/errorfiles/* + if use doc; then - dodoc ROADMAP doc/{close-options,configuration,cookie-options,intro,linux-syn-cookies,management,proxy-protocol}.txt + dodoc ROADMAP doc/*.txt + #if use lua; then + # TODO: doc/lua-api/ + #fi fi if use tools ; then - dobin contrib/halog/halog - newbin contrib/iprange/iprange haproxy_iprange - fi - - if use net_ns && use doc; then - dodoc doc/network-namespaces.txt + has halog "${CONTRIBS[@]}" && dobin contrib/halog/halog + has "iprange" "${CONTRIBS[@]}" && newbin contrib/iprange/iprange haproxy_iprange + has "ip6range" "${CONTRIBS[@]}" && newbin contrib/ip6range/ip6range haproxy_ip6range + has "spoa_example" "${CONTRIBS[@]}" && newbin contrib/spoa_example/spoa haproxy_spoa_example + has "spoa_example" "${CONTRIBS[@]}" && newdoc contrib/spoa_example/README README.spoa_example + has "tcploop" "${CONTRIBS[@]}" && newbin contrib/tcploop/tcploop haproxy_tcploop fi if use examples ; then diff --git a/net-proxy/haproxy/haproxy-1.7.9999.ebuild b/net-proxy/haproxy/haproxy-1.7.9999.ebuild new file mode 100644 index 000000000000..df81d1e500a9 --- /dev/null +++ b/net-proxy/haproxy/haproxy-1.7.9999.ebuild @@ -0,0 +1,165 @@ +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI="6" + +[[ ${PV} == *9999 ]] && SCM="git-r3" +inherit user versionator toolchain-funcs flag-o-matic systemd linux-info $SCM + +MY_P="${PN}-${PV/_beta/-dev}" + +DESCRIPTION="A TCP/HTTP reverse proxy for high availability environments" +HOMEPAGE="http://haproxy.1wt.eu" +if [[ ${PV} != *9999 ]]; then + SRC_URI="http://haproxy.1wt.eu/download/$(get_version_component_range 1-2)/src/${MY_P}.tar.gz" + KEYWORDS="~amd64 ~arm ~ppc ~x86" +else + EGIT_REPO_URI="http://git.haproxy.org/git/haproxy-$(get_version_component_range 1-2).git/" + EGIT_BRANCH=master +fi + +LICENSE="GPL-2 LGPL-2.1" +SLOT="0" +IUSE="+crypt doc examples libressl slz net_ns +pcre pcre-jit ssl tools vim-syntax +zlib lua device-atlas 51degrees wurfl" +REQUIRED_USE="pcre-jit? ( pcre ) + ?? ( slz zlib )" + +DEPEND=" + pcre? ( + dev-libs/libpcre + pcre-jit? ( dev-libs/libpcre[jit] ) + ) + ssl? ( + !libressl? ( dev-libs/openssl:0=[zlib?] ) + libressl? ( dev-libs/libressl:0= ) + ) + slz? ( dev-libs/libslz:= ) + zlib? ( sys-libs/zlib ) + lua? ( dev-lang/lua:5.3 ) + device-atlas? ( dev-libs/device-atlas-api-c )" +RDEPEND="${DEPEND}" + +S="${WORKDIR}/${MY_P}" + +DOCS=( CHANGELOG CONTRIBUTING MAINTAINERS README ) +version_is_at_least 1.7.0 $PV && PATCHES=( "${FILESDIR}"/haproxy-1.7-contrib.patch ) +CONTRIBS=( halog iprange ) +# ip6range is present in 1.6, but broken. +version_is_at_least 1.7.0 $PV && CONTRIBS+=( ip6range spoa_example tcploop ) + +haproxy_use() { + (( $# != 2 )) && die "${FUNCNAME} <USE flag> <make option>" + + usex "${1}" "USE_${2}=1" "USE_${2}=" +} + +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() { + default + + 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 -a args=( + TARGET=linux2628 + USE_GETADDRINFO=1 + USE_TFO=1 + ) + + args+=( $(haproxy_use crypt LIBCRYPT) ) + args+=( $(haproxy_use net_ns NS) ) + args+=( $(haproxy_use pcre PCRE) ) + args+=( $(haproxy_use pcre-jit PCRE_JIT) ) + args+=( $(haproxy_use ssl OPENSSL) ) + args+=( $(haproxy_use slz SLZ) ) + args+=( $(haproxy_use zlib ZLIB) ) + args+=( $(haproxy_use lua LUA) ) + args+=( $(haproxy_use 51degrees 51DEGREES) ) + args+=( $(haproxy_use device-atlas DEVICEATLAS) ) + args+=( $(haproxy_use wurfl WURFL) ) + + # 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 ${CONTRIBS[@]} ; 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 + + doman doc/haproxy.1 + + dobin haproxy-systemd-wrapper + systemd_dounit contrib/systemd/haproxy.service + + einstalldocs + + # The errorfiles are used by upstream defaults. + insinto /etc/haproxy/errors/ + doins examples/errorfiles/* + + if use doc; then + dodoc ROADMAP doc/*.txt + #if use lua; then + # TODO: doc/lua-api/ + #fi + fi + + if use tools ; then + has halog "${CONTRIBS[@]}" && dobin contrib/halog/halog + has "iprange" "${CONTRIBS[@]}" && newbin contrib/iprange/iprange haproxy_iprange + has "ip6range" "${CONTRIBS[@]}" && newbin contrib/ip6range/ip6range haproxy_ip6range + has "spoa_example" "${CONTRIBS[@]}" && newbin contrib/spoa_example/spoa haproxy_spoa_example + has "spoa_example" "${CONTRIBS[@]}" && newdoc contrib/spoa_example/README README.spoa_example + has "tcploop" "${CONTRIBS[@]}" && newbin contrib/tcploop/tcploop haproxy_tcploop + 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 "${EROOT}/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 "${EROOT}/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 " ${EROOT}usr/share/doc/${PF}" + fi + fi +} diff --git a/net-proxy/haproxy/metadata.xml b/net-proxy/haproxy/metadata.xml index 2aaccf14afe7..fe6d5f4f39e8 100644 --- a/net-proxy/haproxy/metadata.xml +++ b/net-proxy/haproxy/metadata.xml @@ -23,5 +23,8 @@ Its event-driven architecture allows it to easily handle thousands of simultaneo <flag name="pcre-jit">Use JIT support for PCRE</flag> <flag name="slz">Use <pkg>dev-libs/libslz</pkg> compression library</flag> <flag name="tools">Install additional tools (halog, iprange)</flag> + <flag name="device-atlas">Device Detection using Device Atlas</flag> + <flag name="51degrees">Device Detection using 51 Degrees</flag> + <flag name="wurfl">Device Detection using WURFL</flag> </use> </pkgmetadata> |