ElementsProject / lightning

Core Lightning — Lightning Network implementation focusing on spec compliance and performance
Other
2.83k stars 899 forks source link

Error building c-lightning #3063

Closed jeffsnguyen closed 5 years ago

jeffsnguyen commented 5 years ago

Issue and Steps to Reproduce

My c-lightning node (Ubuntu) was running fine in August. After updating at the end of august/early Sep, only the bitcoin node is running.

For lightning, I did the usual:

make distclean git pull ./configure make

It threw a mako error. Which I rectify by: sudo apt-get install -y \ autoconf automake build-essential git libtool libgmp-dev \ libsqlite3-dev python python3 python3-mako net-tools zlib1g-dev libsodium-dev \ git gettext

Then I ran

make distclean git pull ./configure make

again which seems fine.

However, when attempting to run lightningd/lightningd. It throws an error:


[1] 5618
-bash: ./lightningd/lightningd: No such file or directory

Not sure how to proceed from here. Please help.

ZmnSCPxj commented 5 years ago

Can you give result of ls -la ./lightningd from your build directory (the directory you run make in)?

jeffsnguyen commented 5 years ago
bitcoind.c                 io_loop_with_timers.h  onchain_control.o
bitcoind.h                 io_loop_with_timers.o  opening_control.c
bitcoind.o                 json.c                 opening_control.h
chaintopology.c            json.h                 opening_control.o
chaintopology.h            json.o                 options.c
chaintopology.o            jsonrpc.c              options.h
channel.c                  jsonrpc.h              options.o
channel_control.c          jsonrpc.o              pay.c
channel_control.h          json_stream.c          pay.h
channel_control.o          json_stream.h          pay.o
channel.h                  json_stream.o          peer_control.c
channel.o                  lightning_channeld     peer_control.h
channel_state.h            lightning_closingd     peer_control.o
closing_control.c          lightning_connectd     peer_htlcs.c
closing_control.h          lightningd.c           peer_htlcs.h
closing_control.o          lightningd.h           peer_htlcs.o
connect_control.c          lightningd.o           ping.c
connect_control.h          lightning_gossipd      ping.h
connect_control.o          lightning_hsmd         ping.o
gen_channel_state_names.h  lightning_onchaind     plugin.c
gossip_control.c           lightning_openingd     plugin_control.c
gossip_control.h           log.c                  plugin_control.h
gossip_control.o           log.h                  plugin_control.o
gossip_msg.c               log.o                  plugin.h
gossip_msg.h               log_status.c           plugin_hook.c
gossip_msg.o               log_status.h           plugin_hook.h
hsm_control.c              log_status.o           plugin_hook.o
hsm_control.h              Makefile               plugin.o
hsm_control.o              memdump.c              subd.c
htlc_end.c                 memdump.h              subd.h
htlc_end.h                 memdump.o              subd.o
htlc_end.o                 notification.c         test
invoice.c                  notification.h         watch.c
invoice.h                  notification.o         watch.h
invoice.o                  onchain_control.c      watch.o
io_loop_with_timers.c      onchain_control.h

I realize the lightningd is missing but no idea why and how to fix it.

ZmnSCPxj commented 5 years ago

Indeed, very strange.

Can you try make -p | fgrep "ALL_PROGRAMS" in your build directory?

ZmnSCPxj commented 5 years ago

Also, can you upload any config.vars you have in your build dir?

jeffsnguyen commented 5 years ago
make -p | fgrep "ALL_PROGRAMS"

make: xgettext: Command not found
make: *** [wallet/statements.po] Error 127
ALL_PROGRAMS =  lightningd/lightning_hsmd lightningd/lightning_gossipd lightningd/lightning_openingd lightningd/lightning_channeld lightningd/lightning_closingd lightningd/lightning_onchaind lightningd/lightning_connectd $(LIGHTNINGD_PROGRAM) cli/lightning-cli $(DEVTOOLS) plugins/pay plugins/autoclean plugins/fundchannel ccan/ccan/cdump/tools/cdump-enumstr
    $(RM) $(ALL_PROGRAMS) $(ALL_PROGRAMS:=.o)

config.vars

