Fix example for lcb_remove3

LCB_CMD_SET_KEY requires pointer of lcb_CMDBASE

Change-Id: I14db7430478f482ca9b2a95dd3a5875c79c758e2
Reviewed-on: http://review.couchbase.org/43069
Reviewed-by: Sergey Avseyev <sergey.avseyev@gmail.com>
Reviewed-by: Mark Nunberg <mnunberg@haskalah.org>
Tested-by: Sergey Avseyev <sergey.avseyev@gmail.com>
Make ABI compliance checking a bit nicer

Change-Id: I71dba03db5d7a07f1af636763cf7043579e02e65
Reviewed-on: http://review.couchbase.org/43050
Tested-by: Mark Nunberg <mnunberg@haskalah.org>
Reviewed-by: Sergey Avseyev <sergey.avseyev@gmail.com>
Remove pedantic flags from libcliopts (autotools)

Change-Id: If91b17ab4b29f981a520c6f5ae499bca824d6a29
Reviewed-on: http://review.couchbase.org/43088
Tested-by: Mark Nunberg <mnunberg@haskalah.org>
Reviewed-by: Sergey Avseyev <sergey.avseyev@gmail.com>
Handle multi-arch builds better

Change-Id: I80bfcd6e62650bf4bc6c12dd5f6077262a322ebb
Reviewed-on: http://review.couchbase.org/43089
Tested-by: Mark Nunberg <mnunberg@haskalah.org>
Reviewed-by: Sergey Avseyev <sergey.avseyev@gmail.com>
CMake: Fail if src/config.h exists

This will break the build since the autotools config.h and cmake's
config.h may differ slightly.

Change-Id: Ifd7f3cd23192120e74865c02dd604a03f3fe6a94
Reviewed-on: http://review.couchbase.org/43090
Tested-by: Mark Nunberg <mnunberg@haskalah.org>
Reviewed-by: Sergey Avseyev <sergey.avseyev@gmail.com>
CMake: Allow to disable mock tests individually

This lets systems with more limited resources execute tests while
skipping mock tests, as an alternative to -DLCB_NO_TESTS=1

Change-Id: I38c09627b5b48188dfd2cece142c459c1a92bdf5
Reviewed-on: http://review.couchbase.org/43091
Tested-by: Mark Nunberg <mnunberg@haskalah.org>
Reviewed-by: Sergey Avseyev <sergey.avseyev@gmail.com>
Paralellize tests with debian/rules

Change-Id: Ib561374aef3948920a904f8fe1995162ce7b48c6
Reviewed-on: http://review.couchbase.org/43092
Tested-by: Mark Nunberg <mnunberg@haskalah.org>
Reviewed-by: Sergey Avseyev <sergey.avseyev@gmail.com>
CLI tools should use detailed error codes

Change-Id: I3e0d4a8d2c818abc7068053d4f60970466ee1c00
Reviewed-on: http://review.couchbase.org/43136
Tested-by: Mark Nunberg <mnunberg@haskalah.org>
Reviewed-by: Sergey Avseyev <sergey.avseyev@gmail.com>
cbc: add 'strerror' subcommand

This new subcommand returns the textual description of an error inputted
in either hex or decimal form. Very handy for quickly deciphering output
in logs.

Change-Id: I964e86964c36208c4f2f56e32efd0d9953821858
Reviewed-on: http://review.couchbase.org/43137
Tested-by: Mark Nunberg <mnunberg@haskalah.org>
Reviewed-by: Sergey Avseyev <sergey.avseyev@gmail.com>
Remove debian/changelog and RPM %changelog

This will be generated at build time from RELEASE_NOTES.md, and
installed as /usr/share/doc/libcouchbase2-core/changelog.gz, as normal
debian packages do with their upstream log.

The same semantics apply for the RPM changelog as well.

Change-Id: Ibea18cd9a9518aa677f2018300326b990f5c7600
Reviewed-on: http://review.couchbase.org/43138
Tested-by: Mark Nunberg <mnunberg@haskalah.org>
Reviewed-by: Sergey Avseyev <sergey.avseyev@gmail.com>
Fix SSL breakage due to recent is_closed functionality

We didn't proxy these functions properly in the SSL code.

