# Contributor: Stuart Cardall <developer@it-offshore.co.uk>
# Maintainer: Noel Kuntze <noel.kuntze@contauro.com>
pkgname=tinyssh
pkgver=20250501
pkgrel=0
pkgdesc="Small SSH server using NaCl / TweetNaCl (no dependency on OpenSSL)"
url="https://tinyssh.org/"
license="CC0-1.0 OR 0BSD OR MIT-0 OR MIT"
arch="all"
_openrc_deps="ucspi-tcp6"
options="!check"
subpackages="$pkgname-doc $pkgname-openrc"
source="$pkgname-$pkgver.tar.gz::https://github.com/janmojzis/tinyssh/archive/refs/tags/$pkgver.tar.gz
	$pkgname.initd
	$pkgname.confd
	"

# secfixes:
#   20230101-r3:
#     - CVE-2023-48795

build() {
	make
}

check() {
	make check
}

package() {
	make install PREFIX="/usr" DESTDIR="$pkgdir"

	mkdir -p "$pkgdir"/etc/$pkgname
	install -m755 -D "$srcdir"/$pkgname.initd \
		"$pkgdir"/etc/init.d/tinysshd
	install -m644 -D "$srcdir"/$pkgname.confd \
		"$pkgdir"/etc/conf.d/tinysshd

	# post-install message
	mkdir -p "$pkgdir/usr/share/doc/$pkgname"
	cat > $pkgdir/usr/share/doc/$pkgname/README.alpine <<EOF
TinySSH can be run in 3 different ways:
---------------------------------------
(1) /etc/init.d/tinysshd (requires tcpserver & takes care of key generation)

(2) via busybox (you will need to 'tinysshd-makekeys <dir>' manually):

busybox tcpsvd 0.0.0.0 22 tinysshd -v /etc/tinyssh/sshkeys &

(3) via inetd (you will need to 'tinysshd-makekeys <dir>' manually):

echo '22 stream tcp nowait root /usr/sbin/tinysshd tinysshd -l -v /etc/tinyssh/sshkeys' >> /etc/inetd.conf
rc-service inetd start
EOF
}

openrc() {
	default_openrc
	depends="$_openrc_deps"
}

sha512sums="
c303bfa1781d668a86ca05d5c5fe2b028e4b99ba864700283c5bff1bec1050d95ed2b942e8d0eb1bd62fd6e06dc0ad0c404e83e589a67f6e6997b500b857d805  tinyssh-20250501.tar.gz
ee3b43f86239825daf320853c6da1f289e11e66ab8fc69ff181327dffcd71a5e8f10e151f717b5a8c65befaf89fea49e75ca0e78cd57b6d3868e2ac0ee258d94  tinyssh.initd
7c6282a6ae972d83d3e624530cac4958adee1e2313d0e44aff38c94bde1a3f549a536ec80e594d44c29a6a981919dd30322e8d8511626fdb6493c98587047392  tinyssh.confd
"
