Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 17 Mar 2020 17:23:45 +0000 (UTC)
From:      Vasil Dimov <vd@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r528588 - in head/net-p2p/c-lightning: . files
Message-ID:  <202003171723.02HHNjSZ005000@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
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@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"



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202003171723.02HHNjSZ005000>