Hyperkitty's tests fail with 8.x, because it tries and fails to import
elastic_transport. There are 7.17.10 and 7.17.11 releases, but for
unknown reasons they're not available on PyPI.
Link: https://github.com/elastic/elasticsearch-py/issues/2336
At least since e161990d40 ("mailman: remove docutils input"), we
rely on sphinx being a Python library package for our Python version,
so that it propagates a compatible docutils. Taking sphinx from the
top level therefore won't work right if it's using a different Python
version.
mailman is incompatible with importlib-resources 6.x, and upstream
have decided to remove the dependency.
Fixes: 3c86835248 ("python3Packages.importlib-resources: 5.12.0 -> 6.0.1")
Link: https://gitlab.com/mailman/mailman/-/issues/1093
In Nixpkgs, we currently have the strange situation where
pkgs.docutils (which was being used here) is on a different version
than pkgs.python3.pkgs.docutils (which is propagated from sphinx).
This led to a conflict here and a build failure.
Since we'd need to provide the same version as propagated by sphinx
anyway, let's just remove the explicit docutils check input and only
use the version propagated by sphinx, avoiding this kind of conflict
in future.
Fixes: 2312861130 ("docutils: 0.19 -> 0.20.1")
This hack was necessary for django 2.x[1] which was the default `django`
version (i.e. current LTS) when this fix was needed. However, 2.x is now
EOL and not packaged anymore and mailman is running with django3, so
this can be dropped.
[1] https://github.com/psycopg/psycopg2/issues/1293
When having a patch for a python module that should only be used for
mailman, but for nothing else, it's now possible to apply it like this:
self: super: {
mailmanPackages = super.mailmanPackages.extend (mailmanSelf: mailmanSuper: {
python3 = mailmanSuper.python3.override {
overlay = pythonSelf: pythonSuper: {
psycopg2 = /* ... */;
};
};
});
}
The underlying issue is that the `packageOverrides`-mechanism of
`pkgs.python3` doesn't compose, so an optional overlay is manually
applied to the `python3` used for mailman.
checkInputs used to be added to nativeBuildInputs. Now we have
nativeCheckInputs to do that instead. Doing this treewide change allows
to keep hashes identical to before the introduction of
nativeCheckInputs.
* Removed unused `.package`-option.
* Added explicit postgresql support.
* Create a new meta-package for mailman to make sure each component has
the **same** python and packages can be downgraded if needed (e.g.
psycopg2 or sqlalchemy) without interfering with `pythonPackages` in any way.
* Document why certain python overrides are needed.
Closes#170035Closes#158424
Required an update to the sqlalchemy override due to new hash variable
usage. Also disables tests for sqlalchemy and alembic because neither
can find any, so they error out.
Recent versions had increased the amount of indentation, which stopped
this applying. The next version will also change the case, so I've
adjusted in advance for that too.