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:
Anton Arapov 2021-04-03 12:58:10 +02:00 committed by Alan Daniels
commit 56de2bcd43
30691 changed files with 3076956 additions and 0 deletions

View 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

View 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 ];
};
}

View 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))

View 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 ];
};
}

View 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 ];
};
}

View 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 ];
};
}

View 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";
};
}));
};
}

View 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 ];
};
}