summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'net-misc/tinyssh/tinyssh-20240101-r2.ebuild')
-rw-r--r--net-misc/tinyssh/tinyssh-20240101-r2.ebuild76
1 files changed, 76 insertions, 0 deletions
diff --git a/net-misc/tinyssh/tinyssh-20240101-r2.ebuild b/net-misc/tinyssh/tinyssh-20240101-r2.ebuild
new file mode 100644
index 000000000000..db7411fdc4a4
--- /dev/null
+++ b/net-misc/tinyssh/tinyssh-20240101-r2.ebuild
@@ -0,0 +1,76 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit systemd toolchain-funcs
+
+DESCRIPTION="A small SSH server with state-of-the-art cryptography"
+HOMEPAGE="https://tinyssh.org"
+if [[ "${PV}" == "99999999" ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/janmojzis/tinyssh.git"
+else
+ SRC_URI="https://github.com/janmojzis/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~amd64 ~x86"
+fi
+
+LICENSE="CC0-1.0"
+SLOT="0"
+
+IUSE="+sodium"
+
+DEPEND="
+ sodium? ( dev-libs/libsodium:= )
+"
+RDEPEND="
+ ${DEPEND}
+ sys-apps/ucspi-tcp
+"
+
+PATCHES=(
+ "${FILESDIR}/tinyssh-20240101_c99.patch"
+ "${FILESDIR}/tinyssh-20240101_conf_cflags.patch"
+)
+
+src_prepare() {
+ # 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/make-tinyssh\.sh/make-tinysshcc.sh/g' ./Makefile || die
+
+ default
+}
+
+src_compile() {
+ tc-export PKG_CONFIG
+
+ if use sodium
+ then
+ # -I${includedir}/sodium needed as tinyssh uses `#include "crypto_auth_hmacsha256.h"` rather than `#include <sodium.h>`
+ emake \
+ CC="$(tc-getCC)" \
+ LIBS="$("${PKG_CONFIG}" --libs libsodium)" \
+ CFLAGS="${CFLAGS} $("${PKG_CONFIG}" --cflags libsodium) -I$("${PKG_CONFIG}" --variable=includedir libsodium)/sodium/" \
+ LDFLAGS="${LDFLAGS}"
+ else
+ emake CC="$(tc-getCC)"
+ 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."
+}