commit | 7f1e10a3302e5ee9b292ea5ded8ad89b8b768bf8 | [log] [tgz] |
---|---|---|
author | Adam Kocoloski <kocolosk@apache.org> | Mon Feb 07 09:32:49 2022 -0500 |
committer | Adam Kocoloski <kocolosk@apache.org> | Thu Feb 10 09:05:03 2022 -0500 |
tree | bd878aab43149991129b9ae4884f263ea261d082 | |
parent | 54151f7245a1ce250b24846020e48fc71e7b636f [diff] |
Use --platform to select container arch at runtime The bugs seem to have been worked out here, so we can use multi-platform container images like the ones we've generated for CI and still select the runtime architecture we want if we need to build packages via QEMU.
The main purpose of this repository is to provide packaging support files for Apache CouchDB and its SpiderMoneky 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 derivativessnapcraft
files, as used by the Ubuntu Snappy package managermake couch-js-rpms
make couch-js-debs PLATFORM=$(lsb_release -cs)
master
branch:cd .. && git clone https://github.com/apache/couchdb cd couchdb-pkg && make build-couch $(lsb_release -cs) PLATFORM=$(lsb_release -cs)
make copy-couch $(lsb_release -cs) COUCHTARBALL=path/to/couchdb-#.#.#.tar.gz PLATFORM=$(lsb_release -cs)
couchdbdev
docker 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/ .
docker pull couchdbdev/<os>-<codename>-base ./build.sh js <os>-<codename> # for example, debian-stretch, ubuntu-bionic or centos-7.
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
docker run
.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.
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
See README-SNAP.md.
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.