diff options
Diffstat (limited to 'nixpkgs/pkgs/applications/networking/mailreaders/notmuch')
3 files changed, 185 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/notmuch/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/notmuch/default.nix new file mode 100644 index 000000000000..bacf399fdb16 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mailreaders/notmuch/default.nix @@ -0,0 +1,116 @@ +{ fetchurl, lib, stdenv +, pkg-config, gnupg +, xapian, gmime, talloc, zlib +, doxygen, perl, texinfo +, notmuch +, pythonPackages +, emacs +, ruby +, testers +, which, dtach, openssl, bash, gdb, man +, withEmacs ? true +, withRuby ? true +}: + +stdenv.mkDerivation rec { + pname = "notmuch"; + version = "0.36"; + + src = fetchurl { + url = "https://notmuchmail.org/releases/notmuch-${version}.tar.xz"; + sha256 = "0h6f6mh9m9vrijm638x5sbsl321b74a25cdasbxhx67x62w320hk"; + }; + + nativeBuildInputs = [ + pkg-config + doxygen # (optional) api docs + pythonPackages.sphinx # (optional) documentation -> doc/INSTALL + texinfo # (optional) documentation -> doc/INSTALL + pythonPackages.cffi + ] ++ lib.optional withEmacs emacs + ++ lib.optional withRuby ruby; + + buildInputs = [ + gnupg # undefined dependencies + xapian gmime talloc zlib # dependencies described in INSTALL + perl + pythonPackages.python + ] ++ lib.optional withRuby ruby; + + postPatch = '' + patchShebangs configure test/ + + substituteInPlace lib/Makefile.local \ + --replace '-install_name $(libdir)' "-install_name $out/lib" + '' + lib.optionalString withEmacs '' + substituteInPlace emacs/notmuch-emacs-mua \ + --replace 'EMACS:-emacs' 'EMACS:-${emacs}/bin/emacs' \ + --replace 'EMACSCLIENT:-emacsclient' 'EMACSCLIENT:-${emacs}/bin/emacsclient' + ''; + + configureFlags = [ + "--zshcompletiondir=${placeholder "out"}/share/zsh/site-functions" + "--bashcompletiondir=${placeholder "out"}/share/bash-completion/completions" + "--infodir=${placeholder "info"}/share/info" + ] ++ lib.optional (!withEmacs) "--without-emacs" + ++ lib.optional withEmacs "--emacslispdir=${placeholder "emacs"}/share/emacs/site-lisp" + ++ lib.optional (!withRuby) "--without-ruby"; + + # Notmuch doesn't use autoconf and consequently doesn't tag --bindir and + # friends + setOutputFlags = false; + enableParallelBuilding = true; + makeFlags = [ "V=1" ]; + + postConfigure = '' + mkdir ${placeholder "bindingconfig"} + cp bindings/python-cffi/_notmuch_config.py ${placeholder "bindingconfig"}/ + ''; + + outputs = [ "out" "man" "info" "bindingconfig" ] + ++ lib.optional withEmacs "emacs" + ++ lib.optional withRuby "ruby"; + + preCheck = let + test-database = fetchurl { + url = "https://notmuchmail.org/releases/test-databases/database-v1.tar.xz"; + sha256 = "1lk91s00y4qy4pjh8638b5lfkgwyl282g1m27srsf7qfn58y16a2"; + }; + in '' + mkdir -p test/test-databases + ln -s ${test-database} test/test-databases/database-v1.tar.xz + ''; + + doCheck = !stdenv.hostPlatform.isDarwin && (lib.versionAtLeast gmime.version "3.0.3"); + checkTarget = "test"; + checkInputs = [ + which dtach openssl bash + gdb man emacs + ]; + + installTargets = [ "install" "install-man" "install-info" ]; + + postInstall = lib.optionalString withEmacs '' + moveToOutput bin/notmuch-emacs-mua $emacs + '' + lib.optionalString withRuby '' + make -C bindings/ruby install \ + vendordir=$ruby/lib/ruby \ + SHELL=$SHELL \ + $makeFlags "''${makeFlagsArray[@]}" \ + $installFlags "''${installFlagsArray[@]}" + ''; + + passthru = { + pythonSourceRoot = "notmuch-${version}/bindings/python"; + tests.version = testers.testVersion { package = notmuch; }; + inherit version; + }; + + meta = with lib; { + description = "Mail indexer"; + homepage = "https://notmuchmail.org/"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ flokli puckipedia ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/notmuch/muchsync.nix b/nixpkgs/pkgs/applications/networking/mailreaders/notmuch/muchsync.nix new file mode 100644 index 000000000000..fc8c83f216cb --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mailreaders/notmuch/muchsync.nix @@ -0,0 +1,23 @@ +{ lib, stdenv, fetchurl +, notmuch, openssl, pkg-config, sqlite, xapian, zlib +}: +stdenv.mkDerivation rec { + version = "5"; + pname = "muchsync"; + passthru = { + inherit version; + }; + src = fetchurl { + url = "http://www.muchsync.org/src/${pname}-${version}.tar.gz"; + sha256 = "1k2m44pj5i6vfhp9icdqs42chsp208llanc666p3d9nww8ngq2lb"; + }; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ notmuch openssl sqlite xapian zlib ]; + meta = { + description = "Synchronize maildirs and notmuch databases"; + homepage = "http://www.muchsync.org/"; + platforms = lib.platforms.unix; + maintainers = with lib.maintainers; []; + license = lib.licenses.gpl2Plus; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/notmuch/mutt.nix b/nixpkgs/pkgs/applications/networking/mailreaders/notmuch/mutt.nix new file mode 100644 index 000000000000..ffd30c754b47 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mailreaders/notmuch/mutt.nix @@ -0,0 +1,46 @@ +{ stdenv, lib, perl, perlPackages, makeWrapper, coreutils, notmuch }: + +stdenv.mkDerivation rec { + pname = "notmuch-mutt"; + version = notmuch.version; + + outputs = [ "out" ]; + + dontStrip = true; + + buildInputs = [ + perl + makeWrapper + ] ++ (with perlPackages; [ + FileRemove + DigestSHA1 + Later + MailBox + MailMaildir + MailTools + StringShellQuote + TermReadLineGnu + ]); + + src = notmuch.src; + + dontConfigure = true; + dontBuild = true; + + installPhase = '' + ${coreutils}/bin/install -Dm755 \ + ./contrib/notmuch-mutt/notmuch-mutt \ + $out/bin/notmuch-mutt + + wrapProgram $out/bin/notmuch-mutt \ + --prefix PERL5LIB : $PERL5LIB + ''; + + meta = with lib; { + description = "Mutt support for notmuch"; + homepage = "https://notmuchmail.org/"; + license = with licenses; gpl3; + maintainers = with maintainers; [ peterhoeg ]; + platforms = platforms.unix; + }; +} |