Files
ports/sysutils/zrepl/Makefile
Lewis Cook 621d9c9f59 sysutils/zrepl: /var/run/zrepl should not be world-readable
This partially reverts commit 2a866a1, and instead installs
the pidfile to /var/run/zrepl.pid fixing the problem seen in
PR 255981.

As taken from the zrepl documentation[1]:

[....]
The zrepl daemon needs to open various UNIX sockets in a runtime directory:

a control socket that the CLI commands use to interact with the daemon
the ssh+stdinserver Transport listener opens one socket per configured
client, named after client_identity parameter

There is no authentication on these sockets except the UNIX permissions.
The zrepl daemon will refuse to bind any of the above sockets in a
directory that is world-accessible.
[....]

[1] 	https://zrepl.github.io/configuration/misc.html#runtime-directories-unix-sockets

PR:		256472
Reported by:	Raúl <raul.munoz@custos.es>
2021-06-08 16:17:27 +01:00

66 lines
1.8 KiB
Makefile

# Created by: Nikolai Lifanov <lifanov@FreeBSD.org> and Ben Woods <woodsb02@FreeBSD.org>
PORTNAME= zrepl
DISTVERSIONPREFIX= v
DISTVERSION= 0.4.0
PORTREVISION= 2
CATEGORIES= sysutils
MAINTAINER= lcook@FreeBSD.org
COMMENT= ZFS dataset replication tool
LICENSE= MIT
LICENSE_FILE= ${WRKSRC}/LICENSE
USES= gmake go:modules
USE_RC_SUBR= zrepl
GO_MODULE= github.com/${PORTNAME}/${PORTNAME}
SUB_FILES= pkg-message
OPTIONS_DEFINE= EXAMPLES MANPAGES
OPTIONS_DEFAULT= MANPAGES
MANPAGES_BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}sphinx>=1.8.5,1:textproc/py-sphinx@${PY_FLAVOR}
MANPAGES_USES= python:build,3.6+
MANPAGES_PLIST_FILES= man/man1/zrepl.1.gz
.include <bsd.port.options.mk>
.if ${OPSYS} == "FreeBSD" && ${OSVERSION} >= 1300079
USES+= ncurses
.else
USES+= ncurses:port
CFLAGS+= -I${LOCALBASE}/include/ncurses
.endif
.if ${OPSYS} == "FreeBSD"
SUB_LIST+= DAEMON_LOGGING="-S -l \$${zrepl_facility} -s \$${zrepl_priority} -T \$${name}"
.else
SUB_LIST+= DAEMON_LOGGING=""
.endif
post-build-MANPAGES-on:
@${MAKE_CMD} -C ${WRKSRC}/docs SPHINXBUILD=sphinx-build-${PYTHON_VER} man
post-install:
@${MKDIR} ${STAGEDIR}${EXAMPLESDIR} \
${STAGEDIR}${ETCDIR} \
${STAGEDIR}${PREFIX}/etc/newsyslog.conf.d \
${STAGEDIR}${PREFIX}/etc/syslog.d \
${STAGEDIR}/var/run/zrepl
${INSTALL_DATA} ${FILESDIR}/newsyslog.conf ${STAGEDIR}${EXAMPLESDIR}/newsyslog.conf
${INSTALL_DATA} ${FILESDIR}/syslog.conf ${STAGEDIR}${EXAMPLESDIR}/syslog.conf
${INSTALL_DATA} ${FILESDIR}/zrepl.yml ${STAGEDIR}${ETCDIR}/zrepl.yml.sample
post-install-EXAMPLES-on:
@${MKDIR} ${STAGEDIR}${EXAMPLESDIR}/hooks
(cd ${WRKSRC}/config/samples && ${COPYTREE_SHARE} . ${STAGEDIR}${EXAMPLESDIR})
${INSTALL_DATA} ${WRKSRC}/dist/grafana/grafana-prometheus-zrepl.json ${STAGEDIR}${EXAMPLESDIR}
post-install-MANPAGES-on:
${INSTALL_MAN} ${WRKSRC}/docs/_build/man/zrepl.1 ${STAGEDIR}${PREFIX}/man/man1
.include <bsd.port.mk>