nixpkgs/pkgs/servers/mail/mailman/hyperkitty.nix
Guillaume Girol 33afbf39f6 treewide: switch to nativeCheckInputs
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.
2023-01-21 12:00:00 +00:00

85 lines
2.3 KiB
Nix

{ lib
, python3
, fetchpatch
}:
with python3.pkgs;
buildPythonPackage rec {
pname = "HyperKitty";
# Note: Mailman core must be on the latest version before upgrading HyperKitty.
# See: https://gitlab.com/mailman/postorius/-/issues/516#note_544571309
version = "1.3.5";
disabled = pythonOlder "3.8";
src = fetchPypi {
inherit pname version;
sha256 = "sha256-gmkiK8pIHfubbbxNdm/D6L2o722FptxYgINYdIUOn4Y=";
};
patches = [
# FIXME: backport Python 3.10 support fix, remove for next release
(fetchpatch {
url = "https://gitlab.com/mailman/hyperkitty/-/commit/551a44a76e46931fc5c1bcb341235d8f579820be.patch";
sha256 = "sha256-5XCrvyrDEqH3JryPMoOXSlVVDLQ+PdYBqwGYxkExdvk=";
includes = [ "hyperkitty/*" ];
})
# Fix for Python >=3.9.13
(fetchpatch {
url = "https://gitlab.com/mailman/hyperkitty/-/commit/3efe7507944dbdbfcfa4c182d332528712476b28.patch";
sha256 = "sha256-yXuhTbmfDiYEXEsnz+zp+xLHRqI4GtkOhGHN+37W0iQ=";
})
];
postPatch = ''
# isort is a development dependency
sed -i '/isort/d' setup.py
# Fix mistune imports for mistune >= 2.0.0
# https://gitlab.com/mailman/hyperkitty/-/merge_requests/379
sed -i 's/mistune.scanner/mistune.util/' hyperkitty/lib/renderer.py
'';
propagatedBuildInputs = [
django
django-gravatar2
django-haystack
django-mailman3
django-q
django-compressor
django-extensions
djangorestframework
flufl_lock
mistune
networkx
psycopg2
python-dateutil
robot-detection
];
# Some of these are optional runtime dependencies that are not
# listed as dependencies in setup.py. To use these, they should be
# dependencies of the Django Python environment, but not of
# HyperKitty so they're not included for people who don't need them.
nativeCheckInputs = [
beautifulsoup4
elasticsearch
mock
whoosh
];
checkPhase = ''
cd $NIX_BUILD_TOP/$sourceRoot
PYTHONPATH=.:$PYTHONPATH python example_project/manage.py test \
--settings=hyperkitty.tests.settings_test hyperkitty
'';
meta = {
homepage = "https://www.gnu.org/software/mailman/";
description = "Archiver for GNU Mailman v3";
license = lib.licenses.gpl3;
platforms = lib.platforms.linux;
maintainers = with lib.maintainers; [ globin qyliss ];
};
}