about summary refs log tree commit diff
path: root/pkgs/applications/networking/mailreaders
diff options
context:
space:
mode:
authorFrederik Rietdijk <fridh@fridh.nl>2022-01-16 08:58:07 +0100
committerFrederik Rietdijk <freddyrietdijk@fridh.nl>2022-01-16 10:00:16 +0100
commit2027fb600d891379c53c4762463e65d040359682 (patch)
treec7e964b819fa2822d3b5e30069fa726bc628823d /pkgs/applications/networking/mailreaders
parent04cee7c9abcca41f6a0bdddfc77a72ce88fdfeec (diff)
alot: application instead of python library
This also allows us to move notmuch2 out of python-packages.nix.
Diffstat (limited to 'pkgs/applications/networking/mailreaders')
-rw-r--r--pkgs/applications/networking/mailreaders/alot/default.nix75
-rw-r--r--pkgs/applications/networking/mailreaders/alot/notmuch.nix27
2 files changed, 102 insertions, 0 deletions
diff --git a/pkgs/applications/networking/mailreaders/alot/default.nix b/pkgs/applications/networking/mailreaders/alot/default.nix
new file mode 100644
index 0000000000000..6de601348c3bf
--- /dev/null
+++ b/pkgs/applications/networking/mailreaders/alot/default.nix
@@ -0,0 +1,75 @@
+{ lib, python3, fetchFromGitHub, file, gnupg, gawk, notmuch, procps, withManpage ? false
+}:
+
+with python3.pkgs;
+
+let
+  notmuch2 = callPackage ./notmuch.nix {
+    inherit notmuch;
+  };
+in buildPythonApplication rec {
+  pname = "alot";
+  version = "0.10";
+  outputs = [ "out" ] ++ lib.optional withManpage "man";
+
+  disabled = !isPy3k;
+
+  src = fetchFromGitHub {
+    owner = "pazz";
+    repo = "alot";
+    rev = version;
+    sha256 = "sha256-1reAq8X9VwaaZDY5UfvcFzHDKd71J88CqJgH3+ANjis=";
+  };
+
+  postPatch = ''
+    substituteInPlace alot/settings/manager.py --replace /usr/share "$out/share"
+  '';
+
+  nativeBuildInputs = lib.optional withManpage sphinx;
+
+  propagatedBuildInputs = [
+    notmuch2
+    urwid
+    urwidtrees
+    twisted
+    python_magic
+    configobj
+    service-identity
+    file
+    gpgme
+  ];
+
+  postBuild = lib.optionalString withManpage "make -C docs man";
+
+  checkInputs = [ gawk future mock gnupg procps pytestCheckHook ];
+  # some twisted tests need internet access
+  disabledTests = [
+    "test_env_set"
+    "test_no_spawn_no_stdin_attached"
+  ];
+
+  postInstall = let
+    completionPython = python.withPackages (ps: [ ps.configobj ]);
+  in lib.optionalString withManpage ''
+    mkdir -p $out/man
+    cp -r docs/build/man $out/man
+  ''
+  + ''
+    mkdir -p $out/share/{applications,alot}
+    cp -r extra/themes $out/share/alot
+
+    substituteInPlace extra/completion/alot-completion.zsh \
+      --replace "python3" "${completionPython.interpreter}"
+    install -D extra/completion/alot-completion.zsh $out/share/zsh/site-functions/_alot
+
+    sed "s,/usr/bin,$out/bin,g" extra/alot.desktop > $out/share/applications/alot.desktop
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/pazz/alot";
+    description = "Terminal MUA using notmuch mail";
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ milibopp ];
+  };
+}
diff --git a/pkgs/applications/networking/mailreaders/alot/notmuch.nix b/pkgs/applications/networking/mailreaders/alot/notmuch.nix
new file mode 100644
index 0000000000000..bd195b52d44e1
--- /dev/null
+++ b/pkgs/applications/networking/mailreaders/alot/notmuch.nix
@@ -0,0 +1,27 @@
+{ lib
+
+, buildPythonPackage
+, notmuch
+, python
+, cffi
+}:
+
+buildPythonPackage {
+  pname = "notmuch2";
+  inherit (notmuch) version src;
+
+  sourceRoot = "notmuch-${notmuch.version}/bindings/python-cffi";
+
+  buildInputs = [ python notmuch cffi ];
+
+  # no tests
+  doCheck = false;
+  pythonImportsCheck = [ "notmuch2" ];
+
+  meta = with lib; {
+    description = "Pythonic bindings for the notmuch mail database using CFFI";
+    homepage = "https://notmuchmail.org/";
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ teto ];
+  };
+}