commit:     75e8a84bc6a37d5dc5752e3eac0ca667566d165a
Author:     Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Wed Jul  6 11:20:44 2016 +0000
Commit:     Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Wed Jul  6 11:20:44 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=75e8a84b

net-misc/stunnel: reload configuration using HUP, bug #588054

Package-Manager: portage-2.2.28

 net-misc/stunnel/files/stunnel-r1       | 51 ++++++++++++++++++
 net-misc/stunnel/stunnel-5.34-r1.ebuild | 93 +++++++++++++++++++++++++++++++++
 2 files changed, 144 insertions(+)

diff --git a/net-misc/stunnel/files/stunnel-r1 
b/net-misc/stunnel/files/stunnel-r1
new file mode 100644
index 0000000..e7eee32
--- /dev/null
+++ b/net-misc/stunnel/files/stunnel-r1
@@ -0,0 +1,51 @@
+#!/sbin/openrc-run
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+extra_started_commands="reload"
+SERVICENAME=${SVCNAME#*.}
+SERVICENAME=${SERVICENAME:-stunnel}
+STUNNEL_CONFIGFILE=${STUNNEL_CONFIGFILE:-/etc/stunnel/${SERVICENAME}.conf}
+
+depend() {
+    need net
+    before logger
+}
+
+get_config() {
+       if [ ! -e ${STUNNEL_CONFIGFILE} ] ; then
+               eerror "You need to create ${STUNNEL_CONFIGFILE} first."
+               return 1
+       fi
+       CHROOT=$(grep "^chroot" ${STUNNEL_CONFIGFILE} | sed "s;.*= *;;")
+       [ -n "${CHROOT}" ] && CHROOT="--chroot ${CHROOT}"
+       PIDFILE=$(grep "^pid" ${STUNNEL_CONFIGFILE} | sed "s;.*= *;;")
+       PIDFILE=${PIDFILE:-/run/stunnel/${SERVICENAME}.pid}
+}
+
+start() {
+       get_config || return 1
+       checkpath -d -m 0775 -o root:stunnel /run/stunnel
+       if [ "$(dirname ${PIDFILE})" != "/run" ]; then
+               checkpath -d -m 0755 -o stunnel:stunnel -q $(dirname ${PIDFILE})
+       fi
+       ebegin "Starting ${SVCNAME}"
+       start-stop-daemon --start --pidfile "${PIDFILE}" ${CHROOT} \
+                         --exec /usr/bin/stunnel -- ${STUNNEL_CONFIGFILE} 
${STUNNEL_OPTIONS}
+       eend $? "Failed to start ${SVCNAME}"
+}
+
+stop() {
+       get_config || return 1
+       ebegin "Stopping ${SVCNAME}"
+       start-stop-daemon --stop --quiet --pidfile ${PIDFILE}
+       eend $? "Failed to stop ${SVCNAME}"
+}
+
+reload() {
+       get_config || return 1
+       ebegin "Reloading ${SVCNAME}"
+       start-stop-daemon --signal HUP --pidfile ${PIDFILE} --name stunnel
+       eend $?
+}

diff --git a/net-misc/stunnel/stunnel-5.34-r1.ebuild 
b/net-misc/stunnel/stunnel-5.34-r1.ebuild
new file mode 100644
index 0000000..53ee300
--- /dev/null
+++ b/net-misc/stunnel/stunnel-5.34-r1.ebuild
@@ -0,0 +1,93 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+inherit ssl-cert eutils multilib systemd user
+
+DESCRIPTION="TLS/SSL - Port Wrapper"
+HOMEPAGE="http://www.stunnel.org/index.html";
+SRC_URI="ftp://ftp.stunnel.org/stunnel/archive/${PV%%.*}.x/${P}.tar.gz
+       http://www.usenix.org.uk/mirrors/stunnel/archive/${PV%%.*}.x/${P}.tar.gz
+       
http://ftp.nluug.nl/pub/networking/stunnel/archive/${PV%%.*}.x/${P}.tar.gz
+       http://www.namesdir.com/mirrors/stunnel/archive/${PV%%.*}.x/${P}.tar.gz
+       http://stunnel.cybermirror.org/archive/${PV%%.*}.x/${P}.tar.gz
+       http://mirrors.zerg.biz/stunnel/archive/${PV%%.*}.x/${P}.tar.gz
+       ftp://mirrors.go-parts.com/stunnel/archive/${PV%%.*}.x/${P}.tar.gz";
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 
~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x86-macos"
+IUSE="ipv6 libressl selinux stunnel3 tcpd"
+
+DEPEND="tcpd? ( sys-apps/tcp-wrappers )
+       !libressl? ( dev-libs/openssl:0 )
+       libressl? ( dev-libs/libressl )"
+RDEPEND="${DEPEND}
+       stunnel3? ( dev-lang/perl )
+       selinux? ( sec-policy/selinux-stunnel )"
+
+RESTRICT="test"
+
+pkg_setup() {
+       enewgroup stunnel
+       enewuser stunnel -1 -1 -1 stunnel
+}
+
+src_prepare() {
+       # Hack away generation of certificate
+       sed -i -e "s/^install-data-local:/do-not-run-this:/" \
+               tools/Makefile.in || die "sed failed"
+
+       # libressl compat
+       epatch "${FILESDIR}"/stunnel-compat-libressl.patch
+
+       echo "CONFIG_PROTECT=\"/etc/stunnel/stunnel.conf\"" > "${T}"/20stunnel
+}
+
+src_configure() {
+       econf \
+               --libdir="${EPREFIX}/usr/$(get_libdir)" \
+               $(use_enable ipv6) \
+               $(use_enable tcpd libwrap) \
+               --with-ssl="${EPREFIX}"/usr \
+               --disable-fips
+}
+
+src_install() {
+       emake DESTDIR="${D}" install
+       rm -rf "${ED}"/usr/share/doc/${PN}
+       rm -f "${ED}"/etc/stunnel/stunnel.conf-sample \
+               "${ED}"/usr/share/man/man8/stunnel.{fr,pl}.8
+       use stunnel3 || rm -f "${ED}"/usr/bin/stunnel3
+
+       # The binary was moved to /usr/bin with 4.21,
+       # symlink for backwards compatibility
+       dosym ../bin/stunnel /usr/sbin/stunnel
+
+       dodoc AUTHORS BUGS CREDITS PORTS README TODO ChangeLog
+       dohtml doc/stunnel.html doc/en/VNC_StunnelHOWTO.html tools/ca.html \
+               tools/importCA.html
+
+       insinto /etc/stunnel
+       doins "${FILESDIR}"/stunnel.conf
+       newinitd "${FILESDIR}"/stunnel-r1 stunnel
+
+       doenvd "${T}"/20stunnel
+
+       systemd_dounit "${S}/tools/stunnel.service"
+       systemd_newtmpfilesd "${FILESDIR}"/stunnel.tmpfiles.conf stunnel.conf
+}
+
+pkg_postinst() {
+       if [ ! -f "${EROOT}"/etc/stunnel/stunnel.key ]; then
+               install_cert /etc/stunnel/stunnel
+               chown stunnel:stunnel 
"${EROOT}"/etc/stunnel/stunnel.{crt,csr,key,pem}
+               chmod 0640 "${EROOT}"/etc/stunnel/stunnel.{crt,csr,key,pem}
+       fi
+
+       einfo "If you want to run multiple instances of stunnel, create a new 
config"
+       einfo "file ending with .conf in /etc/stunnel/. **Make sure** you 
change "
+       einfo "\'pid= \' with a unique filename."
+}

Reply via email to