From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: From: Bastian Krause Date: Tue, 9 Jun 2020 17:18:19 +0200 Message-Id: <20200609151819.14891-1-bst@pengutronix.de> MIME-Version: 1.0 Subject: [ptxdist] [PATCH] haproxy: new package List-Id: PTXdist Development Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: ptxdist@pengutronix.de Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ptxdist-bounces@pengutronix.de Sender: "ptxdist" To: ptxdist@pengutronix.de Cc: Bastian Krause HAProxy consists of a GPL core and GPL modules while exportable include files are licensed under LGPL. Some options (e.g. lua, pcre) are not yet configurable, this can be extended if someone needs them. A minimalistic config is provided to be able to test it, for everything else an adjusted config must be installed. As HAProxy's config examples expect some custom files in /etc/haproxy install_alternative_tree is used to install custom configuration files and more easily. Signed-off-by: Bastian Krause --- projectroot/etc/haproxy/haproxy.cfg | 24 +++++++ rules/haproxy.in | 25 +++++++ rules/haproxy.make | 100 ++++++++++++++++++++++++++++ 3 files changed, 149 insertions(+) create mode 100644 projectroot/etc/haproxy/haproxy.cfg create mode 100644 rules/haproxy.in create mode 100644 rules/haproxy.make diff --git a/projectroot/etc/haproxy/haproxy.cfg b/projectroot/etc/haproxy/haproxy.cfg new file mode 100644 index 000000000..0f9c28d9c --- /dev/null +++ b/projectroot/etc/haproxy/haproxy.cfg @@ -0,0 +1,24 @@ +global + log /dev/log local0 + log /dev/log local1 notice + stats socket /run/haproxy-admin.sock mode 660 level admin + stats timeout 30s + user www + group www + daemon + +defaults + log global + mode http + option httplog + option dontlognull + timeout connect 5000 + timeout client 50000 + timeout server 50000 + #errorfile 400 /etc/haproxy/errors/400.http + #errorfile 403 /etc/haproxy/errors/403.http + #errorfile 408 /etc/haproxy/errors/408.http + #errorfile 500 /etc/haproxy/errors/500.http + #errorfile 502 /etc/haproxy/errors/502.http + #errorfile 503 /etc/haproxy/errors/503.http + #errorfile 504 /etc/haproxy/errors/504.http diff --git a/rules/haproxy.in b/rules/haproxy.in new file mode 100644 index 000000000..9972f4132 --- /dev/null +++ b/rules/haproxy.in @@ -0,0 +1,25 @@ +## SECTION=networking + +menuconfig HAPROXY + tristate + prompt "haproxy " + select LIBC_CRYPT + select LIBC_DL + select LIBC_PTHREAD + select LIBC_RT + select OPENSSL + select ZLIB + help + Reliable, High Performance TCP/HTTP Load Balancer + +if HAPROXY + +config HAPROXY_OPENSSL + bool + prompt "enable OpenSSL support" + +config HAPROXY_SYSTEMD_UNIT + bool + prompt "install systemd service files" + +endif diff --git a/rules/haproxy.make b/rules/haproxy.make new file mode 100644 index 000000000..a0146cbf3 --- /dev/null +++ b/rules/haproxy.make @@ -0,0 +1,100 @@ +# -*-makefile-*- +# +# Copyright (C) 2020 by Bastian Krause +# +# For further information about the PTXdist project and license conditions +# see the README file. +# + +# +# We provide this package +# +PACKAGES-$(PTXCONF_HAPROXY) += haproxy + +# +# Paths and names +# +HAPROXY_VERSION := 2.1.6 +HAPROXY_MD5 := 95ffd25fc6b57b4f1650322a7587f972 +HAPROXY := haproxy-$(HAPROXY_VERSION) +HAPROXY_SUFFIX := tar.gz +HAPROXY_URL := https://www.haproxy.org/download/$(basename $(HAPROXY_VERSION))/src/$(HAPROXY).$(HAPROXY_SUFFIX) +HAPROXY_SOURCE := $(SRCDIR)/$(HAPROXY).$(HAPROXY_SUFFIX) +HAPROXY_DIR := $(BUILDDIR)/$(HAPROXY) +HAPROXY_LICENSE := GPL-2.0-or-later AND LGPL-2.1-or-later +HAPROXY_LICENSE_FILES := \ + file://doc/gpl.txt;md5=892f569a555ba9c07a568a7c0c4fa63a \ + file://doc/lgpl.txt;md5=fbc093901857fcd118f065f900982c24 + +# ---------------------------------------------------------------------------- +# Prepare +# ---------------------------------------------------------------------------- + +HAPROXY_CONF_TOOL := NO +HAPROXY_MAKE_OPT := \ + CC=$(CROSS_CC) \ + PREFIX=/usr \ + TARGET=linux-glibc \ + USE_GZIP=1 \ + USE_LUA= \ + USE_OPENSSL=$(call ptx/ifdef,PTXCONF_HAPROXY_OPENSSL,1,) \ + USE_PCRE= \ + USE_RT=1 \ + USE_SLZ= \ + USE_SYSTEMD=$(call ptx/ifdef,PTXCONF_INITMETHOD_SYSTEMD,1,) \ + USE_ZLIB=1 + +HAPROXY_INSTALL_OPT := \ + PREFIX=/usr \ + install + +# ---------------------------------------------------------------------------- +# Compile +# ---------------------------------------------------------------------------- + +$(STATEDIR)/haproxy.compile: + @$(call targetinfo) + @$(call world/compile, HAPROXY) + @$(call compile, HAPROXY, -C contrib/systemd $(HAPROXY_MAKE_OPT)) + @$(call touch) + +# ---------------------------------------------------------------------------- +# Install +# ---------------------------------------------------------------------------- + +$(STATEDIR)/haproxy.install: + @$(call targetinfo) + @$(call world/install, HAPROXY) + @install -v -D -m644 $(HAPROXY_DIR)/contrib/systemd/haproxy.service \ + $(HAPROXY_PKGDIR)/usr/lib/systemd/system/haproxy.service + @$(call touch) + +# ---------------------------------------------------------------------------- +# Target-Install +# ---------------------------------------------------------------------------- + +$(STATEDIR)/haproxy.targetinstall: + @$(call targetinfo) + + @$(call install_init, haproxy) + @$(call install_fixup, haproxy,PRIORITY,optional) + @$(call install_fixup, haproxy,SECTION,base) + @$(call install_fixup, haproxy,AUTHOR,"Bastian Krause ") + @$(call install_fixup, haproxy,DESCRIPTION,missing) + + @$(call install_copy, haproxy, 0, 0, 0755, -, /usr/sbin/haproxy) + + @$(call install_alternative_tree, haproxy, 0, 0, /etc/haproxy) + +ifdef PTXCONF_HAPROXY_SYSTEMD_UNIT + @$(call install_copy, haproxy, 0, 0, 0644, -, \ + /usr/lib/systemd/system/haproxy.service) + @$(call install_link, haproxy, ../haproxy.service, \ + /usr/lib/systemd/system/multi-user.target.wants/haproxy.service) +endif + + @$(call install_finish, haproxy) + + @$(call touch) + +# vim: syntax=make -- 2.27.0 _______________________________________________ ptxdist mailing list ptxdist@pengutronix.de To unsubscribe, send a mail with subject "unsubscribe" to ptxdist-request@pengutronix.de