diff --git a/pkgs/servers/mail/public-inbox/default.nix b/pkgs/servers/mail/public-inbox/default.nix new file mode 100644 index 000000000000..b47495585004 --- /dev/null +++ b/pkgs/servers/mail/public-inbox/default.nix @@ -0,0 +1,66 @@ +{ buildPerlPackage, lib, fetchurl, makeWrapper +, DBDSQLite, EmailMIME, IOSocketSSL, IPCRun, Plack, PlackMiddlewareReverseProxy +, SearchXapian, TimeDate, URI +, git, highlight, openssl, xapian +}: + +let + + # These tests would fail, and produce "Operation not permitted" + # errors from git, because they use git init --shared. This tries + # to set the setgid bit, which isn't permitted inside build + # sandboxes. + # + # These tests were indentified with + # grep -r shared t/ + skippedTests = [ "convert-compact" "search" "v2writable" "www_listing" ]; + + testConditions = with lib; + concatMapStringsSep " " (n: "! -name ${escapeShellArg n}.t") skippedTests; + +in + +buildPerlPackage rec { + pname = "public-inbox"; + version = "1.2.0"; + + src = fetchurl { + url = "https://public-inbox.org/releases/public-inbox-${version}.tar.gz"; + sha256 = "0sa2m4f2x7kfg3mi4im7maxqmqvawafma8f7g92nyfgybid77g6s"; + }; + + outputs = [ "out" "devdoc" "sa_config" ]; + + postConfigure = '' + substituteInPlace Makefile --replace 'TEST_FILES = t/*.t' \ + 'TEST_FILES = $(shell find t -name *.t ${testConditions})' + ''; + + nativeBuildInputs = [ makeWrapper ]; + + buildInputs = [ + DBDSQLite EmailMIME IOSocketSSL IPCRun Plack PlackMiddlewareReverseProxy + SearchXapian TimeDate URI highlight + ]; + + checkInputs = [ git openssl xapian ]; + preCheck = '' + perl certs/create-certs.perl + ''; + + installTargets = [ "install" ]; + postInstall = '' + for prog in $out/bin/*; do + wrapProgram $prog --prefix PATH : ${lib.makeBinPath [ git ]} + done + + mv sa_config $sa_config + ''; + + meta = with lib; { + homepage = "https://public-inbox.org/"; + license = licenses.agpl3Plus; + maintainers = with maintainers; [ qyliss ]; + platforms = platforms.all; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 501bfc9581cb..76c9cd9bdb76 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -15529,6 +15529,8 @@ in psqlodbc = callPackage ../development/libraries/psqlodbc { }; + public-inbox = perlPackages.callPackage ../servers/mail/public-inbox { }; + pure-ftpd = callPackage ../servers/ftp/pure-ftpd { }; pyIRCt = callPackage ../servers/xmpp/pyIRCt {};