couchdb-pkg
couchdb-pkg copied to clipboard
Apache CouchDB Packaging support files
CouchDB Packaging support repo
The main purpose of this repository is to provide packaging support files for Apache CouchDB and its SpiderMonkey 1.8.5 dependency, for a number of well-known and used packaging formats, namely:
.debfiles, as used by Debian, Ubuntu, and derivatives.rpmfiles, as used by CentOS, RedHat, and derivativessnapcraftfiles, as used by the Ubuntu Snappy package manager
Usage
On a system with all necessary build-time dependencies:
SpiderMonkey 1.8.5
rpms
make couch-js-rpms
debs
make couch-js-debs PLATFORM=$(lsb_release -cs)
CouchDB
rpms or debs from master branch:
cd .. && git clone https://github.com/apache/couchdb
cd couchdb-pkg && make build-couch $(lsb_release -cs) PLATFORM=$(lsb_release -cs)
rpms or debs from a release tarball:
make copy-couch $(lsb_release -cs) COUCHTARBALL=path/to/couchdb-#.#.#.tar.gz PLATFORM=$(lsb_release -cs)
Building inside the couchdbdev docker containers
You must first pull down the image or images you need from Docker Hub, or build the images using the apache/couchdb-ci repository. A full list of supported environments is at https://hub.docker.com/u/couchdbdev/ .
SpiderMonkey 1.8.5
docker pull couchdbdev/<os>-<codename>-base
./build.sh js <os>-<codename> # for example, debian-stretch, ubuntu-bionic or centos-7.
CouchDB
From a downloaded CouchDB tarball:
docker pull couchdbdev/<osname>-<codename>-erlang-<erlang-version>
ERLANGVERSION=<erlang-version> ./build.sh couch <os>-<codename> path/to/couchdb-#.#.#.tar.gz
Directly from the Apache source CDN:
docker pull couchdbdev/<osname>-<codename>-erlang-<erlang-version>
./build.sh couch <os>-<codename> https://dist.apache.org/repos/dist/release/couchdb/source/#.#.#/apache-couchdb-#.#.#.tar.gz
Building packages for a release
Prerequisites
- Linux running Docker
- The current user must be capable of running
docker run. - Enough free disk space to download all of the Docker images + build CouchDB.
Running the package build
You can either build packages from a local CouchDB dist tarball (the output
of make dist), or from a URL of a published CouchDB dist tarball (such
as the ones on https://couchdb.apache.org/). The package's version number
will be derived from the filename of the CouchDB dist tarball.
Run:
$ ./build.sh couch-all path/to/apache-couchdb-VERSION.tar.gz
or
$ ./build.sh couch-all http://url/to/apache-couchdb-VERSION.tar.gz
Packages will be placed in the pkgs/couch subdirectory.
A similar js-all target exists, should the SpiderMonkey packages need to be regenerated.
Uploading the packages
If you have Apache credentials (set your BINARY_CREDS environment variable appropriately), after building all CouchDB packages above, and signing the rpms with the appropriate GPG key using the rpmsign --addsign <file.rpm> command, simply run:
./build.sh couch-upload-all
Or, for the SpiderMonkey packages:
./build.sh js-upload-all
Snap packages
See README-SNAP.md.
Feedback, Issues, Contributing
General feedback is welcome at our user or developer mailing lists.
Apache CouchDB has a CONTRIBUTING file with details on how to get started with issue reporting or contributing to the upkeep of this project.