commit: 411cd798ec6bdae562419d6a8749ca8beb5d9ff7 parent: c927f5613f2f28aa7f09037a77875cb2fcdcd16a Author: Haelwenn (lanodan) Monnier <contact@hacktivis.me> Date: Thu, 20 Dec 2018 03:09:27 +0100 net-misc/tinyssh: Import from ::chaoslabDiffstat:
A | net-misc/tinyssh/Manifest | 1 | + |
A | net-misc/tinyssh/files/tinyssh-makekey.service | 8 | ++++++++ |
A | net-misc/tinyssh/files/tinyssh.confd | 7 | +++++++ |
A | net-misc/tinyssh/files/tinyssh.initd | 30 | ++++++++++++++++++++++++++++++ |
A | net-misc/tinyssh/files/tinyssh.service | 9 | +++++++++ |
A | net-misc/tinyssh/files/tinyssh.socket | 13 | +++++++++++++ |
A | net-misc/tinyssh/metadata.xml | 16 | ++++++++++++++++ |
A | net-misc/tinyssh/tinyssh-20181206.ebuild | 52 | ++++++++++++++++++++++++++++++++++++++++++++++++++++ |
8 files changed, 136 insertions(+), 0 deletions(-)
diff --git a/net-misc/tinyssh/Manifest b/net-misc/tinyssh/Manifest @@ -0,0 +1 @@ +DIST tinyssh-20181206.tar.gz 344395 BLAKE2B 42582d91aef40cce0aa2b0985a8f86172fd4d44214ecafc8033b3de750cf9e1cc39f8aab2d9e9c3923d1eb0501126a590834eee17e58aa98fd8e9ae0d90dfd80 SHA512 866a23331aa536a884430776cb33e7b5ae564a28c0d0f128ee59e7698a2e4d56d87da1d4eced7d67a9747c4f01a4a2aa9d68b04ace5e231f526201ea750ac0b6 diff --git a/net-misc/tinyssh/files/tinyssh-makekey.service b/net-misc/tinyssh/files/tinyssh-makekey.service @@ -0,0 +1,8 @@ +[Unit] +Description=TinySSH Key Generation +ConditionPathIsDirectory=!/etc/tinyssh/keys + +[Service] +ExecStart=/usr/sbin/tinysshd-makekey /etc/tinyssh/keys +Type=oneshot +RemainAfterExit=true diff --git a/net-misc/tinyssh/files/tinyssh.confd b/net-misc/tinyssh/files/tinyssh.confd @@ -0,0 +1,7 @@ +# TinySSH config file for /etc/init.d/tinyssh + +#TINYSSH_PORT="22" +#TINYSSH_IP="0.0.0.0" +#TINYSSH_CONFDIR="/etc/tinyssh" +#TINYSSH_KEYDIR="${TINYSSH_CONFDIR}/keys" +#TINYSSH_OPTS="-l -v" diff --git a/net-misc/tinyssh/files/tinyssh.initd b/net-misc/tinyssh/files/tinyssh.initd @@ -0,0 +1,30 @@ +#!/sbin/openrc-run +# Copyright 1999-2018 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +TINYSSH_CONFDIR="${TINYSSH_CONFDIR:-/etc/tinyssh}" +TINYSSH_KEYDIR="${TINYSSH_KEYDIR:-${TINYSSH_CONFDIR}/keys}" + +TINYSSHD="/usr/sbin/tinysshd" +MAKEKEY="${TINYSSHD}-makekey" +PRINTKEY="/usr/bin/tinysshd-printkey" + +command="/usr/bin/tcpserver" +command_args="-HRDl0 ${TINYSSH_IP:-0.0.0.0} ${TINYSSH_PORT:-22} + ${TINYSSHD} ${TINYSSH_OPTS:--l -v} ${TINYSSH_KEYDIR}" +command_background=yes +pidfile="/run/${RC_SVCNAME}.pid" +start_stop_daemon_args="${SSD_OPTS}" + +depend() { + use net +} + +start_pre() { + if [ "${RC_CMD}" != "restart" ]; then + checkpath -d "${TINYSSH_CONFDIR}" + if ! ${PRINTKEY} "${TINYSSH_KEYDIR}" >/dev/null 2>&1; then + ${MAKEKEY} "${TINYSSH_KEYDIR}" || return 1 + fi + fi +} diff --git a/net-misc/tinyssh/files/tinyssh.service b/net-misc/tinyssh/files/tinyssh.service @@ -0,0 +1,9 @@ +[Unit] +Description=TinySSH Per-Connection Daemon +Documentation=https://tinyssh.org +After=tinyssh-makekey.service + +[Service] +ExecStart=/usr/sbin/tinysshd /etc/tinyssh/keys +StandardInput=socket +StandardError=journal diff --git a/net-misc/tinyssh/files/tinyssh.socket b/net-misc/tinyssh/files/tinyssh.socket @@ -0,0 +1,13 @@ +[Unit] +Description=TinySSH service (socket-activated) +Documentation=https://tinyssh.org +Wants=tinyssh-makekey.service + +[Socket] +ListenStream=%i +Accept=true +KeepAlive=true +IPTOS=low-delay + +[Install] +WantedBy=sockets.target diff --git a/net-misc/tinyssh/metadata.xml b/net-misc/tinyssh/metadata.xml @@ -0,0 +1,16 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>contact@hacktivis.me</email> + <name>Haelwenn (lanodan) Monnier</name> + </maintainer> + <upstream> + <remote-id type="github">janmojzis/tinyssh</remote-id> + <bugs-to>https://github.com/janmojzis/tinyssh/issues</bugs-to> + </upstream> + <longdescription lang="en"> + TinySSH is a minimalistic and secure SSH server which + implements only a subset of SSHv2 features. + </longdescription> +</pkgmetadata> diff --git a/net-misc/tinyssh/tinyssh-20181206.ebuild b/net-misc/tinyssh/tinyssh-20181206.ebuild @@ -0,0 +1,52 @@ +# Copyright 1999-2018 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit systemd + +DESCRIPTION="A small SSH server with state-of-the-art cryptography" +HOMEPAGE="https://tinyssh.org" +SRC_URI="https://github.com/janmojzis/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz" +RESTRICT="mirror" + +LICENSE="public-domain" +SLOT="0" +KEYWORDS="~amd64 ~x86" + +RDEPEND="sys-apps/ucspi-tcp" + +src_prepare() { + # Leave optimization level to user CFLAGS + sed -i 's/-Os -fomit-frame-pointer -funroll-loops//g' ./conf-cc || die + + # Use make-tinysshcc.sh script, which has no tests and doesn't execute + # binaries. See https://github.com/janmojzis/tinyssh/issues/2 + sed -i 's/tinyssh/tinysshcc/g' ./Makefile || die + + default +} + +src_compile() { + emake compile +} + +src_install() { + dosbin build/bin/tinysshd{,-makekey} + dobin build/bin/tinysshd-printkey + doman man/* + + newinitd "${FILESDIR}/${PN}.initd" "${PN}" + newconfd "${FILESDIR}/${PN}.confd" "${PN}" + + systemd_newunit "${FILESDIR}/${PN}.service" "${PN}@.service" + systemd_newunit "${FILESDIR}/${PN}.socket" "${PN}@.socket" + systemd_dounit "${FILESDIR}/${PN}-makekey.service" +} + +pkg_postinst() { + einfo + einfo "TinySSH is in beta stage, and ready for production use." + einfo "See https://tinyssh.org for more information." + einfo +}