From 94e92dd7144f9347cc1730c12620dfcdd08bb474 Mon Sep 17 00:00:00 2001
From: Marek Mahut <marek.mahut@gmail.com>
Date: Fri, 1 Nov 2019 18:20:52 +0100
Subject: [PATCH] trac: init at 1.4

---
 pkgs/tools/misc/trac/default.nix | 53 ++++++++++++++++++++++++++++++++
 pkgs/top-level/all-packages.nix  |  2 ++
 2 files changed, 55 insertions(+)
 create mode 100644 pkgs/tools/misc/trac/default.nix

diff --git a/pkgs/tools/misc/trac/default.nix b/pkgs/tools/misc/trac/default.nix
new file mode 100644
index 000000000000..39bbf6850eb6
--- /dev/null
+++ b/pkgs/tools/misc/trac/default.nix
@@ -0,0 +1,53 @@
+{ lib
+, buildPythonApplication
+, fetchPypi
+, Babel
+, docutils
+, pygments
+, pytz
+, jinja2
+, pysqlite
+, psycopg2
+, pymysql
+, git
+, setuptools
+}:
+
+
+buildPythonApplication rec {
+  pname = "trac";
+  version = "1.4";
+
+  src = fetchPypi {
+    inherit version;
+    pname = "Trac";
+    sha256 = "1cg51rg0vb9vf23wgn28z3szlxhwnxprj5m0mvibqyypi123bvx1";
+  };
+
+  prePatch = ''
+    # Removing the date format tests as they are outdated
+    substituteInPlace trac/util/tests/__init__.py \
+      --replace "suite.addTest(datefmt.test_suite())" ""
+  '';
+
+  propagatedBuildInputs = [
+    Babel
+    docutils
+    pygments
+    pytz
+    jinja2
+    pysqlite
+    psycopg2
+    pymysql
+    git
+    setuptools
+  ];
+
+  meta = with lib; {
+    description = "Integrated SCM, wiki, issue tracker and project environment";
+    homepage = "https://trac.edgewall.org/";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ mmahut ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 67e3ab92cca5..9bc600f59a9f 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -2881,6 +2881,8 @@ in
   tsm-client = callPackage ../tools/backup/tsm-client { jdk8 = null; };
   tsm-client-withGui = callPackage ../tools/backup/tsm-client { };
 
+  trac = pythonPackages.callPackage ../tools/misc/trac { };
+
   tracker = callPackage ../development/libraries/tracker { };
 
   tracker-miners = callPackage ../development/libraries/tracker-miners { };