commit:     3233b24b3e882edea9ad2752650baf1506b0ccc0
Author:     Christian Ruppert <idl0r <AT> gentoo <DOT> org>
AuthorDate: Tue Jul 26 08:13:20 2022 +0000
Commit:     Christian Ruppert <idl0r <AT> gentoo <DOT> org>
CommitDate: Tue Jul 26 08:28:28 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3233b24b

net-proxy/haproxy: Fix reloading and use master-CLI

Package-Manager: Portage-3.0.30, Repoman-3.0.3
Signed-off-by: Christian Ruppert <idl0r <AT> gentoo.org>

 net-proxy/haproxy/files/haproxy.confd-r1           | 14 ++++
 net-proxy/haproxy/files/haproxy.initd-r8           | 85 ++++++++++++++++++++++
 net-proxy/haproxy/haproxy-2.2.9999.ebuild          |  4 +-
 net-proxy/haproxy/haproxy-2.4.9999.ebuild          |  4 +-
 net-proxy/haproxy/haproxy-2.5.9999.ebuild          |  4 +-
 ...aproxy-2.6.2.ebuild => haproxy-2.6.2-r1.ebuild} |  4 +-
 net-proxy/haproxy/haproxy-2.6.9999.ebuild          |  4 +-
 net-proxy/haproxy/haproxy-9999.ebuild              |  4 +-
 8 files changed, 111 insertions(+), 12 deletions(-)

diff --git a/net-proxy/haproxy/files/haproxy.confd-r1 
b/net-proxy/haproxy/files/haproxy.confd-r1
new file mode 100644
index 000000000000..b9bb84e3e833
--- /dev/null
+++ b/net-proxy/haproxy/files/haproxy.confd-r1
@@ -0,0 +1,14 @@
+# HAProxy config file(s), space separated
+#CONFIGS="/etc/haproxy/haproxy.cfg"
+
+# Additional HAProxy command line options
+HAPROXY_OPTS="-S /run/haproxy-master.sock"
+
+# If you want to make use ot the new seamless reload you can just write your 
own
+# reload_seamless function here. It will be called by the init script.
+# For more information on how to use that feature please have a look at the
+# "seamless_reload.txt" documentation file (requires 
net-proxy/haproxy[examples])
+#reload_seamless() {
+#      checkpath -d -m 0700 haproxy:haproxy "/run/haproxy/"
+#      socat /run/haproxy/socket - <<< "show servers state" > 
/run/haproxy/global.state
+#}