HAVE_32BIT_OFF_T=0
HAVE_ALIGNOF=1
HAVE_ASPRINTF=1
HAVE_ATTRIBUTE_COLD=1
HAVE_ATTRIBUTE_CONST=1
HAVE_ATTRIBUTE_DEPRECATED=0
HAVE_ATTRIBUTE_NONNULL=1
HAVE_ATTRIBUTE_SENTINEL=1
HAVE_ATTRIBUTE_PURE=1
HAVE_ATTRIBUTE_MAY_ALIAS=1
HAVE_ATTRIBUTE_NORETURN=1
HAVE_ATTRIBUTE_PRINTF=1
HAVE_ATTRIBUTE_UNUSED=1
HAVE_ATTRIBUTE_USED=1
HAVE_BACKTRACE=1
HAVE_BIG_ENDIAN=0
HAVE_BSWAP_64=1
HAVE_BUILTIN_CHOOSE_EXPR=1
HAVE_BUILTIN_CLZ=1
HAVE_BUILTIN_CLZL=1
HAVE_BUILTIN_CLZLL=1
HAVE_BUILTIN_CTZ=1
HAVE_BUILTIN_CTZL=1
HAVE_BUILTIN_CTZLL=1
HAVE_BUILTIN_CONSTANT_P=1
HAVE_BUILTIN_EXPECT=1
HAVE_BUILTIN_FFS=1
HAVE_BUILTIN_FFSL=1
HAVE_BUILTIN_FFSLL=1
HAVE_BUILTIN_POPCOUNT=1
HAVE_BUILTIN_POPCOUNTL=1
HAVE_BUILTIN_POPCOUNTLL=1
HAVE_BUILTIN_TYPES_COMPATIBLE_P=1
HAVE_ICCARM_INTRINSICS=0
HAVE_BYTESWAP_H=1
HAVE_CLOCK_GETTIME=1
HAVE_CLOCK_GETTIME_IN_LIBRT=0
HAVE_COMPOUND_LITERALS=1
HAVE_FCHDIR=1
HAVE_ERR_H=1
HAVE_FILE_OFFSET_BITS=0
HAVE_FOR_LOOP_DECLARATION=1
HAVE_FLEXIBLE_ARRAY_MEMBER=1
HAVE_GETPAGESIZE=1
HAVE_ISBLANK=1
HAVE_LITTLE_ENDIAN=1
HAVE_MEMMEM=1
HAVE_MEMRCHR=1
HAVE_MMAP=1
HAVE_PROC_SELF_MAPS=1
HAVE_QSORT_R_PRIVATE_LAST=1
HAVE_STRUCT_TIMESPEC=1
HAVE_SECTION_START_STOP=1
HAVE_STACK_GROWS_UPWARDS=0
HAVE_STATEMENT_EXPR=1
HAVE_SYS_FILIO_H=0
HAVE_SYS_TERMIOS_H=1
HAVE_SYS_UNISTD_H=1
HAVE_TYPEOF=1
HAVE_UNALIGNED_ACCESS=1
HAVE_UTIME=1
HAVE_WARN_UNUSED_RESULT=1
HAVE_OPENMP=1
HAVE_VALGRIND_MEMCHECK_H=0
HAVE_UCONTEXT=1
HAVE_POINTER_SAFE_MAKECONTEXT=1
HAVE_BUILTIN_CPU_SUPPORTS=1
HAVE_GOOD_LIBSODIUM=1
HAVE_SQLITE3_EXPANDED_SQL=1
HAVE_SQLITE3=1
HAVE_GCC=1
HAVE_MODERN_GCC=1
HAVE_PWRITEV=1
PREFIX=/usr/local
CC=cc
CONFIGURATOR_CC=cc
CWARNFLAGS=-Wall -Wundef -Wmissing-prototypes -Wmissing-declarations -Wstrict-prototypes -Wold-style-de$
CDEBUGFLAGS=-std=gnu11 -g -fstack-protector
COPTFLAGS=-Og
VALGRIND=0
DEVELOPER=0
EXPERIMENTAL_FEATURES=0
COMPAT=1
PYTEST=
STATIC=0
ASAN=0
ZmnSCPxj commented 5 years ago

$(LIGHTNINGD_PROGRAM) is lightningd/lightningd, which you can confirm by make -p | fgrep "LIGHTNINGD_PROGRAM", but the interesting bit is:

make: xgettext: Command not found

gettext is a new dependency. Could you try installing the gettext package on your system, then re-running a fresh make distclean; ./configure ; make and see if ls lightningd/lightningd now shows up?

jeffsnguyen commented 5 years ago

This works! You are amazing. Thank you.

Installing gettext solved it. lightningd/lightningd showed up abnd I was able to restart my node.