diff --git a/community/haproxy/0001-Use-CFLAGS-and-LDFLAGS-when-building-contrib.patch b/community/haproxy/0001-Use-CFLAGS-and-LDFLAGS-when-building-contrib.patch new file mode 100644 index 000000000..b6563cd28 --- /dev/null +++ b/community/haproxy/0001-Use-CFLAGS-and-LDFLAGS-when-building-contrib.patch @@ -0,0 +1,57 @@ +From 53fd8dbb4ecd3f8bcf4c1f3c0bc7fe39c7be6bd7 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Johannes=20L=C3=B6thberg?= +Date: Wed, 9 Jan 2019 23:37:02 +0100 +Subject: [PATCH] Use CFLAGS and LDFLAGS when building contrib +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Signed-off-by: Johannes Löthberg +--- + contrib/halog/Makefile | 2 +- + contrib/ip6range/Makefile | 2 +- + contrib/iprange/Makefile | 2 +- + 3 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/contrib/halog/Makefile b/contrib/halog/Makefile +index 5e687c09..2474409a 100644 +--- a/contrib/halog/Makefile ++++ b/contrib/halog/Makefile +@@ -16,7 +16,7 @@ DEFINE = + OBJS = halog + + halog: halog.c fgets2.c +- $(CC) $(OPTIMIZE) $(DEFINE) -o $@ $(INCLUDE) $(EBTREE_DIR)/ebtree.c $(EBTREE_DIR)/eb32tree.c $(EBTREE_DIR)/eb64tree.c $(EBTREE_DIR)/ebmbtree.c $(EBTREE_DIR)/ebsttree.c $(EBTREE_DIR)/ebistree.c $(EBTREE_DIR)/ebimtree.c $^ ++ $(CC) $(OPTIMIZE) $(CFLAGS) $(LDFLAGS) $(DEFINE) -o $@ $(INCLUDE) $(EBTREE_DIR)/ebtree.c $(EBTREE_DIR)/eb32tree.c $(EBTREE_DIR)/eb64tree.c $(EBTREE_DIR)/ebmbtree.c $(EBTREE_DIR)/ebsttree.c $(EBTREE_DIR)/ebistree.c $(EBTREE_DIR)/ebimtree.c $^ + + clean: + rm -f $(OBJS) *.[oas] +diff --git a/contrib/ip6range/Makefile b/contrib/ip6range/Makefile +index 55849b6d..1276b97d 100644 +--- a/contrib/ip6range/Makefile ++++ b/contrib/ip6range/Makefile +@@ -7,7 +7,7 @@ OBJS = ip6range + all: $(OBJS) + + %: %.c +- $(CC) $(LDFLAGS) $(OPTIMIZE) -o $@ $^ ++ $(CC) $(CFLAGS) $(LDFLAGS) $(OPTIMIZE) -o $@ $^ + + clean: + rm -f $(OBJS) *.o *.a *~ +diff --git a/contrib/iprange/Makefile b/contrib/iprange/Makefile +index b3c72eda..e92baf3d 100644 +--- a/contrib/iprange/Makefile ++++ b/contrib/iprange/Makefile +@@ -7,7 +7,7 @@ OBJS = iprange + all: $(OBJS) + + %: %.c +- $(CC) $(LDFLAGS) $(OPTIMIZE) -o $@ $^ ++ $(CC) $(CFLAGS) $(LDFLAGS) $(OPTIMIZE) -o $@ $^ + + clean: + rm -f $(OBJS) *.o *.a *~ +-- +2.20.1 + diff --git a/community/haproxy/PKGBUILD b/community/haproxy/PKGBUILD new file mode 100644 index 000000000..b72b1ffb2 --- /dev/null +++ b/community/haproxy/PKGBUILD @@ -0,0 +1,82 @@ +# Maintainer: Johannes Löthberg +# Contributor: Bartłomiej Piotrowski + +# ALARM: Kevin Mihelich +# - explicitly link v5/v6 with libatomic + +pkgname=haproxy +pkgver=1.9.4 +pkgrel=1 + +pkgdesc='Reliable, high performance TCP/HTTP load balancer' +url='https://haproxy.org/' +arch=('x86_64') +license=('GPL') + +depends=('openssl' 'pcre' 'zlib' 'lua' 'systemd-libs') + +backup=('etc/haproxy/haproxy.cfg') + +install=haproxy.install + +source=(https://haproxy.org/download/${pkgver%.*}/src/haproxy-$pkgver.tar.gz + haproxy.cfg + haproxy.sysusers + 0001-Use-CFLAGS-and-LDFLAGS-when-building-contrib.patch) + +md5sums=('ebccaeee22c777f49a2d6285885c4509' + '27941f31d25d5629f4bdef6bc4b2555a' + '2f00e81ee2f3f6e51a0cd9acc6f3ff3e' + '5343b0563c2e0e59110a84e2e611d94f') + +prepare() { + cd haproxy-$pkgver + + patch -p1 <"$srcdir"/0001-Use-CFLAGS-and-LDFLAGS-when-building-contrib.patch +} + +build() { + cd haproxy-$pkgver + + [[ $CARCH == "arm" || $CARCH == "armv6h" ]] && ADDLIB="-latomic" + make CFLAGS="$CFLAGS" LDFLAGS="$LDFLAGS" \ + CPU=generic \ + TARGET=linux2628 \ + USE_GETADDRINFO=1 \ + USE_OPENSSL=1 \ + USE_PCRE=1 USE_PCRE_JIT=1 \ + USE_ZLIB=1 \ + USE_LUA=1 \ + USE_SYSTEMD=1 \ + ADDLIB=$ADDLIB + + for contrib in halog iprange ip6range systemd; do + make -C contrib/$contrib SBINDIR=/usr/bin OPTIMIZE= CFLAGS="$CFLAGS" LDFLAGS="$LDFLAGS" + done +} + +package() { + cd haproxy-$pkgver + make \ + PREFIX="$pkgdir"/usr \ + SBINDIR="$pkgdir"/usr/bin \ + DOCDIR="$pkgdir"/usr/share/$pkgname \ + install + + for contrib in halog iprange ip6range; do + install -Dm755 contrib/$contrib/$contrib "$pkgdir"/usr/bin/$contrib + done + + install -Dm644 ../haproxy.sysusers "$pkgdir"/usr/lib/sysusers.d/haproxy.conf + install -Dm644 ../haproxy.cfg "$pkgdir"/etc/haproxy/haproxy.cfg + install -Dm644 contrib/systemd/haproxy.service \ + "$pkgdir"/usr/lib/systemd/system/haproxy.service + + install -d "$pkgdir"/usr/share/haproxy/examples/errorfiles + install -m644 examples/*.cfg "$pkgdir"/usr/share/haproxy/examples/ + install -m644 examples/errorfiles/*.http \ + "$pkgdir"/usr/share/haproxy/examples/errorfiles/ + + install -Dm644 examples/haproxy.vim \ + "$pkgdir"/usr/share/vim/vimfiles/syntax/haproxy.vim +} diff --git a/community/haproxy/haproxy.cfg b/community/haproxy/haproxy.cfg new file mode 100644 index 000000000..e9c448f0b --- /dev/null +++ b/community/haproxy/haproxy.cfg @@ -0,0 +1,49 @@ +#--------------------------------------------------------------------- +# Example configuration. See the full configuration manual online. +# +# http://www.haproxy.org/download/1.7/doc/configuration.txt +# +#--------------------------------------------------------------------- + +global + maxconn 20000 + log 127.0.0.1 local0 + user haproxy + chroot /usr/share/haproxy + pidfile /run/haproxy.pid + daemon + +frontend main + bind :5000 + mode http + log global + option httplog + option dontlognull + option http_proxy + option forwardfor except 127.0.0.0/8 + maxconn 8000 + timeout client 30s + + acl url_static path_beg -i /static /images /javascript /stylesheets + acl url_static path_end -i .jpg .gif .png .css .js + + use_backend static if url_static + default_backend app + +backend static + mode http + balance roundrobin + timeout connect 5s + timeout server 5s + server static 127.0.0.1:4331 check + +backend app + mode http + balance roundrobin + timeout connect 5s + timeout server 30s + timeout queue 30s + server app1 127.0.0.1:5001 check + server app2 127.0.0.1:5002 check + server app3 127.0.0.1:5003 check + server app4 127.0.0.1:5004 check diff --git a/community/haproxy/haproxy.install b/community/haproxy/haproxy.install new file mode 100644 index 000000000..3e6e2c15c --- /dev/null +++ b/community/haproxy/haproxy.install @@ -0,0 +1,8 @@ +post_install() { + printf '==> %s\n' "The example config chroots HAProxy, meaning that logging to journald won't work." + printf ' %s\n' "Either disable chrooting, use rsyslog, or bind /run/systemd/journal/dev-log into the chroot." +} + +post_upgrade() { + post_install $1 +} diff --git a/community/haproxy/haproxy.sysusers b/community/haproxy/haproxy.sysusers new file mode 100644 index 000000000..44b13ff24 --- /dev/null +++ b/community/haproxy/haproxy.sysusers @@ -0,0 +1 @@ +u haproxy - - -