You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@couchdb.apache.org by janl <gi...@git.apache.org> on 2015/02/12 00:09:04 UTC
[GitHub] couchdb pull request: Add first stab at a release build script.
GitHub user janl opened a pull request:
https://github.com/apache/couchdb/pull/302
Add first stab at a release build script.
Creates a release directory `apache-couchdb` that we can wrap in a tarball. This is a quick hack to discuss whether this direction is anything we’d like to go towards for releases.
Please be generous with feedback, thank you! :)
```
make release
cd apache-couchdb
./configure
make dist
./rel/couchdb/bin/couchdb # starts CouchDB
```
End users will download apache-couchdb-$vsn.tar.gz and then:
```
tar xzf apache-couchdb-$vsn.tar.gz
cd apache-couchdb-$vsn
./configure
make dist
```
This builds fauxton and the docs as part of `make release`, so that end users don’t have to build those themselves.
Preliminary Todo:
- [ ] infer CouchDB version from source tree and use in tarball, fauxton and welcome message
- [ ] fix bug noted in build-aux/couchdb-build-release.sh where cloning the current branch doesn’t work when a version tag is specified
- [ ] make docs build understand that it doesn’t have to re-build if targets already exist
- [ ] actually create tarball
- [ ] add `make install` target
- [ ] Windows version
- [ ] test test test
Again, please be generous with feedback!
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/janl/couchdb build
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/couchdb/pull/302.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #302
----
commit c2d2f7e44b7031c6ffaa985c8c33c42aa18affe8
Author: Jan Lehnardt <ja...@apache.org>
Date: 2015-02-11T21:24:58Z
Add first stab at a release build script.
----
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---
[GitHub] couchdb pull request: Add first stab at a release build script.
Posted by micah <gi...@git.apache.org>.
Github user micah commented on the pull request:
https://github.com/apache/couchdb/pull/302#issuecomment-103612757
Hi @janl - sorry I haven't commented here for a while. A few updates here:
. tried to recompile and got this:
```
==> couchdb-2.0 (clean)
rm: cannot remove ‘dev/data’: Is a directory
rm: cannot remove ‘dev/lib’: Is a directory
rm: cannot remove ‘dev/logs’: Is a directory
Makefile:32: recipe for target 'clean' failed
```
I suspect that is because Makefile clean target has this:
```
@rm -f tmp/ dev/boot_node.beam dev/data dev/lib dev/pbkdf2.pyc log/crash.log dev/logs
```
but those are directories
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---
[GitHub] couchdb pull request: Add first stab at a release build script.
Posted by janl <gi...@git.apache.org>.
Github user janl commented on the pull request:
https://github.com/apache/couchdb/pull/302#issuecomment-114074984
> It looks to me like couchdb does create a /var/run/couchdb directory, of which I can't seem to find any trace in my packaging script (i.e. it seems like something in the CouchDB 1.6.1 build system creates this).
That is entirely possible, I’ll raise this as an issue, thanks!
> However, I do think the CouchDB configure script should provide options that allow me ignore the bundled versions.
Totally fair. I can’t promise any priority for this for 2.0, but I agree we should have that sooner than later. Thanks for your perspective.
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---
[GitHub] couchdb pull request: Add first stab at a release build script.
Posted by janl <gi...@git.apache.org>.
Github user janl commented on the pull request:
https://github.com/apache/couchdb/pull/302#issuecomment-106618733
@micah excellent work, thanks, I’ll get the updates in tomorrow!
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---
[GitHub] couchdb pull request: Add first stab at a release build script.
Posted by janl <gi...@git.apache.org>.
Github user janl commented on the pull request:
https://github.com/apache/couchdb/pull/302#issuecomment-89315774
@micah new version, should do the right thing vis-a-vis `./configure && make distclean` and `make && make clean`.
To test this, I added:
- https://github.com/janl/couchdb/blob/build/test/build/test-configure-distclean.sh
- https://github.com/janl/couchdb/blob/build/test/build/test-make-clean.sh
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---
[GitHub] couchdb pull request: Add first stab at a release build script.
Posted by micah <gi...@git.apache.org>.
Github user micah commented on the pull request:
https://github.com/apache/couchdb/pull/302#issuecomment-108039860
It looks like there are some more artifacts that snuck in:
```
couchdb-2.0/share/www/script/test/lorem.txt
couchdb-2.0/share/www/script/test/lorem_b64.txt
```
those don't get cleaned up on a distclean, adding these to the Makefile would fix that:
```
@rm -f share/www/script/test/lorem.txt
@rm -f share/www/script/test/lorem_b64.txt
```
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---
[GitHub] couchdb pull request: Add first stab at a release build script.
Posted by rnewson <gi...@git.apache.org>.
Github user rnewson commented on a diff in the pull request:
https://github.com/apache/couchdb/pull/302#discussion_r32716293
--- Diff: Makefile ---
@@ -24,36 +32,83 @@ couch: config.erl
clean:
@rebar -r clean
+ @rm -f bin/couchjs
+ @rm -rf src/*/ebin
+ @rm -rf src/*/.rebar
+ @rm -rf src/{jiffy,khash,snappy,b64url}/priv
--- End diff --
why not /*/ there? we want this to work if we add artifacts to new priv dirs.
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---
[GitHub] couchdb pull request: Add first stab at a release build script.
Posted by dch <gi...@git.apache.org>.
Github user dch commented on the pull request:
https://github.com/apache/couchdb/pull/302#issuecomment-115187190
Nice work!
Here's a nifty trick to get a git version, if this is a git repo, and return true if not. One could tweak the `|| true` bit to return something else of course.
```
git describe --dirty --abbrev=7 --tags --always --first-parent 2>/dev/null || true
```
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---
[GitHub] couchdb pull request: Add first stab at a release build script.
Posted by janl <gi...@git.apache.org>.
Github user janl commented on the pull request:
https://github.com/apache/couchdb/pull/302#issuecomment-115194709
@dch thanks, is this any better or worse than what we have?
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---
[GitHub] couchdb pull request: Add first stab at a release build script.
Posted by asfgit <gi...@git.apache.org>.
Github user asfgit closed the pull request at:
https://github.com/apache/couchdb/pull/302
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---
[GitHub] couchdb pull request: Add first stab at a release build script.
Posted by micah <gi...@git.apache.org>.
Github user micah commented on the pull request:
https://github.com/apache/couchdb/pull/302#issuecomment-110475778
Hmm, if I change that, then the distclean will remove src/docs, which will cause the build not to work any longer:
```
==> rel (compile)
==> couchdb-2.0 (compile)
WARN: Expected /home/micah/debian/couchdb/couchdb-2.0/src/docs to be a raw dependency directory, but no directory found.
Dependency not available: docs-.* ({git,
"https://git-wip-us.apache.org/repos/asf/couchdb-documentation.git",
{branch,"master"}})
ERROR: compile failed while processing /home/micah/debian/couchdb/couchdb-2.0: rebar_abort
Makefile:30: recipe for target 'couch' failed
```
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---
[GitHub] couchdb pull request: Add first stab at a release build script.
Posted by janl <gi...@git.apache.org>.
Github user janl commented on the pull request:
https://github.com/apache/couchdb/pull/302#issuecomment-114637873
fixed the lorem ipsum leftovers in the latest push
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---
[GitHub] couchdb pull request: Add first stab at a release build script.
Posted by janl <gi...@git.apache.org>.
Github user janl commented on the pull request:
https://github.com/apache/couchdb/pull/302#issuecomment-106575266
did you run `./configure` before `make`?
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---
[GitHub] couchdb pull request: Add first stab at a release build script.
Posted by sebastianrothbucher <gi...@git.apache.org>.
Github user sebastianrothbucher commented on the pull request:
https://github.com/apache/couchdb/pull/302#issuecomment-78156477
Hi Jan,
I could do the drill now with make release, create TAR, unpack tar, ./configure, make && make install
(There was just some minor trouble with TeX - which I skipped, with some yum-Install-Erlang stuff, and with Sphinx that renamed the default template we inherit from - but none are TAR-related per se).
Anyhow: running Couch afterwards did fine.
BTW: so did copying in 1.6.1 files, calling them from local port, replicating them up to the cluster port.
That's great so far!
Sebastian
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---
[GitHub] couchdb pull request: Add first stab at a release build script.
Posted by janl <gi...@git.apache.org>.
Github user janl commented on the pull request:
https://github.com/apache/couchdb/pull/302#issuecomment-89320619
As for Autotools: we’ve spent quite some time trying to get rid of them as much as possible. I agree that the packaging bits are neat, but they also are not trivial to maintain and it was a repeated time waste to get things going, so we opted for Make + rebar for now.
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---
[GitHub] couchdb pull request: Add first stab at a release build script.
Posted by micah <gi...@git.apache.org>.
Github user micah commented on the pull request:
https://github.com/apache/couchdb/pull/302#issuecomment-106614629
i think this describes it well: http://lackof.org/taggart/hacking/FOSS-build/#structure
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---
[GitHub] couchdb pull request: Add first stab at a release build script.
Posted by kxepal <gi...@git.apache.org>.
Github user kxepal commented on the pull request:
https://github.com/apache/couchdb/pull/302#issuecomment-113579208
Great work, @janl !
cc @djc and @lemenkov for the feedback as Gentoo and Fedora respectively CouchDB package maintainers.
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---
[GitHub] couchdb pull request: Add first stab at a release build script.
Posted by micah <gi...@git.apache.org>.
Github user micah commented on the pull request:
https://github.com/apache/couchdb/pull/302#issuecomment-108083567
I'm not positive, but I think putting the DESTDIR into the configure script isn't the right place. The DESTDIR environment variable should be usable as a prefix in from of installation paths for supporting changing the prefix at 'make install' time, *without* changing any of the paths built into the software. I think that changing it in configure will make it so that pathing will get built into all of the things that are made, when it should just be used in the Makefile to change things (for the 'make install').
As a side note, after running make, running make install should not rebuild any files and in particular shouldn't encode any new paths. Otherwise, it's very hard to install the software in a temporary staging area without including the paths to the staging area in the final software (which in the case of RPATH can even be a security concern).
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---
[GitHub] couchdb pull request: Add first stab at a release build script.
Posted by janl <gi...@git.apache.org>.
Github user janl commented on the pull request:
https://github.com/apache/couchdb/pull/302#issuecomment-114241358
@djc the link you sent for the bashisms actually points to a Makefile error.Do you know if there something like `checkbashisms` but for Makefiles?
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---
[GitHub] couchdb pull request: Add first stab at a release build script.
Posted by yetzt <gi...@git.apache.org>.
Github user yetzt commented on the pull request:
https://github.com/apache/couchdb/pull/302#issuecomment-115020969
<3
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---
[GitHub] couchdb pull request: Add first stab at a release build script.
Posted by micah <gi...@git.apache.org>.
Github user micah commented on the pull request:
https://github.com/apache/couchdb/pull/302#issuecomment-110499701
The DESTDIR works as it should, thanks for that!
Now we can move on to other issues I think:
. old versions of couchdb using autotools, would install things into their architecture dependent directories, so things would look like this:
```
/etc/couchdb
/etc/couchdb/local.d
/etc/couchdb/default.d
/etc/couchdb/local.ini
/etc/couchdb/default.ini
/usr/lib/x86_64-linux-gnu/couchdb
/usr/lib/x86_64-linux-gnu/couchdb/bin
/usr/lib/x86_64-linux-gnu/couchdb/bin/couchjs
/usr/lib/x86_64-linux-gnu/couchdb/erlang
/usr/lib/x86_64-linux-gnu/couchdb/erlang/lib
/usr/lib/x86_64-linux-gnu/couchdb/erlang/lib/snappy-1.0.5
/usr/lib/x86_64-linux-gnu/couchdb/erlang/lib/snappy-1.0.5/priv
/usr/lib/x86_64-linux-gnu/couchdb/erlang/lib/snappy-1.0.5/priv/snappy_nif.so
/usr/lib/x86_64-linux-gnu/couchdb/erlang/lib/snappy-1.0.5/priv/snappy_nif.la
/usr/lib/x86_64-linux-gnu/couchdb/erlang/lib/snappy-1.0.5/ebin
/usr/lib/x86_64-linux-gnu/couchdb/erlang/lib/snappy-1.0.5/ebin/snappy.beam
/usr/lib/x86_64-linux-gnu/couchdb/erlang/lib/snappy-1.0.5/ebin/snappy.app
/usr/lib/x86_64-linux-gnu/couchdb/erlang/lib/mochiweb-1.4.1
/usr/lib/x86_64-linux-gnu/couchdb/erlang/lib/mochiweb-1.4.1/ebin
/usr/lib/x86_64-linux-gnu/couchdb/erlang/lib/mochiweb-1.4.1/ebin/reloader.beam
/usr/lib/x86_64-linux-gnu/couchdb/erlang/lib/mochiweb-1.4.1/ebin/mochiweb_util.beam
/usr/lib/x86_64-linux-gnu/couchdb/erlang/lib/mochiweb-1.4.1/ebin/mochiweb_sup.beam
/usr/lib/x86_64-linux-gnu/couchdb/erlang/lib/mochiweb-1.4.1/ebin/mochiweb_socket_server.beam
/usr/lib/x86_64-linux-gnu/couchdb/erlang/lib/mochiweb-1.4.1/ebin/mochiweb_socket.beam
/usr/lib/x86_64-linux-gnu/couchdb/erlang/lib/mochiweb-1.4.1/ebin/mochiweb_skel.beam
/usr/lib/x86_64-linux-gnu/couchdb/erlang/lib/mochiweb-1.4.1/ebin/mochiweb_response.beam
/usr/lib/x86_64-linux-gnu/couchdb/erlang/lib/mochiweb-1.4.1/ebin/mochiweb_request.beam
/usr/lib/x86_64-linux-gnu/couchdb/erlang/lib/mochiweb-1.4.1/ebin/mochiweb_multipart.beam
/usr/lib/x86_64-linux-gnu/couchdb/erlang/lib/mochiweb-1.4.1/ebin/mochiweb_mime.beam
/usr/lib/x86_64-linux-gnu/couchdb/erlang/lib/mochiweb-1.4.1/ebin/mochiweb_io.beam
/usr/lib/x86_64-linux-gnu/couchdb/erlang/lib/mochiweb-1.4.1/ebin/mochiweb_http.beam
/usr/lib/x86_64-linux-gnu/couchdb/erlang/lib/mochiweb-1.4.1/ebin/mochiweb_html.beam
...
```
but the new configure script installs things like this:
```
/usr/couchdb
/usr/couchdb/share
/usr/couchdb/share/server
/usr/couchdb/share/server/main.js
/usr/couchdb/share/server/coffee-script.js
/usr/couchdb/releases
/usr/couchdb/releases/start_erl.data
/usr/couchdb/releases/RELEASES
/usr/couchdb/releases/2.0.0a
/usr/couchdb/releases/2.0.0a/sys.config
/usr/couchdb/releases/2.0.0a/couchdb.boot
/usr/couchdb/releases/2.0.0a/vm.args
/usr/couchdb/releases/2.0.0a/start_clean.boot
/usr/couchdb/releases/2.0.0a/couchdb.script
/usr/couchdb/releases/2.0.0a/start_clean.rel
/usr/couchdb/releases/2.0.0a/start_clean.script
/usr/couchdb/releases/2.0.0a/couchdb.rel
/usr/couchdb/var
/usr/couchdb/var/log
/usr/couchdb/etc
/usr/couchdb/etc/local.ini
/usr/couchdb/etc/default.ini
/usr/couchdb/etc/vm.args
/usr/couchdb/bin
/usr/couchdb/bin/couchjs
/usr/couchdb/bin/couchdb
/usr/couchdb/lib
/usr/couchdb/lib/fabric-2.0.0-275327e
/usr/couchdb/lib/fabric-2.0.0-275327e/ebin
/usr/couchdb/lib/fabric-2.0.0-275327e/ebin/fabric_view_changes.beam
/usr/couchdb/lib/fabric-2.0.0-275327e/ebin/fabric.beam
/usr/couchdb/lib/fabric-2.0.0-275327e/ebin/fabric_db_doc_count.beam
/usr/couchdb/lib/fabric-2.0.0-275327e/ebin/fabric_view_map.beam
/usr/couchdb/lib/fabric-2.0.0-275327e/ebin/fabric_doc_update.beam
/usr/couchdb/lib/fabric-2.0.0-275327e/ebin/fabric_view.beam
/usr/couchdb/lib/fabric-2.0.0-275327e/ebin/fabric_db_delete.beam
/usr/couchdb/lib/fabric-2.0.0-275327e/ebin/fabric_db_create.beam
/usr/couchdb/lib/fabric-2.0.0-275327e/ebin/fabric_db_update_listener.beam
/usr/couchdb/lib/fabric-2.0.0-275327e/ebin/fabric_db_meta.beam
/usr/couchdb/lib/fabric-2.0.0-275327e/ebin/fabric_view_reduce.beam
/usr/couchdb/lib/fabric-2.0.0-275327e/ebin/fabric_util.beam
/usr/couchdb/lib/fabric-2.0.0-275327e/ebin/fabric_doc_attachments.beam
/usr/couchdb/lib/fabric-2.0.0-275327e/ebin/fabric.app
```
There are a few problems with this new installation path:
. /usr/couchdb/share should be /usr/share/couchdb
. /usr/couchdb/var should be /var
. /usr/couchdb/etc should be /etc
. /usr/couchdb/bin should be /usr/bin
. things shouldn't be under /usr/couchdb in general... i suppose I can set the -p prefix directory in configure to be /usr/lib/x86_64-linux-gnu (or dynamically to the right architecture), but if I do that, then it will change the pathing for the share, var, etc, bin pieces mentioned above.
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---
[GitHub] couchdb pull request: Add first stab at a release build script.
Posted by janl <gi...@git.apache.org>.
Github user janl commented on the pull request:
https://github.com/apache/couchdb/pull/302#issuecomment-89735795
1. switched to puhsing commits for progress instead of rebasing into single commit
2. added `version.mk` that includes version info variables
3. added `-<githash>` suffix if we build from git checkout.
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---
[GitHub] couchdb pull request: Add first stab at a release build script.
Posted by janl <gi...@git.apache.org>.
Github user janl commented on the pull request:
https://github.com/apache/couchdb/pull/302#issuecomment-113586049
@kxepal all that is TBD for now, I think they will all become `./configure` options
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---
[GitHub] couchdb pull request: Add first stab at a release build script.
Posted by janl <gi...@git.apache.org>.
Github user janl commented on the pull request:
https://github.com/apache/couchdb/pull/302#issuecomment-113200219
As for the arch-dependent paths, CouchDB has never done this and this is a distro-specific configuration.
Thanks for flagging this though, there is definitely something wonky here, I’m investigating.
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---
[GitHub] couchdb pull request: Add first stab at a release build script.
Posted by janl <gi...@git.apache.org>.
Github user janl commented on the pull request:
https://github.com/apache/couchdb/pull/302#issuecomment-91920174
@micah good findings, I keep chipping away at them. The extra `make` leftovers should be gone with the latest commit.
Could you post the `install.mk` in the top level of your tarball extraction here?I don’t see why your code should try to mkdir `/usr/local/couchdb`, I get `mkdir: /var/lib/couchdb: Permission denied` with `./configure -p ../somereldir` and that’s expected:
At this point, if you change the prefix with `-p` you also likely want to override the data dir, view dir and log file (`-d -v -l`) as they default to system paths as per FHS and are not affected by the prefix (see below). I have a todo item to make the `./configure` arguments a little more intuitive and work like in 1.x (and other Autotools projects), so expect that to get better.
```
data_dir = /var/lib/couchdb
view_index_dir = /var/lib/couchdb
log_file = /var/log/couchdb.log
```
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---
[GitHub] couchdb pull request: Add first stab at a release build script.
Posted by janl <gi...@git.apache.org>.
Github user janl commented on the pull request:
https://github.com/apache/couchdb/pull/302#issuecomment-114065429
@djc thanks for your input! :)
> Please test your scripts with something non-bash (e.g. dash on Debian or Ubuntu; see https://529806.bugs.gentoo.org/attachment.cgi?id=389706 for particular failures).
Good call, I’ll make sure, this happens. — I write fairly bashism-free sh, but we never know. And automatic automating this test would be nice, too. Thanks :)
> Don't install things into /var/run, instead the package should create these at run-time.
CouchDB 1.x doesn’t do this, it creates /var/run/couchdb.pid and /var/run/couchdb.uri at runtime. CouchDB 2.x isn’t changing this. — Can you point to where you think this is different (because if it is, that would be a bug).
> And, the big one: provide options that allow me to slot in system-provided versions of bundled dependencies. E.g., snappy (not sure what else is bundled these days).
This is a long back-and-forth and we can’t really budge from that, as only we can guarantee that a particular dependency version works with CouchDB. If distributions do unbundling, they must do this at their own (and their user’s) peril. We’ve had massive issues on Ubuntu with this in the past. — Unless a package manager allows us to specify a precise version to depend on (and most don’t), we really can’t oblige, I’m afraid.
I’m fully aware of the implications, and I’m sorry that there is no good solution.
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---
[GitHub] couchdb pull request: Add first stab at a release build script.
Posted by janl <gi...@git.apache.org>.
Github user janl commented on the pull request:
https://github.com/apache/couchdb/pull/302#issuecomment-113577637
## Alright, major rework!
I made a new `./configure` script that accepts most of the customisation options of a GNU `./configure` that behaves according to the [GNU Coding Standards](https://www.gnu.org/prep/standards/html_node/Directory-Variables.html).
It even includes a [test script that validates that it does what it is supposed to do](https://github.com/janl/couchdb/blob/ad287b43ef29964629bdac3eac469f82b78c7d7c/test/build/test-configure.sh):
Note that [most `./configure` arguments are changed](https://github.com/janl/couchdb/commit/ad287b43ef29964629bdac3eac469f82b78c7d7c#diff-e2d5a00791bce9a01f99bc6fd613a39dR47) now:
```
Usage: configure [OPTION]
The configure command is responsible for generating the build
system for Apache CouchDB.
Options:
-h | --help display a short help message and exit
# -u USER set the username to run as (defaults to )
--prefix=DIRECTORY set the installation prefix (defaults to )
--databasedir DIRECTORY specify the data directory (defaults to /var/lib/couchdb)
--viewindexdir DIRECTORY specify the view directory (defaults to /var/lib/couchdb)
--logdir DIRECTORY specify the log file (defaults to /var/log/couchdb.log)
-c | --with-curl request that couchjs is linked to cURL (default false)
Installation directories:
--prefix=PREFIX install architecture-independent files in PREFIX
[/usr/local]
--exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
[PREFIX]
Fine tuning of the installation directories:
--bindir=DIR user executables [EPREFIX/bin]
--libexecdir=DIR program executables [EPREFIX/libexec]
--sysconfdir=DIR read-only single-machine data [PREFIX/etc]
--localstatedir=DIR modifiable single-machine data [PREFIX/var]
--libdir=DIR object code libraries [EPREFIX/lib]
--datarootdir=DIR read-only arch.-independent data root [PREFIX/share]
--datadir=DIR read-only architecture-independent data [DATAROOTDIR]
# --infodir=DIR info documentation [DATAROOTDIR/info]
# --mandir=DIR man documentation [DATAROOTDIR/man]
# --docdir=DIR documentation root [DATAROOTDIR/doc/apache-couchdb]
# --htmldir=DIR html documentation [DOCDIR]
# --dvidir=DIR dvi documentation [DOCDIR]
# --pdfdir=DIR pdf documentation [DOCDIR]
# --psdir=DIR ps documentation [DOCDIR]
```
(the “commented out” options don’t work yet but are easy to add).
### State
I used this to produce a tarball that in turn could configure itself and install itself into all designated destinations. I haven’t tried all override options manually, but I’m confident that they work.
There are a few niggles, but this mostly works.
### Impact
@micah this should give packagers the option to set `--exec-prefix` which used to produce the architecture dependent sub-dirs.
### Misc
Also note the updates to the check list in [the original post on this page](https://github.com/apache/couchdb/pull/302#issue-57392189).
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---
[GitHub] couchdb pull request: Add first stab at a release build script.
Posted by micah <gi...@git.apache.org>.
Github user micah commented on the pull request:
https://github.com/apache/couchdb/pull/302#issuecomment-90751051
> @micah on make uninstall what is expected to happen with user-data that was created by the package? Like databases that might still have important data, are they expected to be rm’d? I understand logs could go, but I’m hesitant to include databases.
regarding user-data, most linux distros follow the File Hierarchy Standard (FHS) and the package would handle the creation, and optional removal, of this data. For example, on debian, it would likely be that the package will create /var/lib/couchdb and the configure script would be run to set that as the directory for this data, and /var/log/couchdb would be be where logs go. The packaging system usually asks you about those things on removal, asking you if you want to remove the databases? are you sure? are you REALLY SURE?! So, I dont think a make distclean/clean etc. should touch that stuff
Regarding the most recent updates, they have eliminated the problems with files changing, being removed from unpacked source that were in the tarball, great! Now the only problem is that after the first build, the following ones fail (even after a make distclean) because these files remain:
tmp/
dev/boot_node.beam
dev/data
dev/lib
dev/pbkdf2.pyc
log/crash.log
dev/logs
The other issue I've been struggling with is that even if I pass a relative path to the -p option to configure, its still trying to use the absolute path on installation. So for example, I've been trying to do ./configure -p debian/couchdb/usr (here because this is where the package wants the resulting build so it can then take everything in there and make a package that would then install into /usr), but during the make install phase this happens:
```
mkdir: cannot create directory ‘/usr/local/couchdb’: Permission denied
```
It makes sense that I get a permission denied, because I am building as my unprivileged user, but I dont know why it is trying to use that directory, when I specified the -p option.
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---
[GitHub] couchdb pull request: Add first stab at a release build script.
Posted by janl <gi...@git.apache.org>.
Github user janl commented on the pull request:
https://github.com/apache/couchdb/pull/302#issuecomment-114240563
latest push includes test script for bash-isms.
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---
[GitHub] couchdb pull request: Add first stab at a release build script.
Posted by janl <gi...@git.apache.org>.
Github user janl commented on the pull request:
https://github.com/apache/couchdb/pull/302#issuecomment-114869749
@micah last push allows for dynamic arguments a la `--prefix=/usr --foobar=\${prefix}/foobar`
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---
[GitHub] couchdb pull request: Add first stab at a release build script.
Posted by janl <gi...@git.apache.org>.
Github user janl commented on the pull request:
https://github.com/apache/couchdb/pull/302#issuecomment-108588052
> those don't get cleaned up on a distclean, adding these to the Makefile would fix that:
> @rm -f share/www/script/test/lorem.txt
> @rm -f share/www/script/test/lorem_b64.txt
These should be covered by
@rm -rf share/www
in `distclean` (when you run `distclean` from within the extracted tarball directory.
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---
[GitHub] couchdb pull request: Add first stab at a release build script.
Posted by janl <gi...@git.apache.org>.
Github user janl commented on the pull request:
https://github.com/apache/couchdb/pull/302#issuecomment-107041985
@micah rebased against master and introduced `DESTDIR` — I hope I got it right :)
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---
[GitHub] couchdb pull request: Add first stab at a release build script.
Posted by kxepal <gi...@git.apache.org>.
Github user kxepal commented on the pull request:
https://github.com/apache/couchdb/pull/302#issuecomment-113585378
Speaking about paths, from perspective of 1.x there were few more of them:
- [javascript = %bindir%/%couchjs_command_name% %localbuilddatadir%/server/main.js](https://github.com/apache/couchdb/blob/1.6.1/etc/couchdb/default.ini.tpl.in#L129)
- [plugin_dir = %locallibdir%/plugins](https://github.com/apache/couchdb/blob/1.6.1/etc/couchdb/default.ini.tpl.in#L30)
- [uri_file = %localstaterundir%/couch.uri](https://github.com/apache/couchdb/blob/1.6.1/etc/couchdb/default.ini.tpl.in#L16)
- [util_driver_dir = %couchprivlibdir%](https://github.com/apache/couchdb/blob/1.6.1/etc/couchdb/default.ini.tpl.in#L11)
How would they be configured with the new schema?
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---
[GitHub] couchdb pull request: Add first stab at a release build script.
Posted by micah <gi...@git.apache.org>.
Github user micah commented on the pull request:
https://github.com/apache/couchdb/pull/302#issuecomment-75807216
I think that the right thing to do is to change the Makefile so it does the right thing, but to do that might require changing things that I'm unaware of (build scripts, dev processes, muscle memory, etc.).
The typical standard make targets are:
* make all - Build programs, libraries, documentation, etc. (same as make).
* make install - Install what needs to be installed, copying the files from the package’s tree to system-wide directories.
* make uninstall - The opposite of make install: erase the installed files. (This needs to be run from the same build tree that was installed.)
* make clean - Erase from the build tree the files built by make all.
* make distclean - Also erase anything ./configure created.
* make check - Run the test suite, if any.
* make installcheck - Check the installed programs or libraries, if supported.
* make dist - Recreate package-version.tar.gz from all the source files.
Sometimes you will find other things like make install-strip, etc. Usually you don't need all of them (uninstall, check, installcheck aren't always there), but it seems like the couchdb Makefile mostly adheres to these defaults, just the release/distclean stuff is deviating a little from the norm and is exposing these issues.
In a way we are stepping one by one into the different issues that autotools was created to solve. I don't want to suggest that you stop and autotoolize couchdb, because that is another world of pain, but there is a point where you end up doing so many of the things that it solves that the pain of doing that is going to be a lot less than solving those again yourself (not to mention the support over time)... just something to keep in mind.
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---
[GitHub] couchdb pull request: Add first stab at a release build script.
Posted by janl <gi...@git.apache.org>.
Github user janl commented on the pull request:
https://github.com/apache/couchdb/pull/302#issuecomment-104412584
@micah fixed!
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---
[GitHub] couchdb pull request: Add first stab at a release build script.
Posted by janl <gi...@git.apache.org>.
Github user janl commented on the pull request:
https://github.com/apache/couchdb/pull/302#issuecomment-104412971
Rebased on master
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---
[GitHub] couchdb pull request: Add first stab at a release build script.
Posted by janl <gi...@git.apache.org>.
Github user janl commented on the pull request:
https://github.com/apache/couchdb/pull/302#issuecomment-114614329
@micah good find, and thanks for your additions.
I’ve fixed the broken `make distclean`. It turns out that my `make clean` was too aggressive. I made it looser now, but I might miss something, but your “check trees between builds/cleans” should catch that.
Thanks again! :)
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---
[GitHub] couchdb pull request: Add first stab at a release build script.
Posted by djc <gi...@git.apache.org>.
Github user djc commented on the pull request:
https://github.com/apache/couchdb/pull/302#issuecomment-114092556
I agree that maybe for the Erlang deps, it's a different story -- I'm also not sure if we have a good system lib/sharing story there. I'm more worried about C-level dependencies.
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---
[GitHub] couchdb pull request: Add first stab at a release build script.
Posted by micah <gi...@git.apache.org>.
Github user micah commented on the pull request:
https://github.com/apache/couchdb/pull/302#issuecomment-114633956
> @micah thanks, is this from within the extracted tarball or from within the git checkout?
from the extracted tarball that was made from 'make release'
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---
[GitHub] couchdb pull request: Add first stab at a release build script.
Posted by djc <gi...@git.apache.org>.
Github user djc commented on the pull request:
https://github.com/apache/couchdb/pull/302#issuecomment-114250947
Nope, sorry.
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---
[GitHub] couchdb pull request: Add first stab at a release build script.
Posted by janl <gi...@git.apache.org>.
Github user janl commented on the pull request:
https://github.com/apache/couchdb/pull/302#issuecomment-90247231
- Added `-l` (lowercase L) option to `./configure` to specify log dir.
- Cleaned up some internal stuff
- make `make install` and `make uninstall` work
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---
[GitHub] couchdb pull request: Add first stab at a release build script.
Posted by janl <gi...@git.apache.org>.
Github user janl commented on the pull request:
https://github.com/apache/couchdb/pull/302#issuecomment-114635861
@micah the `database_dir` and `view_index_dir` issues are fixed in the last push
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---
[GitHub] couchdb pull request: Add first stab at a release build script.
Posted by djc <gi...@git.apache.org>.
Github user djc commented on the pull request:
https://github.com/apache/couchdb/pull/302#issuecomment-113938476
Some long-standing requests from the Gentoo side:
- Please test your scripts with something non-bash (e.g. dash on Debian or Ubuntu; see https://529806.bugs.gentoo.org/attachment.cgi?id=389706 for particular failures).
- Don't install things into `/var/run`, instead the package should create these at run-time.
And, the big one: provide options that allow me to slot in system-provided versions of bundled dependencies. E.g., snappy (not sure what else is bundled these days).
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---
[GitHub] couchdb pull request: Add first stab at a release build script.
Posted by janl <gi...@git.apache.org>.
Github user janl commented on the pull request:
https://github.com/apache/couchdb/pull/302#issuecomment-75145474
@sebastianrothbucher good catch, got that included now.
@micah The latest push here supports `make clean` before `./configure`, this is more to unblock you and not quite the correct fix, as some of that data needs to be put in there by `./configure` on the target system (maybe, still figuring this out).
I think I fixed the `make [dist]clean` git dependency, needs some work too, but should let you continue.
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---
[GitHub] couchdb pull request: Add first stab at a release build script.
Posted by rnewson <gi...@git.apache.org>.
Github user rnewson commented on the pull request:
https://github.com/apache/couchdb/pull/302#issuecomment-114085949
on the un-bundling, it's a deliberate choice to include .so's and the like in the priv/ directories, so we can upgrade versions without restarting. If we can accommodate both that use case and yours, which will entail restarting the service, then I'm all for it.
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---
[GitHub] couchdb pull request: Add first stab at a release build script.
Posted by janl <gi...@git.apache.org>.
Github user janl commented on the pull request:
https://github.com/apache/couchdb/pull/302#issuecomment-113194684
@micah can you show em the commands you used to get to having these files leftover?
```
couchdb-2.0/share/www/script/test/lorem.txt
couchdb-2.0/share/www/script/test/lorem_b64.txt
```
they should not exist in this path in 2.0 *at all*
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---
[GitHub] couchdb pull request: Add first stab at a release build script.
Posted by micah <gi...@git.apache.org>.
Github user micah commented on the pull request:
https://github.com/apache/couchdb/pull/302#issuecomment-114622031
I passed --prefix=/usr to configure but it seems like $install_dir is still set to /usr/local
the install.mk is created with:
```
package_author_name =
install_dir = /usr/local/lib/couchdb
bin_dir = /usr/local/bin
libexec_dir = /usr/local/libexec/couchdb
doc_dir = /usr/local/share/doc/couchdb
sysconf_dir = /usr/local/etc/couchdb
data_dir = /usr/local/share/couchdb
database_dir =
view_index_dir = /couchdb
log_file = /usr/local/var/log/couch.log
user =
```
Its odd too that the view_index_dir and database_dir are set that way.
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---
[GitHub] couchdb pull request: Add first stab at a release build script.
Posted by janl <gi...@git.apache.org>.
Github user janl commented on the pull request:
https://github.com/apache/couchdb/pull/302#issuecomment-108596403
@micah pushed a new `DESTDIR` implementation.
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---
[GitHub] couchdb pull request: Add first stab at a release build script.
Posted by rnewson <gi...@git.apache.org>.
Github user rnewson commented on the pull request:
https://github.com/apache/couchdb/pull/302#issuecomment-113596153
awesome. +1. we can iterate on this as we push to 2.0 as needed, let's get this in.
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---
[GitHub] couchdb pull request: Add first stab at a release build script.
Posted by janl <gi...@git.apache.org>.
Github user janl commented on the pull request:
https://github.com/apache/couchdb/pull/302#issuecomment-113768979
@kxepal I’d like to put https://github.com/apache/couchdb/pull/302#issuecomment-113581523 into some sort of documentation. What would be a good place?
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---
[GitHub] couchdb pull request: Add first stab at a release build script.
Posted by micah <gi...@git.apache.org>.
Github user micah commented on the pull request:
https://github.com/apache/couchdb/pull/302#issuecomment-75785798
The share/www removal is because 'make distclean' is run in a typical build environment to remove all the stuff that ./configure created (typically to build an upstream source release, you would want to do a make distclean first, to clean up anything from before, and then start again. The 'make clean' is what would delete all the files that make created, and 'distclean' the ones that ./configure created).
In the Makefile there is:
```
distclean: clean
@rm -rf rel/couchdb
@rm -rf share/www
```
In the 'release' target, you are already distributing the pre-made share/www stuff, so removing it in distclean is working against us :)
```
cp -r share/www apache-couchdb/share/
```
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---
[GitHub] couchdb pull request: Add first stab at a release build script.
Posted by micah <gi...@git.apache.org>.
Github user micah commented on the pull request:
https://github.com/apache/couchdb/pull/302#issuecomment-114569986
Hi Jan, great progress!
I tried to use the current state of the branch with the new configure script, but the make clean failed:
```
make -j1 distclean
make[1]: Entering directory '/home/micah/debian/couchdb/couchdb-2.0'
No install.mk found. Run ./configure
==> b64url (clean)
==> cassim (clean)
==> lager (clean)
==> couch_log (clean)
==> config (clean)
==> chttpd (clean)
ERROR: Failed to load /home/micah/debian/couchdb/couchdb-2.0/src/couch/rebar.config: {error,
{115,
file,
{error,
{badmatch,
{error,
enoent}},
[{erl_eval,
expr,
3,
[]}]}}}
Makefile:34: recipe for target 'clean' failed
make[1]: *** [clean] Error 1
make[1]: Leaving directory '/home/micah/debian/couchdb/couchdb-2.0'
dh_auto_clean: make -j1 distclean returned exit code 2
debian/rules:3: recipe for target 'clean' failed
make: *** [clean] Error 2
dpkg-buildpackage: error: fakeroot debian/rules clean gave error exit status 2
micah@muck:couchdb-2.02$ ls src/couch
ebin/ include/ LICENSE rebar.config.script src/ test/
micah@muck:couchdb-2.0$
```
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---
[GitHub] couchdb pull request: Add first stab at a release build script.
Posted by janl <gi...@git.apache.org>.
Github user janl commented on the pull request:
https://github.com/apache/couchdb/pull/302#issuecomment-75148247
Latest version builds THANKS file like we did in 1.x.x (it’s not quite correct, but eh)
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---
[GitHub] couchdb pull request: Add first stab at a release build script.
Posted by janl <gi...@git.apache.org>.
Github user janl commented on the pull request:
https://github.com/apache/couchdb/pull/302#issuecomment-115013000
Alright, last push brings a whole lot of little fixes and completions. Also a rebase to master.
I think this is ready to be merged now.
Discussion can continue here, of course.
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---
[GitHub] couchdb pull request: Add first stab at a release build script.
Posted by janl <gi...@git.apache.org>.
Github user janl commented on the pull request:
https://github.com/apache/couchdb/pull/302#issuecomment-114619972
@micah thanks, is this from within the extracted tarball or from within the git checkout?
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---
[GitHub] couchdb pull request: Add first stab at a release build script.
Posted by janl <gi...@git.apache.org>.
Github user janl commented on the pull request:
https://github.com/apache/couchdb/pull/302#issuecomment-75797142
@micah good catch, this is an artefact of us using the same `Makefile` in the git checkout and the release dir / tarball.
A few options:
- hack the current Makefile so it has context aware targets and does the right thing
- have two Makefiles, one for the git source and one for the build/dir / tarball
Any preferences either way?
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---
[GitHub] couchdb pull request: Add first stab at a release build script.
Posted by micah <gi...@git.apache.org>.
Github user micah commented on the pull request:
https://github.com/apache/couchdb/pull/302#issuecomment-75118468
In a typical autotools environment, make clean is no-op on a freshly untarred source dir, as normally, if there is a Makefile, you should be able to do a 'make clean' before a configure has been run. make clean" should always be idempotent, even after you build.
With the above method, we get a nice tarball, but a 'make clean' will fail until you run ./configure to create install.mk first. You shouldn't have to run ./configure first, unless the Makefile doesn't exist. In the debian world, the same thing is required, debian/rules clean needs to be a no-op on a freshly unpacked debian source package (because it is the first thing that is run in order to clean up a previous build, if there was one).
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---
[GitHub] couchdb pull request: Add first stab at a release build script.
Posted by micah <gi...@git.apache.org>.
Github user micah commented on the pull request:
https://github.com/apache/couchdb/pull/302#issuecomment-75119549
Since I'm on the subject of 'make clean', it seems like if you run this in the release tarball directory, it will fail because of the git pieces:
```
make -j1 distclean
make[2]: Entering directory '/home/micah/debian/couchdb/apache-couchdb'
ERROR: sh(git describe --always --tags)
failed with return code 128 and the following output:
fatal: Not a git repository (or any of the parent directories): .git
Makefile:26: recipe for target 'clean' failed
```
The 'make clean' will need to run without the git directories as well.
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---
[GitHub] couchdb pull request: Add first stab at a release build script.
Posted by janl <gi...@git.apache.org>.
Github user janl commented on the pull request:
https://github.com/apache/couchdb/pull/302#issuecomment-89325135
@micah on `make uninstall` what is expected to happen with user-data that was created by the package? Like databases that might still have important data, are they expected to be rm’d? I understand logs could go, but I’m hesitant to include databases.
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---
[GitHub] couchdb pull request: Add first stab at a release build script.
Posted by micah <gi...@git.apache.org>.
Github user micah commented on the pull request:
https://github.com/apache/couchdb/pull/302#issuecomment-75781675
Yeah, I found that the following file deleted from the tarfile:
```
THANKS.in
THANKS
share/www/index.html
share/www/img/glyphicons-halflings.png
share/www/img/minilogo.png
share/www/img/glyphicons-halflings-white.png
share/www/img/linen.png
share/www/img/couch-watermark.png
share/www/img/couchdblogo.png
share/www/img/loader.gif
share/www/img/couchdb-site.png
share/www/js/require-0918b2e98537f3ff2f9ec1d4a99f8e03.js
share/www/js/ace/theme-idle_fingers.js
share/www/js/ace/mode-json.js
share/www/js/ace/worker-json.js
share/www/js/ace/worker-javascript.js
share/www/js/ace/mode-javascript.js
share/www/js/zeroclipboard/ZeroClipboard.swf
share/www/fonts/fontawesome-webfont.woff
share/www/fonts/fauxtonicon.woff
share/www/fonts/fontawesome-webfont.ttf
share/www/fonts/fauxtonicon.svg
share/www/fonts/fauxtonicon.eot
share/www/fonts/fontawesome-webfont.eot
share/www/fonts/fontawesome-webfont.svg
share/www/fonts/fauxtonicon.ttf
share/www/css
share/www/css/index-8570a17ed42470d169c1962bf0b250ed.css
```
One case where there was a mode change:
```
executable mode 0755 of 'src/couch/priv/couchspawnkillable' will not be represented in diff
```
and then the following files were changed
```
apache-couchdb/build-aux/couchdb-build-release.sh
apache-couchdb/src/couch/priv/couch_js/config.h
apache-couchdb/src/couch/priv/couchspawnkillable
```
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---
[GitHub] couchdb pull request: Add first stab at a release build script.
Posted by micah <gi...@git.apache.org>.
Github user micah commented on the pull request:
https://github.com/apache/couchdb/pull/302#issuecomment-110468272
>>those don't get cleaned up on a distclean, adding these to the Makefile would fix that
>>```@rm -f share/www/script/test/lorem.txt```
>>```@rm -f share/www/script/test/lorem_b64.txt```
> These should be covered by
>```@rm -rf share/www```
>in distclean (when you run distclean from within the extracted tarball directory
You are right, but it seems like the ```IN_RELEASE``` test in the distclean is testing to see if the value is set to 'false' and then if it is false, clean up those things... but shouldn't it be testing to see if it is "true", because I *am* IN_RELEASE? If so, then this needs to be changed:
```ifneq ($(IN_RELEASE), true)```
to this:
```ifeq ($(IN_RELEASE), true)```
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---
[GitHub] couchdb pull request: Add first stab at a release build script.
Posted by djc <gi...@git.apache.org>.
Github user djc commented on the pull request:
https://github.com/apache/couchdb/pull/302#issuecomment-114073293
It looks to me like couchdb does create a `/var/run/couchdb` directory, of which I can't seem to find any trace in my packaging script (i.e. it seems like something in the CouchDB 1.6.1 build system creates this).
I'm not asking that you unbundle anything, and I'm more than happy to accept the risk/responsibility of deviating from the bundled versions. However, I do think the CouchDB configure script should provide options that allow me ignore the bundled versions.
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---
[GitHub] couchdb pull request: Add first stab at a release build script.
Posted by micah <gi...@git.apache.org>.
Github user micah commented on the pull request:
https://github.com/apache/couchdb/pull/302#issuecomment-106574789
Thanks jan for rebasing the branch, I've just tried to compile that and now I'm getting this:
```
==> couchdb-2.0 (compile)
WARN: Expected /home/micah/debian/couchdb/couchdb-2.0/src/mango to be an app dir (containing ebin/*.app), but no .app found.
Dependency not available: mango-.* ({git,
"https://git-wip-us.apache.org/repos/asf/couchdb-mango.git",
{branch,"master"}})
ERROR: compile failed while processing /home/micah/debian/couchdb/couchdb-2.0: rebar_abort
Makefile:28: recipe for target 'couch' failed
make[1]: *** [couch] Error 1
make[1]: Leaving directory '/home/micah/debian/couchdb/couchdb-2.0'
```
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---
[GitHub] couchdb pull request: Add first stab at a release build script.
Posted by kxepal <gi...@git.apache.org>.
Github user kxepal commented on the pull request:
https://github.com/apache/couchdb/pull/302#issuecomment-113589061
@janl Ok (:
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---
[GitHub] couchdb pull request: Add first stab at a release build script.
Posted by micah <gi...@git.apache.org>.
Github user micah commented on the pull request:
https://github.com/apache/couchdb/pull/302#issuecomment-106575424
I believe that these changes are also needed in the Makefile:
```
--- couchdb-2.0+c3ecbc6.orig/Makefile
+++ couchdb-2.0+c3ecbc6/Makefile
@@ -67,9 +67,9 @@ release:
echo "Done: apache-couchdb-$(COUCHDB_VERSION).tar.gz"
distclean: clean
- @rm install.mk
- @rm config.erl
- @rm rel/couchdb.config
+ @rm -f install.mk
+ @rm -f config.erl
+ @rm -rf rel/couchdb.config
ifneq ($(IN_RELEASE), true)
# when we are in a release, don’t delete the
# copied sources, generated docs, or fauxton
```
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---
[GitHub] couchdb pull request: Add first stab at a release build script.
Posted by kxepal <gi...@git.apache.org>.
Github user kxepal commented on the pull request:
https://github.com/apache/couchdb/pull/302#issuecomment-113769586
@janl I think somewhere under [http://docs.couchdb.org/en/latest/install/](https://github.com/apache/couchdb-documentation/tree/master/src/install) is the good place as this information related to installation process.
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---
[GitHub] couchdb pull request: Add first stab at a release build script.
Posted by janl <gi...@git.apache.org>.
Github user janl commented on the pull request:
https://github.com/apache/couchdb/pull/302#issuecomment-113581523
In addition, I wrote up a few notes to make myself understand the whole thing, maybe it helps others, too:
# CouchDB 2.0 build script
## make install
`make install` moves the built CouchDB binaries as well as configuration, log and various other files into their final file system locations.
There are default locations for all files, and various ways to customise the location of each class of files.
These classes of files are being installed (with their default location)
- The CouchDB start script (couchdb) and the couchjs binary (/usr/local/bin/…)
- Erlang binary release (/usr/local/lib/couchdb/…)
- Configuration files (/usr/local/etc/couchdb/…)
- Static support files, like Fauxton and the documentation (/usr/local/share/couchdb/…)
- Log files (/var/log/couchdb/…)
Here is an overview of the paths:
- /usr/local/bin/…
- /usr/local/lib/couchdb/…
- /usr/local/etc/couchdb/…
- /usr/local/share/couchdb/…
- /var/log/couchdb/…
There are two modifiers for most of these `$prefix` and `DESTDIR`.
### $prefix
`$prefix` defaults to `/usr/local`. You might notice above where it is applied. It is set by `./configure -p $prefix` before `make install`.
For example, with `./configure -p /opt/local`, the paths look like this:
- /opt/local/bin/…
- /opt/local/lib/couchdb/…
- /opt/local/etc/couchdb/…
- /opt/local/share/couchdb/…
- /var/log/couchdb/…
### DESTDIR
`DESTDIR` is for package managers to build and test packages outside of the main operating system paths. It is set as an environment variable before `make install` as in `DESTDIR=/path/to/somewhere make install`. It applies to *all* file paths.
For example, with `DESTDIR=/home/anne/ make install`, the paths look like this:
- /home/anne/usr/local/bin/…
- /home/anne/usr/local/lib/couchdb/…
- /home/anne/usr/local/etc/couchdb/…
- /home/anne/usr/local/share/couchdb/…
- /home/anne/var/log/couchdb/…
### Other Customisations
Finally, all file class paths are configurable independently, so that (at least) we can be installed into a standard Linux file system tree:
- /usr/bin/…
- /etc/couchdb/…
- /usr/lib/couchdb/…
- /usr/share/couchdb/…
- /var/log/couchdb/…
Examples:
`./configure --sysconfdir=/opt/etc`:
- /opt/etc/couchdb/…
`./configure --bindir=/my/bindir`:
- /my/bindir/{couchdb,couchjs}
`./configure --libdir=/home/couchdb`
- /home/couchdb/couchdb/…
`./configure --logdir`
## CouchDB Paths
The above path settings and customisation options are purely for the benefit of default installations from source and custom installations via package managers.
CouchDB itself cares less about where things are, but it needs to be told, at least, about the location of a few things. These are:
- Where it is installed: {prefix, "$INSTALL_DIR"}.
- Where database are stored: {data_dir, "$DATA_DIR"}.
- Where view indexes are stored: {view_index_dir, "$VIEW_DIR"}.
- Where the log file is stored: {log_file, "$LOG_FILE"}.
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---
[GitHub] couchdb pull request: Add first stab at a release build script.
Posted by micah <gi...@git.apache.org>.
Github user micah commented on the pull request:
https://github.com/apache/couchdb/pull/302#issuecomment-106585018
ok, it seemed like I had a network glitch when the configure ran so the mango repository wasn't pulled, it now compiles fine. Now it is just a matter of resolving the make process to work without absolute paths, because right now what happens is this:
```
```
install_dir = /usr/couchdb
data_dir = /var/lib/couchdb
view_index_dir = /var/lib/couchdb
log_file = /var/log/couchdb.log
user = couchdb
```
then we have this issue:
```
==> rel (generate)
WARN: 'generate' command does not apply to directory /home/micah/debian/couchdb/couchdb-2.0
mkdir: cannot create directory ‘/usr/couchdb’: Permission denied
Makefile:86: recipe for target 'install' failed
make[1]: *** [install] Error 1
make[1]: Leaving directory '/home/micah/debian/couchdb/couchdb-2.0'
dh_auto_install: make -j1 install DESTDIR=/home/micah/debian/couchdb/couchdb-2.0/debian/couchdb AM_UPDATE_INFO_DIR=no returned exit code 2
debian/rules:3: recipe for target 'binary' failed
```
Thus, the install target in the Makefile fails because it tries to copy to an absolute path from the install.mk. To avoid this one needs to use [$DESTDIR](https://www.gnu.org/prep/standards/html_node/DESTDIR.html) so it will do things like this (for example):
```
mkdir $(DESTDIR)$(install_dir)
cp $(abs_top_srcdir)/foo/bar.erl $(DESTDIR)$(install_dir)/lib
```
etc.
This should be done in all places of install and uninstall. This also needs to be incorporated in the configure process. Once this is corrected I think I can continue to build a proper package.
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---
[GitHub] couchdb pull request: Add first stab at a release build script.
Posted by rnewson <gi...@git.apache.org>.
Github user rnewson commented on the pull request:
https://github.com/apache/couchdb/pull/302#issuecomment-113101640
+1. I see a healthy discussion and the diff looks good. We can iterate on it as we work up to the beta.
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---
[GitHub] couchdb pull request: Add first stab at a release build script.
Posted by janl <gi...@git.apache.org>.
Github user janl commented on the pull request:
https://github.com/apache/couchdb/pull/302#issuecomment-73986953
I also have this patch for couchdb-couch/rebar.config.script so it runs correctly in a non-git environment, but as far as I can tell right now, it is not really needed. It might come in handy later:
```diff
diff --git a/rebar.config.script b/rebar.config.script
index 09e11ad..4a1ae87 100644
--- a/rebar.config.script
+++ b/rebar.config.script
@@ -32,7 +32,12 @@ CouchJSName = case os:type() of
"couchjs"
end,
CouchJSPath = filename:join(["priv", CouchJSName]),
-Version = string:strip(os:cmd("git describe --always"), right, $\n),
+Version = case file:open(".git", read) of
+ {error, _Reason}
+ -> "2.0.0"; % TODO: make dynamic
+ _Else ->
+ string:strip(os:cmd("git describe --always"), right, $\n)
+ end.
```
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---
[GitHub] couchdb pull request: Add first stab at a release build script.
Posted by micah <gi...@git.apache.org>.
Github user micah commented on the pull request:
https://github.com/apache/couchdb/pull/302#issuecomment-114619060
> @micah can you show em the commands you used to get to having these files leftover?
$ make -j1 distclean
$ ./configure --build=x86_64-linux-gnu --prefix=/usr --includedir=\${prefix}/include --mandir=\${prefix}/share/man --infodir=\${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --disable-silent-rules --libdir=\${prefix}/lib/x86_64-linux-gnu --libexecdir=\${prefix}/lib/x86_64-linux-gnu --disable-maintainer-mode --disable-dependency-tracking --prefix=/usr
$ make -j1
$ make -j1 check
$ /usr/bin/make DESTDIR=/home/micah/debian/couchdb/couchdb-2.0/debian/couchdb install
$ make -j1 distclean
Then I start over and my build process complains because local changes were detected, the modified files are:
couchdb-2.0/share/www/script/test/lorem.txt
couchdb-2.0/share/www/script/test/lorem_b64.txt
(in otherwords, they exist when they do not exist in the dist tarball)
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---
[GitHub] couchdb pull request: Add first stab at a release build script.
Posted by janl <gi...@git.apache.org>.
Github user janl commented on the pull request:
https://github.com/apache/couchdb/pull/302#issuecomment-113604156
@micah — we might merge this soon, as a work in progress. Feel free to keep commenting on this PR with your feedback <3
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---
[GitHub] couchdb pull request: Add first stab at a release build script.
Posted by kxepal <gi...@git.apache.org>.
Github user kxepal commented on the pull request:
https://github.com/apache/couchdb/pull/302#issuecomment-114090050
>> However, I do think the CouchDB configure script should provide options that allow me ignore the bundled versions.
>
> Totally fair. I can’t promise any priority for this for 2.0, but I agree we should have that sooner than later. Thanks for your perspective.
The biggest problem here will be with the distributives that provides own packages for specific Erlang apps and tries to unbundle upstream deps like Mochiweb in order to replace them with system packages. Sometimes that causes quite interesting situations when DoS issue if fixed in bundled dep, but not in upstream. So here also we should also limit ourself on what bundles we allow to replace with system packages and what we do not.
But agree about snappy case in anyway.
P.S. @djc we bundle snappy-1.0.5 which was removed from portage for now. I had somewhere patches to update it up to recent 1.1.2 - need to check if it wouldn't cause any issues since they're used autotools more in recent releases.
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---
[GitHub] couchdb pull request: Add first stab at a release build script.
Posted by janl <gi...@git.apache.org>.
Github user janl commented on the pull request:
https://github.com/apache/couchdb/pull/302#issuecomment-108573210
@micah thanks, I misunderstood `DESTDIR`, I’ll try again, your explanation made it clear now. — I’ll also try and see that `make install` doesn’t do any more file generation.
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---
[GitHub] couchdb pull request: Add first stab at a release build script.
Posted by janl <gi...@git.apache.org>.
Github user janl commented on a diff in the pull request:
https://github.com/apache/couchdb/pull/302#discussion_r32742061
--- Diff: Makefile ---
@@ -24,36 +32,83 @@ couch: config.erl
clean:
@rebar -r clean
+ @rm -f bin/couchjs
+ @rm -rf src/*/ebin
+ @rm -rf src/*/.rebar
+ @rm -rf src/{jiffy,khash,snappy,b64url}/priv
--- End diff --
good point, fixed in next push.
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---
[GitHub] couchdb pull request: Add first stab at a release build script.
Posted by sebastianrothbucher <gi...@git.apache.org>.
Github user sebastianrothbucher commented on the pull request:
https://github.com/apache/couchdb/pull/302#issuecomment-74735160
Hi Jan,
I don't get through yet (CentOS 7), but here is the first thing that can help:
diff --git a/build-aux/couchdb-build-release.sh b/build-aux/couchdb-build-release.sh
index 50b1897..ce1a8cf 100755
--- a/build-aux/couchdb-build-release.sh
+++ b/build-aux/couchdb-build-release.sh
@@ -6,7 +6,7 @@ rm -rf $RELDIR
mkdir $RELDIR
# copy sources over
-git archive build | tar -xC $RELDIR/
+git archive `git rev-parse --abbrev-ref HEAD` | tar -xC $RELDIR/
mkdir $RELDIR/src
cd src/
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---