Change-Id: I000bbb012c38a0dfeb07ec241fdf62b8eec8bbe2
Reviewed-on: http://review.couchbase.org/43161
Reviewed-by: Sergey Avseyev <sergey.avseyev@gmail.com>
Tested-by: Mark Nunberg <mnunberg@haskalah.org>
CMake: Allow to explicitly enable/disable various plugins

Change-Id: Ib9a84b02ee065d9be1eb96152185c47e2e451b15
Reviewed-on: http://review.couchbase.org/43156
Tested-by: Mark Nunberg <mnunberg@haskalah.org>
Reviewed-by: Sergey Avseyev <sergey.avseyev@gmail.com>
CMake: Place hard version dependency on >= 2.8.9

Apparently there's a huge difference between even minor versions of
cmake in terms of additional features.

Change-Id: Idade6466e815a7dfdeaad9080d05527ac1b0c97a
Reviewed-on: http://review.couchbase.org/43157
Reviewed-by: Sergey Avseyev <sergey.avseyev@gmail.com>
Tested-by: Mark Nunberg <mnunberg@haskalah.org>
CMake: Make SONAME versioning function like Autotools on OSX

See the commit for details.

Change-Id: I30175c098bc9f39b2426160f08bcce3225d6a50a
Reviewed-on: http://review.couchbase.org/43158
Tested-by: Mark Nunberg <mnunberg@haskalah.org>
Reviewed-by: Sergey Avseyev <sergey.avseyev@gmail.com>
CMake: Use DTrace when available

This adds support for DTrace probes. This is present on OS X and/or
Linux builds, when available.

Change-Id: I745dc0413fa0bc555112006b6a5449a008696706
Reviewed-on: http://review.couchbase.org/43159
Tested-by: Mark Nunberg <mnunberg@haskalah.org>
Reviewed-by: Sergey Avseyev <sergey.avseyev@gmail.com>
Fix bad argument passed to Observe dtrace hook

Change-Id: I1fac671900f38c7382126c741ddb1df87bb8f29e
Reviewed-on: http://review.couchbase.org/43160
Reviewed-by: Sergey Avseyev <sergey.avseyev@gmail.com>
Tested-by: Mark Nunberg <mnunberg@haskalah.org>
CMake: Misc. Fixes

- Generate VERSION if it does not exist
- Add MANIFEST and VERSION files to dist tarball
- Remove some warnings under 3.1.0-rc1

Change-Id: Ib7a45235b527b513d20eb3443fac70428b722f93
Reviewed-on: http://review.couchbase.org/43197
Tested-by: Mark Nunberg <mnunberg@haskalah.org>
Reviewed-by: Sergey Avseyev <sergey.avseyev@gmail.com>
Prettify lcb_cntl tables

Change-Id: Id57284f93c66535f39c3aaaca4ec19d93ba7529f
Reviewed-on: http://review.couchbase.org/43198
Reviewed-by: Sergey Avseyev <sergey.avseyev@gmail.com>
Tested-by: Mark Nunberg <mnunberg@haskalah.org>
Change doxygen section names to generate nicer links

Rename Doxygen documentation sections to generate nicer links

Doxygen follows some (undocumented) rules when generating HTML
links. Unfortunately for us, the form `@defgroup FOOBAR` will actually
generate a page called `F_O_O_B_A_R`, which is really really ugly. It seems
doxygen replaces a single `_` with two underscores, and an upper-case
leter itself is surrounded by underscores as well.

Luckily we can avoid all this if we use hyphen-delimited, all lowercase
names for our doxygen sections; in which case the actual link pages
resemble the names the most.

Unfortunately because we have documentation EVERYWHERE and this naming
convention is also everywhere, this commit touches a lot of files,
albeit in a trivial manner.

Change-Id: I9f9af585ebe51e4337ee764bf45e68c871021f61
Reviewed-on: http://review.couchbase.org/43199
Reviewed-by: Sergey Avseyev <sergey.avseyev@gmail.com>
Tested-by: Mark Nunberg <mnunberg@haskalah.org>
HTTP: Handle cancellation within callback

If a request was cancelled from within the callback, it would result in
calling lcb_http_request_finish() twice which would result in the
library accessing freed memory.

This commit adds a sentinel so that finish is only called once.
Additionally, more tests have been added to test the various aspects of
the HTTP API.

Change-Id: Ibba86586c360e3d929b0ba998282725e5f9704c5