diff options
author | Frederik Rietdijk <fridh@fridh.nl> | 2022-01-16 08:58:07 +0100 |
---|---|---|
committer | Frederik Rietdijk <freddyrietdijk@fridh.nl> | 2022-01-16 10:00:16 +0100 |
commit | 2027fb600d891379c53c4762463e65d040359682 (patch) | |
tree | c7e964b819fa2822d3b5e30069fa726bc628823d /pkgs/applications/networking/mailreaders | |
parent | 04cee7c9abcca41f6a0bdddfc77a72ce88fdfeec (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.nix | 75 | ||||
-rw-r--r-- | pkgs/applications/networking/mailreaders/alot/notmuch.nix | 27 |
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 ]; + }; +} |