Hi Naomi. Welcome back!

Happy to answer these questions as best as I can, though others will have
to provide additional info...

> I would have expected `./configure` to alert me to the missing Erlang
> dependency. certainly, in the world of Autoconf, checking for the
> presence
> of useable dependencies is one of the primary functions of the
> `./configure` script

Right, none of this is in the current setup. Pull requests welcome, but
I really don't want to see a return to autoconf. The build process is
MUCH simpler now without it.

> fatal error: 'jsapi.h' file not found
> #include <jsapi.h>
>          ^~~~~~~~~
> 1 error generated.
> ERROR: compile failed while processing
> /private/tmp/couchdb/dist/apache-couchdb-2.3.0/src/couch: rebar_abort
> make: *** [couch] Error 1
> 
> so it seems like there's another dependency I don't have. but I can't
> tell
> just from looking at this error message what is missing

Right, that'd be SpiderMonkey 1.8.5 (libmozjs185-1.0). This is getting
increasingly difficult to build; Cloudant (Paul Davis) is working on
substituting a new JS runtime from Microsoft (chakra-code) but it's a
big undertaking.
 
> 1. what do I need to do to get this working?

Dependencies required are in the official docs:

  http://docs.couchdb.org/en/stable/install/unix.html#dependencies

We also have scripts over in apache/couchdb-ci that should install all
of the dependencies you need on Linux (bin/install-dependencies.sh), but
no one has stepped up to enhance these scripts for dependencies on
macOS / FreeBSD yet. (Windows is supported by the apache/couchdb-glazier
repository.)

> 2. I don't have any opinions re the removal of GNU Autoconf. I'm sure
> there
> was a reason, etc, etc. but it seems to me that the install
> experience is
> somewhat worse than the last time I looked at it. without the
> dependency
> checking in `./configure`, these messages are not a great first run
> experience. is this a known issue?

Yup, known issue - tragedy of the commons, I'm afraid.

2.x brought with it the bigcouch/Cloudant build chain, which is almost
entirely rebar based. It's very nice - especially with how the release
process works to build the self-contained Erlang runtime + all
dependencies in a relocatable fashion. There's no need for 99% of what
autoconf does anymore, since everything is handled within the Erlang
build chain. If you look at the Makefile, you'll see it's really not
much more than a shell script in Makefile format.

I've worked very hard to get the 2.x build chain working as well as
possible. Our CI system builds binary installers with every push to
master for 4 flavours of Linux across multiple versions. The Windows
build passes all tests (at least as often as Linux/macOS does) and the
apache/couchdb-glazier repo (thanks Dave!) makes building Windows
binaries a snap, too. Jan has kicked in his macOS build script for
binaries there, though we haven't yet brought that repo into the Apache
org (mostly because I think no one has stepped up to maintain it going
forward yet.) And finally, we build Docker images with every release
and support the downstream official Docker image with a Dockerfile that
is in widespread use.

> I'm aware there are installation guides. but a new user might not be.

Our download stats show that, overwhelmingly, people install from the
binaries we build, or use Docker. Those downloads account for more than
99.99% of the installs of CouchDB. The numbers are something like over a
million downloads of Docker + the binaries over the course of a year,
but merely thousands of downloads of the source tarball in the same
time frame.

Since the entire build infrastructure has fallen to me, and since
it's seemingly only developers that seem to need to have a properly
installed build chain, and since my time on CouchDB is solely as a
volunteer, I've put my efforts into maintaining and improving the CI-
focused scripts, while ensuring that they are also useful for devs
who want to use them to set up their own workstations with the
required dependencies. Once we have support for the remaining
platforms, I'm of the mindset that we recommend people use those
scripts to set up their build environment - or to read them should
they not wish to run them themselves.

But I'm open to other ideas - if hands are on deck to help. I am
thoroughly exhausted with keeping the build up to date and could sure
use some help.

> and
> the reason I'm sending this email now instead of looking up help is
> that
> the CouchDB docs are not loading for me. I've been waiting several
> minutes
> and I only have a half-rendered page. though this might be an issue
> with my
> net connection

htts://docs.couchdb.org/ is hosted by ReadTheDocs.org for us. Perhaps
they had an outage earlier today?

> p.s. sorry for returning to this list and immediately bearing bad
> news :P

No problem. If you do get your build env setup and are able to test
the release, I look forward to your vote. :)

-Joan

Reply via email to