couchdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jan Lehnardt <...@apache.org>
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 <nslater@apache.org> 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 &&
make
> 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/build_candidate.sh.bvE8C6/1.5.x/bin: erlang-version.escript
> 
> This file is is not in the Makefile.am 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/build_candidate.sh.bvE8C6/1.5.x/share/doc/src/couchapp/views:
> pagination.rst
> 
> This needs adding to share/doc/build/Makefile.am. See the html_files and
> src_files variables.
> 
> Only in /tmp/build_candidate.sh.bvE8C6/1.5.x/share/www: plugins.html
> 
> This needs adding to share/Makefile.am. See the nobase_dist_localdata_DATA
> variable.
> 
> Only in /tmp/build_candidate.sh.bvE8C6/1.5.x/src/couch_plugins: README.md
> 
> These need adding to an EXTRA_DIST, or something similar.
> 
> Only in /tmp/build_candidate.sh.bvE8C6/1.5.x/src: couchjs-node
> 
> This one is a little more complex.
> 
> Edit, src/Makefile.am and add this dir to the SUBDIRS variable.
> 
> Now take one of the Makefile.am files,
> like src/couch_dbupdates/Makefile.am, 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 configure.ac, and tell it about the new
> Makefile.am 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/build_candidate.sh.bvE8C6/1.5.x/share/www: fauxton
> 
> This one is surprisingly easy for now, as we're bodging it for the time
> being. Just edit share/Makefile.am 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 Makefile.am
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/Makefile.am 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.

  ASF: https://git-wip-us.apache.org/repos/asf/couchdb/repo?p=couchdb.git;a=log;h=refs/heads/build-system-fixes-1.5.x
  GitHub Compare: https://github.com/janl/couchdb/compare/build-system-fixes-1.5.x

I’d appreciate a review :)

Best
Jan
-- 


Mime
View raw message