
* inherit stx-metadata to help install updated files from stx 'config-files' repo Story: 2008952 Task: 42576 Signed-off-by: Jackie Huang <jackie.huang@windriver.com> Change-Id: Ida9ce74bae3e0a965f44e80fa485c03dff9fd7c4
118 lines
3.5 KiB
PHP
118 lines
3.5 KiB
PHP
SUMMARY = "TCP/HTTP proxy and load balancer for high availability environments"
|
|
DESCRIPTION = " \
|
|
HAProxy is a TCP/HTTP reverse proxy which is particularly suited for high \
|
|
availability environments. Indeed, it can: \
|
|
- route HTTP requests depending on statically assigned cookies \
|
|
- spread load among several servers while assuring server persistence \
|
|
through the use of HTTP cookies \
|
|
- switch to backup servers in the event a main server fails \
|
|
- accept connections to special ports dedicated to service monitoring \
|
|
- stop accepting connections without breaking existing ones \
|
|
- add, modify, and delete HTTP headers in both directions \
|
|
- block requests matching particular patterns \
|
|
- report detailed status to authenticated users from a URI \
|
|
intercepted by the application \
|
|
"
|
|
HOMEPAGE = "http://www.haproxy.org/"
|
|
|
|
LICENSE = "GPLv2"
|
|
LIC_FILES_CHKSUM = "file://LICENSE;md5=2d862e836f92129cdc0ecccc54eed5e0"
|
|
|
|
DEPENDS = "libpcre openssl zlib"
|
|
|
|
MAJOR_VER = "${@'.'.join(d.getVar('PV').split('.')[0:2])}"
|
|
|
|
inherit stx-metadata
|
|
|
|
STX_REPO = "config-files"
|
|
STX_SUBPATH = "haproxy-config"
|
|
|
|
SRC_URI = "\
|
|
https://www.haproxy.org/download/${MAJOR_VER}/src/haproxy-${PV}.tar.gz \
|
|
file://haproxy.service \
|
|
file://haproxy.cfg \
|
|
"
|
|
|
|
inherit systemd useradd
|
|
|
|
# create a user for running haproxy
|
|
HAP_USER_HOME = "${libdir}/haproxy"
|
|
USERADD_PACKAGES = "${PN}"
|
|
USERADD_PARAM_${PN} = "--system --home ${HAP_USER_HOME} --shell /sbin/nologin \
|
|
--groups haproxy --gid haproxy haproxy"
|
|
GROUPADD_PARAM_${PN} = "haproxy"
|
|
|
|
# for haproxy 1.x
|
|
HAP_TARGET = "linux2628"
|
|
|
|
EXTRA_OEMAKE = " \
|
|
'CPU=generic' \
|
|
'TARGET=${HAP_TARGET}' \
|
|
'USE_GETADDRINFO=1' \
|
|
'USE_OPENSSL=1' \
|
|
'USE_PCRE=1' 'USE_PCRE_JIT=1' \
|
|
'USE_ZLIB=1' \
|
|
'USE_LINUX_TPROXY=1' \
|
|
"
|
|
|
|
EXTRA_OEMAKE_append_x86 = " USE_REGPARM=1"
|
|
EXTRA_OEMAKE_append_x86-64 = " USE_REGPARM=1"
|
|
|
|
|
|
do_configure() {
|
|
:
|
|
}
|
|
|
|
do_compile() {
|
|
oe_runmake CC="${CC}" CFLAGS="${CFLAGS}" SBINDIR="${sbindir}" \
|
|
PREFIX="${prefix}" \
|
|
ZLIB_INC=${STAGING_INCDIR} \
|
|
ZLIB_LIB=${STAGING_LIBDIR} \
|
|
PCRE_INC=${STAGING_INCDIR} \
|
|
PCRE_LIB=${STAGING_LIBDIR} \
|
|
SSL_INC=${STAGING_INCDIR} \
|
|
SSL_LIB=${STAGING_LIBDIR}
|
|
oe_runmake -C contrib/halog halog
|
|
oe_runmake -C contrib/iprange iprange
|
|
}
|
|
|
|
do_install() {
|
|
oe_runmake install-bin \
|
|
PREFIX="${prefix}" \
|
|
SBINDIR="${sbindir}" \
|
|
DESTDIR=${D} \
|
|
INCLUDEDIR=${includedir}
|
|
|
|
install -D -m 0644 ${WORKDIR}/haproxy.service ${D}${systemd_system_unitdir}/haproxy.service
|
|
sed -i -e 's#/usr/bin/haproxy#/usr/sbin/haproxy#g' ${D}${systemd_system_unitdir}/haproxy.service
|
|
|
|
install -D -m 0644 ${WORKDIR}/haproxy.cfg ${D}${sysconfdir}/haproxy/haproxy.cfg
|
|
|
|
# install ssl folder for certificate
|
|
install -m 700 -d ${D}/${sysconfdir}/ssl/haproxy
|
|
chown haproxy:haproxy ${D}/${sysconfdir}/ssl/haproxy
|
|
|
|
# install halog and iprange
|
|
install -D -m 755 contrib/halog/halog ${D}${bindir}/halog
|
|
install -D -m 755 contrib/iprange/iprange ${D}${bindir}/iprange
|
|
|
|
install -d -m 755 ${D}/${sysconfdir}/haproxy/errors/
|
|
install -m 755 ${STX_METADATA_PATH}/files/503.http ${D}/${sysconfdir}/haproxy/errors/503.http
|
|
|
|
install -p -D -m 0755 ${STX_METADATA_PATH}/files/haproxy.sh ${D}/${sysconfdir}/init.d/haproxy
|
|
}
|
|
|
|
DISTRO_FEATURES_BACKFILL_CONSIDERED_remove = "sysvinit"
|
|
|
|
FILES_${PN} = " \
|
|
${bindir} \
|
|
${sbindir} \
|
|
${sysconfdir} \
|
|
${systemd_system_unitdir} \
|
|
"
|
|
RDEPENDS_${PN} = "openssl"
|
|
|
|
SYSTEMD_SERVICE_${PN} = "haproxy.service"
|
|
|
|
INSANE_SKIP_${PN} += "already-stripped"
|