about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/libraries/xapian
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/xapian')
-rw-r--r--nixpkgs/pkgs/development/libraries/xapian/default.nix63
-rw-r--r--nixpkgs/pkgs/development/libraries/xapian/tools/omega/default.nix22
2 files changed, 85 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/xapian/default.nix b/nixpkgs/pkgs/development/libraries/xapian/default.nix
new file mode 100644
index 000000000000..f9fe5bac07fe
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/xapian/default.nix
@@ -0,0 +1,63 @@
+{ lib
+, stdenv
+, fetchurl
+, autoreconfHook
+, libuuid
+, zlib
+
+# tests
+, mu
+}:
+
+let
+  generic = version: hash: stdenv.mkDerivation {
+    pname = "xapian";
+    inherit version;
+    passthru = { inherit version; };
+
+    src = fetchurl {
+      url = "https://oligarchy.co.uk/xapian/${version}/xapian-core-${version}.tar.xz";
+      inherit hash;
+    };
+
+    outputs = [ "out" "man" "doc" ];
+
+    buildInputs = [ libuuid zlib ];
+    nativeBuildInputs = [ autoreconfHook ];
+
+    enableParallelBuilding = true;
+
+    doCheck = true;
+
+    env = {
+      AUTOMATED_TESTING = true; # https://trac.xapian.org/changeset/8be35f5e1/git
+    } // lib.optionalAttrs stdenv.is32bit {
+      NIX_CFLAGS_COMPILE = "-fpermissive";
+    };
+
+    # the configure script thinks that Darwin has ___exp10
+    # but it’s not available on my systems (or hydra apparently)
+    postConfigure = lib.optionalString stdenv.isDarwin ''
+      substituteInPlace config.h \
+        --replace "#define HAVE___EXP10 1" "#undef HAVE___EXP10"
+    '';
+
+    passthru.tests = {
+      inherit mu;
+    };
+
+    meta = with lib; {
+      description = "Search engine library";
+      homepage = "https://xapian.org/";
+      changelog = "https://xapian.org/docs/xapian-core-${version}/NEWS";
+      license = licenses.gpl2Plus;
+      maintainers = with maintainers; [ matthiasbeyer ];
+      platforms = platforms.unix;
+    };
+  };
+in {
+  # Don't forget to change the hashes in xapian-omega and
+  # python3Packages.xapian. They inherit the version from this package, and
+  # should always be built with the equivalent xapian version.
+  xapian_1_4 = generic "1.4.24" "sha256-7aWubc9rBVOoZ2r2Sx/TBOmYzSD3eQMcyq96uaNzUxo=";
+}
diff --git a/nixpkgs/pkgs/development/libraries/xapian/tools/omega/default.nix b/nixpkgs/pkgs/development/libraries/xapian/tools/omega/default.nix
new file mode 100644
index 000000000000..cba74b977de7
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/xapian/tools/omega/default.nix
@@ -0,0 +1,22 @@
+{ lib, stdenv, fetchurl, pkg-config, xapian, perl, pcre2, zlib, libmagic }:
+
+stdenv.mkDerivation rec {
+  pname = "xapian-omega";
+  inherit (xapian) version;
+
+  src = fetchurl {
+    url = "https://oligarchy.co.uk/xapian/${version}/xapian-omega-${version}.tar.xz";
+    hash = "sha256-0IdW5PM7GJFsyKJJPTEfHL647UNXvUD6XBdErcCA6/8=";
+  };
+
+  buildInputs = [ xapian perl pcre2 zlib libmagic ];
+  nativeBuildInputs = [ pkg-config ];
+
+  meta = with lib; {
+    description = "Indexer and CGI search front-end built on Xapian library";
+    homepage = "https://xapian.org/";
+    changelog = "https://xapian.org/docs/xapian-omega-${version}/NEWS";
+    license = licenses.gpl2Plus;
+    platforms = platforms.unix;
+  };
+}