| name: couchdb |
| version: 3.1.1 |
| summary: Official Apache CouchDB snap - a clustering document oriented database |
| description: | |
| CouchDB is a database that completely embraces the web. Store your data with |
| JSON documents. Access your documents and query your indexes with your web |
| browser, via HTTP. Index, combine, and transform your documents with |
| JavaScript. |
| |
| architectures: |
| - build-on: amd64 |
| run-on: amd64 |
| assumes: [command-chain, common-data-dir] |
| base: core20 |
| grade: stable |
| confinement: strict |
| |
| parts: |
| add-repo: |
| plugin: nil |
| override-pull: | |
| apt-get update |
| apt-get upgrade -yy |
| apt-get install -y --no-install-recommends apt-transport-https \ |
| gnupg ca-certificates |
| echo "deb https://apache.bintray.com/couchdb-deb focal main" | \ |
| tee /etc/apt/sources.list.d/custom.list |
| apt-key adv --keyserver keyserver.ubuntu.com --recv-keys \ |
| 8756C4F765C9AC3CB6B85D62379CE192D401AB61 |
| apt-get update |
| couchdb: |
| after: [add-repo] |
| plugin: dump |
| source: https://apache.bintray.com/couchdb-deb/pool/C/CouchDB/couchdb_3.1.1~focal_amd64.deb |
| source-type: deb |
| # because this doesn't use apt, we have to manually list all of our |
| # dependencies :( |
| build-packages: |
| - adduser |
| - debconf |
| - ca-certificates |
| - init-system-helpers |
| - lsb-base |
| - libgcc1 |
| stage-packages: |
| - libmozjs-68-0 |
| - procps |
| - libcurl4 |
| - libicu66 |
| - libssl1.1 |
| - libtinfo6 |
| override-pull: | |
| snapcraftctl pull |
| rm -f opt/couchdb/data opt/couchdb/var/log opt/couchdb/etc/default.d/* |
| mkdir -p opt/couchdb/etc/default.d.dist/ |
| mv opt/couchdb/etc/vm.args opt/couchdb/etc/vm.args.dist |
| mv opt/couchdb/etc/local.ini opt/couchdb/etc/local.ini.dist |
| override-build: | |
| echo "couchdb couchdb/mode select none" | debconf-set-selections |
| snapcraftctl build |
| override-stage: | |
| # focal libmozjs is busted... |
| ln -s libmozjs-68.so.68.6.0 /root/parts/couchdb/install/usr/lib/x86_64-linux-gnu/libmozjs-68.so.0 |
| snapcraftctl stage |
| override-prime: | |
| snapcraftctl prime |
| |
| layout: |
| # Database and log files are common across upgrades |
| # We do not bind default.ini or default.d/ as these are |
| # intended to be immutable |
| $SNAP/opt/couchdb/data: |
| bind: $SNAP_COMMON/data |
| $SNAP/opt/couchdb/var/log: |
| bind: $SNAP_COMMON/log |
| # Local configuration files may change across upgrades |
| $SNAP/opt/couchdb/etc/vm.args: |
| bind-file: $SNAP_DATA/etc/vm.args |
| $SNAP/opt/couchdb/etc/local.d: |
| bind: $SNAP_DATA/etc/local.d |
| $SNAP/opt/couchdb/etc/local.ini: |
| bind-file: $SNAP_DATA/etc/local.ini |
| |
| environment: |
| COUCHDB_ARGS_FILE: ${SNAP_DATA}/etc/vm.args |
| ERL_FLAGS: "-couch_ini ${SNAP}/opt/couchdb/etc/default.ini |
| ${SNAP}/opt/couchdb/etc/default.d |
| ${SNAP_DATA}/etc/local.ini |
| ${SNAP_DATA}/etc/local.d" |
| |
| apps: |
| couchdb: |
| adapter: full |
| command: opt/couchdb/bin/couchdb |
| plugs: [network, network-bind, process-control, mount-observe] |
| server: |
| daemon: simple |
| adapter: full |
| command: opt/couchdb/bin/couchdb |
| plugs: [network, network-bind, process-control, mount-observe] |
| remsh: |
| command: opt/couchdb/bin/remsh |
| plugs: [network, network-bind] |
| couchjs: |
| command: opt/couchdb/bin/couchjs |
| plugs: [network, network-bind] |