svn commit: r427077 - in head: . net-p2p/bitcoin net-p2p/bitcoin/files
Marcelo Araujo
araujo at FreeBSD.org
Fri Nov 25 06:11:03 UTC 2016
Author: araujo
Date: Fri Nov 25 06:11:01 2016
New Revision: 427077
URL: https://svnweb.freebsd.org/changeset/ports/427077
Log:
- Add a UID/GID for bitcoin.
- Rewrite the rc script with new options that allows users to:
- set config file.
- set datadir.
- set bitcoin limits.
PR: ports/213235
Submitted by: Christopher Hall <hsw at bitmark.com>
Approved by: maintainer timeout (1 month)
Modified:
head/GIDs
head/UIDs
head/net-p2p/bitcoin/Makefile
head/net-p2p/bitcoin/files/bitcoind.in
Modified: head/GIDs
==============================================================================
--- head/GIDs Fri Nov 25 03:42:40 2016 (r427076)
+++ head/GIDs Fri Nov 25 06:11:01 2016 (r427077)
@@ -720,7 +720,7 @@ postgres:*:770:
# free: 776
openxpki:*:777:
# free: 778
-# free: 779
+bitcoin:*:779:
zetacoin:*:780:
# free: 781
# free: 782
Modified: head/UIDs
==============================================================================
--- head/UIDs Fri Nov 25 03:42:40 2016 (r427076)
+++ head/UIDs Fri Nov 25 06:11:01 2016 (r427077)
@@ -725,7 +725,7 @@ postgres:*:770:770::0:0:PostgreSQL Daemo
# free: 776
openxpki:*:777:777::0:0:OpenXPKI Owner:/nonexistent:/usr/sbin/nologin
# free: 778
-# free: 779
+bitcoin:*:779:779::0:0:bitcoin Daemon:/var/db/bitcoin:/usr/sbin/nologin
zetacoin:*:780:780::0:0:ZetaCoin Daemon:/nonexistent:/usr/sbin/nologin
# free: 781
# free: 782
Modified: head/net-p2p/bitcoin/Makefile
==============================================================================
--- head/net-p2p/bitcoin/Makefile Fri Nov 25 03:42:40 2016 (r427076)
+++ head/net-p2p/bitcoin/Makefile Fri Nov 25 06:11:01 2016 (r427077)
@@ -4,7 +4,7 @@
PORTNAME= bitcoin
PORTVERSION= 0.12.1
DISTVERSIONPREFIX= v
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= net-p2p finance
MAINTAINER= robbak at robbak.com
Modified: head/net-p2p/bitcoin/files/bitcoind.in
==============================================================================
--- head/net-p2p/bitcoin/files/bitcoind.in Fri Nov 25 03:42:40 2016 (r427076)
+++ head/net-p2p/bitcoin/files/bitcoind.in Fri Nov 25 06:11:01 2016 (r427077)
@@ -1,15 +1,173 @@
#!/bin/sh
-#
# $FreeBSD$
-#
+
# PROVIDE: bitcoind
-# REQUIRE: LOGIN
+# REQUIRE: LOGIN cleanvar
+# KEYWORD: shutdown
+
+#
+# Add the following lines to /etc/rc.conf to enable :
+# bitcoind_enable (bool): Set to "NO" by default.
+# Set it to "YES" to enable bitcoind
+# bitcoind_user (str) Set to "bitcoin" by default.
+# bitcoind_group (str) Set to "bitcoin" by default.
+# bitcoind_conf (str) Set to "%%PREFIX%%/etc/bitcoind.conf" by default.
+# bitcoind_data (str) Set to "/var/lib/bitcoind" by default.
+# bitcoindlimits_enable (bool) Set to "NO" by default.
+# Set it to "YES" to enable bitcoindlimits
+# bitcoindlimits_args Set to "-e -U ${bitcoind_user}" by default
+
. /etc/rc.subr
name="bitcoind"
rcvar=bitcoind_enable
+
+start_precmd="bitcoind_precmd"
+start_cmd="bitcoind_start"
+restart_precmd="bitcoind_checkconfig"
+reload_precmd="bitcoind_checkconfig"
+configtest_cmd="bitcoind_checkconfig"
+status_cmd="bitcoind_status"
+stop_cmd="bitcoind_stop"
+stop_postcmd="bitcoind_wait"
command="%%PREFIX%%/bin/bitcoind"
+cli_command="%%PREFIX%%/bin/bitcoin-cli"
+daemon_command="/usr/sbin/daemon"
+#pidfile="/var/run/${name}.pid"
+extra_commands="configtest"
+
+
+: ${bitcoind_enable:="NO"}
+: ${bitcoindlimits_enable:="NO"}
+
+load_rc_config ${name}
+
+: ${bitcoind_user:="bitcoin"}
+: ${bitcoind_group:="bitcoin"}
+: ${bitcoind_data_dir:="/var/db/bitcoind"}
+: ${bitcoind_config_file:="%%PREFIX%%/etc/bitcoin.conf"}
+: ${bitcoindlimits_args:="-e -U ${bitcoind_user}"}
+
+# set up dependant variables
+procname="${command}"
+pidfile="${bitcoind_data_dir}/bitcoind.pid"
+required_files="${bitcoind_config_file}"
+
+
+bitcoind_checkconfig()
+{
+ echo "Performing sanity check on bitcoind configuration:"
+ if [ ! -d "${bitcoind_data_dir}" ]
+ then
+ echo "Missing data directory: ${bitcoind_data_dir}"
+ exit 1
+ fi
+ chown -R "${bitcoind_user}:${bitcoind_group}" "${bitcoind_data_dir}"
+
+ if [ ! -f "${bitcoind_config_file}" ]
+ then
+ echo "Missing configuration file: ${bitcoind_config_file}"
+ exit 1
+ fi
+ if [ ! -x "${command}" ]
+ then
+ echo "Missing executable: ${command}"
+ exit 1
+ fi
+ return 0
+}
+
+bitcoind_cleanup()
+{
+ rm -f "${pidfile}"
+}
+
+bitcoind_precmd()
+{
+ bitcoind_checkconfig
+
+ pid=$(check_pidfile "${pidfile}" "${procname}")
+ if [ -z "${pid}" ]
+ then
+ echo "Bitcoind is not running"
+ rm -f "${pidfile}"
+ fi
+
+ if checkyesno bitcoindlimits_enable
+ then
+ eval $(/usr/bin/limits ${bitcoindlimits_args}) 2>/dev/null
+ else
+ return 0
+ fi
+}
+
+bitcoind_status()
+{
+ local pid
+ pid=$(check_pidfile "${pidfile}" "${procname}")
+ if [ -z "${pid}" ]
+ then
+ echo "Bitcoind is not running"
+ return 1
+ else
+ echo "Bitcoind running, pid: ${pid}"
+ fi
+}
+
+bitcoind_start()
+{
+ echo "Starting bitcoind:"
+ cd "${bitcoind_data_dir}" || return 1
+ ${daemon_command} -u "${bitcoind_user}" -p "${pidfile}" \
+ ${command} \
+ -conf="${bitcoind_config_file}" \
+ -datadir="${bitcoind_data_dir}" 2> /tmp/bitcoind.stderr > /tmp/bitcoind.stdout
+}
+
+bitcoind_stop()
+{
+ echo "Stopping bitcoind:"
+ pid=$(check_pidfile "${pidfile}" "${procname}")
+ if [ -z "${pid}" ]
+ then
+ echo "Bitcoind is not running"
+ return 1
+ else
+ ${cli_command} -conf="${bitcoind_config_file}" -datadir="${bitcoind_data_dir}" stop
+ fi
+}
+
+bitcoind_wait()
+{
+ local n=60
+ echo "Waiting for bitcoind shutdown:"
+ while :
+ do
+ printf '.'
+ pid=$(check_pidfile "${pidfile}" "${procname}")
+ if [ -z "${pid}" ]
+ then
+ printf '\n'
+ break
+ fi
+ sleep 1
+ n=$((${n} - 1))
+ if [ ${n} -eq 0 -a -f "${pidfile}" ]
+ then
+ printf "\nForce shutdown"
+ kill -9 $(cat "${pidfile}")
+ for n in 1 2 3
+ do
+ printf '.'
+ sleep 1
+ done
+ printf '\n'
+ break
+ fi
+ done
+ rm -f "${pidfile}"
+ echo "Shutdown complete"
+}
-load_rc_config $name
run_rc_command "$1"
More information about the svn-ports-all
mailing list