- Firstly, the mozjs package for Ubuntu does not match the currently referenced one in the source
- Secondly, there are issues with some of the included header files
couchdb [master]$ ./configure -c
==> configuring couchdb in rel/couchdb.config
==> updating dependencies
==> config (get-deps)
==> b64url (get-deps)
==> ets_lru (get-deps)
==> khash (get-deps)
==> snappy (get-deps)
==> ioq (get-deps)
==> bear (get-deps)
==> meck (get-deps)
==> folsom (get-deps)
==> triq (get-deps)
==> hyper (get-deps)
==> ibrowse (get-deps)
==> jiffy (get-deps)
==> mochiweb (get-deps)
==> bcrypt (get-deps)
==> couch_epi (get-deps)
==> couch_log (get-deps)
==> chttpd (get-deps)
==> couch (get-deps)
==> couch_index (get-deps)
==> couch_mrview (get-deps)
==> couch_replicator (get-deps)
==> couch_plugins (get-deps)
==> couch_event (get-deps)
==> couch_stats (get-deps)
==> couch_peruser (get-deps)
==> couch_tests (get-deps)
==> ddoc_cache (get-deps)
==> fabric (get-deps)
==> global_changes (get-deps)
==> mango (get-deps)
==> mem3 (get-deps)
==> rexi (get-deps)
==> setup (get-deps)
==> rel (get-deps)
==> couchdb (get-deps)
==> couchdb (update-deps)
Updating config from {git,"https://github.com/apache/couchdb-config.git",
{tag,"1.0.3"}}
Updating b64url from {git,"https://github.com/apache/couchdb-b64url.git",
{tag,"1.0.1"}}
Updating ets_lru from {git,"https://github.com/apache/couchdb-ets-lru.git",
{tag,"1.0.0"}}
Updating khash from {git,"https://github.com/apache/couchdb-khash.git",
{tag,"1.0.1"}}
Updating snappy from {git,"https://github.com/apache/couchdb-snappy.git",
{tag,"CouchDB-1.0.1"}}
Updating ioq from {git,"https://github.com/apache/couchdb-ioq.git",
{tag,"1.0.1"}}
Updating docs from {git,"https://github.com/apache/couchdb-documentation",
{tag,"2.1.0"}}
Updating fauxton from {git,"https://github.com/apache/couchdb-fauxton",
{tag,"v1.1.15"}}
Updating folsom from {git,"https://github.com/apache/couchdb-folsom.git",
{tag,"CouchDB-0.8.2"}}
Updating hyper from {git,"https://github.com/apache/couchdb-hyper.git",
{tag,"CouchDB-2.2.0-3"}}
Updating ibrowse from {git,"https://github.com/apache/couchdb-ibrowse.git",
{tag,"CouchDB-4.0.1"}}
Updating jiffy from {git,"https://github.com/apache/couchdb-jiffy.git",
{tag,"CouchDB-0.14.11-2"}}
Updating mochiweb from {git,"https://github.com/apache/couchdb-mochiweb.git",
{tag,"v2.17.0"}}
Updating meck from {git,"https://github.com/apache/couchdb-meck.git",
{tag,"0.8.8"}}
Updating bcrypt from {git,"https://github.com/apache/couchdb-erlang-bcrypt",
{tag,"1.0.2"}}
Updating triq from {git,"https://github.com/apache/couchdb-triq.git",
{tag,"v1.2.0"}}
Updating bear from {git,"https://github.com/apache/couchdb-bear.git",
"008f48aff819126e281d5ccae80a258bf9bf9c30"}
You have configured Apache CouchDB, time to relax. Relax.
couchdb [master]$ cd ../couchdb-pkg/
couchdb-pkg [master]$ make build-couch $(lsb_release -cs) PLATFORM=$(lsb_release -cs)
cd ../couchdb && make dist
make[1]: Entering directory '/home/lee/projects/linaro/docker-hub/couchdb'
==> config (compile)
==> b64url (compile)
==> ets_lru (compile)
==> khash (compile)
==> snappy (compile)
==> ioq (compile)
==> bear (compile)
==> meck (compile)
==> folsom (compile)
==> triq (compile)
==> hyper (compile)
==> ibrowse (compile)
==> jiffy (compile)
==> mochiweb (compile)
==> bcrypt (compile)
make[2]: Entering directory '/home/lee/projects/linaro/docker-hub/couchdb/src/bcrypt/c_src'
make[2]: Nothing to be done for 'compile'.
make[2]: Leaving directory '/home/lee/projects/linaro/docker-hub/couchdb/src/bcrypt/c_src'
==> couch_epi (compile)
==> couch_log (compile)
==> chttpd (compile)
==> couch (compile)
Compiling /home/lee/projects/linaro/docker-hub/couchdb/src/couch/priv/couch_js/http.c
/home/lee/projects/linaro/docker-hub/couchdb/src/couch/priv/couch_js/http.c:18:10: fatal error: jsapi.h: No such file or directory
#include <jsapi.h>
^~~~~~~~~
compilation terminated.
ERROR: compile failed while processing /home/lee/projects/linaro/docker-hub/couchdb/src/couch: rebar_abort
Makefile:81: recipe for target 'couch' failed
make[1]: *** [couch] Error 1
make[1]: Leaving directory '/home/lee/projects/linaro/docker-hub/couchdb'
Makefile:87: recipe for target 'build-couch' failed
make: *** [build-couch] Error 2
couchdb-pkg [master]$ sudo apt install libmozjs-52-dev
Reading package lists... Done
Building dependency tree
Reading state information... Done
libmozjs-52-dev is already the newest version (52.8.1-0ubuntu0.18.04.1).
The following packages were automatically installed and are no longer required:
extlinux libboost-filesystem1.62.0 libboost-iostreams1.62.0 libboost-system1.62.0
Use 'sudo apt autoremove' to remove them.
0 to upgrade, 0 to newly install, 0 to remove and 220 not to upgrade.
couchdb-pkg [master]$ cemacs ../couchdb/src/couch/rebar.config.script
couchdb-pkg [master]$ git diff
diff --git a/src/couch/rebar.config.script b/src/couch/rebar.config.script
index 498ce3a82..f95c610c0 100644
--- a/src/couch/rebar.config.script
+++ b/src/couch/rebar.config.script
@@ -102,8 +102,8 @@ CompareSrc = ["priv/couch_ejson_compare/*.c"],
BaseSpecs = [
%% couchjs
- {"darwin", CouchJSPath, CouchJSSrc, [{env, [{"CFLAGS", JS_CFLAGS ++ " -DXP_UNIX -I/usr/local/include/js"}, {"LDFLAGS", JS_LDFLAGS ++ " -L/usr/local/lib"}]}]},
- {"linux", CouchJSPath, CouchJSSrc, [{env, [{"CFLAGS", JS_CFLAGS ++ " -DXP_UNIX -I/usr/include/js"}, {"LDFLAGS", JS_LDFLAGS ++ " -lm"}]}]},
+ {"darwin", CouchJSPath, CouchJSSrc, [{env, [{"CFLAGS", JS_CFLAGS ++ " -DXP_UNIX -I/usr/local/include/"}, {"LDFLAGS", JS_LDFLAGS ++ " -L/usr/local/lib"}]}]},
+ {"linux", CouchJSPath, CouchJSSrc, [{env, [{"CFLAGS", JS_CFLAGS ++ " -DXP_UNIX -I/usr/include/mozjs-52"}, {"LDFLAGS", JS_LDFLAGS ++ " -lm"}]}]},
{"bsd", CouchJSPath, CouchJSSrc, [{env, [{"CFLAGS", JS_CFLAGS ++ " -DXP_UNIX -I/usr/local/include/js"}, {"LDFLAGS", JS_LDFLAGS ++ " -L/usr/local/lib -lm"}]}]},
{"win32", CouchJSPath, CouchJSSrc, [{env, [{"CFLAGS", JS_CFLAGS ++ " /DXP_WIN /IC:\\relax\\js-1.8.5\\js\\src"}, {"LDFLAGS", JS_LDFLAGS}]}]},
% ICU
lee@dell:~/projects/linaro/docker-hub/couchdb-pkg [master]$ make build-couch $(lsb_release -cs) PLATFORM=$(lsb_release -cs)
cd ../couchdb && make dist
make[1]: Entering directory '/home/lee/projects/linaro/docker-hub/couchdb'
==> config (compile)
==> b64url (compile)
==> ets_lru (compile)
==> khash (compile)
==> snappy (compile)
==> ioq (compile)
==> bear (compile)
==> meck (compile)
==> folsom (compile)
==> triq (compile)
==> hyper (compile)
==> ibrowse (compile)
==> jiffy (compile)
==> mochiweb (compile)
==> bcrypt (compile)
make[2]: Entering directory '/home/lee/projects/linaro/docker-hub/couchdb/src/bcrypt/c_src'
make[2]: Nothing to be done for 'compile'.
make[2]: Leaving directory '/home/lee/projects/linaro/docker-hub/couchdb/src/bcrypt/c_src'
==> couch_epi (compile)
==> couch_log (compile)
==> chttpd (compile)
==> couch (compile)
Compiling /home/lee/projects/linaro/docker-hub/couchdb/src/couch/priv/couch_js/http.c
In file included from /usr/include/mozjs-52/mozilla/Move.h:12:0,
from /usr/include/mozjs-52/mozilla/AlreadyAddRefed.h:14,
from /usr/include/mozjs-52/jsapi.h:12,
from /home/lee/projects/linaro/docker-hub/couchdb/src/couch/priv/couch_js/http.c:18:
/usr/include/mozjs-52/mozilla/TypeTraits.h:22:1: error: unknown type name ‘namespace’
namespace mozilla {
^~~~~~~~~
/usr/include/mozjs-52/mozilla/TypeTraits.h:22:19: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token
namespace mozilla {
^
In file included from /usr/include/mozjs-52/mozilla/AlreadyAddRefed.h:14:0,
from /usr/include/mozjs-52/jsapi.h:12,
from /home/lee/projects/linaro/docker-hub/couchdb/src/couch/priv/couch_js/http.c:18:
/usr/include/mozjs-52/mozilla/Move.h:14:1: error: unknown type name ‘namespace’
namespace mozilla {
^~~~~~~~~
/usr/include/mozjs-52/mozilla/Move.h:14:19: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token
namespace mozilla {
^
In file included from /usr/include/mozjs-52/jsapi.h:12:0,
from /home/lee/projects/linaro/docker-hub/couchdb/src/couch/priv/couch_js/http.c:18:
/usr/include/mozjs-52/mozilla/AlreadyAddRefed.h:16:1: error: unknown type name ‘namespace’
namespace mozilla {
^~~~~~~~~
/usr/include/mozjs-52/mozilla/AlreadyAddRefed.h:16:19: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token
namespace mozilla {
^
/usr/include/mozjs-52/mozilla/AlreadyAddRefed.h:31:9: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘<’ token
template<class T>
^
In file included from /usr/include/mozjs-52/mozilla/FloatingPoint.h:14:0,
from /usr/include/mozjs-52/jsapi.h:13,
from /home/lee/projects/linaro/docker-hub/couchdb/src/couch/priv/couch_js/http.c:18:
/usr/include/mozjs-52/mozilla/Casting.h:17:1: error: unknown type name ‘namespace’
namespace mozilla {
^~~~~~~~~
/usr/include/mozjs-52/mozilla/Casting.h:17:19: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token
namespace mozilla {
^
In file included from /usr/include/mozjs-52/mozilla/FloatingPoint.h:15:0,
from /usr/include/mozjs-52/jsapi.h:13,
from /home/lee/projects/linaro/docker-hub/couchdb/src/couch/priv/couch_js/http.c:18:
/usr/include/mozjs-52/mozilla/MathAlgorithms.h:15:10: fatal error: cmath: No such file or directory
#include <cmath>
^~~~~~~
compilation terminated.
ERROR: compile failed while processing /home/lee/projects/linaro/docker-hub/couchdb/src/couch: rebar_abort
Makefile:81: recipe for target 'couch' failed
make[1]: *** [couch] Error 1
make[1]: Leaving directory '/home/lee/projects/linaro/docker-hub/couchdb'
Makefile:87: recipe for target 'build-couch' failed
make: *** [build-couch] Error 2