about summary refs log tree commit diff
path: root/nixpkgs/pkgs/servers/mail/mailman/python.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/servers/mail/mailman/python.nix')
-rw-r--r--nixpkgs/pkgs/servers/mail/mailman/python.nix34
1 files changed, 34 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/servers/mail/mailman/python.nix b/nixpkgs/pkgs/servers/mail/mailman/python.nix
new file mode 100644
index 000000000000..29d2f6c6d36a
--- /dev/null
+++ b/nixpkgs/pkgs/servers/mail/mailman/python.nix
@@ -0,0 +1,34 @@
+{ python3, fetchPypi, lib, overlay ? (_: _: {}) }:
+
+python3.override {
+  packageOverrides = lib.composeExtensions
+    (self: super: {
+      /*
+        This overlay can be used whenever we need to override
+        dependencies specific to the mailman ecosystem: in the past
+        this was necessary for e.g. psycopg2[1] or sqlalchemy[2].
+
+        In such a large ecosystem this sort of issue is expected
+        to arise again. Since we don't want to clutter the python package-set
+        itself with version overrides and don't want to change the APIs
+        in here back and forth every time this comes up (and as a result
+        force users to change their code accordingly), this overlay
+        is kept on purpose, even when empty.
+
+        [1] 72a14ea563a3f5bf85db659349a533fe75a8b0ce
+        [2] f931bc81d63f5cfda55ac73d754c87b3fd63b291
+      */
+
+      # django-q tests fail with redis 5.0.0.
+      # https://gitlab.com/mailman/hyperkitty/-/issues/493
+      redis = super.redis.overridePythonAttrs ({ pname, ... }: rec {
+        version = "4.6.0";
+        src = fetchPypi {
+          inherit pname version;
+          hash = "sha256-WF3FFrnrBCphnvCjnD19Vf6BvbTfCaUsnN3g0Hvxqn0=";
+        };
+      });
+    })
+
+    overlay;
+}