SMOLNET PORTAL home about changes
irc.d: clean up and update FreeBSD rc script for easier configuration - geomyidae - A small C-based gopherd.	Err	bitreich.org	70
hgit clone git://bitreich.org/geomyidae/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/geomyidae/	URL:git://bitreich.org/geomyidae/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/geomyidae/	bitreich.org	70
1Log	/scm/geomyidae/log.gph	bitreich.org	70
1Files	/scm/geomyidae/files.gph	bitreich.org	70
1Refs	/scm/geomyidae/refs.gph	bitreich.org	70
1Tags	/scm/geomyidae/tag	bitreich.org	70
1README	/scm/geomyidae/file/README.gph	bitreich.org	70
1LICENSE	/scm/geomyidae/file/LICENSE.gph	bitreich.org	70
i---	Err	bitreich.org	70
1commit b26c0644c0b0badec69870e4b92da4e0b4225b31	/scm/geomyidae/commit/b26c0644c0b0badec69870e4b92da4e0b4225b31.gph	bitreich.org	70
1parent 098b3ed375acbd86cba0dff419cd954160cb4a9e	/scm/geomyidae/commit/098b3ed375acbd86cba0dff419cd954160cb4a9e.gph	bitreich.org	70
hAuthor: Nico Sonack <nsonack@herrhotzenplotz.de>	URL:mailto:nsonack@herrhotzenplotz.de	bitreich.org	70
iDate:   Fri,  5 Jul 2024 17:51:17 +0200	Err	bitreich.org	70
i	Err	bitreich.org	70
irc.d: clean up and update FreeBSD rc script for easier configuration	Err	bitreich.org	70
i	Err	bitreich.org	70
iI was working on a Ports Makefile and looked for a rc script for	Err	bitreich.org	70
igeomyidae. The one distributed in the source tarball seemed very	Err	bitreich.org	70
iout-of-date and contained anti-patterns regarding the rc system in	Err	bitreich.org	70
iFreeBSD.	Err	bitreich.org	70
i	Err	bitreich.org	70
iBasically I went in and made it configurable through rc.conf which	Err	bitreich.org	70
iis the central place for FreeBSD's rc configuration. I also updated	Err	bitreich.org	70
ivariable names such that they align with the patterns of rc.subr.	Err	bitreich.org	70
i	Err	bitreich.org	70
iThe reason for the change is simple: you don't want to edit the	Err	bitreich.org	70
ifiles installed from ports/pkg because if you update they get	Err	bitreich.org	70
ioverwritten and all your configuration is lost.	Err	bitreich.org	70
i	Err	bitreich.org	70
iDocumentation for the configuration variables are in the comments	Err	bitreich.org	70
iin the rc script.	Err	bitreich.org	70
i	Err	bitreich.org	70
iI don't know if the TLS stuff works as I haven't configured it (and	Err	bitreich.org	70
idon't need it atm). Everything else works fine on a FreeBSD	Err	bitreich.org	70
i14.1-RELEASE-p2 amd64 box.	Err	bitreich.org	70
i	Err	bitreich.org	70
iSigned-off-by: Christoph Lohmann <20h@r-36.net>	Err	bitreich.org	70
i	Err	bitreich.org	70
iDiffstat:	Err	bitreich.org	70
i  M rc.d/FreeBSD.rc.d                   |     116 +++++++++++++++++++------------	Err	bitreich.org	70
i	Err	bitreich.org	70
i1 file changed, 72 insertions(+), 44 deletions(-)	Err	bitreich.org	70
i---	Err	bitreich.org	70
1diff --git a/rc.d/FreeBSD.rc.d b/rc.d/FreeBSD.rc.d	/scm/geomyidae/file/rc.d/FreeBSD.rc.d.gph	bitreich.org	70
i@@ -1,61 +1,89 @@	Err	bitreich.org	70
i #!/bin/sh	Err	bitreich.org	70
i 	Err	bitreich.org	70
i # PROVIDE: geomyidae	Err	bitreich.org	70
i-# REQUIRE: DAEMON	Err	bitreich.org	70
i+# REQUIRE: NETWORKING SERVERS DAEMON	Err	bitreich.org	70
i # BEFORE:  LOGIN	Err	bitreich.org	70
i # KEYWORD: shutdown	Err	bitreich.org	70
i-	Err	bitreich.org	70
i+#	Err	bitreich.org	70
i+# Add the following lines to /etc/rc.conf to enable this service	Err	bitreich.org	70
i+#	Err	bitreich.org	70
i+# geomyidae_enable (bool):             Set to NO by default.	Err	bitreich.org	70
i+#                                      Set to YES to enable geomyidae	Err	bitreich.org	70
i+# geomyidae_flags (string):            Additional command line options to	Err	bitreich.org	70
i+#                                      pass to geomyidae(8).	Err	bitreich.org	70
i+# geomyidae_user (string):             Set to the user to run geomyidae as	Err	bitreich.org	70
i+#                                      Default is "geomyidae"	Err	bitreich.org	70
i+# geomyidae_group (string):            Set to the group to run geomyidae as	Err	bitreich.org	70
i+#                                      Default is "geomyidae"	Err	bitreich.org	70
i+# geomyidae_htdocs (string):           Directory to server files from	Err	bitreich.org	70
i+#                                      Default is "/var/gopher"	Err	bitreich.org	70
i+# geomyidae_logfile (string):          File to use as a logfile	Err	bitreich.org	70
i+#                                      Default is "/var/log/gopherlog"	Err	bitreich.org	70
i+# geomyidae_bindhost (string):         IP Address to bind to	Err	bitreich.org	70
i+#                                      Default is all addresses	Err	bitreich.org	70
i+# geomyidae_port (int):                Port to listen on	Err	bitreich.org	70
i+#                                      Default is 70	Err	bitreich.org	70
i+# geomyidae_sport (int):               Port to display within base directory	Err	bitreich.org	70
i+#                                      Default is 70	Err	bitreich.org	70
i+# geomyidae_keyfile (string):          Path to private key in case TLS support is desired	Err	bitreich.org	70
i+#                                      Default is empty	Err	bitreich.org	70
i+# geomyidae_certfile (string):         Path to public key in case TLS support is desired	Err	bitreich.org	70
i+#                                      Default is empty	Err	bitreich.org	70
i+#	Err	bitreich.org	70
i+# NOTE: You need to install geomyidae setuid root:wheel for this	Err	bitreich.org	70
i+#       to work when listening on priviledged ports.	Err	bitreich.org	70
i+#	Err	bitreich.org	70
i+# Create users and group accordingly, e.g.:	Err	bitreich.org	70
i+#	Err	bitreich.org	70
i+#   # pw groupadd geomyidae -g 542	Err	bitreich.org	70
i+#   # pw useradd geomyidae -g geomyidae -u 542 -s /usr/sbin/nologin -d /nonexistent	Err	bitreich.org	70
i+#	Err	bitreich.org	70
i+# Create logfile, pidfile and htdocs:	Err	bitreich.org	70
i+#	Err	bitreich.org	70
i+#    # mkdir /var/gopher	Err	bitreich.org	70
i+#    # touch /var/run/geomyidae.pid	Err	bitreich.org	70
i+#    # touch /var/log/gopherlog	Err	bitreich.org	70
i+#    # chown geomyidae:geomyidae /var/gopher /var/run/geomyidae.pid /var/log/gopherlog	Err	bitreich.org	70
i 	Err	bitreich.org	70
i . /etc/rc.subr	Err	bitreich.org	70
i 	Err	bitreich.org	70
i name=geomyidae	Err	bitreich.org	70
i-rcvar=$name	Err	bitreich.org	70
i+rcvar=geomyidae_enable	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-command="/usr/local/bin/$name"	Err	bitreich.org	70
i+load_rc_config $name	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-geomyidae_enable=${geomyidae_enable:-"NO"}	Err	bitreich.org	70
i+: ${geomyidae_enable:="NO"}	Err	bitreich.org	70
i+: ${geomyidae_user:="geomyidae"}	Err	bitreich.org	70
i+: ${geomyidae_group:="geomyidae"}	Err	bitreich.org	70
i+: ${geomyidae_flags:=""}	Err	bitreich.org	70
i+: ${geomyidae_htdocs:="/var/gopher"}	Err	bitreich.org	70
i+: ${geomyidae_logfile:="/var/log/gopherlog"}	Err	bitreich.org	70
i+: ${geomyidae_bindhost:=""}	Err	bitreich.org	70
i+: ${geomyidae_host:="localhost"}	Err	bitreich.org	70
i+: ${geomyidae_port:="70"}	Err	bitreich.org	70
i+: ${geomyidae_sport:="70"}	Err	bitreich.org	70
i+: ${geomyidae_command:="/usr/local/bin/geomyidae"}	Err	bitreich.org	70
i+: ${geomyidae_certfile:=""}	Err	bitreich.org	70
i+: ${geomyidae_keyfile:=""}	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-#####################################################	Err	bitreich.org	70
i-# Geomyidae Options Section - "?" => geomyidae(8)   #	Err	bitreich.org	70
i-#  Uncomment & define options (defaults are shown)  #	Err	bitreich.org	70
i-#####################################################	Err	bitreich.org	70
i-#	Err	bitreich.org	70
i-#LOGFILE="-l /var/log/gopherlog"	Err	bitreich.org	70
i-#LOGLEVEL="-v 7"	Err	bitreich.org	70
i-#HTDOCS="-b /var/gopher"	Err	bitreich.org	70
i-#PORT="-p 70"	Err	bitreich.org	70
i-#SPORT="-o 70"	Err	bitreich.org	70
i-#USR="-u $USER"	Err	bitreich.org	70
i-#GRP="-g $GROUP"	Err	bitreich.org	70
i-#HOST="-h localhost"	Err	bitreich.org	70
i-#IP="-i 127.0.0.1"	Err	bitreich.org	70
i-	Err	bitreich.org	70
i-######################################################	Err	bitreich.org	70
i-# Next, add all DEFINED options to command_args=     #	Err	bitreich.org	70
i-######################################################	Err	bitreich.org	70
i-#	Err	bitreich.org	70
i-#command_args="$LOGFILE $LOGLEVEL $HTDOCS $PORT $SPORT $USR $GRP $HOST $IP"	Err	bitreich.org	70
i-#command_args=""	Err	bitreich.org	70
i+pidfile=/var/run/geomyidae.pid	Err	bitreich.org	70
i+procname="${geomyidae_command}"	Err	bitreich.org	70
i+command="/usr/sbin/daemon"	Err	bitreich.org	70
i+command_args="-S -T geomyidae -m 3 -f -p ${pidfile} ${geomyidae_command} -d -l ${geomyidae_logfile} \	Err	bitreich.org	70
i+        -b ${geomyidae_htdocs} -p ${geomyidae_port} -o ${geomyidae_sport} \	Err	bitreich.org	70
i+        -u ${geomyidae_user} -g ${geomyidae_group} -h ${geomyidae_host}"	Err	bitreich.org	70
i 	Err	bitreich.org	70
i+# Append bindhost if set	Err	bitreich.org	70
i+[ ! -z "${geomyidae_bindhost}" ] && command_args="${command_args} -i ${geomyidae_bindhost}"	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-######################################################	Err	bitreich.org	70
i-#  Uncomment this section if a PID file is desired   #	Err	bitreich.org	70
i-######################################################	Err	bitreich.org	70
i+# TLS setup	Err	bitreich.org	70
i+[ ! -z "${geomyidae_keyfile}" -a ! -z "${geomyidae_certfile}" ] && \	Err	bitreich.org	70
i+        command_args="${command_args} -t ${geomyidae_keyfile} ${geomyidae_certfile}"	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-#pidfile="/var/run/${name}.pid"	Err	bitreich.org	70
i-#start_cmd="geomyidae_start"	Err	bitreich.org	70
i-#	Err	bitreich.org	70
i-#geomyidae_start()	Err	bitreich.org	70
i-#{	Err	bitreich.org	70
i-#        echo "Starting $name"	Err	bitreich.org	70
i-#        $command $command_args	Err	bitreich.org	70
i-#        pgrep -n $name > $pidfile	Err	bitreich.org	70
i-#}	Err	bitreich.org	70
i-	Err	bitreich.org	70
i-######################################################	Err	bitreich.org	70
i-#  Lastly, add the following to /etc/rc.conf:        #	Err	bitreich.org	70
i-#  "geomyidae=YES"  (without the quotes)             #	Err	bitreich.org	70
i-######################################################	Err	bitreich.org	70
i+# Lastly append flags by user	Err	bitreich.org	70
i+command_args="${command_args} ${geomyidae_flags}"	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+required_files="${pidfile} ${geomyidae_logfile}"	Err	bitreich.org	70
i+required_dirs="${geomyidae_htdocs}"	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-load_rc_config $name	Err	bitreich.org	70
i run_rc_command "$1"	Err	bitreich.org	70
.
Response: text/plain
Original URLgopher://bitreich.org/0/scm/geomyidae/commit/b26c0644c0b0...
Content-Typetext/plain; charset=utf-8