commit: 9557f9c0c7051fde4e28bf59ee8a238175847ee1 Author: Haelwenn (lanodan) Monnier <contact <AT> hacktivis <DOT> me> AuthorDate: Sat Apr 4 22:00:35 2020 +0000 Commit: Haelwenn Monnier <contact <AT> hacktivis <DOT> me> CommitDate: Sat Apr 4 22:00:35 2020 +0000 URL: https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=9557f9c0
net-misc/tinyssh: Import from ::lanodanOverlay Signed-off-by: Haelwenn (lanodan) Monnier <contact <AT> hacktivis.me> net-misc/tinyssh/Manifest | 1 + net-misc/tinyssh/files/tinyssh-makekey.service | 8 ++++ net-misc/tinyssh/files/tinyssh.confd | 7 +++ net-misc/tinyssh/files/tinyssh.initd | 30 ++++++++++++ net-misc/tinyssh/files/tinyssh.service | 9 ++++ net-misc/tinyssh/files/tinyssh.socket | 13 ++++++ net-misc/tinyssh/metadata.xml | 19 ++++++++ net-misc/tinyssh/tinyssh-20190101.ebuild | 65 ++++++++++++++++++++++++++ 8 files changed, 152 insertions(+) diff --git a/net-misc/tinyssh/Manifest b/net-misc/tinyssh/Manifest new file mode 100644 index 0000000..b697c82 --- /dev/null +++ b/net-misc/tinyssh/Manifest @@ -0,0 +1 @@ +DIST tinyssh-20190101.tar.gz 244848 BLAKE2B a115bca82db020970a1cd8dd27f65f0d586f291fdcbcd786802babaa82befddd39ec8651dd4d6ebc3503e8c4e5903a335a6b14dc2957bae5519e4a7dee6fd495 SHA512 bf3829a71c29e8b0d5c2a145be9dfaf05efb1b98932f34f19f76e07871da4be10022bdde4c57ca49557b69931077b451bc2efbeab38d8ef24151fb73990f1012 diff --git a/net-misc/tinyssh/files/tinyssh-makekey.service b/net-misc/tinyssh/files/tinyssh-makekey.service new file mode 100644 index 0000000..841a516 --- /dev/null +++ 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 new file mode 100644 index 0000000..d1aefde --- /dev/null +++ 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 new file mode 100644 index 0000000..2fc28e5 --- /dev/null +++ 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 new file mode 100644 index 0000000..f0fe93b --- /dev/null +++ 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 new file mode 100644 index 0000000..9ca2b16 --- /dev/null +++ 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 new file mode 100644 index 0000000..bf058f0 --- /dev/null +++ b/net-misc/tinyssh/metadata.xml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>cont...@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> + <use> + <flag name="sodium">Use <pkg>dev-libs/libsodium</pkg> for cryptography</flag> + </use> +</pkgmetadata> diff --git a/net-misc/tinyssh/tinyssh-20190101.ebuild b/net-misc/tinyssh/tinyssh-20190101.ebuild new file mode 100644 index 0000000..1ad54dd --- /dev/null +++ b/net-misc/tinyssh/tinyssh-20190101.ebuild @@ -0,0 +1,65 @@ +# Copyright 1999-2020 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" + +LICENSE="public-domain" +SLOT="0" +KEYWORDS="~amd64 ~x86" + +IUSE="+sodium" + +DEPEND=" + sodium? ( dev-libs/libsodium ) +" +RDEPEND=" + ${DEPEND} + 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() { + if use sodium + then + emake \ + LIBS="-lsodium" \ + CFLAGS="$CFLAGS -I/usr/include/sodium" \ + LDFLAGS="-L/usr/lib" + else + emake + fi +} + +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 "TinySSH is in beta stage, and ready for production use." + einfo "See https://tinyssh.org for more information." +}