From 8e5c0a09278cb8b0ccc1e0fc660fd6ec161256e5 Mon Sep 17 00:00:00 2001 From: "Anna (cybertailor) Vyalkova" Date: Thu, 1 Feb 2024 21:45:33 +0500 Subject: [PATCH] net-misc/gmid: use bundled libtls Upstream issue: https://codeberg.org/op/gmid/issues/2 Signed-off-by: Anna (cybertailor) Vyalkova --- net-misc/gmid/gmid-2.0.1-r1.ebuild | 111 +++++++++++++++++++++++++++++ net-misc/gmid/gmid-9999.ebuild | 3 +- 2 files changed, 112 insertions(+), 2 deletions(-) create mode 100644 net-misc/gmid/gmid-2.0.1-r1.ebuild diff --git a/net-misc/gmid/gmid-2.0.1-r1.ebuild b/net-misc/gmid/gmid-2.0.1-r1.ebuild new file mode 100644 index 0000000000..603af799a8 --- /dev/null +++ b/net-misc/gmid/gmid-2.0.1-r1.ebuild @@ -0,0 +1,111 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +SSL_DAYS=36500 +SSL_CERT_MANDATORY=1 +VERIFY_SIG_METHOD="signify" +inherit edo ssl-cert systemd toolchain-funcs verify-sig + +DESCRIPTION="Simple and secure Gemini server" +HOMEPAGE="https://gmid.omarpolo.com" + +if [[ ${PV} == 9999 ]]; then + EGIT_REPO_URI="https://git.omarpolo.com/${PN} https://github.com/omar-polo/${PN}.git" + inherit git-r3 +else + SRC_URI="https://github.com/omar-polo/${PN}/releases/download/${PV}/${P}.tar.gz + verify-sig? ( https://github.com/omar-polo/${PN}/releases/download/${PV}/${P}.sha256.sig )" + KEYWORDS="~amd64 ~x86" +fi + +LICENSE="BSD ISC MIT" +SLOT="0" +IUSE="seccomp test" +RESTRICT="!test? ( test )" + +DEPEND=" + acct-user/gemini + dev-libs/libevent:= + dev-libs/openssl:= + !elibc_Darwin? ( dev-libs/libbsd ) +" +RDEPEND="${DEPEND}" +BDEPEND=" + virtual/pkgconfig + app-alternatives/yacc + seccomp? ( sys-kernel/linux-headers ) +" +if [[ ${PV} != 9999 ]]; then + BDEPEND+="verify-sig? ( sec-keys/signify-keys-gmid:$(ver_cut 1-2) )" +fi + +VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/signify-keys/${PN}-$(ver_cut 1-2).pub" + +DOCS=( README.md ChangeLog contrib/README ) + +# not an autoconf configure script +QA_CONFIG_IMPL_DECL_SKIP=( "*" ) + +src_unpack() { + if [[ ${PV} == 9999 ]]; then + git-r3_src_unpack + else + if use verify-sig; then + # Too many levels of symbolic links + cp "${DISTDIR}"/${P}.{sha256.sig,tar.gz} "${WORKDIR}" || die + cd "${WORKDIR}" || die + verify-sig_verify_signed_checksums \ + ${P}.sha256.sig sha256 ${P}.tar.gz + fi + default + fi +} + +src_configure() { + local conf_args + tc-export CC + + # note: not an autoconf configure script + conf_args=( + --prefix="${EPREFIX}"/usr + --mandir="${EPREFIX}"/usr/share/man + --sysconfdir="${EPREFIX}"/etc + --with-libtls=bundled + $(use_enable seccomp sandbox) + ) + edo ./configure "${conf_args[@]}" + + if use seccomp && has usersandbox ${FEATURES}; then + export SKIP_RUNTIME_TESTS=1 + fi +} + +src_install() { + default + + insinto /etc/gmid + newins "${FILESDIR}"/gmid.conf-r1 gmid.conf + + insinto /usr/share/vim/vimfiles + doins -r contrib/vim/* + + systemd_dounit "${FILESDIR}"/gmid.service + newinitd "${FILESDIR}"/gmid.initd gmid + newconfd "${FILESDIR}"/gmid.confd gmid + + keepdir /var/gemini/localhost +} + +pkg_postinst() { + if [[ ! -f "${EROOT}"/etc/ssl/${PN}/${PN}.key ]]; then + install_cert /etc/ssl/${PN}/${PN} + chown gemini:gemini "${EROOT}"/etc/ssl/${PN}/${PN}.{crt,csr,key,pem} + fi + + einfo "This gemini server can be run as a user with zero configuration.\n" + einfo "In order to use it with the init service you will need to generate a" + einfo "self-signed TLS certificate and a key and set up the configuration" + einfo "file (see man 1 gmid for details)." +} diff --git a/net-misc/gmid/gmid-9999.ebuild b/net-misc/gmid/gmid-9999.ebuild index f046fc3257..603af799a8 100644 --- a/net-misc/gmid/gmid-9999.ebuild +++ b/net-misc/gmid/gmid-9999.ebuild @@ -28,7 +28,6 @@ RESTRICT="!test? ( test )" DEPEND=" acct-user/gemini dev-libs/libevent:= - dev-libs/libretls:= dev-libs/openssl:= !elibc_Darwin? ( dev-libs/libbsd ) " @@ -73,7 +72,7 @@ src_configure() { --prefix="${EPREFIX}"/usr --mandir="${EPREFIX}"/usr/share/man --sysconfdir="${EPREFIX}"/etc - --with-libtls=system + --with-libtls=bundled $(use_enable seccomp sandbox) ) edo ./configure "${conf_args[@]}"