diff --git a/net-misc/gmid/files/gmid.conf b/net-misc/gmid/files/gmid.conf new file mode 100644 index 0000000000..c9b298c2a3 --- /dev/null +++ b/net-misc/gmid/files/gmid.conf @@ -0,0 +1,8 @@ +user "gemini" # drop privileges + +server "localhost" { + root "/var/gemini/localhost" + auto index on + cert "/etc/ssl/gmid/gmid.crt" + key "/etc/ssl/gmid/gmid.key" +} diff --git a/net-misc/gmid/files/gmid.confd b/net-misc/gmid/files/gmid.confd index 62027f6a49..497ddb58ec 100644 --- a/net-misc/gmid/files/gmid.confd +++ b/net-misc/gmid/files/gmid.confd @@ -2,12 +2,3 @@ # Configuration file #GMID_CONFIGFILE="/etc/gmid/gmid.conf" - -# PID file -#GMID_PIDFILE="/var/run/gmid.pid" - -# User to run gmid as -#GMID_USER="gemini" - -# Group to run gmid as -#GMID_GROUP="gemini" diff --git a/net-misc/gmid/files/gmid.initd b/net-misc/gmid/files/gmid.initd index dfe3b0009b..6607c7d2fb 100644 --- a/net-misc/gmid/files/gmid.initd +++ b/net-misc/gmid/files/gmid.initd @@ -12,10 +12,9 @@ description_reload="Reload the gmid configuration without losing connections." GMID_CONFIGFILE=${GMID_CONFIGFILE:-/etc/gmid/gmid.conf} command="/usr/bin/gmid" -command_args="-c \"${GMID_CONFIGFILE}\"" -pidfile=${GMID_PIDFILE:-/var/run/gmid.pid} -user=${GMID_USER:-gemini} -group=${GMID_GROUP:-gemini} +command_args="-c \"${GMID_CONFIGFILE}\" -f" +command_background=1 +pidfile="/var/run/gmid.pid" depend() { need net diff --git a/net-misc/gmid/gmid-1.6.ebuild b/net-misc/gmid/gmid-1.6.ebuild index da3b22779b..3e844bfecc 100644 --- a/net-misc/gmid/gmid-1.6.ebuild +++ b/net-misc/gmid/gmid-1.6.ebuild @@ -3,7 +3,10 @@ EAPI=7 -inherit toolchain-funcs +SSL_DEPS_SKIP=1 +SSL_DAYS=36500 + +inherit ssl-cert toolchain-funcs DESCRIPTION="simple and secure Gemini server" HOMEPAGE="https://www.omarpolo.com/pages/gmid.html" @@ -53,13 +56,23 @@ src_configure() { src_install() { default + dodir /etc/gmid + cp "${FILESDIR}"/gmid.conf "${ED}"/etc/gmid/gmid.conf || die + 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 key and set up the configuration" + 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 da3b22779b..3e844bfecc 100644 --- a/net-misc/gmid/gmid-9999.ebuild +++ b/net-misc/gmid/gmid-9999.ebuild @@ -3,7 +3,10 @@ EAPI=7 -inherit toolchain-funcs +SSL_DEPS_SKIP=1 +SSL_DAYS=36500 + +inherit ssl-cert toolchain-funcs DESCRIPTION="simple and secure Gemini server" HOMEPAGE="https://www.omarpolo.com/pages/gmid.html" @@ -53,13 +56,23 @@ src_configure() { src_install() { default + dodir /etc/gmid + cp "${FILESDIR}"/gmid.conf "${ED}"/etc/gmid/gmid.conf || die + 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 key and set up the configuration" + einfo "self-signed TLS certificate and a key and set up the configuration" einfo "file (see man 1 gmid for details)." }