about summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
authoradisbladis <adisbladis@gmail.com>2023-11-10 10:23:13 +1300
committerGitHub <noreply@github.com>2023-11-10 10:23:13 +1300
commit1f37660f64a850233baab512c9b9bd83fb72be57 (patch)
treeab4d08b0d1120ae99ab6e264e9e1d64d1a1feae4 /pkgs
parent97b0ae26f7c8a1682b5437a64edcd73ab1798c9b (diff)
parent6f06a5e83a30cd558be24cbcaa7a18072252c629 (diff)
Merge pull request #266453 from nessdoor/emacsPackages/notdeft
emacsPackages.notdeft: init at 20211204.0846
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/applications/editors/emacs/elisp-packages/manual-packages.nix2
-rw-r--r--pkgs/applications/editors/emacs/elisp-packages/manual-packages/notdeft/default.nix75
2 files changed, 77 insertions, 0 deletions
diff --git a/pkgs/applications/editors/emacs/elisp-packages/manual-packages.nix b/pkgs/applications/editors/emacs/elisp-packages/manual-packages.nix
index 7e59c5f067f2a..ccde3ca0303ba 100644
--- a/pkgs/applications/editors/emacs/elisp-packages/manual-packages.nix
+++ b/pkgs/applications/editors/emacs/elisp-packages/manual-packages.nix
@@ -65,6 +65,8 @@ in
 
   mu4e = callPackage ./manual-packages/mu4e { };
 
+  notdeft = callPackage ./manual-packages/notdeft { };
+
   ott-mode = callPackage ./manual-packages/ott-mode { };
 
   perl-completion = callPackage ./manual-packages/perl-completion { };
diff --git a/pkgs/applications/editors/emacs/elisp-packages/manual-packages/notdeft/default.nix b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/notdeft/default.nix
new file mode 100644
index 0000000000000..f9af8c465b930
--- /dev/null
+++ b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/notdeft/default.nix
@@ -0,0 +1,75 @@
+{ lib
+, stdenv
+, trivialBuild
+, fetchFromGitHub
+, emacs
+, hydra
+, ivy
+, pkg-config
+, tclap
+, xapian
+  # Include pre-configured hydras
+, withHydra ? false
+  # Include Ivy integration
+, withIvy ? false
+}:
+
+let
+  pname = "notdeft";
+  version = "20211204.0846";
+
+  src = fetchFromGitHub {
+    owner = "hasu";
+    repo = "notdeft";
+    rev = "1b7054dcfc3547a7cafeb621552cec01d0540478";
+    hash = "sha256-LMMLJFVpmoE/y3MqrgY2fmsehmzk6TkLsVoHmFUxiSw=";
+  };
+
+  # Xapian bindings for NotDeft
+  notdeft-xapian = stdenv.mkDerivation {
+    pname = "notdeft-xapian";
+    inherit version src;
+
+    sourceRoot = "${src.name}/xapian";
+
+    nativeBuildInputs = [ pkg-config tclap xapian ];
+
+    installPhase = ''
+      runHook preInstall
+
+      mkdir -p $out/bin
+      cp notdeft-xapian $out/bin
+
+      runHook postInstall
+    '';
+  };
+in
+trivialBuild {
+  inherit pname version src;
+  packageRequires = lib.optional withHydra hydra
+    ++ lib.optional withIvy ivy;
+  buildInputs = [ xapian ];
+
+  postPatch = ''
+    substituteInPlace notdeft-xapian.el \
+      --replace 'defcustom notdeft-xapian-program nil' \
+                "defcustom notdeft-xapian-program \"${notdeft-xapian}/bin/notdeft-xapian\""
+  '';
+
+  # Extra modules are contained in the extras/ directory
+  preBuild = lib.optionalString withHydra ''
+    mv extras/notdeft-{mode-hydra,global-hydra}.el ./
+  '' +
+  lib.optionalString withIvy ''
+    mv extras/notdeft-ivy.el ./
+  '' + ''
+    rm -r extras/
+  '';
+
+  meta = with lib; {
+    homepage = "https://tero.hasu.is/notdeft/";
+    description = "Fork of Deft that uses Xapian as a search engine";
+    maintainers = [ maintainers.nessdoor ];
+    platforms = platforms.linux;
+  };
+}