Index: head/sysutils/zrepl/Makefile =================================================================== --- head/sysutils/zrepl/Makefile (revision 503473) +++ head/sysutils/zrepl/Makefile (revision 503474) @@ -1,63 +1,95 @@ # Created by: Nikolai Lifanov and Ben Woods # $FreeBSD$ PORTNAME= zrepl -PORTVERSION= 0.0.3 +PORTVERSION= 0.1.1 +DISTVERSIONPREFIX= v CATEGORIES= sysutils MAINTAINER= woodsb02@FreeBSD.org COMMENT= ZFS dataset replication tool LICENSE= MIT LICENSE_FILE= ${WRKSRC}/LICENSE -USES= go +USES= gmake go USE_RC_SUBR= zrepl -SUB_FILES= pkg-message - +GO_PKGNAME= github.com/${GH_ACCOUNT}/${GH_PROJECT} USE_GITHUB= yes GH_SUBDIR= src/github.com/zrepl/zrepl -GH_TUPLE= davecgh:go-spew:v1.1.0:go_spew/src/github.com/davecgh/go-spew \ - dustin:go-humanize:bb3d318:go_humanize/src/github.com/dustin/go-humanize \ +GH_TUPLE= beorn7:perks:3a771d9:perks/src/github.com/beorn7/perks \ + fatih:color:v1.7.0:color/src/github.com/fatih/color \ ftrvxmtrx:fd:c6d8003:fd/src/github.com/ftrvxmtrx/fd \ - go-logfmt:logfmt:v0.3.0:go_logfmt/src/github.com/go-logfmt/logfmt \ - go-yaml:yaml:eb3733d:go_yaml/src/github.com/go-yaml/yaml \ + gdamore:encoding:b23993c:encoding/src/github.com/gdamore/encoding \ + gdamore:tcell:v1.1.0:tcell/src/github.com/gdamore/tcell \ + go-logfmt:logfmt:v0.4.0:logfmt/src/github.com/go-logfmt/logfmt \ + golang:net:351d144:net/src/golang.org/x/net \ + golang:protobuf:v1.3.1:protobuf/src/github.com/golang/protobuf \ + golang:sync:e225da7:sync/src/golang.org/x/sync \ + golang:sys:4ed8d59:sys/src/golang.org/x/sys \ + golang:text:v0.3.0:go_text/src/golang.org/x/text \ + google:go-genproto:bd91e49:genproto/src/google.golang.org/genproto \ + google:uuid:v1.1.1:uuid/src/github.com/google/uuid \ + grpc:grpc-go:v1.17.0:grpc/src/google.golang.org/grpc \ jinzhu:copier:db4671f:copier/src/github.com/jinzhu/copier \ - kr:logfmt:b84e30a:logfmt/src/github.com/kr/logfmt \ kr:pretty:cfb55aa:pretty/src/github.com/kr/pretty \ kr:text:7cafcd8:text/src/github.com/kr/text \ + lucasb-eyer:go-colorful:v1.0:go_colorful/src/github.com/lucasb-eyer/go-colorful \ mattn:go-isatty:v0.0.3:go_isatty/src/github.com/mattn/go-isatty \ - mitchellh:mapstructure:d0303fe:mapstructure/src/github.com/mitchellh/mapstructure \ - pkg:errors:v0.8.0:errors/src/github.com/pkg/errors \ - pmezard:go-difflib:v1.0.0:go_difflib/src/github.com/pmezard/go-difflib \ - problame:go-netssh:53a2e44:go_netssh/src/github.com/problame/go-netssh \ + mattn:go-runewidth:v0.0.3:go_runewidth/src/github.com/mattn/go-runewidth \ + matttproud:golang_protobuf_extensions:v1.0.0:golang_protobuf_extensions/src/github.com/matttproud/golang_protobuf_extensions \ + pkg:errors:v0.8.1:errors/src/github.com/pkg/errors \ + problame:go-netssh:09d6bc4:go_netssh/src/github.com/problame/go-netssh \ problame:go-rwccmd:391d2c7:go_rwccmd/src/github.com/problame/go-rwccmd \ + prometheus:client_golang:e11c6ff:client_golang/src/github.com/prometheus/client_golang \ + prometheus:client_model:99fa1f4:client_model/src/github.com/prometheus/client_model \ + prometheus:common:d0f7cd6:common/src/github.com/prometheus/common \ + prometheus:procfs:8b1c2da:procfs/src/github.com/prometheus/procfs \ spf13:cobra:b787445:cobra/src/github.com/spf13/cobra \ spf13:pflag:v1.0.0:pflag/src/github.com/spf13/pflag \ - stretchr:testify:v1.1.4:testify/src/github.com/stretchr/testify + stretchr:testify:v1.1.4:testify/src/github.com/stretchr/testify \ + theckman:goconstraint:v1.11.0:goconstraint/src/github.com/theckman/goconstraint \ + zrepl:yaml-config:08227ad:yaml_config/src/github.com/zrepl/yaml-config -GO_PKGNAME= github.com/${GH_ACCOUNT}/${GH_PROJECT} +SUB_FILES= pkg-message +OPTIONS_DEFINE= MANPAGES +OPTIONS_DEFAULT= MANPAGES + +MANPAGES_USES= python:build +MANPAGES_BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}sphinx>=0:textproc/py-sphinx@${PY_FLAVOR} +MANPAGES_PLIST_FILES= man/man1/zrepl.1.gz + .include .if ${OPSYS} == "FreeBSD" SUB_LIST+= DAEMON_LOGGING="-S -l \$${zrepl_facility} -s \$${zrepl_priority} -T \$${name}" .else SUB_LIST+= DAEMON_LOGGING="" .endif post-extract: ${LN} -sf ${WRKSRC}/src ${WRKDIR} +post-build-MANPAGES-on: + @${MAKE_CMD} -C ${WRKSRC}/docs SPHINXBUILD=sphinx-build-${PYTHON_VER} man + do-install: ${INSTALL_PROGRAM} ${WRKDIR}/bin/${PORTNAME} ${STAGEDIR}${PREFIX}/bin + @${MKDIR} ${STAGEDIR}${PREFIX}/share/zrepl/samples + ${INSTALL_DATA} ${WRKSRC}/dist/grafana/grafana-prometheus-zrepl-0.1.json ${STAGEDIR}${PREFIX}/share/zrepl/samples/ + ${INSTALL_DATA} ${WRKSRC}/config/samples/* ${STAGEDIR}${PREFIX}/share/zrepl/samples/ post-install: @${MKDIR} ${STAGEDIR}${PREFIX}/etc/newsyslog.conf.d \ ${STAGEDIR}${PREFIX}/etc/syslog.d \ - ${STAGEDIR}${PREFIX}/etc/zrepl + ${STAGEDIR}${PREFIX}/etc/zrepl \ + ${STAGEDIR}/var/run/zrepl ${INSTALL_DATA} ${FILESDIR}/newsyslog-zrepl.conf ${STAGEDIR}${PREFIX}/etc/newsyslog.conf.d/zrepl.conf.sample ${INSTALL_DATA} ${FILESDIR}/syslog-zrepl.conf.sample ${STAGEDIR}${PREFIX}/etc/syslog.d/zrepl.conf.sample ${INSTALL_DATA} ${FILESDIR}/zrepl.yml.sample ${STAGEDIR}${PREFIX}/etc/zrepl/zrepl.yml.sample + +post-install-MANPAGES-on: + ${INSTALL_MAN} ${WRKSRC}/docs/_build/man/zrepl.1 ${STAGEDIR}${PREFIX}/man/man1 .include Index: head/sysutils/zrepl/distinfo =================================================================== --- head/sysutils/zrepl/distinfo (revision 503473) +++ head/sysutils/zrepl/distinfo (revision 503474) @@ -1,39 +1,69 @@ -TIMESTAMP = 1524794931 -SHA256 (zrepl-zrepl-0.0.3_GH0.tar.gz) = 3e86e8e0ca5ad557ac7fb1c540a29ecfe46bb74220ca003f9daa63f079ddc44d -SIZE (zrepl-zrepl-0.0.3_GH0.tar.gz) = 91025 -SHA256 (davecgh-go-spew-v1.1.0_GH0.tar.gz) = 1f7e0bd2db0341925b5f2ee5834e99380f4c2b1bd36cf0fa62d7717899d39d62 -SIZE (davecgh-go-spew-v1.1.0_GH0.tar.gz) = 42337 -SHA256 (dustin-go-humanize-bb3d318_GH0.tar.gz) = fc0baa097c5f471e76556fc2d8e27d3e9e027ecaa85b4d7c3156361b4abf1944 -SIZE (dustin-go-humanize-bb3d318_GH0.tar.gz) = 16386 +TIMESTAMP = 1555701482 +SHA256 (zrepl-zrepl-v0.1.1_GH0.tar.gz) = 0c16554e4527d14a390d78cf95bce759da425019a83ec63acfed5b4c50d68c9c +SIZE (zrepl-zrepl-v0.1.1_GH0.tar.gz) = 212913 +SHA256 (beorn7-perks-3a771d9_GH0.tar.gz) = b7a0faebca98ebd5e7546403b4cdea9dc77f865f0623d04efbad33e984297cc9 +SIZE (beorn7-perks-3a771d9_GH0.tar.gz) = 10800 +SHA256 (fatih-color-v1.7.0_GH0.tar.gz) = 4650d7aa3feed266fc85d91dc34ca9cffdf7ee03ea29bf2cbf84bbecc75fb755 +SIZE (fatih-color-v1.7.0_GH0.tar.gz) = 816449 SHA256 (ftrvxmtrx-fd-c6d8003_GH0.tar.gz) = cc6ff072f220c819fffde3b35edeba0183c827e8ff76f221acb6a6d71d257e90 SIZE (ftrvxmtrx-fd-c6d8003_GH0.tar.gz) = 3283 -SHA256 (go-logfmt-logfmt-v0.3.0_GH0.tar.gz) = 74a958064177fc33cc66c60ae118f95faf9f986bcab0465c47f40d8cad978fce -SIZE (go-logfmt-logfmt-v0.3.0_GH0.tar.gz) = 11546 -SHA256 (go-yaml-yaml-eb3733d_GH0.tar.gz) = d2ae44f0e31f3a13a1b89a55ceaabcbab4d588d41951fd2243739b60b10146bb -SIZE (go-yaml-yaml-eb3733d_GH0.tar.gz) = 64686 +SHA256 (gdamore-tcell-v1.1.0_GH0.tar.gz) = f2c8d63f24ef1f89abd80f6ee86cdb2af562225405644c0e75d0522b04858443 +SIZE (gdamore-tcell-v1.1.0_GH0.tar.gz) = 719426 +SHA256 (gdamore-encoding-b23993c_GH0.tar.gz) = 7fe1ed858143ba259114120a8a736645ee644b22bece7c09240df6113922f01a +SIZE (gdamore-encoding-b23993c_GH0.tar.gz) = 10629 +SHA256 (go-logfmt-logfmt-v0.4.0_GH0.tar.gz) = eddccc7c8d39a6381f7152e73ebf3c725de317c5b984d8a77282e63915aa834d +SIZE (go-logfmt-logfmt-v0.4.0_GH0.tar.gz) = 12724 +SHA256 (golang-net-351d144_GH0.tar.gz) = 85e5747e8bb3009cb2f06d70eed9fc468901ea7d5ec05c4e68df1681fe51b599 +SIZE (golang-net-351d144_GH0.tar.gz) = 965968 +SHA256 (golang-protobuf-v1.3.1_GH0.tar.gz) = 3f3a6123054a9847093c119895f1660612f301fe95358f3a6a1a33fd0933e6cf +SIZE (golang-protobuf-v1.3.1_GH0.tar.gz) = 310884 +SHA256 (golang-sync-e225da7_GH0.tar.gz) = 0ca7d229725c37038f50bdd2fc5065eb3fbc7de47a96e8ecfbf2c3da04e671e4 +SIZE (golang-sync-e225da7_GH0.tar.gz) = 16285 +SHA256 (golang-sys-4ed8d59_GH0.tar.gz) = 82a85133e63e18c493fbd2cf4237163364229df2582e85174d683c92a7b72ef3 +SIZE (golang-sys-4ed8d59_GH0.tar.gz) = 1117271 +SHA256 (golang-text-v0.3.0_GH0.tar.gz) = 8f4c9a048345befc7beccd09267737ee1f55c7b35e5ff80f344ec9e0aa90febb +SIZE (golang-text-v0.3.0_GH0.tar.gz) = 6102619 +SHA256 (google-go-genproto-bd91e49_GH0.tar.gz) = a9106ed5286baa7a9062ebc1f3e5a9a0903e243d765737f762d0c0c12268c13e +SIZE (google-go-genproto-bd91e49_GH0.tar.gz) = 2429145 +SHA256 (google-uuid-v1.1.1_GH0.tar.gz) = bebd4b0b4ea152a9793615ef23c83f688876d8c284a2092264d20a4bf4ffc423 +SIZE (google-uuid-v1.1.1_GH0.tar.gz) = 13543 +SHA256 (grpc-grpc-go-v1.17.0_GH0.tar.gz) = 891add70cc16c9e2dc07986fd6e8fae44a36921727411f0b652afbc76e0fb169 +SIZE (grpc-grpc-go-v1.17.0_GH0.tar.gz) = 563534 SHA256 (jinzhu-copier-db4671f_GH0.tar.gz) = 3ae429e4a775545174f89591605f2775e3d52d9942ef1619019c84dfec65552f SIZE (jinzhu-copier-db4671f_GH0.tar.gz) = 5039 -SHA256 (kr-logfmt-b84e30a_GH0.tar.gz) = 1fb415fdfeca3d607e0bd0474def2f76a1438abfea8e35f1cda052673e5967e0 -SIZE (kr-logfmt-b84e30a_GH0.tar.gz) = 6405 SHA256 (kr-pretty-cfb55aa_GH0.tar.gz) = 5c8e2093298c7540a2707a34d283ce37f1b288497786d4f5725647a63ab2ac5c SIZE (kr-pretty-cfb55aa_GH0.tar.gz) = 8499 SHA256 (kr-text-7cafcd8_GH0.tar.gz) = 218bd56a3927283e4c9232b4ee15e0fcc989ace72a2a0be14863ce3795ad3c90 SIZE (kr-text-7cafcd8_GH0.tar.gz) = 8584 +SHA256 (lucasb-eyer-go-colorful-v1.0_GH0.tar.gz) = 7bad1f3ae46d9f2f4e635e4b3f65424e1be9c131864630c5a99d512bc0bf2266 +SIZE (lucasb-eyer-go-colorful-v1.0_GH0.tar.gz) = 428403 SHA256 (mattn-go-isatty-v0.0.3_GH0.tar.gz) = daf68970a6506650b05bac72082865f88d582ecdb74418b95ac5621d5392b633 SIZE (mattn-go-isatty-v0.0.3_GH0.tar.gz) = 3364 -SHA256 (mitchellh-mapstructure-d0303fe_GH0.tar.gz) = 30e7697b7e321d8f14bff5f19b789cd38fd277518aae251c370ea53ddb53d1f7 -SIZE (mitchellh-mapstructure-d0303fe_GH0.tar.gz) = 15560 -SHA256 (pkg-errors-v0.8.0_GH0.tar.gz) = bacf6c58e490911398cee61742ddc6a90c560733e4c9dcb3d867b17a894c9dd5 -SIZE (pkg-errors-v0.8.0_GH0.tar.gz) = 11344 -SHA256 (pmezard-go-difflib-v1.0.0_GH0.tar.gz) = 28f3dc1b5c0efd61203ab07233f774740d3bf08da4d8153fb5310db6cea0ebda -SIZE (pmezard-go-difflib-v1.0.0_GH0.tar.gz) = 11398 -SHA256 (problame-go-netssh-53a2e44_GH0.tar.gz) = 14d141eeefb0900e0be0a473b92f195c013ba8ec7fd9ae00d4af060612396e2f -SIZE (problame-go-netssh-53a2e44_GH0.tar.gz) = 6927 +SHA256 (mattn-go-runewidth-v0.0.3_GH0.tar.gz) = 398ec709b006664e527040770056156cb225233d8b44b5a59ba2f5f5f3fa885e +SIZE (mattn-go-runewidth-v0.0.3_GH0.tar.gz) = 22961 +SHA256 (matttproud-golang_protobuf_extensions-v1.0.0_GH0.tar.gz) = 65fd58d98a7e79fa491808e9bf8315799eff2dae3d4c203dda25560861294115 +SIZE (matttproud-golang_protobuf_extensions-v1.0.0_GH0.tar.gz) = 9586 +SHA256 (pkg-errors-v0.8.1_GH0.tar.gz) = 7a428967c6fc2e80cd84a0d9469ab6bd4dbe6b13493ba6294322a933a5a7e356 +SIZE (pkg-errors-v0.8.1_GH0.tar.gz) = 11009 +SHA256 (problame-go-netssh-09d6bc4_GH0.tar.gz) = 3f2619fc542899620c8bd184ba37e366590630e6f4840683f0c3836741a7d818 +SIZE (problame-go-netssh-09d6bc4_GH0.tar.gz) = 10966 SHA256 (problame-go-rwccmd-391d2c7_GH0.tar.gz) = 9705f2896b56502fb3660b4ee6c731a4f46bec70e3e8637f7f26881b3067f9b3 SIZE (problame-go-rwccmd-391d2c7_GH0.tar.gz) = 3856 +SHA256 (prometheus-client_golang-e11c6ff_GH0.tar.gz) = 5bf0c58891d0ab8787bdbea9d1672050160af904cbbcfacf904eafe056f73ce7 +SIZE (prometheus-client_golang-e11c6ff_GH0.tar.gz) = 107577 +SHA256 (prometheus-client_model-99fa1f4_GH0.tar.gz) = 11c3da0c9a3e4879aa2de15b8e1f494cd74ce3afca831a759f564edeea232f69 +SIZE (prometheus-client_model-99fa1f4_GH0.tar.gz) = 54653 +SHA256 (prometheus-common-d0f7cd6_GH0.tar.gz) = cab0c7db55faf4d4aad29363668de010874b3b76ef45761bbc7d10b1f28735a8 +SIZE (prometheus-common-d0f7cd6_GH0.tar.gz) = 62987 +SHA256 (prometheus-procfs-8b1c2da_GH0.tar.gz) = 6830f8f6a42018db0820f4d2d1f788a797a61bd6cf8fe79f914d4a33e1337ed8 +SIZE (prometheus-procfs-8b1c2da_GH0.tar.gz) = 56785 SHA256 (spf13-cobra-b787445_GH0.tar.gz) = 2923b91766a9e68a22f81d3b46768dad963fd4ae3f6a5b2e137e2a7b87b37276 SIZE (spf13-cobra-b787445_GH0.tar.gz) = 99833 SHA256 (spf13-pflag-v1.0.0_GH0.tar.gz) = 690b86ae5499fad84ada4644c85215d66d56f31934683e8543f4c57c5048e011 SIZE (spf13-pflag-v1.0.0_GH0.tar.gz) = 38988 SHA256 (stretchr-testify-v1.1.4_GH0.tar.gz) = f7a244ad38ee484296e8969356209e0d9fb35bd790f69fc5e7758b4e2a9e1874 SIZE (stretchr-testify-v1.1.4_GH0.tar.gz) = 83325 +SHA256 (theckman-goconstraint-v1.11.0_GH0.tar.gz) = 98d95306dc3679374fb954f9a25a01606fc96a166fdcbda5226ff6f50d58dfcf +SIZE (theckman-goconstraint-v1.11.0_GH0.tar.gz) = 5945 +SHA256 (zrepl-yaml-config-08227ad_GH0.tar.gz) = f83984afbf7da172dccf71f5b95a5143282647dbc5ee0957cf00ad314f1d72d5 +SIZE (zrepl-yaml-config-08227ad_GH0.tar.gz) = 71024 Index: head/sysutils/zrepl/files/pkg-message.in =================================================================== --- head/sysutils/zrepl/files/pkg-message.in (revision 503473) +++ head/sysutils/zrepl/files/pkg-message.in (revision 503474) @@ -1,28 +1,36 @@ ------------------------------------------------------------------------ -zrepl must be configured before it is started the first time. +Messages from sysutils/zrepl: + +SETUP BEFORE FIRST USE: - Create the log file /var/log/zrepl.log: # service newsyslog restart - Teach syslogd to redirect facility local0 to the zrepl.log file: # service syslogd reload - Modify the %%PREFIX%%/etc/zrepl/zrepl.yml configuration file - For remote backups, create the SSH key pair and authorized_keys file - Enable the zrepl daemon to start automatically at boot: # sysrc zrepl_enable="YES" - Start the zrepl daemon: # service zrepl start + +Documentation: https://zrepl.github.io/ +Changelog: https://zrepl.github.io/master/changelog.html -For documentation, refer to https://zrepl.github.io/. +WARNING - BREAKING CHANGES WITH THE ZREPL 0.1.X RELEASE: +There are a number of breaking changes this release. To ensure zrepl +continues to function correctly, ensure you read the changelog, and then +perform the following on both sides of the replication: +- Stop the zrepl service: # service zrepl stop +- Upgrade the zrepl package: # pkg upgrade zrepl +- Modify the zrepl config: # vi %%PREFIX%%/etc/zrepl/zrepl.yml +- Check the configuration: # service zrepl configtest +- Start the zrepl service: # service zrepl start +- Monitor the zrepl service: # zrepl status -*** BREAKING CHANGES WITH THE 0.0.3 RELEASE: *** -- Snapshots are automatically bookmarked and pruning of bookmarks must - be configured by adding the keep_bookmarks parameter to the prune - policy section of the zrepl configuration file (source side only). - Be sure to understand the meaning bookmarks have for maximum - allowable replication downtime. -- The ssh+stdinserver transport protocol has changed, requiring zrepl - to be updates on both the sending and receiving side, and the daemon - restarted on both sides. -- The first outlet in the global.logging section of the configuration - file is now used for logging meta-errors (e.g. problems encountered - when writing to other logging outlets). +DANGER - SNAPSHOT PRUNING REQUIRES EXPLICIT KEEP RULES: +For any ZFS snapshot that you want to keep, at least one rule must match. This +is different from previous releases where pruning only affected snapshots with +the configured snapshotting prefix. Make sure that snapshots to be kept or +ignored by zrepl are covered, e.g. by using the regex keep rule. +This also applies to snapshots taken by means other than zrepl (e.g. manually). ------------------------------------------------------------------------ Index: head/sysutils/zrepl/files/zrepl.in =================================================================== --- head/sysutils/zrepl/files/zrepl.in (revision 503473) +++ head/sysutils/zrepl/files/zrepl.in (revision 503474) @@ -1,70 +1,81 @@ #!/bin/sh # $FreeBSD$ # # PROVIDE: zrepl # REQUIRE: LOGIN # KEYWORD: shutdown # # Add the following lines to /etc/rc.conf.local or /etc/rc.conf # to enable this service: # # zrepl_enable (bool): Set to YES to enable the zrepl service. # Default: NO # zrepl_config (str): File containing zrepl configuration details. # Default: %%PREFIX%%/etc/zrepl/zrepl.yml # zrepl_user (str): The user account used to run the zrepl daemon. # Do not specifically set this to an empty string as this # will cause the daemon to run as root. # Default: root # zrepl_group (str): The group account used to run the zrepl daemon. # Do not specifically set this to an empty string as this # will cause the daemon to run with group wheel. # Default: wheel # zrepl_flags (str): Extra flags passed to zrepl # Default: "" # zrepl_facility (str): Syslog facility to use # Default: local0 # zrepl_priority (str): Syslog priority to use # Default: alert . /etc/rc.subr name=zrepl rcvar=${name}_enable load_rc_config $name : ${zrepl_enable:="NO"} : ${zrepl_config:="%%PREFIX%%/etc/zrepl/zrepl.yml"} : ${zrepl_user:="root"} : ${zrepl_group:="wheel"} : ${zrepl_flags:=""} : ${zrepl_facility:="local0"} : ${zrepl_priority:="alert"} -: ${zrepl_options:="${zrepl_flags} --config ${zrepl_config} daemon"} +: ${zrepl_options:="${zrepl_flags} --config ${zrepl_config}"} pidfile="/var/run/zrepl/daemon.pid" command="/usr/sbin/daemon" procname="%%PREFIX%%/bin/zrepl" -command_args="-p ${pidfile} %%DAEMON_LOGGING%% ${procname} ${zrepl_options}" +command_args="-p ${pidfile} %%DAEMON_LOGGING%% ${procname} ${zrepl_options} daemon" -start_precmd=zrepl_precmd -stop_postcmd=zrepl_postcmd +start_precmd="zrepl_precmd" +stop_postcmd="zrepl_postcmd" +restart_precmd="zrepl_checkconfig" +configtest_cmd="zrepl_checkconfig" +extra_commands="configtest" zrepl_precmd() { if [ ! -d "/var/run/zrepl/stdinserver" ]; then install -d -g ${zrepl_group} -o ${zrepl_user} -m 0700 -- "/var/run/zrepl"; install -d -g ${zrepl_group} -o ${zrepl_user} -m 0700 -- "/var/run/zrepl/stdinserver"; fi if [ ! -e "${pidfile}" ]; then install -g ${zrepl_group} -o ${zrepl_user} -- /dev/null "${pidfile}"; fi + + zrepl_checkconfig } zrepl_postcmd() { rm -f -- "${pidfile}" +} + +zrepl_checkconfig() +{ + echo "Performing sanity check on zrepl configuration:" + eval ${procname} ${zrepl_options} configcheck } run_rc_command "$1" Index: head/sysutils/zrepl/files/zrepl.yml.sample =================================================================== --- head/sysutils/zrepl/files/zrepl.yml.sample (revision 503473) +++ head/sysutils/zrepl/files/zrepl.yml.sample (revision 503474) @@ -1,15 +1,15 @@ # $FreeBSD$ # # zrepl main configuration file. # For documentation, refer to https://zrepl.github.io/ # global: logging: - - outlet: "stdout" + - type: "stdout" level: "error" format: "human" - - outlet: "syslog" + - type: "syslog" level: "info" format: "logfmt" # Add "jobs:" section(s) here for your specific use cases. Index: head/sysutils/zrepl/pkg-plist =================================================================== --- head/sysutils/zrepl/pkg-plist (revision 503473) +++ head/sysutils/zrepl/pkg-plist (revision 503474) @@ -1,4 +1,14 @@ bin/zrepl @sample etc/newsyslog.conf.d/zrepl.conf.sample @sample etc/syslog.d/zrepl.conf.sample -@sample etc/zrepl/zrepl.yml.sample +@sample %%ETCDIR%%/zrepl.yml.sample +%%DATADIR%%/samples/grafana-prometheus-zrepl-0.1.json +%%DATADIR%%/samples/local.yml +%%DATADIR%%/samples/pull.yml +%%DATADIR%%/samples/pull_ssh.yml +%%DATADIR%%/samples/push.yml +%%DATADIR%%/samples/sink.yml +%%DATADIR%%/samples/snap.yml +%%DATADIR%%/samples/source.yml +%%DATADIR%%/samples/source_ssh.yml +@dir(root,wheel,0750) /var/run/zrepl