svn commit: r528588 - in head/net-p2p/c-lightning: . files
Vasil Dimov
vd at FreeBSD.org
Tue Mar 17 17:23:46 UTC 2020
Author: vd
Date: Tue Mar 17 17:23:45 2020
New Revision: 528588
URL: https://svnweb.freebsd.org/changeset/ports/528588
Log:
net-p2p/c-lightning: fix on head and wait bitcoind
* Fix compilation on FreeBSD 13-CURRENT
* Instruct rc(8) to start lightningd after bitcoind, if the latter is to be
started on this host.
* Wait for bitcoind RPC to be available before starting lightningd because:
- even though bitcoind would start and its rc script exit, it will not serve
RPC requests immediately
- lightningd would not start if bitcoind RPC is not available
Modified:
head/net-p2p/c-lightning/Makefile
head/net-p2p/c-lightning/distinfo
head/net-p2p/c-lightning/files/lightningd.in
Modified: head/net-p2p/c-lightning/Makefile
==============================================================================
--- head/net-p2p/c-lightning/Makefile Tue Mar 17 17:17:58 2020 (r528587)
+++ head/net-p2p/c-lightning/Makefile Tue Mar 17 17:23:45 2020 (r528588)
@@ -4,11 +4,15 @@
PORTNAME= c-lightning
# To build from an arbitrary git commit comment PORTVERSION and PORTREVISION (if present)
PORTVERSION= 0.8.1
+PORTREVISION= 1
DISTVERSIONPREFIX= v
# and uncomment the following two lines (use for example -git-HEAD or -git-f8d8348c)
#PORTVERSION= 0
#PKGNAMESUFFIX= -git-f8d8348c
CATEGORIES= net-p2p finance
+
+PATCH_SITES= https://github.com/${GH_ACCOUNT}/${GH_PROJECT}/commit/
+PATCHFILES+= 67fdc507.patch:-p1 # https://github.com/ElementsProject/lightning/pull/3594
MAINTAINER= vd at FreeBSD.org
COMMENT= Lightning Network implementation in C
Modified: head/net-p2p/c-lightning/distinfo
==============================================================================
--- head/net-p2p/c-lightning/distinfo Tue Mar 17 17:17:58 2020 (r528587)
+++ head/net-p2p/c-lightning/distinfo Tue Mar 17 17:23:45 2020 (r528588)
@@ -1,4 +1,4 @@
-TIMESTAMP = 1582009617
+TIMESTAMP = 1584465209
SHA256 (ElementsProject-lightning-v0.8.1_GH0.tar.gz) = fee0ddaa23c4d143f5ce1d2c2c5a219891d69e0eca0ac636b2a42bf19cb42ede
SIZE (ElementsProject-lightning-v0.8.1_GH0.tar.gz) = 2683725
SHA256 (ElementsProject-libwally-core-release_0.7.5_GH0.tar.gz) = e37b30be66dff973ad979d176f0d8e87331304769214522a0782bbbb79c18ec6
@@ -7,3 +7,5 @@ SHA256 (ianlancetaylor-libbacktrace-5a99ff7fed66b8e_GH
SIZE (ianlancetaylor-libbacktrace-5a99ff7fed66b8e_GH0.tar.gz) = 509368
SHA256 (zserge-jsmn-v1.0.0_GH0.tar.gz) = 5b1f46312cf205e6a0923a0656893bde9e022c76d06d980958fa8dbf79f0ea06
SIZE (zserge-jsmn-v1.0.0_GH0.tar.gz) = 11035
+SHA256 (67fdc507.patch) = f46d701ee9b3de11af3ed031834e553eb49baaeffee25f677270dbf99321821e
+SIZE (67fdc507.patch) = 2265
Modified: head/net-p2p/c-lightning/files/lightningd.in
==============================================================================
--- head/net-p2p/c-lightning/files/lightningd.in Tue Mar 17 17:17:58 2020 (r528587)
+++ head/net-p2p/c-lightning/files/lightningd.in Tue Mar 17 17:23:45 2020 (r528588)
@@ -2,7 +2,7 @@
# $FreeBSD$
# PROVIDE: lightningd
-# REQUIRE: LOGIN cleanvar
+# REQUIRE: LOGIN bitcoind cleanvar
# KEYWORD: shutdown
# Add the following to %%LOCALBASE%%/etc/rc.conf.d/lightningd to influence
@@ -30,6 +30,7 @@ load_rc_config ${name}
: ${lightningd_network:="bitcoin"}
: ${lightningd_conf:="%%PREFIX%%/etc/${name}-${lightningd_network}.conf"}
+start_precmd="lightningd_start_precmd"
pidfile="${lightningd_base_dir}/lightningd-${lightningd_network}.pid"
command="%%PREFIX%%/bin/lightningd"
command_args=""
@@ -49,5 +50,44 @@ if [ -e "${lightningd_conf}" ] ; then
fi
command_args="${command_args} ${lightningd_extra_args}"
+
+check_bitcoind_ready()
+{
+ bitcoin-cli \
+ -rpcconnect=${bitcoin_addr}${bitcoin_port:+":"}${bitcoin_port} \
+ -rpcuser=${bitcoin_user} \
+ -stdinrpcpass \
+ echo itworks <<PASS
+${bitcoin_pass}
+PASS
+}
+
+lightningd_start_precmd()
+{
+ # Wait for bitcoind to be fully operational. lightningd would quit (refuse
+ # to start) if it can't talk to bitcoind via its RPC.
+ bitcoin_addr="`grep ^bitcoin-rpcconnect= "${lightningd_conf}" |cut -f 2- -d =`"
+ bitcoin_port="`grep ^bitcoin-rpcport= "${lightningd_conf}" |cut -f 2- -d =`"
+ bitcoin_user="`grep ^bitcoin-rpcuser= "${lightningd_conf}" |cut -f 2- -d =`"
+ bitcoin_pass="`grep ^bitcoin-rpcpassword= "${lightningd_conf}" |cut -f 2- -d =`"
+
+ i=20
+ while : ; do
+ if [ $i -eq 0 ] ; then
+ # Show errors from last attempt.
+ if ! check_bitcoind_ready ; then
+ echo "Failed: bitcoind did not start serving RPC, starting lightningd anyway"
+ fi
+ break
+ else
+ if check_bitcoind_ready > /dev/null 2>&1; then
+ break
+ fi
+ fi
+ echo "Waiting for bitcoind to start serving RPC, lightningd cannot start without it $i"
+ sleep 1
+ i=$((i - 1))
+ done
+}
run_rc_command "$1"
More information about the svn-ports-all
mailing list