diff --git a/security/headscale/Makefile b/security/headscale/Makefile index db5148827dcd..a479bc62e156 100644 --- a/security/headscale/Makefile +++ b/security/headscale/Makefile @@ -1,27 +1,47 @@ PORTNAME= headscale PORTVERSION= 0.15.0 DISTVERSIONPREFIX= v -PORTREVISION= 4 +PORTREVISION= 5 CATEGORIES= security MAINTAINER= m.muenz@gmail.com COMMENT= Mesh VPN that makes it easy to connect your devices LICENSE= BSD3CLAUSE LICENSE_FILE= ${WRKSRC}/LICENSE BROKEN_aarch64= fails to compile: modernc.org/libc BROKEN_armv6= fails to compile: modernc.org/libc BROKEN_armv7= fails to compile: modernc.org/libc RUN_DEPENDS= ca_root_nss>0:security/ca_root_nss USES= go:modules +USE_RC_SUBR= headscale GO_MODULE= github.com/juanfont/headscale GO_TARGET= ./cmd/headscale -PLIST_FILES= bin/headscale +PLIST_FILES= ${ETCDIR}/config.yaml \ + "@dir /var/cache/${PORTNAME}" \ + "@dir /var/db/${PORTNAME}" \ + bin/${PORTNAME} + +post-patch: + @${REINPLACE_CMD} -e 's|/etc/headscale|${PREFIX}/etc/${PORTNAME}|g' \ + ${WRKSRC}/cmd/headscale/cli/utils.go + @${REINPLACE_CMD} -e 's|/var/lib/headscale/db.sqlite|/var/db/${PORTNAME}/db.sqlite|g' \ + ${WRKSRC}/config-example.yaml + @${REINPLACE_CMD} -e 's|/var/lib/headscale/cache|/var/cache/${PORTNAME}|g' \ + ${WRKSRC}/config-example.yaml + @${REINPLACE_CMD} -e 's|/var/lib/headscale/private.key|${PREFIX}/etc/${PORTNAME}/private.key|g' \ + ${WRKSRC}/config-example.yaml + +post-install: + ${MKDIR} ${STAGEDIR}${PREFIX}/etc/${PORTNAME} + ${INSTALL_DATA} ${WRKSRC}/config-example.yaml ${STAGEDIR}${PREFIX}/etc/${PORTNAME}/config.yaml + ${MKDIR} ${STAGEDIR}/var/db/${PORTNAME} + ${MKDIR} ${STAGEDIR}/var/cache/${PORTNAME} .include diff --git a/security/headscale/files/headscale.in b/security/headscale/files/headscale.in new file mode 100644 index 000000000000..a3f4ada0b6f4 --- /dev/null +++ b/security/headscale/files/headscale.in @@ -0,0 +1,41 @@ +#!/bin/sh + +# PROVIDE: headscale +# REQUIRE: NETWORKING +# KEYWORD: shutdown +# + +. /etc/rc.subr + +name=headscale +rcvar=headscale_enable + +load_rc_config $name + +: ${headscale_enable:="NO"} +: ${headscale_syslog_output_enable:="NO"} +: ${headscale_syslog_output_priority:="info"} +: ${headscale_syslog_output_facility:="daemon"} + +if checkyesno headscale_syslog_output_enable; then + headscale_syslog_output_flags="-t ${name} -T ${name}" + + if [ -n "${headscale_syslog_output_priority}" ]; then + headscale_syslog_output_flags="${headscale_syslog_output_flags} -s ${headscale_syslog_output_priority}" + fi + + if [ -n "${headscale_syslog_output_facility}" ]; then + headscale_syslog_output_flags="${headscale_syslog_output_flags} -l ${headscale_syslog_output_facility}" + fi +fi + +pidfile=/var/run/${name}.pid +procname="%%PREFIX%%/bin/${name}" + +start_cmd="${name}_start" + +headscale_start() { + /usr/sbin/daemon -f ${headscale_syslog_output_flags} -p ${pidfile} ${procname} serve +} + +run_rc_command "$1"