Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
branch: master

MB-9998: Update 3.0 build manifests to point to Erlang R16B03-1

Change-Id: I55a9ee079106a3bdfb6d61d3b50fd7e499655d7a
Reviewed-on: http://review.couchbase.org/36130
Reviewed-by: Sriram Melkote <siri@couchbase.com>
Tested-by: Sriram Melkote <siri@couchbase.com>
latest commit b6c50f6433
Chris Hillery authored April 22, 2014
Octocat-spinner-32 released 2.5.1 release (2.5.1-1083) March 27, 2014
Octocat-spinner-32 toy remove un-needed TOY manifests April 14, 2014
Octocat-spinner-32 .gitignore added tmp to .gitignore March 30, 2011
Octocat-spinner-32 README.markdown Update the readme with info about branch-master.xml April 08, 2014
Octocat-spinner-32 branch-1.8.1-mb-5845.xml Be more specific when pointing to a tag for 1.8.1 hotfix branch March 26, 2013
Octocat-spinner-32 branch-1.8.1.xml MB-6757: Make sure 1.8.1 build set with fixed release revision October 02, 2012
Octocat-spinner-32 branch-2.0.1.xml CBD-926: Memcached should use the 2.0 branch April 04, 2013
Octocat-spinner-32 branch-2.0.xml updated 2.0.0 manifest file December 14, 2012
Octocat-spinner-32 branch-2.1.0.xml CBD-946: healthchecker now has 2.1.0 branch June 14, 2013
Octocat-spinner-32 branch-builddeps.xml create manifest file for builddeps project October 12, 2012
Octocat-spinner-32 branch-master.xml Refactor source layout for CMake April 07, 2014
Octocat-spinner-32 branch-upr.xml Fixup branch-upr.xml January 30, 2014
Octocat-spinner-32 external-override-1.8.1.xml All manifests should use the old-master gperftools branch November 27, 2013
Octocat-spinner-32 external-override-2.0.1.xml All manifests should use the old-master gperftools branch November 27, 2013
Octocat-spinner-32 external-override-2.0.xml All manifests should use the old-master gperftools branch November 27, 2013
Octocat-spinner-32 external-override-2.0b.xml All manifests should use the old-master gperftools branch November 27, 2013
Octocat-spinner-32 external-override-2.0c.xml All manifests should use the old-master gperftools branch November 27, 2013
Octocat-spinner-32 external-override-2.0dp4.xml use OTP_R14B03 for dp4 and OTP_R14B04 for 1.8 and 2.0 February 27, 2012
Octocat-spinner-32 external-override-2.1.0.xml All manifests should use the old-master gperftools branch November 27, 2013
Octocat-spinner-32 external-override-2.1.1.xml All manifests should use the old-master gperftools branch November 27, 2013
Octocat-spinner-32 external-override-2.2.0.xml All manifests should use the old-master gperftools branch November 27, 2013
Octocat-spinner-32 external-override-2.2.1.xml All manifests should use the old-master gperftools branch November 27, 2013
Octocat-spinner-32 external-override-2.5.0.xml fix revisions to RC1 (2.5.0-994) December 11, 2013
Octocat-spinner-32 external-override-2.5.1.xml CBD-1246: 2.5.1 manifests are copies of 2.5.0 February 12, 2014
Octocat-spinner-32 external-override-2.5.2.xml CBD-1359: copy 2.5.1 manifests and add as 2.5.2 April 21, 2014
Octocat-spinner-32 external-override-3.0.0.xml MB-9998: Update 3.0 build manifests to point to Erlang R16B03-1 April 22, 2014
Octocat-spinner-32 external-override-builddeps.xml create manifest file for builddeps project October 12, 2012
Octocat-spinner-32 external-override-master.xml MB-9998: Update build manifests to point to Erlang R16B03-1 April 21, 2014
Octocat-spinner-32 fetch-manifest.rb MB-9152: comment out mention of voltron revision September 20, 2013
Octocat-spinner-32 override-1.8.1.xml MB-8102: use commits from released/1.8.1.xml December 03, 2013
Octocat-spinner-32 override-2.0.1.xml All manifests should use the old-master gperftools branch November 27, 2013
Octocat-spinner-32 override-2.0.xml All manifests should use the old-master gperftools branch November 27, 2013
Octocat-spinner-32 override-2.0b.xml All manifests should use the old-master gperftools branch November 27, 2013
Octocat-spinner-32 override-2.0c.xml All manifests should use the old-master gperftools branch November 27, 2013
Octocat-spinner-32 override-2.1.0.xml All manifests should use the old-master gperftools branch November 27, 2013
Octocat-spinner-32 override-2.1.1.xml CBSE-811: 2.1.1 uses override-2.1.1.xml November 08, 2013
Octocat-spinner-32 override-2.2.0.xml RC1: 2.2.0-817 August 29, 2013
Octocat-spinner-32 override-2.2.1.xml All manifests should use the old-master gperftools branch November 27, 2013
Octocat-spinner-32 override-2.5.0.xml fix revisions to RC1 (2.5.0-994) December 11, 2013
Octocat-spinner-32 override-2.5.1.xml CBD-1246: 2.5.1 manifests are copies of 2.5.0 February 12, 2014
Octocat-spinner-32 override-2.5.2.xml CBD-1359: copy 2.5.1 manifests and add as 2.5.2 April 21, 2014
Octocat-spinner-32 override-3.0.0.xml MB-9998: Update 3.0 build manifests to point to Erlang R16B03-1 April 22, 2014
Octocat-spinner-32 override-master.xml MB-9998: Update build manifests to point to Erlang R16B03-1 April 21, 2014
Octocat-spinner-32 override-sync-gateway.xml CBLT-39: Build package for sync gateway September 07, 2013
Octocat-spinner-32 patch-manifest.rb Automatically generate manifest files based on gerrit-refspec January 10, 2012
Octocat-spinner-32 rel-1.8.1.xml MB-8102: use commits from released/1.8.1.xml December 03, 2013
Octocat-spinner-32 rel-2.1.1.xml CBDE-881: merge couchdb changes to 2.1.0 branch for 2.1.1 patch November 08, 2013
Octocat-spinner-32 rel-2.2.0.xml MB-10277: same as 2.2.0 release except hot-fix branch for ep-engine February 22, 2014
Octocat-spinner-32 rel-2.2.1.xml MB-9169: neither master nor 3.0.0 have needed changes from 2.2 branch September 24, 2013
Octocat-spinner-32 rel-2.5.0.xml MB-10227 branch for ns_server, else same as released/2.5.0.xml February 28, 2014
Octocat-spinner-32 rel-2.5.1.xml [MB-10707]: Update latest readme for Mac version. April 01, 2014
Octocat-spinner-32 rel-2.5.2.xml CBD-1359: copy 2.5.1 manifests and add as 2.5.2 April 21, 2014
Octocat-spinner-32 rel-3.0.0.xml Refactor source layout for CMake April 07, 2014
Octocat-spinner-32 sync-gateway-1.0.0.xml CBLT-41: build out of stable branch September 11, 2013
README.markdown

