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:
.deb files, as used by Debian, Ubuntu, and derivatives
.rpm files, as used by CentOS, RedHat, and derivatives
snapcraft files, 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.
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.
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
Upload Dev Packages
couch-dev-deb and couch-dev-rpm are dev repos which can be used
for pre-release or testing of packages.
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 managerUsage
On a system with all necessary build-time dependencies:
SpiderMonkey 1.8.5
rpms
debs
CouchDB
rpms or debs from
masterbranch:rpms or debs from a release tarball:
Building inside the
couchdbdevdocker containersYou 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
CouchDB
From a downloaded CouchDB tarball:
Directly from the Apache source CDN:
Building packages for a release
Prerequisites
docker run.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:
or
Packages will be placed in the
pkgs/couchsubdirectory.A similar
js-alltarget exists, should the SpiderMonkey packages need to be regenerated.Uploading the packages
If you have Apache credentials (set your
BINARY_CREDSenvironment variable appropriately), after building all CouchDB packages above, and signing the rpms with the appropriate GPG key using therpmsign --addsign <file.rpm>command, simply run:Or, for the SpiderMonkey packages:
Upload Dev Packages
couch-dev-debandcouch-dev-rpmare dev repos which can be used for pre-release or testing of packages.To upload packages to the dev repository:
To upload only a subset of packages, edit build.sh temporary to remove some of these variables:
Install Dev Packages
Deb Packages
RPM Packages
RHEL/AlmaLinux/RockyLinux 8
As root or under
sudoRHEL/AlmaLinux/RockyLinux 9
As root or under
sudoRHEL/AlmaLinux/RockyLinux 10
As root or under
sudoEnable Nouveau
To try out Nouveau:
Use
COUCHDB_NOUVEAU_ENABLE=1when installing the couchdb package. That enables thenouveauconfig settingInstall Java 11+:
Start the service:
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.