MFH: r522323

net-p2p/c-lightning: fix bitcoin-cli exec setup

lightningd does execute bitcoin-cli internally during runtime.

Fix two problems with that:

* The bitcoin-cli executable is usually located in
  /usr/local/bin/bitcoin-cli but service(8) would remove /usr/local/bin
  from PATH before executing our rc script /usr/local/etc/rc.d/lightningd
  and so the lightningd daemon would inherit a PATH that does not contain
  bitcoin-cli. To fix this give the full path to bitcoin-cli to lightningd.

* bitcoin-cli(1) tries to create its datadir when it starts if it does not
  exist. By default that is ${HOME}/.bitcoin. service(8) would set HOME=/
  and if / is mounted read-only, then this creation would fail. Because we
  don't want this directory created (it is not necessary and remains empty)
  tell lightningd to execute
  bitcoin-cli --datadir=/some/directory/that/already/exists.

Also, append ${lightningd_extra_args} to the lightingd arguments. This was
forgotten in the initial commit and setting lightningd_extra_args would have
had no effect.

Reported by:	https://github.com/bitcoin-software

Approved by:	portmgr ("fix broken ports")
This commit is contained in:
Mark Linimon 2020-01-11 08:00:17 +00:00
parent 955bac7527
commit 7b06501068
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/branches/2020Q1/; revision=522632
2 changed files with 10 additions and 0 deletions

View File

@ -4,6 +4,7 @@
PORTNAME= c-lightning
# To build from an arbitrary git commit comment PORTVERSION and PORTREVISION (if present)
PORTVERSION= 0.8.0
PORTREVISION= 1
DISTVERSIONPREFIX= v
# and uncomment the following two lines (use for example -git-HEAD or -git-f8d8348c)
#PORTVERSION= 0

View File

@ -36,9 +36,18 @@ command_args=""
command_args="${command_args} --lightning-dir=${lightningd_base_dir}"
command_args="${command_args} --network=${lightningd_network}"
command_args="${command_args} --daemon"
# service(8) would execute us with LOCALBASE stripped out from PATH,
# thus specify the full path to bitcoin-cli.
command_args="${command_args} --bitcoin-cli=%%LOCALBASE%%/bin/bitcoin-cli"
# bitcoin-cli(1) tries to create its "datadir" (by default ${HOME}/.bitcoin)
# if it does not exist. Provide something that already exists to avoid the
# creation of unnecessary empty directories.
command_args="${command_args} --bitcoin-datadir=${lightningd_base_dir}"
if [ -e "${lightningd_conf}" ] ; then
command_args="${command_args} --conf=${lightningd_conf}"
fi
command_args="${command_args} ${lightningd_extra_args}"
run_rc_command "$1"