All checksums have been double-checked against existing RMD160 and
SHA512 hashes
The following distfiles could not be fetched (some may be only fetched
conditionally):
./databases/cstore/distinfo D6.data.ros.gz
./databases/cstore/distinfo cstore0.2.tar.gz
./databases/cstore/distinfo data4.tar.gz
This version of couchdb, as well as the current version of couchdb 3.x, is
incompatible with OTP 23. While here fix hardcoded paths in patch-aa, making
it clear that this package can't be all that popular ;-)
Bump PKGREVISION for good measure even though this package previously could not
build, in case someone still has a version from before lang/erlang was bumped
lying around.
pkglint -r --network --only "migrate"
As a side-effect of migrating the homepages, pkglint also fixed a few
indentations in unrelated lines. These and the new homepages have been
checked manually.
Summary of changes between 2.1.x and 2.3.x are listed below. For a more
readable version please see the following URLs:
http://docs.couchdb.org/en/latest/whatsnew/2.3.htmlhttp://docs.couchdb.org/en/latest/whatsnew/2.2.htmlhttp://docs.couchdb.org/en/latest/whatsnew/2.1.html
2.3.x Branch Upgrade Notes
#1602: To improve security, there have been major changes in the configuration
of query servers, SSL support, and HTTP global handlers:
Query servers are NO LONGER DEFINED in the .ini files, and can no longer be
altered at run-time.
The JavaScript and CoffeeScript query servers continue to be enabled by
default. Setup differences have been moved from default.ini to the couchdb and
couchdb.cmd start scripts respectively.
Additional query servers can now be configured using environment variables:
export COUCHDB_QUERY_SERVER_PYTHON="/path/to/python/query/server.py with args"
couchdb
where the last segment in the environment variable (_PYTHON) matches the usual
lowercase(!) query language in the design doc language field (here, python.)
Multiple query servers can be configured by using more environment variables.
You can also override the default servers if you need to set command- line
options (such as couchjs stack size):
export COUCHDB_QUERY_SERVER_JAVASCRIPT="/path/to/couchjs /path/to/main.js -S <STACKSIZE>"
couchdb
The mango query server continues to be enabled by default. The Erlang query
server continues to be disabled by default. This change adds a
[native_query_servers] enable_erlang_query_server = BOOL setting (defaults to
false) to enable the Erlang query server.
If the legacy configuration for enabling the query server is detected, that is
counted as a true setting as well, so existing configurations continue to work
just fine.
SSL Support
Enabling SSL support in the ini file is now easier:
[ssl]
enable = true
If the legacy httpsd configuration is found in your ini file, this will still
enable SSL support, so existing configurations do not need to be changed.
HTTP global handlers
These are no longer defined in the default.ini file, but have been moved to the
couch.app context. If you need to customize your handlers, you can modify the
app context using a couchdb.config file as usual.
#1602: Also to improve security, the deprecated os_daemons and
couch_httpd_proxy functionality has been completely removed ahead of the
planned CouchDB 3.0 release. We recommend the use of OS-level daemons such as
runit, sysvinit, systemd, upstart, etc. to launch and maintain OS daemons
instead, and the use of a reverse proxy server in front of CouchDB (such as
haproxy) to proxy access to other services or domains alongside CouchDB.
#1543: The node-local (default port 5986) /_restart endpoint has been replaced
by the clustered (default port 5984) endpoint /_node/$node/_restart and
/_node/_local/_restart endpoints. The node-local endpoint has been removed.
#1764: All python scripts shipped with CouchDB, including couchup and the
dev/run development cluster script, now specify and require Python 3.x.
#1396: CouchDB is now compatible with Erlang 21.x.
#1680: The embedded version of rebar used to build CouchDB has been updated to
the last version of rebar2 available. This assists in building on non-x86
platforms.
#1857: Refuse building with known bad versions of Erlang.
2.2.x Branch Upgrade Notes
The minimum supported version of Erlang is now 17, not R16B03. Support for
Erlang 21 is still ongoing and will be provided in a future release.
The CouchDB replication client can now use the /_session endpoint when
authenticating against remote CouchDB instances, improving performance since
re-authorization does not have to be performed with every request. Because of
this performance improvement, it is recommended to increase the PBKDF2 work
factor beyond the default 10 to a modern default such as 10000. This is done
via the local ini file setting [couch_httpd_auth] iterations = 10000.
Do not do this if an older version of CouchDB is replicating TO this instance
or cluster regularly, since CouchDB < 2.2.0 must perform authentication on
every request and replication performance will suffer.
A future version will make this increased number of iterations a default.
#820, #1032: Multiple queries can now be made at the POST
/{db}/_all_docs/queries, POST /{db}/_design_docs/queries and POST
/{db}/_local_docs/queries endpoints. Also, a new endpoint POST
/{db}/_design/{ddoc}/_view/{view}/queries has been introduced to replace the
?queries parameter formerly provided for making multiple queries to a view. The
old ?queries parameter is now deprecated and will be removed in a future
release of CouchDB.
The maximum http request limit, which had been lowered in 2.1.0, has been
re-raised to a 4GB limit for now. (#1446). Ongoing discussion about the path
forward for future releases is available in #1200 and #1253.
#1118: The least recently used (LRU) cache of databases is now only updated on
database write, not read. This has lead to significant performance enhancements
on very busy clusters. To restore the previous behaviour, your local ini file
can contain the block [couchdb] update_lru_on_read = true.
#1153: The CouchDB replicator can now make use of the /_session endpoint rather
than relying entirely on HTTP basic authentication headers. This can greatly
improve replication performance. We encourage you to upgrade any nodes or
clusters that regularly act as replication clients to use this new feature,
which is enabled by default (#1462).
#1283: The [couchdb] enable_database_recovery feature, which only soft-deletes
databases in response to a DELETE /{db} call, is now documented in default.ini.
#1330: CouchDB externals and OS daemons are now officially deprecated and no
longer documented. Support for these features will be completely removed in a
future release of CouchDB (probably 3.0.0).
#1436: CouchDB proxy authentication now uses a proper chttpd_auth module,
simplifying configuration in local ini files. While this is not a backward-
compatible breaking change, it is best to update your local ini files to
reference the new {chttpd_auth, proxy_authentication_handler} handler rather
than the couch_httpd_auth version, as couch_httpd is in the process of being
deprecated completely.
#1476, #1477: The obsolete update_notification feature, which was replaced by
/{db}/_changes feeds c. CouchDB 1.2, has been completely removed. This feature
never worked in 2.0 for databases, only for shards, making it effectively
useless.
couchdb 2.1.1
- CouchDB now supports compilation and running under Erlang/OTP 20.x
- The couch_peruser functionality is now really fixed
- The cookie domain for AuthSession cookies, used in a proxy
authentication configuration, can now be customized via the ini file
- It is now possible to modify shard maps for system databases
- Due to an Erlang bug (ERL-343), invalid paths can be returned if
volumes are mounted containing whitespace in their name (fixed)
- The current node's local interface can now be accessed at
/_node/_local/{endpoint} as well as at
/_node/<nodename>@<hostname>/{endpoint}.- The Dockerfile in the source
repository has been retired
- Fauxton now uses a version of React with a BSD license.
- CouchDB now no longer decompresses documents just to determine their
uncompressed size
- The design document cache (ddoc_cache) has been rewritten to improve
performance
- Mango now supports partial indexes
- Mango queries can now be paginated
- Mango _find accepts an execution_stats parameter
- Mango now requires that all of the fields in a candidate index must
exist in a query's selector
- Other minor improvements.
couchdb 2.1.0
- The Mango _find endpoint supports a new combination operator,
$allMatch.
- New scheduling replicator.
- Other minor improvements.
See changelog for the 2.1.x branch for more:
http://docs.couchdb.org/en/latest/whatsnew/2.1.html
- The build system embeds the Erlang VM into the package, which means that
the PLIST may differ across build systems. Hence why we use a semi-dynamic
PLIST here.
- That also means that lang/erlang is now a build dependency only.
- Include a couch-epmd service for the Erlang Port Mapper Daemon using the
embedded binary.
- Basic RCD script added.
Upstream changes since 1.6.x:
- Native clustering is now supported. Rather than use CouchDB replication
between multiple, distinct CouchDB servers, configure a cluster of CouchDB
nodes.
- Futon replaced by brand-new, completely re-engineered Fauxton interface.
URL remains the same.
- The new Mango Query Server provides a simple JSON-based way to perform
CouchDB queries without JavaScript or MapReduce.
- Mango selectors can be used in _changes feeds instead of JavaScript
MapReduce filters. Mango has been tested to be up to an order of magnitude
(10x) faster than JavaScript in this application.
- Rewrite rules for URLs can be performed using JavaScript functions.
- Multiple queries can be made of a view with a single HTTP request.
- Views can be queried with sorting turned off ( sorted=false) for a
performance boost.
- The global changes feed has been enhanced. It is now resumable and
persistent.
- New endpoints added (documentation forthcoming):
- /_membership shows all nodes in a cluster
- /_bulk_get speeds up the replication protocol over low-latency connections
- /_node/ api to access individual nodes' configuration and compaction
features
- /_cluster_setup api to set up a cluster from scratch.
- /_up api to signal health of a node to a load-balancer
- /db/_local_docs and /db/_design_docs (similar to /db/_all_docs)
- "Backend" interface on port 5986 used for specific cluster admin tasks. Of
interest are the _nodes and _dbs databases visible only through this
interface.
- Support added for Erlang/OTP 17.x, 18.x and 19
- New streamlined build system written for Unix-like systems and Microsoft
Windows
Upgrade Notes
- The update sequences returned by the /db/_changes feed are no longer
integers. They can be any JSON value. Applications should treat them as
opaque values and return them to CouchDB as-is.
- Temporary views are no longer supported.
- It is possible to have multiple replicator databases. replicator/db config
option has been removed. Instead _replicator and any database names ending
with the /_replicator suffix will be recognized as replicator databases by
the system.
- Note that the semantics of some API calls have changed due to the
introduction of the clustering feature. Specifically, make note of the
difference between receiving a 201 and a 202 when storing a document.
- all_or_nothing is no longer supported by the bulk_docs API
See full release notes:
http://docs.couchdb.org/en/latest/whatsnew/2.0.html