couchdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Klaus Trainer <klaus_trai...@posteo.de>
Subject Re: The new 2.0 build tools just landed in master
Date Thu, 25 Jun 2015 10:20:34 GMT
Hi everybody,

this is so awesome! Thanks to everybody who's been involved :)

I especially love about it that the build scripts now come with unit
tests :)

Cheers,
Klaus


On 06/24/2015 11:36 PM, Jan Lehnardt wrote:
> Dear dev@,
> 
> I just merged a multi-month effort to get the build situation
> for 2.0 under control.
> 
> I’d like to thank Sebastian Rothbucher, Alexander Shorin and
> Dirkjan Ochtman for their invaluable input.
> 
> Special thanks go out to micah who worked tirelessly to make
> sure that the results work in a standard Debian packaging
> environment and general GNU environment! <3
> 
> tl;dr:
>  - https://github.com/apache/couchdb/pull/302
>  - 70 comments, 24 commits, 11 files changed, +1,268 −64
>  - Started: February 11th — Merged: June 24th.
> 
> * * *
> 
> So what is this all about?
> 
> We need a way to build and install CouchDB on various systems
> with very different system configurations. Traditionally,
> Autotools do this and in 1.x we used them extensively.
> 
> For 2.0 we decided to do away with Autotools because of their
> maintenance overhead.
> 
> We started with small hand-crafted ./configure and Makefile-
> files.
> 
> They were enough to get a basic build going, but they were
> lacking the flexibility needed to work in many different
> configurations.
> 
> This PR is addressing this by supercharging our Makefile,
> adding a massive new ./configure script (that comes with
> extensive unit tests; a first for the CouchDB project!) and
> a few auxiliary scripts.
> 
> The one big missing item is Windows support, which is out of
> scope for this PR.
> 
> The end-result now is, that CouchDB master and 2.0 will work
> very similar to 1.x when it comes to system installation
> behaviour.
> 
> It also includes a majorly revamped `make dist` that produces
> an apache-couchdb-$version.tar.gz file that is going to be our
> release artefact that includes all the sources and files to
> build CouchDB 2.0 and later.
> 
> See ./configure -h for a taster:
> 
> 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 USER            set the username to run as (defaults to $USER)
>   --prefix=DIRECTORY          set the installation prefix (defaults to /usr/local)
>   --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)
>   --disable-fauxton           do not build Fauxton
>   --disable-docs              do not build any documentation or manpages
>   --skip-deps                 do not update erlang dependencies
> 
> 
>   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]
> 
> * * *
> 
> All this now needs a lot of testing on many different systems
> and in different configurations.
> 
> Feel free to send bug reports in reply to this email, or to the
> PR, or open an issue in JIRA.
> 
> Again, thanks for everybody’s help in getting this together.
> 
> I spent a lot of time on this and I’m really happy with the results :)
> 
> Best
> Jan
> 


Mime
View raw message