net-misc/sslh: revision bump adding systemd support
authorCraig Andrews <candrews@integralblue.com>
Fri, 24 Jun 2016 22:24:34 +0000 (18:24 -0400)
committerMichael Palimaka <kensington@gentoo.org>
Wed, 13 Jul 2016 16:58:46 +0000 (02:58 +1000)
This new revision builds the systemd generator and installs the systemd service.

It also renames OPTIONS to DAEMON_OPTS in the sslh conf.d file for compatibility
with the systemd service which sources it.

Gentoo-bug: 563600

net-misc/sslh/files/sslh-1.18-systemd-generator.patch [new file with mode: 0644]
net-misc/sslh/files/sslh-1.18-version-deps.patch [new file with mode: 0644]
net-misc/sslh/files/sslh.conf.d-2
net-misc/sslh/files/sslh.init.d-2
net-misc/sslh/sslh-1.18-r1.ebuild [new file with mode: 0644]

diff --git a/net-misc/sslh/files/sslh-1.18-systemd-generator.patch b/net-misc/sslh/files/sslh-1.18-systemd-generator.patch
new file mode 100644 (file)
index 0000000..476de2a
--- /dev/null
@@ -0,0 +1,26 @@
+https://patch-diff.githubusercontent.com/raw/yrutschle/sslh/pull/98
+--- a/Makefile
++++ b/Makefile
+@@ -27,6 +27,8 @@ CFLAGS ?=-Wall -g $(CFLAGS_COV)
+ LIBS=
+ OBJS=common.o sslh-main.o probe.o tls.o
++CONDITIONAL_TARGETS=
++
+ ifneq ($(strip $(USELIBWRAP)),)
+       LIBS:=$(LIBS) -lwrap
+       CPPFLAGS+=-DLIBWRAP
+@@ -54,10 +56,11 @@ endif
+ ifneq ($(strip $(USESYSTEMD)),)
+         LIBS:=$(LIBS) -lsystemd
+         CPPFLAGS+=-DSYSTEMD
++      CONDITIONAL_TARGETS+=systemd-sslh-generator
+ endif
+-all: sslh $(MAN) echosrv
++all: sslh $(MAN) echosrv $(CONDITIONAL_TARGETS)
+ .c.o: *.h
+       $(CC) $(CFLAGS) $(CPPFLAGS) -c $<
+
diff --git a/net-misc/sslh/files/sslh-1.18-version-deps.patch b/net-misc/sslh/files/sslh-1.18-version-deps.patch
new file mode 100644 (file)
index 0000000..aa02871
--- /dev/null
@@ -0,0 +1,13 @@
+make sure the files using version.h depend on it being generated first
+
+--- a/Makefile
++++ b/Makefile
+@@ -78,7 +78,7 @@
+ systemd-sslh-generator: systemd-sslh-generator.o
+       $(CC) $(CFLAGS) $(LDFLAGS) -o systemd-sslh-generator systemd-sslh-generator.o -lconfig
+-echosrv: $(OBJS) echosrv.o
++echosrv: version.h $(OBJS) echosrv.o
+       $(CC) $(CFLAGS) $(LDFLAGS) -o echosrv echosrv.o probe.o common.o tls.o $(LIBS)
+ $(MAN): sslh.pod Makefile
index 719be7b8dd15c7e1410354d1b9dbd39c07242760..73d08d5f448437532e187612a0dc27d87d44fc7b 100644 (file)
@@ -1,8 +1,8 @@
 # /etc/conf.d/sslh
 
 # Options to sslh itself.  See the sslh(1) man page.
-#OPTIONS=""
+#DAEMON_OPTS=""
 
 # Multiplexing example
 # Port 44 can be used for ssh, http, and https. Drop privileges after starting.
-#OPTIONS="-p localhost:44 --ssh 127.0.0.1:22 --http 127.0.0.1:80 --ssl 127.0.0.1:443 --user nobody"
+#DAEMON_OPTS="-p localhost:44 --ssh 127.0.0.1:22 --http 127.0.0.1:80 --ssl 127.0.0.1:443 --user nobody"
index 0351f7c68e53e2d571212a354541160ff063e645..b75e96f2a3714cf02b8229ca99383eb2028d1550 100644 (file)
@@ -8,7 +8,7 @@ start() {
        start-stop-daemon --start \
                --pidfile /var/run/${SVCNAME}.pid \
                --exec /usr/sbin/sslh -- \
-                       ${OPTIONS} \
+                       ${DAEMON_OPTS} \
                        --pidfile /var/run/${SVCNAME}.pid
        eend $?
 }
diff --git a/net-misc/sslh/sslh-1.18-r1.ebuild b/net-misc/sslh/sslh-1.18-r1.ebuild
new file mode 100644 (file)
index 0000000..1059a96
--- /dev/null
@@ -0,0 +1,60 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=6
+
+MY_P="${PN}-v${PV}"
+inherit systemd toolchain-funcs
+
+DESCRIPTION="Port multiplexer - accept both HTTPS and SSH connections on the same port"
+HOMEPAGE="http://www.rutschle.net/tech/sslh.shtml"
+SRC_URI="http://www.rutschle.net/tech/${PN}/${MY_P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~m68k ~mips ~s390 ~sh ~x86"
+IUSE="caps systemd tcpd"
+
+RDEPEND="caps? ( sys-libs/libcap )
+       systemd? ( sys-apps/systemd:= )
+       tcpd? ( sys-apps/tcp-wrappers )
+       dev-libs/libconfig"
+DEPEND="${RDEPEND}
+       dev-lang/perl"
+
+RESTRICT="test"
+
+S=${WORKDIR}/${MY_P}
+
+PATCHES=(
+       "${FILESDIR}/${PN}-1.17-version-deps.patch"
+       "${FILESDIR}/${PN}-1.18-version-deps.patch"
+       "${FILESDIR}/${PN}-1.18-systemd-generator.patch"
+)
+
+src_compile() {
+       emake \
+               CC="$(tc-getCC)" \
+               USELIBCAP=$(usev caps) \
+               USELIBWRAP=$(usev tcpd) \
+               USESYSTEMD=$(usev systemd)
+}
+
+src_install() {
+       dosbin sslh-{fork,select}
+       dosym sslh-fork /usr/sbin/sslh
+       doman sslh.8.gz
+       dodoc ChangeLog README.md
+
+       newinitd "${FILESDIR}"/sslh.init.d-2 sslh
+       newconfd "${FILESDIR}"/sslh.conf.d-2 sslh
+
+       if use systemd; then
+               # Gentoo puts the binaries in /usr/sbin, but upstream puts them in /usr/bin
+               sed -i -e 's~/usr/bin/~/usr/sbin/~g' scripts/systemd.sslh.service || die
+               systemd_newunit scripts/systemd.sslh.service sslh.service
+               exeinto /usr/lib/systemd/system-generators/
+               doexe systemd-sslh-generator
+       fi
+}