Which Manifest Do I Use?

Released Versions of Couchbase Server

When we make a release, we take the manifest emitted from the builder and store it in the released/ directory. This manifest only has exact commit SHAs, so that it explicitly describes which revision was used, in both Couchbase and external repositories.

It also gives the revision of the "voltron" repo used in the build. Voltron contains build instructions --- like RPM spec files -- that are used at the top level before the manifest is used to fetch files from the source repos. Because the voltron repo is private, and is outside the scope of the "repo" tool, it is included in released/ manifests as a comment.

To replicate a released build use a manifest from the released/ directory.

Versions of Couchbase Server Prior to Release

If you want to build the development branch you should use "branch-master.xml".

While preparing for a product release, we build using one of the manifests in the top-level directory. Prior to 2.2.0 the files were called "branch-branch-name.xml", and starting with 2.2.0 we used files called "rel-release-name.xml"

This was to signify a change in process, in which stopped making release-specific branches (named for the release), unless a such branch was needed (and is no longer named for the release). Thus we had:

      branch-1.8.1.xml
      branch-2.0.1.xml
      branch-2.0.xml
      branch-2.1.0.xml

And going forward we have:

      rel-2.1.1.xml
      rel-2.2.0.xml
      rel-2.2.1.xml
      rel-3.0.0.xml

You will not need to use any of these manifests unless you are contributing changes towards a Couchbase release.

Couchbase Experimental Builds

The toy/ directory is used by Couchbase developers for experimental builds, and so are probably not of interest to anyone not familiar with the context of the experiment.

Building With Repo

Ensure You Have the Dependencies

The list of dependencies differ between the versions you try to build.

Mac OS X:

Using homebrew and the ruby that ships with a recent OS X, you can easily install the dependencies using the following commands:

sudo easy_install -U pyrex
brew install bazaar --system
brew install libevent
brew install gnupg
brew install v8
brew install snappy
brew install erlang
brew install icu4c
brew install automake
brew install libtool
brew install google-perftools
brew install cmake

Make sure that icu's icu-config binary is on your PATH when building couchbase:

export PATH=/usr/local/opt/icu4c/bin:$PATH

Optionally, you can install repo from homebrew as well:

brew install repo

Debian/Ubuntu:

The following works for a clean Debian stable (squeeze) installation (under root):

aptitude install -y --without-recommends build-essential automake libtool pkg-config check libssl-dev sqlite3 libevent-dev libglib2.0-dev libcurl4-openssl-dev erlang-nox curl erlang-dev erlang-src ruby libmozjs-dev libicu-dev
aptitude install -y python-minimal
aptitude install -y --without-recommends git-core

Note that Debian squeeze ships Erlang R14A, yet Ubuntu 10.4, 10.10 and even 11.4 ship R13B03. As of this writing, couchbase requires R14B.

To install R14 on Ubuntu, you can grab R14B source package from Debian Unstable and dpkg-buildpackage'ing it as usual.

Another (any likely preferred) option is to get R14B02 from PPA: https://launchpad.net/~scattino/+archive/ppa

In order to link with xulrunner on ubuntu (which lacks libmozjs-dev) you need the following:

aptitude install -y xulrunner-dev

and then you need to pass extra options to make like this:

make couchdb_EXTRA_OPTIONS='--with-js-include=/usr/include/xulrunner-1.9.2.16 --with-js-lib=/usr/lib/xulrunner-devel-1.9.2.16/sdk/lib/'

The path seems to vary with version. 'dpkg -l xulrunner-dev' will help you find the right path.

Get Repo

(if you didn't install from homebrew, or aren't running on Mac OS X)

Get the latest version from the google project page.

Clone the Manifest

For <branch_name> below, you probably want to one of the latest branches in released when getting started. As of this writing, that is released/2.2.0.xml unless you are working on a maintenance or experimental branch.

$ mkdir couchbase
$ cd couchbase
$ repo init -u git://github.com/couchbase/manifest.git -m <branch_name>
$ repo sync

Build

$ make
Something went wrong with that request. Please try again.