diff options
Diffstat (limited to 'nixpkgs/pkgs/servers/http/couchdb')
-rw-r--r-- | nixpkgs/pkgs/servers/http/couchdb/2.0.0.nix | 54 | ||||
-rw-r--r-- | nixpkgs/pkgs/servers/http/couchdb/default.nix | 39 | ||||
-rw-r--r-- | nixpkgs/pkgs/servers/http/couchdb/jsapi.patch | 60 |
3 files changed, 153 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/servers/http/couchdb/2.0.0.nix b/nixpkgs/pkgs/servers/http/couchdb/2.0.0.nix new file mode 100644 index 000000000000..fa8cb23bf1f8 --- /dev/null +++ b/nixpkgs/pkgs/servers/http/couchdb/2.0.0.nix @@ -0,0 +1,54 @@ +{ stdenv, fetchurl, erlang, icu, openssl, spidermonkey +, coreutils, bash, makeWrapper }: + +stdenv.mkDerivation rec { + name = "couchdb-${version}"; + version = "2.3.0"; + + src = fetchurl { + url = "mirror://apache/couchdb/source/${version}/apache-${name}.tar.gz"; + sha256 = "0lpk64n6fip85j1jz59kq20jdliwv6mh8j2h5zyxjn5i8b86hf0b"; + }; + + nativeBuildInputs = [ makeWrapper ]; + buildInputs = [ erlang icu openssl spidermonkey ]; + + patches = [ ./jsapi.patch ]; + postPatch = '' + substituteInPlace src/couch/rebar.config.script --replace '-DHAVE_CURL -I/usr/local/include' "-DHAVE_CURL -I/usr/local/include $NIX_CFLAGS_COMPILE" + + patch bin/rebar <<EOF + 1c1 + < #!/usr/bin/env escript + --- + > #!${coreutils}/bin/env escript + EOF + + ''; + + # Configure a username. The build system would use "couchdb" as + # default if none is provided. Note that it is unclear where this + # username is actually used in the build, as any choice seems to be + # working. + configurePhase = '' + ./configure -u nobody + ''; + + buildPhase = '' + make release + ''; + + installPhase = '' + mkdir -p $out + cp -r rel/couchdb/* $out + wrapProgram $out/bin/couchdb --suffix PATH : ${bash}/bin + ''; + + meta = with stdenv.lib; { + description = "A database that uses JSON for documents, JavaScript for MapReduce queries, and regular HTTP for an API"; + homepage = http://couchdb.apache.org; + license = licenses.asl20; + platforms = platforms.all; + maintainers = with maintainers; [ garbas ]; + }; +} diff --git a/nixpkgs/pkgs/servers/http/couchdb/default.nix b/nixpkgs/pkgs/servers/http/couchdb/default.nix new file mode 100644 index 000000000000..5239c027b8fa --- /dev/null +++ b/nixpkgs/pkgs/servers/http/couchdb/default.nix @@ -0,0 +1,39 @@ +{ stdenv, fetchurl, erlang, icu, openssl, spidermonkey, curl, help2man +, sphinx, which, file, pkgconfig, getopt }: + +stdenv.mkDerivation rec { + name = "couchdb-${version}"; + version = "1.7.1"; + + src = fetchurl { + url = "mirror://apache/couchdb/source/${version}/apache-${name}.tar.gz"; + sha256 = "1b9cbdrmh1i71mrwvhm17v4cf7lckpil1vvq7lpmxyn6zfk0l84i"; + }; + + nativeBuildInputs = [ help2man which file pkgconfig sphinx ]; + buildInputs = [ erlang icu openssl spidermonkey curl ]; + + postInstall = '' + substituteInPlace $out/bin/couchdb --replace getopt "${getopt}/bin/getopt" + ''; + + /* + Versions of SpiderMonkey after the js185-1.0.0 release remove the optional + enforcement of preventing anonymous functions in a statement context. This + will most likely break your existing JavaScript code as well as render all + example code invalid. + + If you wish to ignore this error pass --enable-js-trunk to ./configure. + */ + configureFlags = [ + "--enable-js-trunk" + ]; + + meta = with stdenv.lib; { + description = "A database that uses JSON for documents, JavaScript for MapReduce queries, and regular HTTP for an API"; + homepage = http://couchdb.apache.org; + license = licenses.asl20; + platforms = platforms.all; + maintainers = with maintainers; [ garbas ]; + }; +} diff --git a/nixpkgs/pkgs/servers/http/couchdb/jsapi.patch b/nixpkgs/pkgs/servers/http/couchdb/jsapi.patch new file mode 100644 index 000000000000..bb7d4ca610c7 --- /dev/null +++ b/nixpkgs/pkgs/servers/http/couchdb/jsapi.patch @@ -0,0 +1,60 @@ +diff -ru couch_js/http.c couch_js-patched/http.c +--- apache-couchdb-2.0.0/src/couch/priv/couch_js/http.c 2016-09-12 11:28:51.000000000 +0200 ++++ apache-couchdb-2.0.0-patched/src/couch/priv/couch_js/http.c 2017-02-10 10:52:33.025854045 +0100 +@@ -15,7 +15,7 @@ + #include <string.h> + #include <sys/types.h> + #include <sys/stat.h> +-#include <jsapi.h> ++#include <js/jsapi.h> + #include "config.h" + #include "utf8.h" + #include "util.h" +diff -ru couch_js/main.c couch_js-patched/main.c +--- apache-couchdb-2.0.0/src/couch/priv/couch_js/main.c 2016-09-12 11:28:51.000000000 +0200 ++++ apache-couchdb-2.0.0-patched/src/couch/priv/couch_js/main.c 2017-02-10 10:52:33.001854154 +0100 +@@ -20,7 +20,7 @@ + #include <unistd.h> + #endif + +-#include <jsapi.h> ++#include <js/jsapi.h> + #include "config.h" + #include "http.h" + #include "utf8.h" +diff -ru couch_js/utf8.c couch_js-patched/utf8.c +--- apache-couchdb-2.0.0/src/couch/priv/couch_js/utf8.c 2016-09-12 11:28:51.000000000 +0200 ++++ apache-couchdb-2.0.0-patched/src/couch/priv/couch_js/utf8.c 2017-02-10 10:52:33.009854117 +0100 +@@ -10,7 +10,7 @@ + // License for the specific language governing permissions and limitations under + // the License. + +-#include <jsapi.h> ++#include <js/jsapi.h> + #include "config.h" + + static int +diff -ru couch_js/util.c couch_js-patched/util.c +--- apache-couchdb-2.0.0/src/couch/priv/couch_js/util.c 2016-09-12 11:28:51.000000000 +0200 ++++ apache-couchdb-2.0.0-patched/src/couch/priv/couch_js/util.c 2017-02-10 10:52:33.017854081 +0100 +@@ -13,7 +13,7 @@ + #include <stdlib.h> + #include <string.h> + +-#include <jsapi.h> ++#include <js/jsapi.h> + + #include "help.h" + #include "util.h" +diff -ru couch_js/util.h couch_js-patched/util.h +--- apache-couchdb-2.0.0/src/couch/priv/couch_js/util.h 2016-09-12 11:28:51.000000000 +0200 ++++ apache-couchdb-2.0.0-patched/src/couch/priv/couch_js/util.h 2017-02-10 10:52:32.988854212 +0100 +@@ -13,7 +13,7 @@ + #ifndef COUCHJS_UTIL_H + #define COUCHJS_UTIL_H + +-#include <jsapi.h> ++#include <js/jsapi.h> + + typedef struct { + int no_eval; |