pkgsrc/databases/couchdb/Makefile

126 lines
4.4 KiB
Makefile
Raw Normal View History

2020-06-02 10:22:31 +02:00
# $NetBSD: Makefile,v 1.70 2020/06/02 08:23:24 adam Exp $
couchdb: Upgrade to 2.3.1. Now works with current Erlang. 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.html http://docs.couchdb.org/en/latest/whatsnew/2.2.html http://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.
2019-09-06 11:10:47 +02:00
DISTNAME= apache-couchdb-2.3.1
PKGNAME= ${DISTNAME:S/apache-//}
2020-06-02 10:22:31 +02:00
PKGREVISION= 8
CATEGORIES= databases
2013-09-09 15:39:10 +02:00
MASTER_SITES= ${MASTER_SITE_APACHE:=couchdb/source/${PKGVERSION_NOREV}/}
couchdb: Upgrade to 2.3.1. Now works with current Erlang. 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.html http://docs.couchdb.org/en/latest/whatsnew/2.2.html http://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.
2019-09-06 11:10:47 +02:00
MAINTAINER= pkgsrc-users@NetBSD.org
HOMEPAGE= https://couchdb.apache.org/
COMMENT= Document database server, accessible via a RESTful JSON API
LICENSE= apache-2.0
Update databases/couchdb to 2.0.0. - 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
2016-11-16 16:59:28 +01:00
HAS_CONFIGURE= yes
USE_LANGUAGES= c c++
USE_TOOLS+= gmake pax pkg-config
USE_LIBTOOL= yes
BUILD_DEFS+= VARBASE
BUILD_DEPENDS+= help2man-[0-9]*:../../converters/help2man
Update databases/couchdb to 2.0.0. - 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
2016-11-16 16:59:28 +01:00
BUILD_DEPENDS+= rebar>=2.6.0<3:../../devel/rebar
.include "../../mk/bsd.prefs.mk"
COUCH_DBDIR?= ${VARBASE}/db/couchdb
COUCH_EGDIR= ${PREFIX}/share/examples/couchdb
COUCH_LOGDIR?= ${VARBASE}/log/couchdb
Update databases/couchdb to 2.0.0. - 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
2016-11-16 16:59:28 +01:00
COUCH_RUNDIR?= ${VARBASE}/run/couchdb
COUCH_USER?= couchdb
COUCH_GROUP?= ${COUCH_USER}
PKG_GROUPS+= ${COUCH_GROUP}
PKG_USERS+= ${COUCH_USER}:${COUCH_GROUP}
PKG_GECOS.${COUCH_USER}= CouchDB Server User
PKG_HOME.${COUCH_USER}= ${COUCH_DBDIR}
PKG_SHELL.${COUCH_USER}= ${COMMAND_SHELL}
FILES_SUBST+= COUCH_USER=${COUCH_USER}
FILES_SUBST+= COUCH_GROUP=${COUCH_GROUP}
FILES_SUBST+= COUCH_DBDIR=${COUCH_DBDIR}
Update databases/couchdb to 2.0.0. - 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
2016-11-16 16:59:28 +01:00
FILES_SUBST+= COUCH_RUNDIR=${COUCH_RUNDIR}
FILES_SUBST+= ERTS_VERSION=${VERSION.erts}
OWN_DIRS= ${COUCH_LOGDIR} ${COUCH_DBDIR} ${COUCH_RUNDIR} ${PKG_SYSCONFDIR}
OWN_DIRS_PERMS+= ${COUCH_DBDIR} ${COUCH_USER} ${COUCH_GROUP} 0770
OWN_DIRS_PERMS+= ${COUCH_LOGDIR} ${COUCH_USER} ${COUCH_GROUP} 0770
OWN_DIRS_PERMS+= ${COUCH_RUNDIR} ${COUCH_USER} ${COUCH_GROUP} 0770
PKG_SYSCONFSUBDIR= couchdb
PKG_SYSCONFDIR_PERMS= ${COUCH_USER} ${COUCH_GROUP} 0775
CONF_FILES_PERMS+= ${COUCH_EGDIR}/default.ini ${PKG_SYSCONFDIR}/default.ini \
Update databases/couchdb to 2.0.0. - 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
2016-11-16 16:59:28 +01:00
${COUCH_USER} ${COUCH_GROUP} 0660
CONF_FILES_PERMS+= ${COUCH_EGDIR}/local.ini ${PKG_SYSCONFDIR}/local.ini \
Update databases/couchdb to 2.0.0. - 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
2016-11-16 16:59:28 +01:00
${COUCH_USER} ${COUCH_GROUP} 0660
CONF_FILES_PERMS+= ${COUCH_EGDIR}/vm.args ${PKG_SYSCONFDIR}/vm.args \
Update databases/couchdb to 2.0.0. - 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
2016-11-16 16:59:28 +01:00
${COUCH_USER} ${COUCH_GROUP} 0660
SUBST_CLASSES+= paths
SUBST_MESSAGE.paths= Setting standard paths
Update databases/couchdb to 1.3.0. Changes since 1.2.1: Version 1.3.0 ------------- HTTP Interface: * No longer rewrites the X-CouchDB-Requested-Path during recursive calls to the rewriter. * Limit recursion depth in the URL rewriter. Defaults to a maximum of 100 invocations but is configurable. * Fix _session for IE7. * Added Server-Sent Events protocol to db changes API. See http://www.w3.org/TR/eventsource/ for details. * Make password hashing synchronous when using the /_config/admins API. * Include user name in show/list ETags. * Experimental support for Cross-Origin Resource Sharing (CORS). See http://www.w3.org/TR/cors/ for details. Replicator: * The replicator will use a new server-wide UUID in checkpoint IDs to improve the chances of an efficient resume. Storage System: * Fixed unnecessary conflict when deleting and creating a document in the same batch. View Server: * Additional response headers may be varied prior to send(). * GetRow() is now side-effect free. Futon: * Disabled the link to the Futon test suite. These tests were causing problems when run from a browser, and are now available via the CLI instead. * Added view request duration to Futon. * Disable buttons for actions that the user doesn't have permissions to. Security: * Passwords are now hashed using the PBKDF2 algorithm with a configurable work factor. Test Suite: * Moved the JS test suite to the CLI. * Improved tracebacks printed by the JS CLI tests. * Improved the reliability of a number of tests. UUID Algorithms: * Added the utc_id algorithm. URL Rewriter & Vhosts: * Database name is encoded during rewriting (allowing embedded /'s, etc). * Reset rewrite counter on new request, avoiding unnecessary request failures due to bogus rewrite limit reports. Build System: * C/C++ compiler detection has been improved. * Autoconf v2.63 is now required if building from Git checkout directly. See DEVELOPERS file for more details. * Fixed issue in couchdb script where stopped status returns before process exits. Version 1.2.2 ------------- HTTP Interface: * Reset rewrite counter on new request, avoiding unnecessary request failures due to bogus rewrite limit reports. Build System: * Fixed issue in couchdb script where stopped status returns before process exits.
2013-04-24 14:22:37 +02:00
SUBST_STAGE.paths= pre-configure
SUBST_FILES.paths+= rel/files/couchdb.in
Update databases/couchdb to 2.0.0. - 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
2016-11-16 16:59:28 +01:00
SUBST_FILES.paths+= rel/overlay/etc/default.ini
SUBST_FILES.paths+= src/config/src/config_app.erl
SUBST_VARS.paths= COUCH_DBDIR COUCH_LOGDIR COUCH_RUNDIR PREFIX PKG_SYSCONFDIR
CHECK_PORTABILITY_SKIP+= build-aux/print-committerlist.sh
Update databases/couchdb to 2.0.0. - 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
2016-11-16 16:59:28 +01:00
CONFIGURE_ARGS+= --rebar\ ${PREFIX}/bin/rebar
CONFIGURE_ARGS+= --user\ ${COUCH_USER}
CONFIGURE_ARGS+= --skip-deps
CONFIGURE_ARGS+= --with-curl
BUILD_TARGET= release
2019-03-29 01:09:31 +01:00
TEST_TARGET= check
Update databases/couchdb to 2.0.0. - 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
2016-11-16 16:59:28 +01:00
INSTALLATION_DIRS+= bin couchdb/lib
INSTALLATION_DIRS+= couchdb/share/server couchdb/share/www/docs
INSTALLATION_DIRS+= ${PKGMANDIR}/man1
INSTALLATION_DIRS+= share/examples/couchdb
Update databases/couchdb to 2.0.0. - 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
2016-11-16 16:59:28 +01:00
couchdb: Upgrade to 2.3.1. Now works with current Erlang. 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.html http://docs.couchdb.org/en/latest/whatsnew/2.2.html http://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.
2019-09-06 11:10:47 +02:00
CTF_FILES_SKIP+= couchdb/erts*/bin/*
CTF_FILES_SKIP+= couchdb/lib/*/priv/bin/*
CTF_FILES_SKIP+= couchdb/lib/*/priv/lib/*.so
Update databases/couchdb to 2.0.0. - 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
2016-11-16 16:59:28 +01:00
RCD_SCRIPTS+= couchdb
# This is silly, but the rebar release target embeds the Erlang VM
# into the tree, including existing Erlang module versions that might
# differ from those included in the tarball. We use a dynamic PLIST
# for the parts that may change.
GENERATE_PLIST= cd ${DESTDIR}${PREFIX}; ${FIND} \
couchdb/erts-* couchdb/lib \
\( -type f -o -type l \) -print | \
Update databases/couchdb to 2.0.0. - 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
2016-11-16 16:59:28 +01:00
${SORT} -u;
# Ignore dynamically generated parts when doing print-PLIST
PRINT_PLIST_AWK+= /^couchdb\/erts-/ { next; }
PRINT_PLIST_AWK+= /^couchdb\/lib\// { next; }
Update databases/couchdb to 2.0.0. - 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
2016-11-16 16:59:28 +01:00
# We need to know the version of erts and subst it inside the SMF manifest
.include "../../lang/erlang/Makefile.versions"
do-install:
cd ${WRKSRC}/rel/couchdb && \
${PAX} -rw -pp erts-${VERSION.erts} lib releases \
${DESTDIR}${PREFIX}/couchdb
${INSTALL_SCRIPT} ${WRKSRC}/rel/couchdb/bin/couchdb \
${DESTDIR}${PREFIX}/bin
${INSTALL_PROGRAM} ${WRKSRC}/rel/couchdb/bin/couchjs \
${DESTDIR}${PREFIX}/bin
${INSTALL_MAN} ${WRKSRC}/rel/couchdb/share/docs/couchdb.1 \
${DESTDIR}${PREFIX}/${PKGMANDIR}/man1
cd ${WRKSRC}/rel/couchdb/share && ${PAX} -rw -pp server www \
${DESTDIR}${PREFIX}/couchdb/share
cd ${WRKSRC}/rel/couchdb/etc && ${PAX} -rw -pp *.ini vm.args \
${DESTDIR}${COUCH_EGDIR}
# The erlang VM gets embedded, but it may still need the curses lib
BUILDLINK_DEPMETHOD.erlang= build
.include "../../mk/termcap.buildlink3.mk"
.include "../../lang/erlang/buildlink3.mk"
Update databases/couchdb to 2.0.0. - 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
2016-11-16 16:59:28 +01:00
.include "../../lang/spidermonkey185/buildlink3.mk"
.include "../../security/openssl/buildlink3.mk"
.include "../../textproc/icu/buildlink3.mk"
.include "../../www/curl/buildlink3.mk"
.include "../../mk/bsd.pkg.mk"