Index: GIDs =================================================================== --- GIDs +++ GIDs @@ -812,8 +812,8 @@ # free: 869 # free: 870 # free: 871 -# free: 872 -# free: 873 +bitmark:*:872: +bitmark-recorder:*:873: # free: 874 # free: 875 # free: 876 Index: UIDs =================================================================== --- UIDs +++ UIDs @@ -817,8 +817,8 @@ # free: 869 # free: 870 archiva:*:871:871::0:0:Apache Archiva Daemon:/nonexistent:/usr/sbin/nologin -# free: 872 -# free: 873 +bitmark:*:872:872::0:0:Bitmark Property System:/var/lib/bitmarkd:/usr/sbin/nologin +bitmark-recorder:*:873:873::0:0:Bitmark Property Recorder:/var/lib/recorderd:/usr/sbin/nologin # free: 874 # free: 875 # free: 876 Index: net-p2p/bitmark-cli/Makefile =================================================================== --- /dev/null +++ net-p2p/bitmark-cli/Makefile @@ -0,0 +1,14 @@ +# $FreeBSD$ + +MASTERDIR= ${.CURDIR}/../bitmark +PKGNAMESUFFIX= -cli + +COMMENT= Bitmark distributed property system cli + +CONFLICTS?= bitmark +SLAVE_PORT= yes + +OPTIONS_DEFINE= CLI +OPTIONS_DEFAULT= CLI + +.include "${MASTERDIR}/Makefile" Index: net-p2p/bitmark-daemon/Makefile =================================================================== --- /dev/null +++ net-p2p/bitmark-daemon/Makefile @@ -0,0 +1,14 @@ +# $FreeBSD$ + +MASTERDIR= ${.CURDIR}/../bitmark +PKGNAMESUFFIX= -daemon + +COMMENT= Bitmark distributed property system daemon + +CONFLICTS?= bitmark +SLAVE_PORT= yes + +OPTIONS_DEFINE= DAEMON +OPTIONS_DEFAULT= DAEMON + +.include "${MASTERDIR}/Makefile" Index: net-p2p/bitmark-recorder/Makefile =================================================================== --- /dev/null +++ net-p2p/bitmark-recorder/Makefile @@ -0,0 +1,14 @@ +# $FreeBSD$ + +MASTERDIR= ${.CURDIR}/../bitmark +PKGNAMESUFFIX= -recorder + +COMMENT= Bitmark distributed property system recorder + +CONFLICTS?= bitmark +SLAVE_PORT= yes + +OPTIONS_DEFINE= RECORDER +OPTIONS_DEFAULT= RECORDER + +.include "${MASTERDIR}/Makefile" Index: net-p2p/bitmark/Makefile =================================================================== --- /dev/null +++ net-p2p/bitmark/Makefile @@ -0,0 +1,157 @@ +# $FreeBSD$ + +PORTNAME= bitmark +DISTVERSIONPREFIX= v +DISTVERSION= 0.12.4 +CATEGORIES= net-p2p + +MAINTAINER= hsw@bitmark.com +COMMENT?= Bitmark distributed property system programs + +LICENSE= ISCL +LICENSE_FILE= ${WRKSRC}/LICENSE + +ONLY_FOR_ARCHS= amd64 armv6 armv7 i386 +ONLY_FOR_ARCHS_REASON= depends on go which is not supported in this architecture + +LIB_DEPENDS= libargon2.so:security/libargon2 \ + libzmq.so:net/libzmq4 + +USES= pkgconfig go:modules + +CONFLICTS?= bitmark-{daemon,cli,recorder,dumper} +SLAVE_PORT?= no + +OPTIONS_DEFINE?= DAEMON CLI DUMPER RECORDER +OPTIONS_DEFAULT?= DAEMON CLI RECORDER +OPTIONS_SUB= yes + +DAEMON_DESC= Main bitmarkd node server +CLI_DESC= Command line program to access bitmarks +DUMPER_DESC= Utility to dump bitmarkd levelDB +RECORDER_DESC= Hashing program + +.include + +USE_GITHUB= yes +GH_ACCOUNT= bitmark-inc:DEFAULT +GH_PROJECT= bitmarkd +GH_TUPLE= \ + bitmark-inc:certgen:v0.1.1:bitmark_inc_certgen/vendor/github.com/bitmark-inc/certgen \ + bitmark-inc:exitwithstatus:v0.1.2:bitmark_inc_exitwithstatus/vendor/github.com/bitmark-inc/exitwithstatus \ + bitmark-inc:getoptions:v0.1.1:bitmark_inc_getoptions/vendor/github.com/bitmark-inc/getoptions \ + bitmark-inc:go-argon2:v0.1.4:bitmark_inc_go_argon2/vendor/github.com/bitmark-inc/go-argon2 \ + bitmark-inc:logger:v0.3.4:bitmark_inc_logger/vendor/github.com/bitmark-inc/logger \ + btcsuite:btcd:c26ffa870fd8:btcsuite_btcd/vendor/github.com/btcsuite/btcd \ + btcsuite:btclog:84c8d2346e9f:btcsuite_btclog/vendor/github.com/btcsuite/btclog \ + btcsuite:btcutil:9e5f4b9a998d:btcsuite_btcutil/vendor/github.com/btcsuite/btcutil \ + btcsuite:go-socks:4720035b7bfd:btcsuite_go_socks/vendor/github.com/btcsuite/go-socks \ + cihub:seelog:f561c5e57575:cihub_seelog/vendor/github.com/cihub/seelog \ + davecgh:go-spew:v1.1.0:davecgh_go_spew/vendor/github.com/davecgh/go-spew \ + fsnotify:fsnotify:v1.4.7:fsnotify_fsnotify/vendor/github.com/fsnotify/fsnotify \ + go-yaml:yaml:v2.2.2:go_yaml_yaml/vendor/gopkg.in/yaml.v2 \ + golang:crypto:9756ffdc2472:golang_crypto/vendor/golang.org/x/crypto \ + golang:net:ba9fcec4b297:golang_net/vendor/golang.org/x/net \ + golang:snappy:v0.0.1:golang_snappy/vendor/github.com/golang/snappy \ + golang:sync:112230192c58:golang_sync/vendor/golang.org/x/sync \ + golang:sys:749cb33beabd:golang_sys/vendor/golang.org/x/sys \ + golang:time:9d24e82272b4:golang_time/vendor/golang.org/x/time \ + miekg:dns:v1.1.16:miekg_dns/vendor/github.com/miekg/dns \ + mitchellh:mapstructure:v1.1.2:mitchellh_mapstructure/vendor/github.com/mitchellh/mapstructure \ + patrickmn:go-cache:v2.1.0:patrickmn_go_cache/vendor/github.com/patrickmn/go-cache \ + pebbe:zmq4:v1.0.0:pebbe_zmq4/vendor/github.com/pebbe/zmq4 \ + syndtr:goleveldb:v1.0.0:syndtr_goleveldb/vendor/github.com/syndtr/goleveldb \ + urfave:cli:v1.21.0:urfave_cli/vendor/github.com/urfave/cli \ + yuin:gluamapper:d836955830e7:yuin_gluamapper/vendor/github.com/yuin/gluamapper \ + yuin:gopher-lua:1cd887cd7036:yuin_gopher_lua/vendor/github.com/yuin/gopher-lua + +STRIP= # stripping can break go binaries + +SLAVE_PORT?= NO + +VAR_DIR= /var + +.if ${PORT_OPTIONS:MDAEMON} +USERS+= bitmark +GROUPS+= bitmark +BITMARKD_RUN= ${VAR_DIR}/run/bitmarkd +BITMARKD_DATA= ${VAR_DIR}/lib/bitmarkd +SERVER_LIST+= bitmarkd +USE_RC_SUBR+= bitmarkd +SUB_LIST+= BITMARKD_USER=bitmark \ + BITMARKD_GROUP=bitmark \ + BITMARKD_RUN=${BITMARKD_RUN} \ + BITMARKD_DATA=${BITMARKD_DATA} +PLIST_FILES+= "etc/bitmarkd.conf.sub" +.endif + +.if ${PORT_OPTIONS:MRECORDER} +USERS+= bitmark-recorder +GROUPS+= bitmark-recorder +RECORDERD_RUN= ${VAR_DIR}/run/recorderd +RECORDERD_DATA= ${VAR_DIR}/lib/recorderd +SERVER_LIST+= recorderd +USE_RC_SUBR+= recorderd +SUB_LIST+= RECORDERD_USER=bitmark-recorder \ + RECORDERD_GROUP=bitmark-recorder \ + RECORDERD_RUN=${RECORDERD_RUN} \ + RECORDERD_DATA=${RECORDERD_DATA} +.endif + +.if ${PORT_OPTIONS:MCLI} +COMMAND_LIST+= bitmark-cli +.endif +.if ${PORT_OPTIONS:MDUMPER} +COMMAND_LIST+= bitmark-dumpdb +.endif + +.for command in ${SERVER_LIST} +PLIST_FILES+= "@sample etc/${command}.conf.sample" \ + sbin/${command} \ + etc/syslog.d/${command}.conf \ + etc/newsyslog.conf.d/${command}.conf +.endfor +.for command in ${COMMAND_LIST} +PLIST_FILES+= bin/${command} +.endfor +.if ${PORT_OPTIONS:MDAEMON} +PLIST_FILES+= "@dir(bitmark,bitmark,) ${BITMARKD_DATA}" \ + "@dir(bitmark,bitmark,) ${BITMARKD_RUN}" +.endif +.if ${PORT_OPTIONS:MRECORDER} +PLIST_FILES+= "@dir(bitmark-recorder,bitmark-recorder,) ${RECORDERD_DATA}" \ + "@dir(bitmark-recorder,bitmark-recorder,) ${RECORDERD_RUN}" +.endif +.if ${PORT_OPTIONS:MDAEMON} || ${PORT_OPTIONS:MRECORDER} +PLIST_FILES+= "@dir ${VAR_DIR}/lib" +.endif + +GO_BUILDFLAGS+= -ldflags="-X main.version=${DISTVERSION}" + +.for command in ${SERVER_LIST} ${COMMAND_LIST} +GO_TARGET+= ./command/${command} +.endfor + +do-install: +.for command in ${SERVER_LIST} + ${INSTALL_PROGRAM} ${WRKDIR}/bin/${command} ${STAGEDIR}${PREFIX}/sbin + ${INSTALL_DATA} ${WRKSRC}/command/${command}/${command}.conf.sample ${STAGEDIR}${PREFIX}/etc/${command}.conf.sample + ${MKDIR} ${STAGEDIR}${PREFIX}/etc/syslog.d + ${MKDIR} ${STAGEDIR}${PREFIX}/etc/newsyslog.conf.d + ${INSTALL_DATA} ${FILESDIR}/${command}.syslog ${STAGEDIR}${PREFIX}/etc/syslog.d/${command}.conf + ${INSTALL_DATA} ${FILESDIR}/${command}.newsyslog ${STAGEDIR}${PREFIX}/etc/newsyslog.conf.d/${command}.conf +.endfor +.for command in ${COMMAND_LIST} + ${INSTALL_PROGRAM} ${WRKDIR}/bin/${command} ${STAGEDIR}${PREFIX}/bin +.endfor +.if ${PORT_OPTIONS:MDAEMON} + ${INSTALL_DATA} ${WRKSRC}/command/bitmarkd/bitmarkd.conf.sub ${STAGEDIR}${PREFIX}/etc/bitmarkd.conf.sub + ${MKDIR} ${STAGEDIR}${BITMARKD_RUN} + ${MKDIR} ${STAGEDIR}${BITMARKD_DATA} +.endif +.if ${PORT_OPTIONS:MRECORDER} + ${MKDIR} ${STAGEDIR}${RECORDERD_RUN} + ${MKDIR} ${STAGEDIR}${RECORDERD_DATA} +.endif + +.include Index: net-p2p/bitmark/distinfo =================================================================== --- /dev/null +++ net-p2p/bitmark/distinfo @@ -0,0 +1,57 @@ +TIMESTAMP = 1578977731 +SHA256 (bitmark-inc-bitmarkd-v0.12.4_GH0.tar.gz) = 36401fcee56c3d19f4cddcd34098a33a94a7fad23e0b4d807cf9f756246ce61f +SIZE (bitmark-inc-bitmarkd-v0.12.4_GH0.tar.gz) = 446701 +SHA256 (bitmark-inc-certgen-v0.1.1_GH0.tar.gz) = 8f298113dc155afb0d8991afcc9611f9f6fa213d89c5d35a7fa7a526b1baaf7c +SIZE (bitmark-inc-certgen-v0.1.1_GH0.tar.gz) = 2349 +SHA256 (bitmark-inc-exitwithstatus-v0.1.2_GH0.tar.gz) = 1c54ae7d58cfc09b252f2f62b295b11ce66dd0a4d17d28a742b49d39a5129073 +SIZE (bitmark-inc-exitwithstatus-v0.1.2_GH0.tar.gz) = 1813 +SHA256 (bitmark-inc-getoptions-v0.1.1_GH0.tar.gz) = 7d817d764b1b7bcec6d8110f906f805bb938904134f300df53330cc5b506dc47 +SIZE (bitmark-inc-getoptions-v0.1.1_GH0.tar.gz) = 4087 +SHA256 (bitmark-inc-go-argon2-v0.1.4_GH0.tar.gz) = 0eb9e51725dc6997ecbd959296ff9b4487a8d3b661cb0c7335be056871418c67 +SIZE (bitmark-inc-go-argon2-v0.1.4_GH0.tar.gz) = 7430 +SHA256 (bitmark-inc-logger-v0.3.4_GH0.tar.gz) = 7ae8ea52f6a2e395d073477572bddcd8ea8b1e43e782c9c882c1dab7f727096e +SIZE (bitmark-inc-logger-v0.3.4_GH0.tar.gz) = 6060 +SHA256 (btcsuite-btcd-c26ffa870fd8_GH0.tar.gz) = 4396980fa0dae026b4de0b648270343905bee38a1913f0103c5b4c4a9e9db240 +SIZE (btcsuite-btcd-c26ffa870fd8_GH0.tar.gz) = 2840544 +SHA256 (btcsuite-btclog-84c8d2346e9f_GH0.tar.gz) = f31154671fc11e8731ef563f37a25dedc69819bc7f1c7d2395a58314e6b89ee1 +SIZE (btcsuite-btclog-84c8d2346e9f_GH0.tar.gz) = 7045 +SHA256 (btcsuite-btcutil-9e5f4b9a998d_GH0.tar.gz) = 32c79162921b370c7402ca22ad1c48c6fd60e7a64d433077267764ea4f53481b +SIZE (btcsuite-btcutil-9e5f4b9a998d_GH0.tar.gz) = 104581 +SHA256 (btcsuite-go-socks-4720035b7bfd_GH0.tar.gz) = 22c5444550941cc67c1117d2fcf2dcd3c3f0878c9af0386e7a818a3ac3d8338d +SIZE (btcsuite-go-socks-4720035b7bfd_GH0.tar.gz) = 3391 +SHA256 (cihub-seelog-f561c5e57575_GH0.tar.gz) = e7fae3b72e1e5c5a3898ae76accd411903996e7ec75d7af3b97bba12dcdf762f +SIZE (cihub-seelog-f561c5e57575_GH0.tar.gz) = 66529 +SHA256 (davecgh-go-spew-v1.1.0_GH0.tar.gz) = 1f7e0bd2db0341925b5f2ee5834e99380f4c2b1bd36cf0fa62d7717899d39d62 +SIZE (davecgh-go-spew-v1.1.0_GH0.tar.gz) = 42337 +SHA256 (fsnotify-fsnotify-v1.4.7_GH0.tar.gz) = b7530d973d0ab0e58ad8ce1b9a4b963d6f57b3d72f2f9e13d49846976361b1cd +SIZE (fsnotify-fsnotify-v1.4.7_GH0.tar.gz) = 31139 +SHA256 (go-yaml-yaml-v2.2.2_GH0.tar.gz) = 42c3e4ef9eca2860d22b3c6c5582c6c13fb4b417e5ebc1acc56ee5e2c4ddcaff +SIZE (go-yaml-yaml-v2.2.2_GH0.tar.gz) = 70656 +SHA256 (golang-crypto-9756ffdc2472_GH0.tar.gz) = 6af409930c3a9313b33f9b8da1a2c24da8ffa07c4fcd55356a77a2f09a0d6326 +SIZE (golang-crypto-9756ffdc2472_GH0.tar.gz) = 1693048 +SHA256 (golang-net-ba9fcec4b297_GH0.tar.gz) = eae512644d59db05f5420315897daf1315beee1b07c723703922d6174f28b993 +SIZE (golang-net-ba9fcec4b297_GH0.tar.gz) = 1100029 +SHA256 (golang-snappy-v0.0.1_GH0.tar.gz) = b1d97f47fcb61cb0cdd54bc424eda980c47838effb0ec9e322506514a50fee85 +SIZE (golang-snappy-v0.0.1_GH0.tar.gz) = 62605 +SHA256 (golang-sync-112230192c58_GH0.tar.gz) = 6d98880ea18369550cb12d7011df8e4b21c5b7588268a412b863b5c9d2fa0313 +SIZE (golang-sync-112230192c58_GH0.tar.gz) = 16832 +SHA256 (golang-sys-749cb33beabd_GH0.tar.gz) = 28c13d4255f8f0ecb56011e096bf4daa98bebbe691d23f9e9d2fad84315c638e +SIZE (golang-sys-749cb33beabd_GH0.tar.gz) = 1468372 +SHA256 (golang-time-9d24e82272b4_GH0.tar.gz) = 7452a7b879ee5984709b2165f6212ad9464977f06d440140b8690e61695aa404 +SIZE (golang-time-9d24e82272b4_GH0.tar.gz) = 9313 +SHA256 (miekg-dns-v1.1.16_GH0.tar.gz) = d9b7ea5d9fab6b0557efdeea92a32988af5d92395233e71a5f140331e1c8f958 +SIZE (miekg-dns-v1.1.16_GH0.tar.gz) = 175581 +SHA256 (mitchellh-mapstructure-v1.1.2_GH0.tar.gz) = 53fbc06b125ff1c9c73a4eb1764346932671a29c67a45a92e2ebc6855635069b +SIZE (mitchellh-mapstructure-v1.1.2_GH0.tar.gz) = 20980 +SHA256 (patrickmn-go-cache-v2.1.0_GH0.tar.gz) = 3ab025f2f580f8818a5357db52596fef1b0ad5945816a022c8b805ba46dc93be +SIZE (patrickmn-go-cache-v2.1.0_GH0.tar.gz) = 13572 +SHA256 (pebbe-zmq4-v1.0.0_GH0.tar.gz) = 269e0fb8b51a2c9a9086f4f7c8699a075362ffecb09f653da0bf6f7a6ee8e785 +SIZE (pebbe-zmq4-v1.0.0_GH0.tar.gz) = 115287 +SHA256 (syndtr-goleveldb-v1.0.0_GH0.tar.gz) = c80191f7f77b41d6cb3d1c6de1d42a9b8177656ee49c256d2df2b95a893cf8b8 +SIZE (syndtr-goleveldb-v1.0.0_GH0.tar.gz) = 142710 +SHA256 (urfave-cli-v1.21.0_GH0.tar.gz) = 70cfdfbd3eae784238bae4b3e14b84c369aef85faa4e02062013418fd2bf2f92 +SIZE (urfave-cli-v1.21.0_GH0.tar.gz) = 68419 +SHA256 (yuin-gluamapper-d836955830e7_GH0.tar.gz) = 966a0062fa11526c7eb3b97a7b47a24be792cc60babaab93a918f15f113fcad4 +SIZE (yuin-gluamapper-d836955830e7_GH0.tar.gz) = 3472 +SHA256 (yuin-gopher-lua-1cd887cd7036_GH0.tar.gz) = f561feeff662cc54008645264743ac006981ebe61d841d1daa93176902f54478 +SIZE (yuin-gopher-lua-1cd887cd7036_GH0.tar.gz) = 159542 Index: net-p2p/bitmark/files/bitmarkd.in =================================================================== --- /dev/null +++ net-p2p/bitmark/files/bitmarkd.in @@ -0,0 +1,158 @@ +#!/bin/sh +# $FreeBSD$ + +# PROVIDE: bitmarkd +# REQUIRE: LOGIN cleanvar +# KEYWORD: shutdown + +# Add the following lines to /etc/rc.conf to enable: +# bitmarkd_enable (bool) Set to "NO" by default. +# Set it to "YES" to enable bitmarkd +# bitmarkd_options (str) Set to "" by default +# bitmarkd_user (str) Set to "%%BITMARKD_USER%%" by default. +# bitmarkd_group (str) Set to "%%BITMARKD_GROUP%%" by default. +# bitmarkd_config_file (str) Set to "%%PREFIX%%/etc/${name}.conf" by default. +# bitmarkd_data_dir (str) Set to "%%BITMARKD_DATA%%" by default. +# bitmarkd_run_dir (str) Set to "%%BITMARKD_RUN%%" by default. +# bitmarkd_syslog_enable (bool) Set to "NO" by default. +# Set it to "YES" to enable syslog stdout/stderr +# bitmarkd_ec2_ipv4_enable (bool) Set to NO by default. +# Set it to"YES" to fetch EC2 public IPv4. +# bitmarkd_ec2_url (str) +# Set to "http://169.254.169.254/2016-09-02/meta-data/public-ipv4" by default. +# Expects this to return just the IPv4 address. +# bitmarkd_ec2_cmd (str) Set to "fetch -q -o -" by default. +# bitmarkdlimits_enable (bool) Set to "NO" by default. +# Set it to "YES" to enable bitmarkdlimits +# bitmarkdlimits_args (str) Set to "-e -U ${bitmarkd_user}" by default + +. /etc/rc.subr + +name="bitmarkd" +rcvar=bitmarkd_enable + +load_rc_config ${name} + +: ${bitmarkd_enable:="NO"} +: ${bitmarkd_options:=""} +: ${bitmarkd_user:="%%BITMARKD_USER%%"} +: ${bitmarkd_group:="%%BITMARKD_GROUP%%"} +: ${bitmarkd_config_file:="%%PREFIX%%/etc/${name}.conf"} +: ${bitmarkd_data_dir:="%%BITMARKD_DATA%%"} +: ${bitmarkd_run_dir:="%%BITMARKD_RUN%%"} +: ${bitmarkd_syslog_enable:="NO"} + +: ${bitmarkd_ec2_ipv4_enable:="NO"} +: ${bitmarkd_ec2_url:="http://169.254.169.254/2016-09-02/meta-data/public-ipv4"} +: ${bitmarkd_ec2_cmd:="fetch -q -o -"} + +: ${bitmarkdlimits_enable:="NO"} +: ${bitmarkdlimits_args:="-e -U ${bitmarkd_user}"} + +start_precmd="${name}_precmd" +restart_precmd="${name}_checkconfig" +stop_postcmd="${name}_poststop" +keygen_cmd="${name}_keygen" +keygen_precmd="${name}_checkconfig" +dns_cmd="${name}_dns" +dns_precmd="${name}_checkconfig" +clearcache_cmd="${name}_clearcache" +clearcache_precmd="${name}_precmd" + +extra_commands='keygen dns clearcache' + +pidfile="${bitmarkd_run_dir}/${name}.pid" + +# bitmarkd creates its own PID file so need to remove if stale +lock_file="${bitmarkd_data_dir}/${name}.pid" + +required_files="${bitmarkd_config_file}" + +_bitmarkd_program="%%PREFIX%%/sbin/bitmarkd" +_bitmarkd_arguments="--quiet --config-file=${bitmarkd_config_file} ${bitmarkd_options}" + +command="/usr/sbin/daemon" +command_args="-f" +checkyesno bitmarkd_syslog_enable && command_args="-S -T bitmarkd" +command_args="${command_args} -P ${pidfile} -R 60 -- ${_bitmarkd_program} ${_bitmarkd_arguments}" +#procname=${_bitmarkd_program} # do not override procname as program runs under daemon + +# list of items for keygen +generate_list='gen-peer-identity gen-proof-identity gen-rpc-cert' + + +bitmarkd_checkdirs() +{ + local dir + for dir in "${bitmarkd_data_dir}" "${bitmarkd_run_dir}" + do + [ -d "${dir}" ] || install -d -o "${bitmarkd_user}" -g "${bitmarkd_group}" -m 770 "${dir}" + done + cd "${bitmarkd_data_dir}" +} + +bitmarkd_checkconfig() +{ + bitmarkd_checkdirs + + #echo "Performing sanity check on bitmarkd configuration:" + #eval ${command} ${bitmarkd_flags} -t + + # set environment for bitmarkd to access the currently assigned EC2 public IPv4 + if checkyesno bitmarkd_ec2_ipv4_enable + then + PUBLIC_IPV4=$(${bitmarkd_ec2_cmd} "${bitmarkd_ec2_url}") + export PUBLIC_IPV4 + fi +} + +bitmarkd_precmd() +{ + bitmarkd_checkconfig + + pid=$(check_pidfile "${pidfile}" "${command}") + if [ -n "${pid}" ] + then + echo "another bitmarkd is running on pid: ${pid}" + return 1 + else + rm -f "${pidfile}" + fi + + if checkyesno bitmarkdlimits_enable + then + eval $(/usr/bin/limits ${bitmarkdlimits_args}) 2>/dev/null + else + return 0 + fi +} + +bitmarkd_poststop() +{ + rm -f "${pidfile}" + rm -f "${lock_file}" +} + +bitmarkd_keygen() +{ + for c in ${generate_list} + do + su -m "${bitmarkd_user}" -c "${_bitmarkd_program} ${_bitmarkd_arguments} ${c} ${bitmarkd_data_dir}" + done +} + +bitmarkd_dns() +{ + su -m "${bitmarkd_user}" -c "${_bitmarkd_program} ${_bitmarkd_arguments} dns-txt" +} + +bitmarkd_clearcache() +{ + local file + for file in "${bitmarkd_data_dir}/"*.cache + do + [ -f "${file}" ] && rm "${file}" + done +} + +run_rc_command "$1" Index: net-p2p/bitmark/files/bitmarkd.newsyslog =================================================================== --- /dev/null +++ net-p2p/bitmark/files/bitmarkd.newsyslog @@ -0,0 +1,2 @@ +# bitmarkd syslog rotation +/var/lib/bitmarkd/log/bitmarkd.syslog root:wheel 644 7 1000 * CJ Index: net-p2p/bitmark/files/bitmarkd.syslog =================================================================== --- /dev/null +++ net-p2p/bitmark/files/bitmarkd.syslog @@ -0,0 +1,3 @@ +# bitmarkd syslog +!+bitmarkd +daemon.info /var/lib/bitmarkd/log/bitmarkd.syslog Index: net-p2p/bitmark/files/recorderd.in =================================================================== --- /dev/null +++ net-p2p/bitmark/files/recorderd.in @@ -0,0 +1,122 @@ +#!/bin/sh +# $FreeBSD$ + +# PROVIDE: recorderd +# REQUIRE: LOGIN cleanvar +# KEYWORD: shutdown + +# Add the following lines to /etc/rc.conf to enable: +# recorderd_enable (bool) Set to "NO" by default. +# Set it to "YES" to enable recorderd +# recorderd_options (str) Set to "" by default +# recorderd_user (str) Set to "%%RECORDERD_USER%%" by default. +# recorderd_group (str) Set to "%%RECORDERD_GROUP%%" by default. +# recorderd_config_file (str) Set to "%%PREFIX%%/etc/${name}.conf" by default. +# recorderd_data_dir (str) Set to "%%RECORDERD_DATA%%" by default. +# recorderd_run_dir (str) Set to "%%RECORDERD_RUN%%" by default. +# recorderd_syslog_enable (bool) Set to "NO" by default. +# Set it to "YES" to enable syslog stdout/stderr +# recorderdlimits_enable (bool) Set to "NO" by default. +# Set it to "YES" to enable recorderdlimits +# recorderdlimits_args (str) Set to "-e -U ${recorderd_user}" by default + +. /etc/rc.subr + +name="recorderd" +rcvar=recorderd_enable + +load_rc_config ${name} + +: ${recorderd_enable:="NO"} +: ${recorderd_options:=""} +: ${recorderd_user:="%%RECORDERD_USER%%"} +: ${recorderd_group:="%%RECORDERD_GROUP%%"} +: ${recorderd_config_file:="%%PREFIX%%/etc/${name}.conf"} +: ${recorderd_data_dir:="%%RECORDERD_DATA%%"} +: ${recorderd_run_dir:="%%RECORDERD_RUN%%"} +: ${recorderd_syslog_enable:="NO"} + +: ${recorderdlimits_enable:="NO"} +: ${recorderdlimits_args:="-e -U ${recorderd_user}"} + +start_precmd="${name}_precmd" +restart_precmd="${name}_checkconfig" +stop_postcmd="${name}_poststop" +keygen_cmd="${name}_keygen" +keygen_precmd="${name}_checkconfig" + +extra_commands='keygen' + +pidfile="${recorderd_run_dir}/${name}.pid" + +# recorderd creates it own PID file so need to remove if stale +lock_file="${recorderd_data_dir}/${name}.pid" + +required_files="${recorderd_config_file}" + +_recorderd_program="%%PREFIX%%/sbin/recorderd" +_recorderd_arguments="--quiet --config-file=${recorderd_config_file} ${recorderd_options}" + +command="/usr/sbin/daemon" +command_args="-f" +checkyesno recorderd_syslog_enable && command_args="-S -T recorderd" +command_args="${command_args} -P ${pidfile} -R 60 -- ${_recorderd_program} ${_recorderd_arguments}" +#procname=${_recorderd_program} # do not override procname as program runs under daemon + + +recorderd_checkdirs() +{ + local dir + for dir in "${recorderd_data_dir}" "${recorderd_run_dir}" + do + [ -d "${dir}" ] || install -d -o "${recorderd_user}" -g "${recorderd_group}" -m 770 "${dir}" + done + cd "${recorderd_data_dir}" +} + +recorderd_checkconfig() +{ + recorderd_checkdirs + + #echo "Performing sanity check on recorderd configuration:" + #eval ${command} ${recorderd_flags} -t +} + +recorderd_precmd() +{ + recorderd_checkconfig + + if [ -e "${lock_file}" ] + then + pid=$(check_pidfile "${lock_file}" "${_recorderd_program}") + if [ -n "${pid}" ] + then + echo "another recorderd is running on pid: ${pid}" + else + rm -f "${lock_file}" + fi + fi + + if checkyesno recorderdlimits_enable + then + eval $(/usr/bin/limits ${recorderdlimits_args}) 2>/dev/null + else + return 0 + fi +} + +recorderd_poststop() +{ + rm -f "${pidfile}" + rm -f "${lock_file}" +} + +recorderd_keygen() +{ + for c in generate-identity + do + su -m "${recorderd_user}" -c "${_recorderd_program} ${_recorderd_arguments} ${c} ${recorderd_data_dir}" + done +} + +run_rc_command "$1" Index: net-p2p/bitmark/files/recorderd.newsyslog =================================================================== --- /dev/null +++ net-p2p/bitmark/files/recorderd.newsyslog @@ -0,0 +1,2 @@ +# recorderd syslog rotation +/var/lib/recorderd/log/recorderd.syslog root:wheel 644 7 1000 * CJ Index: net-p2p/bitmark/files/recorderd.syslog =================================================================== --- /dev/null +++ net-p2p/bitmark/files/recorderd.syslog @@ -0,0 +1,3 @@ +# recorderd syslog +!+recorderd +daemon.info /var/lib/recorderd/log/recorderd.syslog Index: net-p2p/bitmark/pkg-descr =================================================================== --- /dev/null +++ net-p2p/bitmark/pkg-descr @@ -0,0 +1,3 @@ +The Bitmark distributed property system. + +WWW: https://github.com/bitmark-inc/bitmarkd