nginx/njs

hg tag 0.8.0 fails to run on Ubuntu 20.04.6 LTS

Closed this issue · 4 comments

Pulling the latest source code or 0.8.0 tag and running ./configure with no arguments, then make or make njs produces an unusable binary. However, the issue is not present on 0.7.12 or 0.7.11.

bperry@bperry-ThinkPad-X1-Carbon-6th:~/tmp/njs$ cd build/
bperry@bperry-ThinkPad-X1-Carbon-6th:~/tmp/njs/build$ ls
autoconf.err  external  Makefile  njs_auto_config.h  src
build         libnjs.a  njs       njs_modules.c      test
bperry@bperry-ThinkPad-X1-Carbon-6th:~/tmp/njs/build$ ./njs 
failed to open file: 'shell' (No such file or directory)
bperry@bperry-ThinkPad-X1-Carbon-6th:~/tmp/njs/build$ touch shell
bperry@bperry-ThinkPad-X1-Carbon-6th:~/tmp/njs/build$ ./njs 
undefined
bperry@bperry-ThinkPad-X1-Carbon-6th:~/tmp/njs/build$ echo '1**2' | ./njs 
undefined
bperry@bperry-ThinkPad-X1-Carbon-6th:~/tmp/njs/build$ echo '1**2' | ./njs -q
undefined
bperry@bperry-ThinkPad-X1-Carbon-6th:~/tmp/njs/build$ 

0.7.11

bperry@bperry-ThinkPad-X1-Carbon-6th:~/tmp/njs/build$ ./njs
interactive njs 0.7.11

v.<Tab> -> the properties and prototype methods of v.

>>

Looks like this is caused when libreadline-dev is not installed. Not an issue with code. Feel free to close this.

I think we can still provide a better UX rather than a cryptic error message

@brandonprry

Looks like this is caused when libreadline-dev is not installed.

Since 0.8.0 the support for libreadline was removed, instead the BSD variants are used now.
When no appropriate library is found njs CLI compiles, but without interactive shell support.

checking for editline library in editline/readline.h ... not found
checking for editline in edit/readline/readline.h ... not found
checking for editline in readline/readline.h ... not found
 - njs CLI is built without interactive shell support

Can you please share the configure log? In the configure log we should see the exact library that was used.

@thresheek

I think we can still provide a better UX rather than a cryptic error message

Do you have any ideas on how we can improve the current message?