On Oct 4, 2013, at 14:01 , Noah Slater <[email protected]> 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 --
signature.asc
Description: Message signed with OpenPGP using GPGMail
