uboot: (firmwareOdroidC2/C4) don't invoke patch tool, use patches = [] instead
https://github.com/NixOS/nixpkgs/blob/master/pkgs/stdenv/generic/setup.sh#L948 this can do it nicely. Signed-off-by: Anton Arapov <anton@deadbeef.mx>
This commit is contained in:
commit
56de2bcd43
30691 changed files with 3076956 additions and 0 deletions
33
pkgs/servers/mail/mailman/default.nix
Normal file
33
pkgs/servers/mail/mailman/default.nix
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
{ newScope, lib, python3 }:
|
||||
|
||||
let
|
||||
callPackage = newScope self;
|
||||
|
||||
self = lib.makeExtensible (self: {
|
||||
python3 = callPackage ./python.nix { inherit python3; };
|
||||
|
||||
hyperkitty = callPackage ./hyperkitty.nix { };
|
||||
|
||||
mailman = callPackage ./package.nix { };
|
||||
|
||||
mailman-hyperkitty = callPackage ./mailman-hyperkitty.nix { };
|
||||
|
||||
postorius = callPackage ./postorius.nix { };
|
||||
|
||||
web = callPackage ./web.nix { };
|
||||
|
||||
buildEnvs = { web ? self.web
|
||||
, mailman ? self.mailman
|
||||
, mailman-hyperkitty ? self.mailman-hyperkitty
|
||||
, withHyperkitty ? false
|
||||
}:
|
||||
{
|
||||
mailmanEnv = self.python3.withPackages
|
||||
(ps: [ mailman ps.psycopg2 ]
|
||||
++ lib.optional withHyperkitty mailman-hyperkitty);
|
||||
webEnv = self.python3.withPackages
|
||||
(ps: [ web ps.psycopg2 ]);
|
||||
};
|
||||
});
|
||||
|
||||
in self
|
||||
78
pkgs/servers/mail/mailman/hyperkitty.nix
Normal file
78
pkgs/servers/mail/mailman/hyperkitty.nix
Normal file
|
|
@ -0,0 +1,78 @@
|
|||
{ 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/*" ];
|
||||
})
|
||||
];
|
||||
|
||||
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_2_0
|
||||
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.
|
||||
checkInputs = [
|
||||
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 ];
|
||||
};
|
||||
}
|
||||
13
pkgs/servers/mail/mailman/log-stderr.patch
Normal file
13
pkgs/servers/mail/mailman/log-stderr.patch
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
diff --git a/src/mailman/core/logging.py b/src/mailman/core/logging.py
|
||||
index f8f87279f..7ff13b003 100644
|
||||
--- a/src/mailman/core/logging.py
|
||||
+++ b/src/mailman/core/logging.py
|
||||
@@ -142,6 +142,8 @@ def _init_logger(propagate, sub_name, log, logger_config):
|
||||
address, facility = _get_syslog_params(logger_config)
|
||||
handler = logging.handlers.SysLogHandler(
|
||||
address=address, facility=facility)
|
||||
+ elif logger_config.handler == 'stderr':
|
||||
+ handler = logging.StreamHandler(sys.stderr)
|
||||
else:
|
||||
path_str = logger_config.path
|
||||
path_abs = os.path.normpath(os.path.join(config.LOG_DIR, path_str))
|
||||
47
pkgs/servers/mail/mailman/mailman-hyperkitty.nix
Normal file
47
pkgs/servers/mail/mailman/mailman-hyperkitty.nix
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
{ lib
|
||||
, python3
|
||||
, mailman
|
||||
}:
|
||||
|
||||
with python3.pkgs;
|
||||
buildPythonPackage rec {
|
||||
pname = "mailman-hyperkitty";
|
||||
version = "1.2.0";
|
||||
format = "setuptools";
|
||||
|
||||
disabled = pythonOlder "3.9";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-EQBx1KX3z/Wv3QAHOi+s/ihLOjpiupIQBYyE6IPbJto=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
mailman
|
||||
requests
|
||||
zope_interface
|
||||
];
|
||||
|
||||
checkInputs = [
|
||||
mock
|
||||
nose2
|
||||
];
|
||||
|
||||
checkPhase = ''
|
||||
${python.interpreter} -m nose2 -v
|
||||
'';
|
||||
|
||||
# There is an AssertionError
|
||||
doCheck = false;
|
||||
|
||||
pythonImportsCheck = [
|
||||
"mailman_hyperkitty"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Mailman archiver plugin for HyperKitty";
|
||||
homepage = "https://gitlab.com/mailman/mailman-hyperkitty";
|
||||
license = licenses.gpl3Plus;
|
||||
maintainers = with maintainers; [ globin qyliss ];
|
||||
};
|
||||
}
|
||||
76
pkgs/servers/mail/mailman/package.nix
Normal file
76
pkgs/servers/mail/mailman/package.nix
Normal file
|
|
@ -0,0 +1,76 @@
|
|||
{ lib, fetchpatch, python3, postfix, lynx
|
||||
}:
|
||||
|
||||
with python3.pkgs;
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "mailman";
|
||||
version = "3.3.5";
|
||||
disabled = pythonOlder "3.6";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "12mgxs1ndhdjjkydx48b95na9k9h0disfqgrr6wxx7vda6dqvcwz";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = with python3.pkgs; [
|
||||
aiosmtpd
|
||||
alembic
|
||||
authheaders
|
||||
click
|
||||
dnspython
|
||||
falcon
|
||||
flufl_bounce
|
||||
flufl_i18n
|
||||
flufl_lock
|
||||
gunicorn
|
||||
importlib-resources
|
||||
lazr_config
|
||||
passlib
|
||||
requests
|
||||
sqlalchemy
|
||||
zope_component
|
||||
zope_configuration
|
||||
];
|
||||
|
||||
patches = [
|
||||
(fetchpatch {
|
||||
url = "https://gitlab.com/mailman/mailman/-/commit/4b206e2a5267a0e17f345fd7b2d957122ba57566.patch";
|
||||
sha256 = "06axmrn74p81wvcki36c7gfj5fp5q15zxz2yl3lrvijic7hbs4n2";
|
||||
})
|
||||
(fetchpatch {
|
||||
url = "https://gitlab.com/mailman/mailman/-/commit/9613154f3c04fa2383fbf017031ef263c291418d.patch";
|
||||
sha256 = "0vyw87s857vfxbf7kihwb6w094xyxmxbi1bpdqi3ybjamjycp55r";
|
||||
})
|
||||
./log-stderr.patch
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace setup.py \
|
||||
--replace "alembic>=1.6.2,<1.7" "alembic>=1.6.2"
|
||||
|
||||
substituteInPlace src/mailman/config/postfix.cfg \
|
||||
--replace /usr/sbin/postmap ${postfix}/bin/postmap
|
||||
substituteInPlace src/mailman/config/schema.cfg \
|
||||
--replace /usr/bin/lynx ${lynx}/bin/lynx
|
||||
'';
|
||||
|
||||
# Mailman assumes that those scripts in $out/bin are Python scripts. Wrapping
|
||||
# them in shell code breaks this assumption. Use the wrapped version (see
|
||||
# wrapped.nix) if you need the CLI (rather than the Python library).
|
||||
#
|
||||
# This gives a properly wrapped 'mailman' command plus an interpreter that
|
||||
# has all the necessary search paths to execute unwrapped 'master' and
|
||||
# 'runner' scripts.
|
||||
dontWrapPythonPrograms = true;
|
||||
|
||||
# requires flufl.testing, which the upstream has archived
|
||||
doCheck = false;
|
||||
|
||||
meta = {
|
||||
homepage = "https://www.gnu.org/software/mailman/";
|
||||
description = "Free software for managing electronic mail discussion and newsletter lists";
|
||||
license = lib.licenses.gpl3Plus;
|
||||
maintainers = with lib.maintainers; [ qyliss ma27 ];
|
||||
};
|
||||
}
|
||||
28
pkgs/servers/mail/mailman/postorius.nix
Normal file
28
pkgs/servers/mail/mailman/postorius.nix
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
{ lib, python3 }:
|
||||
|
||||
with python3.pkgs;
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "postorius";
|
||||
# Note: Mailman core must be on the latest version before upgrading Postorious.
|
||||
# See: https://gitlab.com/mailman/postorius/-/issues/516#note_544571309
|
||||
version = "1.3.6";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-KwzEU9IfcQ6YPZu3jPuFrd6ux/3e2pzoLfTrak/aGmg=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [ django-mailman3 readme_renderer ];
|
||||
checkInputs = [ beautifulsoup4 vcrpy mock ];
|
||||
|
||||
# Tries to connect to database.
|
||||
doCheck = false;
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://docs.mailman3.org/projects/postorius";
|
||||
description = "Web-based user interface for managing GNU Mailman";
|
||||
license = licenses.gpl3Plus;
|
||||
maintainers = with maintainers; [ globin qyliss ];
|
||||
};
|
||||
}
|
||||
30
pkgs/servers/mail/mailman/python.nix
Normal file
30
pkgs/servers/mail/mailman/python.nix
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
{ python3 }:
|
||||
|
||||
python3.override {
|
||||
packageOverrides = self: super: {
|
||||
# does not find tests
|
||||
alembic = super.alembic.overridePythonAttrs (oldAttrs: {
|
||||
doCheck = false;
|
||||
});
|
||||
# Needed by mailman, see https://gitlab.com/mailman/mailman/-/issues/964
|
||||
sqlalchemy = super.sqlalchemy.overridePythonAttrs (oldAttrs: rec {
|
||||
version = "1.3.24";
|
||||
src = super.fetchPypi {
|
||||
inherit version;
|
||||
inherit (oldAttrs) pname;
|
||||
sha256 = "06bmxzssc66cblk1hamskyv5q3xf1nh1py3vi6dka4lkpxy7gfzb";
|
||||
};
|
||||
# does not find tests
|
||||
doCheck = false;
|
||||
});
|
||||
# Fixes `AssertionError: database connection isn't set to UTC`
|
||||
psycopg2 = super.psycopg2.overridePythonAttrs (a: (rec {
|
||||
version = "2.8.6";
|
||||
src = super.fetchPypi {
|
||||
inherit version;
|
||||
inherit (a) pname;
|
||||
sha256 = "fb23f6c71107c37fd667cb4ea363ddeb936b348bbd6449278eb92c189699f543";
|
||||
};
|
||||
}));
|
||||
};
|
||||
}
|
||||
46
pkgs/servers/mail/mailman/web.nix
Normal file
46
pkgs/servers/mail/mailman/web.nix
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
{ lib, python3
|
||||
, sassc, hyperkitty, postorius
|
||||
}:
|
||||
|
||||
with python3.pkgs;
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "mailman-web";
|
||||
version = "0.0.5";
|
||||
disabled = pythonOlder "3.8";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-9pvs/VATAsMcGNrj58b/LifysEPTNhrAP57sfp4nX6Q=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
# Django is depended on transitively by hyperkitty and postorius,
|
||||
# and mailman_web has overly restrictive version bounds on it, so
|
||||
# let's remove it.
|
||||
sed -i '/^[[:space:]]*django/Id' setup.cfg
|
||||
|
||||
# Upstream seems to mostly target installing on top of existing
|
||||
# distributions, and uses a path appropriate for that, but we are
|
||||
# a distribution, so use a state directory appropriate for a
|
||||
# distro package.
|
||||
substituteInPlace mailman_web/settings/base.py \
|
||||
--replace /opt/mailman/web /var/lib/mailman-web
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [ setuptools-scm ];
|
||||
propagatedBuildInputs = [ hyperkitty postorius whoosh ];
|
||||
|
||||
# Tries to check runtime configuration.
|
||||
doCheck = false;
|
||||
|
||||
makeWrapperArgs = [
|
||||
"--suffix PATH : ${lib.makeBinPath [ sassc ]}"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Django project for Mailman 3 web interface";
|
||||
license = licenses.gpl3Plus;
|
||||
maintainers = with maintainers; [ qyliss m1cr0man ];
|
||||
};
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue