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.
---