biglybt: 3.5.0.0 -> 3.6.0.0
[NixPkgs.git] / pkgs / servers / http / couchdb / 3.nix
blob6e625dbdb7203839fc27c2b7f6c6e0445794a4dc
1 { lib
2 , stdenv
3 , fetchurl
4 , erlang
5 , icu
6 , openssl
7 , spidermonkey_91
8 , python3
9 , nixosTests
12 stdenv.mkDerivation rec {
13   pname = "couchdb";
14   version = "3.3.3";
16   src = fetchurl {
17     url = "mirror://apache/couchdb/source/${version}/apache-${pname}-${version}.tar.gz";
18     hash = "sha256-eiAHtfZz1L4iolyaER2QZpGdhy3bkTWn3OwBIimb054=";
19   };
21   postPatch = ''
22     substituteInPlace src/couch/rebar.config.script --replace '/usr/include/mozjs-91' "${spidermonkey_91.dev}/include/mozjs-91"
23     substituteInPlace configure --replace '/usr/include/''${SM_HEADERS}' "${spidermonkey_91.dev}/include/mozjs-91"
24     patchShebangs bin/rebar
25   '' + lib.optionalString stdenv.isDarwin ''
26     # LTO with Clang produces LLVM bitcode, which causes linking to fail quietly.
27     # (There are warnings, but no hard errors, and it produces an empty dylib.)
28     substituteInPlace src/jiffy/rebar.config.script --replace '"-flto"' '""'
29   '';
31   nativeBuildInputs = [
32     erlang
33   ];
35   buildInputs = [
36     icu
37     openssl
38     spidermonkey_91
39     (python3.withPackages(ps: with ps; [ requests ]))
40   ];
42   dontAddPrefix= "True";
44   configureFlags = [
45     "--spidermonkey-version=91"
46   ];
48   buildFlags = [
49     "release"
50   ];
52   installPhase = ''
53     runHook preInstall
54     mkdir -p $out
55     cp -r rel/couchdb/* $out
56     runHook postInstall
57   '';
59   passthru.tests = {
60     inherit (nixosTests) couchdb;
61   };
63   meta = with lib; {
64     description = "A database that uses JSON for documents, JavaScript for MapReduce queries, and regular HTTP for an API";
65     homepage = "https://couchdb.apache.org";
66     license = licenses.asl20;
67     platforms = platforms.all;
68     maintainers = with maintainers; [ lostnet ];
69   };