Update: running my branch through `build_candidate.sh` succeeds.
On Oct 4, 2013, at 16:09 , Jan Lehnardt <[email protected]> wrote: > > 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
