Index: sysutils/consul/Makefile =================================================================== --- sysutils/consul/Makefile (revision 509000) +++ sysutils/consul/Makefile (working copy) @@ -1,7 +1,7 @@ # $FreeBSD$ PORTNAME= consul -PORTVERSION= 1.5.1 +PORTVERSION= 1.5.3 DISTVERSIONPREFIX= v CATEGORIES= sysutils @@ -17,12 +17,19 @@ GH_ACCOUNT= hashicorp GH_SUBDIR= src/github.com/${GH_ACCOUNT}/${PORTNAME} -USE_RC_SUBR= consul +USERS= consul +GROUPS= consul +ETCDIR= ${PREFIX}/etc/${PORTNAME}.d +CONSUL_DATADIR= /var/db/${PORTNAME} +SUB_LIST= ETCDIR=${ETCDIR} \ + USERS=${USERS} \ + GROUPS=${GROUPS} \ + CONSUL_DATADIR=${CONSUL_DATADIR} + PLIST_FILES= bin/consul -USERS= consul -GROUPS= consul +USE_RC_SUBR= consul post-extract: @${MV} ${WRKSRC}/vendor/ ${WRKSRC}/src/ @@ -37,8 +44,14 @@ -o bin/consul do-install: + ${MKDIR} ${STAGEDIR}${ETCDIR} + ${MKDIR} ${STAGEDIR}${CONSUL_DATADIR} ${INSTALL_PROGRAM} ${WRKSRC}/src/github.com/hashicorp/consul/bin/consul ${STAGEDIR}${PREFIX}/bin/consul +post-install: + @${ECHO_CMD} "@dir(${USERS},${GROUPS},750) ${ETCDIR}" >> ${TMPPLIST} + @${ECHO_CMD} "@dir(${USERS},${GROUPS},750) ${CONSUL_DATADIR}" >> ${TMPPLIST} + .include # golang assumes that if clang is in use, it is called "clang" and not "cc". If Index: sysutils/consul/distinfo =================================================================== --- sysutils/consul/distinfo (revision 509000) +++ sysutils/consul/distinfo (working copy) @@ -1,3 +1,3 @@ -TIMESTAMP = 1558709843 -SHA256 (hashicorp-consul-v1.5.1_GH0.tar.gz) = b8376369b16987e87d3fcda20eb9463144737dbc7dfddd13cba6db9f8f427fd9 -SIZE (hashicorp-consul-v1.5.1_GH0.tar.gz) = 21123963 +TIMESTAMP = 1565859009 +SHA256 (hashicorp-consul-v1.5.3_GH0.tar.gz) = f36f1e516346864a7a61b0917df0e82ef9a83eb792885f9f032cca99a594bc82 +SIZE (hashicorp-consul-v1.5.3_GH0.tar.gz) = 21743194 Index: sysutils/consul/files/consul.in =================================================================== --- sysutils/consul/files/consul.in (revision 509000) +++ sysutils/consul/files/consul.in (working copy) @@ -6,47 +6,50 @@ # REQUIRE: LOGIN # KEYWORD: shutdown # -# Add the following lines to /etc/rc.conf.local or /etc/rc.conf -# to enable this service: +# Add consul_enable="YES" to /etc/rc.conf to enable Consul # -# consul_enable (bool): Set to NO by default. -# Set it to YES to enable consul. -# consul_user (user): Set user to run consul. -# Default is "consul". -# consul_group (group): Set group to run consul. -# Default is "consul". -# consul_dir (dir): Set dir to run consul in. -# Default is "/var/db/consul". +# Additional variables you can define are: +# +# consul_user: Username to run Consul +# Default: %%USERS%% +# consul_datadir: Directory for the agent to store state +# Default: %%CONSUL_DATADIR%% +# consul_pidfile: Full path of the Consul PID file +# Default: /var/run/consul.pid +# consul_env: Set environment variables used with Consul +# Default: +# consul_args: Additional command-line options +# Default: . /etc/rc.subr name=consul rcvar=consul_enable + +restart_precmd="consul_checkconfig" +reload_precmd="consul_checkconfig" +configtest_cmd="consul_checkconfig" extra_commands="reload configtest" load_rc_config $name -: ${consul_enable:="NO"} -: ${consul_user:="consul"} -: ${consul_group:="consul"} -: ${consul_dir:="/var/db/consul"} +: ${consul_enable:=NO} +: ${consul_user:=%%USERS%%} +: ${consul_datadir:=%%CONSUL_DATADIR%%} +: ${consul_pidfile:=/var/run/consul.pid} -pidfile=/var/run/consul.pid +pidfile=${consul_pidfile} +required_dirs="%%ETCDIR%% ${consul_datadir}" + procname="%%PREFIX%%/bin/consul" command="/usr/sbin/daemon" -command_args="-f -p ${pidfile} /usr/bin/env ${consul_env} ${procname} agent -data-dir=${consul_dir} -config-dir=%%PREFIX%%/etc/consul.d ${consul_args}" +command_args="-f -p ${pidfile} -u ${consul_user} -t ${name} /usr/bin/env ${consul_env} ${procname} agent -data-dir=${consul_datadir} -config-dir=%%ETCDIR%% ${consul_args}" +unset consul_user -start_precmd=consul_startprecmd - -consul_startprecmd() +consul_checkconfig() { - if [ ! -e ${pidfile} ]; then - install -o ${consul_user} -g ${consul_group} /dev/null ${pidfile}; - fi - - if [ ! -d ${consul_dir} ]; then - install -d -o ${consul_user} -g ${consul_group} ${consul_dir} - fi + echo "Performing sanity check on ${name} configuration:" + eval ${procname} validate %%ETCDIR%% } run_rc_command "$1" Index: UIDs =================================================================== --- UIDs (revision 509000) +++ UIDs (working copy) @@ -414,7 +414,7 @@ condor:*:466:466::0:0:& user:/home/condor:/usr/sbin/nologin netmon:*:467:467::0:0:Network monitor account:/var/netmon:/usr/sbin/nologin slurm:*:468:468::0:0:SLURM Daemon:/nonexistent:/usr/sbin/nologin -consul:*:469:469::0:0:Consul Daemon:/var/tmp/consul:/usr/sbin/nologin +consul:*:469:469::0:0:Consul Daemon:/nonexistent:/usr/sbin/nologin serf:*:470:470::0:0:Serf Daemon:/nonexistent:/usr/sbin/nologin vault:*:471:471:daemon:0:0:Vault Daemon:/nonexistent:/usr/sbin/nologin nomad:*:472:472::0:0:Nomad Daemon:/var/tmp/nomad:/usr/sbin/nologin