couchdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jan Lehnardt <>
Subject Re: [1.5.0] Punted for today :(
Date Fri, 04 Oct 2013 14:09:57 GMT

On Oct 4, 2013, at 14:01 , Noah Slater <> wrote:

> "Our PITA build system doesn't correctly understand how to package fauxton"
> The problem is that new files have been added and Autotools hasn't been
> told what to do with them.
> We should be getting in the habit of checking the CI server Jan set up,
> which will flag these errors. This is useful for a devs who are adding new
> features and who want to check if the build is broken, and for release
> managers.
> In fact, for devs, if you're adding new files, or moving files around, I
> would recommend a quick "./bootstrap && ./configure --disable-tests &&
> distcheck" before you commit. This will flag any problems, or bits you've
> forgotten to wire up to the build.
> For the release procedure, we should have a step that reminds the RM to
> check the CI server. I thought I had added this already, but a quick check
> shows that I haven't. (And in fact, the whole Timetable section is dated
> and needs to go.)
> Only in /tmp/ erlang-version.escript
> This file is is not in the at all, so Autotools will completely
> ignore it.
> The line it needs adding to is:
>    if WINDOWS
>    bin_SCRIPTS = couchdb.bat
>    else
>    bin_SCRIPTS = couchdb couch-config
>    endif
> If this is a *nix thing only, then add it to the last line. If it works on
> Windows, add it to both.

erlang-version.escript is required at build time only, we don’t want to
install it into the system. Is bin_SCRIPTS still the right place? I tried
adding it to noinst_SCRIPTS but that didn’t work out* :) Adding it to
bin_SCRIPTS also leads to the error message below. Adding it to EXTRA_DIST
seemed to do the trick (no make errors, make install does the right thing
etc), but I don’t know if it is the correct way. Can you advise?

* make[4]: *** No rule to make target `erlang-version.escript', needed by `all-am'.  Stop.

(See below for a list of commits)

> Only in /tmp/
> pagination.rst
> This needs adding to share/doc/build/ See the html_files and
> src_files variables.
> Only in /tmp/ plugins.html
> This needs adding to share/ See the nobase_dist_localdata_DATA
> variable.
> Only in /tmp/
> These need adding to an EXTRA_DIST, or something similar.
> Only in /tmp/ couchjs-node
> This one is a little more complex.
> Edit, src/ and add this dir to the SUBDIRS variable.
> Now take one of the files,
> like src/couch_dbupdates/, and copy it to the couchjs-node dir.
> Then modify it to suit the contents of that dir. Shout if you need help
> with this.
> Once you've done that, edit, and tell it about the new
> by adding this line:
> AC_CONFIG_FILES([src/couchjs-node/Makefile])
> (Make sure to add it in the correct location, and sorted alphabetically.)
> Only in /tmp/ fauxton
> This one is surprisingly easy for now, as we're bodging it for the time
> being. Just edit share/ and add all of the files under the
> fauxton dir to the nobase_dist_localdata_DATA variable.
> Once all of these things have been done, test with:
> ./bootstrap && ./configure --disable-tests && make distcheck

* * *

This only applies to master and not 1.5.x, but there is a new
src/my-first-couchdb-plugin directory that just has bunch of files
that we just want to have in the tarball, but do nothing with yet.
For now I just made it like couchjs-node with the custom
and EXTRA_DIST and that seems to work, but the subdir has its own
Makefile that is irrelevant to the CouchDB build system (it is a
skeleton for building CouchDB plugins in a more standalone way).
Keeping that file named `Makefile` obviously conflicted with the
procedure, so I renamed it to `Makefile.dist` and added a step
to the instructions that asks the user to rename it before starting
development on a plugin. To circumvent the renaming step I tried
adding an EXTRA_DIST to src/ and reference all files
in src/my-first-couchdb-plugin from there, but that didn’t seem to
work. This one isn’t too important for now, but if there is a nice
solution, I’d like to know some time :)

* * *

I’ve prepared a branch build-system-fixes-1.5.x that includes all
of the above.

  GitHub Compare:

I’d appreciate a review :)


View raw message