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