diff --git a/net-proxy/haproxy/files/haproxy.initd-r8 
b/net-proxy/haproxy/files/haproxy.initd-r8
new file mode 100644
index 000000000000..4994c28b42d5
--- /dev/null
+++ b/net-proxy/haproxy/files/haproxy.initd-r8
@@ -0,0 +1,85 @@
+#!/sbin/openrc-run
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+extra_commands="checkconfig"
+extra_started_commands="reload"
+
+command="/usr/sbin/haproxy"
+
+pidfile="${HAPROXY_PIDFILE:-/run/${SVCNAME}.pid}"
+
+configs=
+
+if [ -z "${CONFIGS}" ]; then
+       if [ -f "/etc/haproxy/${SVCNAME}.cfg" ]; then
+               CONFIGS=/etc/haproxy/${SVCNAME}.cfg
+       elif [ -f "/etc/${SVCNAME}.cfg" ]; then
+               CONFIGS=/etc/${SVCNAME}.cfg # Deprecated
+       fi
+fi
+
+for conf in $CONFIGS; do
+       configs="${configs} -f ${conf}"
+done
+
+command_args="-D -W -p ${pidfile} ${configs} ${HAPROXY_OPTS}"
+
+depend() {
+       need net
+       use dns logger
+}
+
+checkconfig() {
+       if [ -z "${CONFIGS}" ]; then
+               eerror "No config(s) has been specified"
+               return 1
+       fi
+
+       for conf in $CONFIGS; do
+               if [ ! -f "${conf}" ]; then
+                       eerror "${conf} does not exist!"
+                       return 1
+               fi
+       done
+
+       ebegin "Checking ${CONFIGS}"
+       $command -q -c $configs $HAPROXY_OPTS
+       eend $?
+}
+
+start_pre() {
+       if [ "${RC_CMD}" != "restart" ]; then
+               checkconfig || return 1
+       fi
+}
+
+stop_pre() {
+       if [ "${RC_CMD}" = "restart" ]; then
+               checkconfig || return 1
+       fi
+}
+
+stop() {
+       local _t _pid
+
+       _t="$(mktemp)"
+       for _pid in $(cat ${pidfile}) ; do
+               echo "${_pid}" > "${_t}"
+               start-stop-daemon --stop --pidfile="${_t}"
+       done
+       rm -f "${_t}"
+}
+
+reload() {
+       checkconfig || { eerror "Reloading failed, please fix your config(s) 
first"; return 1; }
+
+       if [ "$(command -v reload_seamless)" = "reload_seamless" ]; then
+               einfo "Calling user-defined reload_seamless()"
+               reload_seamless || { eerror "reload_seamless() failed!"; return 
1; }
+       fi
+
+       ebegin "Reloading ${SVCNAME}"
+       $command $command_args -sf $(cat "${pidfile}")
+       eend $?
+}

diff --git a/net-proxy/haproxy/haproxy-2.2.9999.ebuild 
b/net-proxy/haproxy/haproxy-2.2.9999.ebuild
index 4ec0188ead43..954368323612 100644
--- a/net-proxy/haproxy/haproxy-2.2.9999.ebuild
+++ b/net-proxy/haproxy/haproxy-2.2.9999.ebuild
@@ -124,8 +124,8 @@ src_install() {
        dosbin haproxy
        dosym ../sbin/haproxy /usr/bin/haproxy
 
-       newconfd "${FILESDIR}/${PN}.confd" ${PN}
-       newinitd "${FILESDIR}/${PN}.initd-r7" ${PN}
+       newconfd "${FILESDIR}/${PN}.confd-r1" ${PN}
+       newinitd "${FILESDIR}/${PN}.initd-r8" ${PN}
 
        doman doc/haproxy.1
 

diff --git a/net-proxy/haproxy/haproxy-2.4.9999.ebuild 
b/net-proxy/haproxy/haproxy-2.4.9999.ebuild
index a8f7f3e7ffd3..56ad7268073b 100644
--- a/net-proxy/haproxy/haproxy-2.4.9999.ebuild
+++ b/net-proxy/haproxy/haproxy-2.4.9999.ebuild
@@ -119,8 +119,8 @@ src_install() {
        dosbin haproxy
        dosym ../sbin/haproxy /usr/bin/haproxy
 
-       newconfd "${FILESDIR}/${PN}.confd" ${PN}
-       newinitd "${FILESDIR}/${PN}.initd-r7" ${PN}
+       newconfd "${FILESDIR}/${PN}.confd-r1" ${PN}
+       newinitd "${FILESDIR}/${PN}.initd-r8" ${PN}
 
        doman doc/haproxy.1
 

diff --git a/net-proxy/haproxy/haproxy-2.5.9999.ebuild 
b/net-proxy/haproxy/haproxy-2.5.9999.ebuild
index 2b772750ef60..853340e4fcb2 100644
--- a/net-proxy/haproxy/haproxy-2.5.9999.ebuild
+++ b/net-proxy/haproxy/haproxy-2.5.9999.ebuild
@@ -119,8 +119,8 @@ src_install() {
        dosbin haproxy
        dosym ../sbin/haproxy /usr/bin/haproxy
 
-       newconfd "${FILESDIR}/${PN}.confd" ${PN}
-       newinitd "${FILESDIR}/${PN}.initd-r7" ${PN}
+       newconfd "${FILESDIR}/${PN}.confd-r1" ${PN}
+       newinitd "${FILESDIR}/${PN}.initd-r8" ${PN}
 
        doman doc/haproxy.1
 

diff --git a/net-proxy/haproxy/haproxy-2.6.2.ebuild 
b/net-proxy/haproxy/haproxy-2.6.2-r1.ebuild
similarity index 98%
rename from net-proxy/haproxy/haproxy-2.6.2.ebuild
rename to net-proxy/haproxy/haproxy-2.6.2-r1.ebuild
index 5fc0953b5485..6e17e38ddf96 100644
--- a/net-proxy/haproxy/haproxy-2.6.2.ebuild
+++ b/net-proxy/haproxy/haproxy-2.6.2-r1.ebuild
@@ -119,8 +119,8 @@ src_install() {
        dosbin haproxy
        dosym ../sbin/haproxy /usr/bin/haproxy
 
-       newconfd "${FILESDIR}/${PN}.confd" ${PN}
-       newinitd "${FILESDIR}/${PN}.initd-r7" ${PN}
+       newconfd "${FILESDIR}/${PN}.confd-r1" ${PN}
+       newinitd "${FILESDIR}/${PN}.initd-r8" ${PN}
 
        doman doc/haproxy.1
 

diff --git a/net-proxy/haproxy/haproxy-2.6.9999.ebuild 
b/net-proxy/haproxy/haproxy-2.6.9999.ebuild
index 5fc0953b5485..6e17e38ddf96 100644
--- a/net-proxy/haproxy/haproxy-2.6.9999.ebuild
+++ b/net-proxy/haproxy/haproxy-2.6.9999.ebuild
@@ -119,8 +119,8 @@ src_install() {
        dosbin haproxy
        dosym ../sbin/haproxy /usr/bin/haproxy
 
-       newconfd "${FILESDIR}/${PN}.confd" ${PN}
-       newinitd "${FILESDIR}/${PN}.initd-r7" ${PN}
+       newconfd "${FILESDIR}/${PN}.confd-r1" ${PN}
+       newinitd "${FILESDIR}/${PN}.initd-r8" ${PN}
 
        doman doc/haproxy.1
 

diff --git a/net-proxy/haproxy/haproxy-9999.ebuild 
b/net-proxy/haproxy/haproxy-9999.ebuild
index 5fc0953b5485..6e17e38ddf96 100644
--- a/net-proxy/haproxy/haproxy-9999.ebuild
+++ b/net-proxy/haproxy/haproxy-9999.ebuild
@@ -119,8 +119,8 @@ src_install() {
        dosbin haproxy
        dosym ../sbin/haproxy /usr/bin/haproxy
 
-       newconfd "${FILESDIR}/${PN}.confd" ${PN}
-       newinitd "${FILESDIR}/${PN}.initd-r7" ${PN}
+       newconfd "${FILESDIR}/${PN}.confd-r1" ${PN}
+       newinitd "${FILESDIR}/${PN}.initd-r8" ${PN}
 
        doman doc/haproxy.1
 

Reply via email to