pkgsrc-WIP-changes archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
mattermost: Set up rc.d script
Module Name: pkgsrc-wip
Committed By: Hauke Fath <hauke%NetBSD.org@localhost>
Pushed By: hauke
Date: Thu Mar 19 12:45:02 2026 +0100
Changeset: 168f6d1baaa820e304acc8054eaeead02b039e08
Modified Files:
mattermost-server/Makefile
mattermost-server/files/mattermost.sh
Log Message:
mattermost: Set up rc.d script
Like many of the packages that target Docker installations, mattermost
does not daemonize. The rc.d script runs the process with daemonize(8)
(see the security/vaultwarden example).
To see a diff of this commit:
https://wip.pkgsrc.org/cgi-bin/gitweb.cgi?p=pkgsrc-wip.git;a=commitdiff;h=168f6d1baaa820e304acc8054eaeead02b039e08
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
diffstat:
mattermost-server/Makefile | 19 +++++--
mattermost-server/files/mattermost.sh | 99 +++++++++++++++--------------------
2 files changed, 59 insertions(+), 59 deletions(-)
diffs:
diff --git a/mattermost-server/Makefile b/mattermost-server/Makefile
index dbf593d00d..8223e6ea9a 100644
--- a/mattermost-server/Makefile
+++ b/mattermost-server/Makefile
@@ -18,6 +18,8 @@ PKG_SYSCONFSUBDIR= mattermost
#GO_VERSION_REQD= 125
+DEPENDS+= daemonize>=1.7.8:../../sysutils/daemonize
+
.include "go-modules.mk"
# This needs to come before bsd.prefs.mk
@@ -27,6 +29,11 @@ PKG_SYSCONFSUBDIR= mattermost
BUILD_DEFS+= VARBASE MATTERMOST_USER MATTERMOST_GROUP
+MATTERMOST_LOGDIR= ${VARBASE}/log/mattermost
+MATTERMOST_DATADIR= ${VARBASE}/mattermost
+
+EGDIR= share/examples/mattermost
+
MATTERMOST_USER?= mattermost
MATTERMOST_GROUP?= mattermost
@@ -42,8 +49,8 @@ PKG_SHELL.${MATTERMOST_USER}= ${NOLOGIN}
RCD_SCRIPTS+= mattermost
FILES_SUBST+= MATTERMOST_USER=${MATTERMOST_USER:Q}
FILES_SUBST+= MATTERMOST_GROUP=${MATTERMOST_GROUP:Q}
-#FILES_SUBST+= MATTERMOST_DATADIR=${MATTERMOST_DATADIR:Q}
-#FILES_SUBST+= MATTERMOST_LOGDIR=${MATTERMOST_LOGDIR:Q}
+FILES_SUBST+= MATTERMOST_LOGDIR=${MATTERMOST_LOGDIR:Q}
+FILES_SUBST+= MATTERMOST_DATADIR=${MATTERMOST_DATADIR:Q}
# From Arch package
MAKE_ENV+= BUILD_ENTERPRISE=false
@@ -54,7 +61,13 @@ GOFLAGS+= -ldflags=" \
-X github.com/mattermost/mattermost/server/public/model.BuildHashEnterprise=none \
-X github.com/mattermost/mattermost/server/public/model.BuildEnterpriseReady=false"
-INSTALLATION_DIRS+= sbin
+INSTALLATION_DIRS+= sbin ${EGDIR}
+
+OWN_DIRS_PERMS+= ${MATTERMOST_LOGDIR} ${MATTERMOST_USER} \
+ ${MATTERMOST_GROUP} 0750
+OWN_DIRS+= ${MATTERMOST_DATADIR}
+OWN_DIRS_PERMS+= ${MATTERMOST_DATADIR}/data ${MATTERMOST_USER} \
+ ${MATTERMOST_GROUP} 0750
.include "go-modules.mk"
diff --git a/mattermost-server/files/mattermost.sh b/mattermost-server/files/mattermost.sh
index 04de1ae486..5f2f2f58a2 100644
--- a/mattermost-server/files/mattermost.sh
+++ b/mattermost-server/files/mattermost.sh
@@ -1,61 +1,48 @@
-#!/bin/sh
-
-# PROVIDE: mattermostd
-# REQUIRE: DAEMON NETWORKING
-# BEFORE: LOGIN
+#!@RCD_SCRIPTS_SHELL@
+#
+# $NetBSD$
+#
+# PROVIDE: mattermost
+# REQUIRE: NETWORKING
+# BEFORE: LOGIN
# KEYWORD: shutdown
-# Add the following lines to /etc/rc.conf to enable mattermostdb:
-# mattermostd_enable="YES"
-#
-# mattermostd_enable (bool): Set to YES to enable mattermostd
-# Default: NO
-# mattermostd_conf (str): mattermostd configuration file
-# Default: ${PREFIX}/etc/mattermostd.conf
-# mattermostd_user (str): mattermostd daemon user
-# Default: mattermostd
-# mattermostd_group (str): mattermostd daemon group
-# Default: mattermostd
-# mattermostd_extraflags (str): Extra flags passed to mattermostd
-# Default: None
-# mattermostd_facility (str): Syslog facility to use
-# Default: daemon
-# mattermostd_priority (str): Syslog priority to use
-# Default: info
-
-. /etc/rc.subr
-
-name="mattermostd"
-rcvar=mattermostd_enable
-load_rc_config $name
-
-: ${mattermostd_enable:="NO"}
-: ${mattermostd_user:="mattermost"}
-: ${mattermostd_group:="mattermost"}
-: ${mattermostd_extraflags:=""}
-: ${mattermostd_facility:="daemon"}
-: ${mattermostd_priority:="info"}
-: ${mattermostd_tag:="mattermostd"}
-: ${mattermostd_conf:="%%PREFIX%%/etc/mattermost/config.json"}
-
-# daemon
-pidfile=/var/run/${name}.pid
-procname=%%PREFIX%%/bin/${name}
-command=/usr/sbin/daemon
-command_args="-p ${pidfile} -S -s ${mattermostd_priority} -l ${mattermostd_facility} -T ${mattermostd_tag} ${procname} server ${mattermostd_extraflags} --config=${mattermostd_conf}"
-start_precmd=mattermostd_startprecmd
-mattermostd_chdir=%%PREFIX%%/www/mattermost
-required_files=${mattermostd_confg}
-
-mattermostd_startprecmd()
-{
- if [ ! -e ${pidfile} ]; then
- install -o ${mattermostd_user} -g ${mattermostd_group} /dev/null ${pidfile};
- fi
+name="mattermost"
+
+command="@PREFIX@/sbin/daemonize"
+
+pidfile="@VARBASE@/run/${name}/${name}.pid"
- if [ ! -d ${mattermostd_dir} ]; then
- install -d -o ${mattermostd_user} -g ${mattermostd_group} ${mattermostd_dir}
- fi
+task="@PREFIX@/sbin/${name}"
+procname="${task}"
+
+command_args="-p ${pidfile} \
+ -u @MATTERMOST_USER@ \
+ -c @MATTERMOST_DATADIR@ \
+ -e @MATTERMOST_LOGDIR@/daemonize.stderr \
+ -o @MATTERMOST_LOGDIR@/daemonize.stdout"
+
+mattermost_precmd()
+{
+ if [ ! -e "@VARBASE@/run/${name}" ] ; then
+ install -d -o @MATTERMOST_USER@ -g @MATTERMOST_GROUP@ \
+ @VARBASE@/run/${name};
+ fi
}
-run_rc_command "$1"
+if [ -f @SYSCONFBASE@/rc.subr ]; then
+ . @SYSCONFBASE@/rc.subr
+
+ rcvar=${name}
+ required_files="@PKG_SYSCONFDIR@/config.json"
+ pidfile="@VARBASE@/run/${name}/${name}.pid"
+
+ start_precmd="mattermost_precmd"
+
+ load_rc_config ${name}
+ run_rc_command "$1"
+else
+ @ECHO@ -n " ${name}"
+ mattermost_precmd
+ ${command} ${command_args}
+fi
Home |
Main Index |
Thread Index |
Old Index