Merge master into staging-next
This commit is contained in:
commit
084f3d75e7
29 changed files with 259 additions and 220 deletions
|
@ -1662,6 +1662,19 @@
|
|||
GnuTLS instead of OpenSSL by default for licensing reasons.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
The default version of <literal>nextcloud</literal> is
|
||||
<emphasis role="strong">nextcloud24</emphasis>. Please note
|
||||
that it’s <emphasis role="strong">not</emphasis> possible to
|
||||
upgrade <literal>nextcloud</literal> across multiple major
|
||||
versions! This means it’s e.g. not possible to upgrade from
|
||||
<literal>nextcloud22</literal> to
|
||||
<literal>nextcloud24</literal> in a single deploy and most
|
||||
<literal>21.11</literal> users will have to upgrade to
|
||||
<literal>nextcloud23</literal> first.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<literal>pkgs.vimPlugins.onedark-nvim</literal> now refers to
|
||||
|
|
|
@ -636,6 +636,10 @@ In addition to numerous new and upgraded packages, this release has the followin
|
|||
|
||||
- The `vpnc` package has been changed to use GnuTLS instead of OpenSSL by default for licensing reasons.
|
||||
|
||||
- The default version of `nextcloud` is **nextcloud24**. Please note that it's **not** possible to upgrade
|
||||
`nextcloud` across multiple major versions! This means it's e.g. not possible to upgrade from `nextcloud22`
|
||||
to `nextcloud24` in a single deploy and most `21.11` users will have to upgrade to `nextcloud23` first.
|
||||
|
||||
- `pkgs.vimPlugins.onedark-nvim` now refers to [navarasu/onedark.nvim](https://github.com/navarasu/onedark.nvim)
|
||||
(formerly refers to [olimorris/onedarkpro.nvim](https://github.com/olimorris/onedarkpro.nvim)).
|
||||
|
||||
|
|
|
@ -6,10 +6,10 @@ let
|
|||
|
||||
cfg = config.services.mailman;
|
||||
|
||||
pythonEnv = pkgs.python3.withPackages (ps:
|
||||
[ps.mailman ps.mailman-web]
|
||||
++ lib.optional cfg.hyperkitty.enable ps.mailman-hyperkitty
|
||||
++ cfg.extraPythonPackages);
|
||||
inherit (pkgs.mailmanPackages.buildEnvs { withHyperkitty = cfg.hyperkitty.enable; })
|
||||
mailmanEnv webEnv;
|
||||
|
||||
withPostgresql = config.services.postgresql.enable;
|
||||
|
||||
# This deliberately doesn't use recursiveUpdate so users can
|
||||
# override the defaults.
|
||||
|
@ -72,6 +72,9 @@ in {
|
|||
stored in the world-readable Nix store. To continue using
|
||||
Hyperkitty, you must set services.mailman.hyperkitty.enable = true.
|
||||
'')
|
||||
(mkRemovedOptionModule [ "services" "mailman" "package" ] ''
|
||||
Didn't have an effect for several years.
|
||||
'')
|
||||
];
|
||||
|
||||
options = {
|
||||
|
@ -84,14 +87,6 @@ in {
|
|||
description = "Enable Mailman on this host. Requires an active MTA on the host (e.g. Postfix).";
|
||||
};
|
||||
|
||||
package = mkOption {
|
||||
type = types.package;
|
||||
default = pkgs.mailman;
|
||||
defaultText = literalExpression "pkgs.mailman";
|
||||
example = literalExpression "pkgs.mailman.override { archivers = []; }";
|
||||
description = "Mailman package to use";
|
||||
};
|
||||
|
||||
enablePostfix = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
|
@ -185,7 +180,7 @@ in {
|
|||
mailman.layout = "fhs";
|
||||
|
||||
"paths.fhs" = {
|
||||
bin_dir = "${pkgs.python3Packages.mailman}/bin";
|
||||
bin_dir = "${pkgs.mailmanPackages.mailman}/bin";
|
||||
var_dir = "/var/lib/mailman";
|
||||
queue_dir = "$var_dir/queue";
|
||||
template_dir = "$var_dir/templates";
|
||||
|
@ -295,9 +290,12 @@ in {
|
|||
name = "mailman-tools";
|
||||
# We don't want to pollute the system PATH with a python
|
||||
# interpreter etc. so let's pick only the stuff we actually
|
||||
# want from pythonEnv
|
||||
# want from {web,mailman}Env
|
||||
pathsToLink = ["/bin"];
|
||||
paths = [pythonEnv];
|
||||
paths = [ mailmanEnv webEnv ];
|
||||
# Only mailman-related stuff is installed, the rest is removed
|
||||
# in `postBuild`.
|
||||
ignoreCollisions = true;
|
||||
postBuild = ''
|
||||
find $out/bin/ -mindepth 1 -not -name "mailman*" -delete
|
||||
'';
|
||||
|
@ -320,12 +318,14 @@ in {
|
|||
description = "GNU Mailman Master Process";
|
||||
before = lib.optional cfg.enablePostfix "postfix.service";
|
||||
after = [ "network.target" ]
|
||||
++ lib.optional cfg.enablePostfix "postfix-setup.service";
|
||||
++ lib.optional cfg.enablePostfix "postfix-setup.service"
|
||||
++ lib.optional withPostgresql "postgresql.service";
|
||||
restartTriggers = [ config.environment.etc."mailman.cfg".source ];
|
||||
requires = optional withPostgresql "postgresql.service";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
serviceConfig = {
|
||||
ExecStart = "${pythonEnv}/bin/mailman start";
|
||||
ExecStop = "${pythonEnv}/bin/mailman stop";
|
||||
ExecStart = "${mailmanEnv}/bin/mailman start";
|
||||
ExecStop = "${mailmanEnv}/bin/mailman stop";
|
||||
User = "mailman";
|
||||
Group = "mailman";
|
||||
Type = "forking";
|
||||
|
@ -340,6 +340,8 @@ in {
|
|||
before = [ "mailman.service" "mailman-web-setup.service" "mailman-uwsgi.service" "hyperkitty.service" ];
|
||||
requiredBy = [ "mailman.service" "mailman-web-setup.service" "mailman-uwsgi.service" "hyperkitty.service" ];
|
||||
path = with pkgs; [ jq ];
|
||||
after = optional withPostgresql "postgresql.service";
|
||||
requires = optional withPostgresql "postgresql.service";
|
||||
serviceConfig.Type = "oneshot";
|
||||
script = ''
|
||||
mailmanDir=/var/lib/mailman
|
||||
|
@ -381,9 +383,9 @@ in {
|
|||
restartTriggers = [ config.environment.etc."mailman3/settings.py".source ];
|
||||
script = ''
|
||||
[[ -e "${webSettings.STATIC_ROOT}" ]] && find "${webSettings.STATIC_ROOT}/" -mindepth 1 -delete
|
||||
${pythonEnv}/bin/mailman-web migrate
|
||||
${pythonEnv}/bin/mailman-web collectstatic
|
||||
${pythonEnv}/bin/mailman-web compress
|
||||
${webEnv}/bin/mailman-web migrate
|
||||
${webEnv}/bin/mailman-web collectstatic
|
||||
${webEnv}/bin/mailman-web compress
|
||||
'';
|
||||
serviceConfig = {
|
||||
User = cfg.webUser;
|
||||
|
@ -397,14 +399,16 @@ in {
|
|||
uwsgiConfig.uwsgi = {
|
||||
type = "normal";
|
||||
plugins = ["python3"];
|
||||
home = pythonEnv;
|
||||
home = webEnv;
|
||||
module = "mailman_web.wsgi";
|
||||
http = "127.0.0.1:18507";
|
||||
};
|
||||
uwsgiConfigFile = pkgs.writeText "uwsgi-mailman.json" (builtins.toJSON uwsgiConfig);
|
||||
in {
|
||||
wantedBy = ["multi-user.target"];
|
||||
requires = ["mailman-uwsgi.socket" "mailman-web-setup.service"];
|
||||
after = optional withPostgresql "postgresql.service";
|
||||
requires = ["mailman-uwsgi.socket" "mailman-web-setup.service"]
|
||||
++ optional withPostgresql "postgresql.service";
|
||||
restartTriggers = [ config.environment.etc."mailman3/settings.py".source ];
|
||||
serviceConfig = {
|
||||
# Since the mailman-web settings.py obstinately creates a logs
|
||||
|
@ -422,7 +426,7 @@ in {
|
|||
startAt = "daily";
|
||||
restartTriggers = [ config.environment.etc."mailman.cfg".source ];
|
||||
serviceConfig = {
|
||||
ExecStart = "${pythonEnv}/bin/mailman digests --send";
|
||||
ExecStart = "${mailmanEnv}/bin/mailman digests --send";
|
||||
User = "mailman";
|
||||
Group = "mailman";
|
||||
};
|
||||
|
@ -434,7 +438,7 @@ in {
|
|||
restartTriggers = [ config.environment.etc."mailman3/settings.py".source ];
|
||||
wantedBy = [ "mailman.service" "multi-user.target" ];
|
||||
serviceConfig = {
|
||||
ExecStart = "${pythonEnv}/bin/mailman-web qcluster";
|
||||
ExecStart = "${webEnv}/bin/mailman-web qcluster";
|
||||
User = cfg.webUser;
|
||||
Group = "mailman";
|
||||
WorkingDirectory = "/var/lib/mailman-web";
|
||||
|
@ -453,7 +457,7 @@ in {
|
|||
inherit startAt;
|
||||
restartTriggers = [ config.environment.etc."mailman3/settings.py".source ];
|
||||
serviceConfig = {
|
||||
ExecStart = "${pythonEnv}/bin/mailman-web runjobs ${name}";
|
||||
ExecStart = "${webEnv}/bin/mailman-web runjobs ${name}";
|
||||
User = cfg.webUser;
|
||||
Group = "mailman";
|
||||
WorkingDirectory = "/var/lib/mailman-web";
|
||||
|
@ -462,7 +466,7 @@ in {
|
|||
};
|
||||
|
||||
meta = {
|
||||
maintainers = with lib.maintainers; [ lheckemann qyliss ];
|
||||
maintainers = with lib.maintainers; [ lheckemann qyliss ma27 ];
|
||||
doc = ./mailman.xml;
|
||||
};
|
||||
|
||||
|
|
|
@ -153,7 +153,7 @@ in {
|
|||
package = mkOption {
|
||||
type = types.package;
|
||||
description = "Which package to use for the Nextcloud instance.";
|
||||
relatedPackages = [ "nextcloud22" "nextcloud23" "nextcloud24" ];
|
||||
relatedPackages = [ "nextcloud23" "nextcloud24" ];
|
||||
};
|
||||
phpPackage = mkOption {
|
||||
type = types.package;
|
||||
|
@ -625,7 +625,6 @@ in {
|
|||
nextcloud defined in an overlay, please set `services.nextcloud.package` to
|
||||
`pkgs.nextcloud`.
|
||||
''
|
||||
else if versionOlder stateVersion "21.11" then nextcloud21
|
||||
else if versionOlder stateVersion "22.05" then nextcloud22
|
||||
else nextcloud24
|
||||
);
|
||||
|
|
|
@ -18,4 +18,4 @@ foldl
|
|||
};
|
||||
})
|
||||
{ }
|
||||
[ 22 23 24 ]
|
||||
[ 23 24 ]
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{ lib, stdenv, fetchurl
|
||||
{ lib, stdenv, fetchurl, fetchpatch
|
||||
, pkg-config
|
||||
, bison, flex
|
||||
, makeWrapper }:
|
||||
|
@ -14,6 +14,16 @@ stdenv.mkDerivation rec {
|
|||
sha256 = "1z2gpa5rbqb7jscqlf258k0b0jc7d2zkyipb5csjpj6d3sw45n4k";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Pull patch pending upstream inclusion for -fno-common toolchains:
|
||||
# https://gitlab.com/esr/intercal/-/issues/4
|
||||
(fetchpatch {
|
||||
name = "fno-common.patch";
|
||||
url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/dev-lang/c-intercal/files/c-intercal-31.0-no-common.patch?id=a110a98b4de6f280d770ba3cc92a4612326205a3";
|
||||
sha256 = "03523fc40042r2ryq5val27prlim8pld4950qqpawpism4w3y1p2";
|
||||
})
|
||||
];
|
||||
|
||||
buildInputs =
|
||||
[ pkg-config bison flex makeWrapper ];
|
||||
|
||||
|
|
|
@ -32,6 +32,7 @@ stdenv.mkDerivation rec {
|
|||
url = "https://salsa.debian.org/science-team/flann/-/raw/debian/1.9.1+dfsg-9/debian/patches/0001-src-cpp-fix-cmake-3.11-build.patch";
|
||||
sha256 = "REsBnbe6vlrZ+iCcw43kR5wy2o6q10RM73xjW5kBsr4=";
|
||||
})
|
||||
] ++ lib.optionals (!stdenv.cc.isClang) [
|
||||
# Avoid the bundled version of LZ4 and instead use the system one.
|
||||
(fetchpatch {
|
||||
url = "https://salsa.debian.org/science-team/flann/-/raw/debian/1.9.1+dfsg-9/debian/patches/0003-Use-system-version-of-liblz4.patch";
|
||||
|
@ -57,7 +58,8 @@ stdenv.mkDerivation rec {
|
|||
unzip
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [ lz4 ];
|
||||
# lz4 unbundling broken for llvm, use internal version
|
||||
propagatedBuildInputs = lib.optional (!stdenv.cc.isClang) lz4;
|
||||
|
||||
buildInputs = lib.optionals enablePython [ python3 ];
|
||||
|
||||
|
|
|
@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
|
|||
sha256 = "sha256-QWWqC10bENemG5FYEog87tT7IxDaBJUDqu6j/sO3sYE=";
|
||||
};
|
||||
|
||||
buildFlags = lib.optional stdenv.isDarwin "LDFLAGS= CFLAGS_EXTRA=";
|
||||
buildFlags = lib.optional stdenv.isDarwin "LDFLAGS= LDFLAGS_EXTRA= CFLAGS_EXTRA=";
|
||||
|
||||
installFlags = [ "PREFIX=$(out)" ];
|
||||
installTargets = lib.optional stdenv.isDarwin "install-osx";
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "casbin";
|
||||
version = "1.16.4";
|
||||
version = "1.16.5";
|
||||
format = "setuptools";
|
||||
|
||||
disabled = pythonOlder "3.6";
|
||||
|
@ -18,7 +18,7 @@ buildPythonPackage rec {
|
|||
owner = pname;
|
||||
repo = "pycasbin";
|
||||
rev = "refs/tags/v${version}";
|
||||
sha256 = "sha256-/zIx1GlzAnQf0t2d8ME+bi2CZGj6Qr9f5Z4afrQD8FY=";
|
||||
sha256 = "sha256-27j1iuqf0af4Cm3r32FJnWnjvvUcacuv2+1OL6z/mwM=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
|
|
@ -26,7 +26,7 @@ buildPythonPackage rec {
|
|||
src = fetchPypi {
|
||||
pname = "diff_cover";
|
||||
inherit version;
|
||||
sha256 = "sha256-N2O0/C75EGO6crUCFGUiJLLQqfMVRNVQRZb1xKhHzXs=";
|
||||
hash = "sha256-N2O0/C75EGO6crUCFGUiJLLQqfMVRNVQRZb1xKhHzXs=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
@ -54,6 +54,16 @@ buildPythonPackage rec {
|
|||
"test_style_defs"
|
||||
# uses pytest.approx in a boolean context, which is unsupported since pytest7
|
||||
"test_percent_covered"
|
||||
# assert '<!DOCTYPE ht...ody>\n</html>' == '<!DOCTYPE ht...ody>\n</html>'
|
||||
"test_html_with_external_css"
|
||||
# assert '<table class...</tr></table>' == '<div class=".../table></div>'
|
||||
"test_format"
|
||||
"test_format_with_invalid_violation_lines"
|
||||
"test_no_filename_ext"
|
||||
"test_unicode"
|
||||
"test_load_snippets_html"
|
||||
"test_load_utf8_snippets"
|
||||
"test_load_declared_arabic"
|
||||
];
|
||||
|
||||
pythonImportsCheck = [
|
||||
|
|
|
@ -3,29 +3,32 @@
|
|||
, fetchPypi
|
||||
, pythonOlder
|
||||
, setuptools-scm
|
||||
, imagesSupport ? false
|
||||
, pillow
|
||||
, pytestCheckHook
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "python-barcode";
|
||||
version = "0.13.1";
|
||||
version = "0.14.0";
|
||||
format = "setuptools";
|
||||
|
||||
disabled = pythonOlder "3.6";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-+vukqiTp2Wl3e+UhwpT/GPbCs2rWO1/C8hCNly4jslI=";
|
||||
sha256 = "sha256-JBs0qlxctqmImIL5QJsBgpA6LF0ZtCGL42Cc271f/fk=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
setuptools-scm
|
||||
] ++ lib.optionals (imagesSupport) [
|
||||
pillow
|
||||
];
|
||||
|
||||
passthru.extras-require = {
|
||||
images = [
|
||||
pillow
|
||||
];
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace setup.cfg \
|
||||
--replace "--cov=barcode" "" \
|
||||
|
@ -35,7 +38,7 @@ buildPythonPackage rec {
|
|||
|
||||
checkInputs = [
|
||||
pytestCheckHook
|
||||
];
|
||||
] ++ passthru.extras-require.images;
|
||||
|
||||
pythonImportsCheck = [ "barcode" ];
|
||||
|
||||
|
|
|
@ -5,13 +5,13 @@
|
|||
|
||||
python3.pkgs.buildPythonApplication rec {
|
||||
pname = "sqlfluff";
|
||||
version = "0.13.1";
|
||||
version = "0.13.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = pname;
|
||||
repo = pname;
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-hFpz2p8lJ4HpuSMZ8IDtqp2PIJFqEcelbYVAQpldu4o=";
|
||||
hash = "sha256-tPcj4QTqO03SKyZh7OQbXvjJPheUeWGhWfqpy/IBrk4=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = with python3.pkgs; [
|
||||
|
|
|
@ -9,11 +9,11 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "bind";
|
||||
version = "9.18.1";
|
||||
version = "9.18.3";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://downloads.isc.org/isc/bind9/${version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "sha256-V8ev2HFpTWFctN77HBvW7QIzUJQ9dFhBTbjUk+9WBCc=";
|
||||
sha256 = "sha256-CtjadzvZPLoO9mzIGZlpjr35w+UfrtXlyMHrdcrSrm8=";
|
||||
};
|
||||
|
||||
outputs = [ "out" "lib" "dev" "man" "dnsutils" "host" ];
|
||||
|
|
|
@ -16,13 +16,13 @@ in
|
|||
with python3Packages; buildPythonApplication rec {
|
||||
|
||||
pname = "isso";
|
||||
version = "0.12.6.1";
|
||||
version = "0.12.6.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "posativ";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "sha256-b2iJmOOsaI4lqJ5//jmHflXRx4yFDaAoKZixXoWIyZg=";
|
||||
rev = "refs/tags/${version}";
|
||||
sha256 = "sha256-T5T3EJS8ef8uo+P9qkC+7I70qv+4PFrnhImr04Fz57U=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
|
|
@ -1,95 +1,33 @@
|
|||
{ lib, buildPythonPackage, fetchPypi, fetchpatch, pythonOlder, python3, postfix, lynx
|
||||
}:
|
||||
{ newScope, lib, python3 }:
|
||||
|
||||
let
|
||||
# Mailman does not support sqlalchemy >= 1.4 https://gitlab.com/mailman/mailman/-/issues/845
|
||||
pythonOverride = python3.override {
|
||||
packageOverrides = self: super: {
|
||||
alembic = super.alembic.overridePythonAttrs (oldAttrs: {
|
||||
# does not find tests
|
||||
doCheck = false;
|
||||
});
|
||||
sqlalchemy = super.sqlalchemy.overridePythonAttrs (oldAttrs: rec {
|
||||
version = "1.3.24";
|
||||
src = oldAttrs.src.override {
|
||||
inherit version;
|
||||
hash = "sha256-67t3fL+TEjWbiXv4G6ANrg9ctp+6KhgmXcwYpvXvdRk=";
|
||||
};
|
||||
# does not find tests
|
||||
doCheck = false;
|
||||
});
|
||||
};
|
||||
};
|
||||
in
|
||||
callPackage = newScope self;
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "mailman";
|
||||
version = "3.3.5";
|
||||
disabled = pythonOlder "3.6";
|
||||
self = lib.makeExtensible (self: {
|
||||
python3 = callPackage ./python.nix { inherit python3; };
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "12mgxs1ndhdjjkydx48b95na9k9h0disfqgrr6wxx7vda6dqvcwz";
|
||||
};
|
||||
hyperkitty = callPackage ./hyperkitty.nix { };
|
||||
|
||||
propagatedBuildInputs = with pythonOverride.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
|
||||
];
|
||||
mailman = callPackage ./package.nix { };
|
||||
|
||||
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
|
||||
];
|
||||
mailman-hyperkitty = callPackage ./mailman-hyperkitty.nix { };
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace setup.py \
|
||||
--replace "alembic>=1.6.2,<1.7" "alembic>=1.6.2"
|
||||
postorius = callPackage ./postorius.nix { };
|
||||
|
||||
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
|
||||
'';
|
||||
web = callPackage ./web.nix { };
|
||||
|
||||
# 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;
|
||||
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 ]);
|
||||
};
|
||||
});
|
||||
|
||||
# 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 ];
|
||||
};
|
||||
}
|
||||
in self
|
||||
|
|
|
@ -1,34 +1,10 @@
|
|||
{ lib
|
||||
, buildPythonPackage
|
||||
, python3
|
||||
, fetchpatch
|
||||
, fetchPypi
|
||||
, pythonOlder
|
||||
|
||||
# dependencies
|
||||
, defusedxml
|
||||
, django
|
||||
, django-gravatar2
|
||||
, django-haystack
|
||||
, django-mailman3
|
||||
, django-paintstore
|
||||
, django-q
|
||||
, django_compressor
|
||||
, django-extensions
|
||||
, djangorestframework
|
||||
, flufl_lock
|
||||
, mistune_2_0
|
||||
, networkx
|
||||
, psycopg2
|
||||
, python-dateutil
|
||||
, robot-detection
|
||||
|
||||
# tests
|
||||
, beautifulsoup4
|
||||
, elasticsearch
|
||||
, mock
|
||||
, whoosh
|
||||
}:
|
||||
|
||||
with python3.pkgs;
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "HyperKitty";
|
||||
# Note: Mailman core must be on the latest version before upgrading HyperKitty.
|
||||
|
|
|
@ -1,15 +1,9 @@
|
|||
{ lib
|
||||
, buildPythonPackage
|
||||
, fetchPypi
|
||||
, python3
|
||||
, mailman
|
||||
, mock
|
||||
, nose2
|
||||
, python
|
||||
, pythonOlder
|
||||
, requests
|
||||
, zope_interface
|
||||
}:
|
||||
|
||||
with python3.pkgs;
|
||||
buildPythonPackage rec {
|
||||
pname = "mailman-hyperkitty";
|
||||
version = "1.2.0";
|
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 ];
|
||||
};
|
||||
}
|
|
@ -1,6 +1,6 @@
|
|||
{ lib, buildPythonPackage, fetchPypi, beautifulsoup4, vcrpy, mock
|
||||
, django-mailman3, mailmanclient, readme_renderer
|
||||
}:
|
||||
{ lib, python3 }:
|
||||
|
||||
with python3.pkgs;
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "postorius";
|
||||
|
|
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";
|
||||
};
|
||||
}));
|
||||
};
|
||||
}
|
|
@ -1,7 +1,9 @@
|
|||
{ buildPythonPackage, lib, fetchPypi, pythonOlder
|
||||
, sassc, hyperkitty, postorius, whoosh, setuptools-scm
|
||||
{ lib, python3
|
||||
, sassc, hyperkitty, postorius
|
||||
}:
|
||||
|
||||
with python3.pkgs;
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "mailman-web";
|
||||
version = "0.0.5";
|
||||
|
|
|
@ -1,20 +0,0 @@
|
|||
{ runCommand, lib, makeWrapper, python3
|
||||
, archivers ? [ python3.pkgs.mailman-hyperkitty ]
|
||||
}:
|
||||
|
||||
let
|
||||
inherit (python3.pkgs) makePythonPath mailman;
|
||||
in
|
||||
|
||||
runCommand "${mailman.name}-wrapped" {
|
||||
inherit (mailman) meta;
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
passthru = mailman.passthru // { unwrapped = mailman; };
|
||||
} ''
|
||||
mkdir -p "$out/bin"
|
||||
cd "${mailman}/bin"
|
||||
for exe in *; do
|
||||
makeWrapper "${mailman}/bin/$exe" "$out/bin/$exe" \
|
||||
--set PYTHONPATH ${makePythonPath ([ mailman ] ++ archivers)}
|
||||
done
|
||||
''
|
|
@ -33,23 +33,18 @@ let
|
|||
};
|
||||
};
|
||||
in {
|
||||
nextcloud21 = throw ''
|
||||
Nextcloud v21 has been removed from `nixpkgs` as the support for it was dropped
|
||||
by upstream in 2022-02. Please upgrade to at least Nextcloud v22 by declaring
|
||||
nextcloud22 = throw ''
|
||||
Nextcloud v22 has been removed from `nixpkgs` as the support for is dropped
|
||||
by upstream in 2022-07. Please upgrade to at least Nextcloud v23 by declaring
|
||||
|
||||
services.nextcloud.package = pkgs.nextcloud22;
|
||||
services.nextcloud.package = pkgs.nextcloud23;
|
||||
|
||||
in your NixOS config.
|
||||
|
||||
WARNING: if you were on Nextcloud 20 on NixOS 21.11 you have to upgrade to Nextcloud 21
|
||||
WARNING: if you were on Nextcloud 21 on NixOS 21.11 you have to upgrade to Nextcloud 22
|
||||
first on 21.11 because Nextcloud doesn't support upgrades accross multiple major versions!
|
||||
'';
|
||||
|
||||
nextcloud22 = generic {
|
||||
version = "22.2.8";
|
||||
sha256 = "061b8a118d0fa500058a04ff8476ba96d4c24cef56e5fe5e300cc7113ce13a18";
|
||||
};
|
||||
|
||||
nextcloud23 = generic {
|
||||
version = "23.0.5";
|
||||
sha256 = "3cf51a795f8439e5d34f0a521d939cefafbae38450cce64c6673016984195f29";
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{ lib, buildGoModule, fetchFromGitHub, installShellFiles }:
|
||||
{ lib, stdenv, buildGoModule, fetchFromGitHub, installShellFiles }:
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "syft";
|
||||
|
@ -74,5 +74,8 @@ buildGoModule rec {
|
|||
'';
|
||||
license = with licenses; [ asl20 ];
|
||||
maintainers = with maintainers; [ jk ];
|
||||
# Need updated macOS SDK
|
||||
# https://github.com/NixOS/nixpkgs/issues/101229
|
||||
broken = (stdenv.isDarwin && stdenv.isx86_64);
|
||||
};
|
||||
}
|
||||
|
|
|
@ -126,7 +126,7 @@ python3Packages.buildPythonApplication rec {
|
|||
eval "disabledTestPaths=($disabledTestPaths)"
|
||||
for path in ''${disabledTestPaths[@]}; do
|
||||
if [ -e "$path" ]; then
|
||||
args+=" --ignore \"$path\""
|
||||
args+=" --ignore $path"
|
||||
else
|
||||
echo "Skipping non-existent test path '$path'"
|
||||
fi
|
||||
|
|
|
@ -11,6 +11,11 @@ stdenv.mkDerivation {
|
|||
sha256 = "14sqajm361gnrcqv84g7kbmyqm8pppbhqsabszc4j2cn7vbwkdg5";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
# missing header for gcc >= 11
|
||||
sed -i '1i#include <limits>' Marlin/src/module/calc.cpp
|
||||
'';
|
||||
|
||||
buildPhase = ''
|
||||
cd Marlin/src
|
||||
c++ module/planner.cpp module/calc.cpp feature/fwretract.cpp \
|
||||
|
|
|
@ -8602,7 +8602,7 @@ with pkgs;
|
|||
grocy = callPackage ../servers/grocy { };
|
||||
|
||||
inherit (callPackage ../servers/nextcloud {})
|
||||
nextcloud21 nextcloud22 nextcloud23 nextcloud24;
|
||||
nextcloud22 nextcloud23 nextcloud24;
|
||||
|
||||
nextcloud-client = libsForQt5.callPackage ../applications/networking/nextcloud-client { };
|
||||
|
||||
|
@ -21879,12 +21879,12 @@ with pkgs;
|
|||
|
||||
mackerel-agent = callPackage ../servers/monitoring/mackerel-agent { };
|
||||
|
||||
mailman = callPackage ../servers/mail/mailman/wrapped.nix { };
|
||||
mailmanPackages = callPackage ../servers/mail/mailman { };
|
||||
inherit (mailmanPackages) mailman mailman-hyperkitty;
|
||||
mailman-web = mailmanPackages.web;
|
||||
|
||||
mailman-rss = callPackage ../tools/misc/mailman-rss { };
|
||||
|
||||
mailman-web = with python3.pkgs; toPythonApplication mailman-web;
|
||||
|
||||
listadmin = callPackage ../applications/networking/listadmin {};
|
||||
|
||||
maker-panel = callPackage ../tools/misc/maker-panel { };
|
||||
|
|
|
@ -77,6 +77,7 @@ mapAliases ({
|
|||
HAP-python = hap-python; # added 2021-06-01
|
||||
hbmqtt = throw "hbmqtt was removed because it is no longer maintained"; # added 2021-11-07
|
||||
hdlparse = throw "hdlparse has been removed, it was using setuptools 2to3 translation feature, which has been removed in setuptools 58"; # added 2022-01-18
|
||||
hyperkitty = throw "Please use pkgs.mailmanPackages.hyperkitty"; # added 2022-04-29
|
||||
IMAPClient = imapclient; # added 2021-10-28
|
||||
jupyter_client = jupyter-client; # added 2021-10-15
|
||||
Keras = keras; # added 2021-11-25
|
||||
|
@ -85,12 +86,16 @@ mapAliases ({
|
|||
Markups = markups; # added 2022-02-14
|
||||
MechanicalSoup = mechanicalsoup; # added 2021-06-01
|
||||
memcached = python-memcached; # added 2022-05-06
|
||||
mailman = throw "Please use pkgs.mailman"; # added 2022-04-29
|
||||
mailman-hyperkitty = throw "Please use pkgs.mailmanPackages.mailman-hyperkitty"; # added 2022-04-29
|
||||
mailman-web = throw "Please use pkgs.mailman-web"; # added 2022-04-29
|
||||
net2grid = gridnet; # add 2022-04-22
|
||||
nose-cover3 = throw "nose-cover3 has been removed, it was using setuptools 2to3 translation feature, which has been removed in setuptools 58"; # added 2022-02-16
|
||||
pam = python-pam; # added 2020-09-07.
|
||||
PasteDeploy = pastedeploy; # added 2021-10-07
|
||||
pathpy = path; # added 2022-04-12
|
||||
pep257 = pydocstyle; # added 2022-04-12
|
||||
postorius = throw "Please use pkgs.mailmanPackages.postorius"; # added 2022-04-29
|
||||
powerlineMemSegment = powerline-mem-segment; # added 2021-10-08
|
||||
privacyidea = throw "privacyidea has been renamed to pkgs.privacyidea"; # added 2021-06-20
|
||||
prometheus_client = prometheus-client; # added 2021-06-10
|
||||
|
|
|
@ -4023,8 +4023,6 @@ in {
|
|||
|
||||
hyperion-py = callPackage ../development/python-modules/hyperion-py { };
|
||||
|
||||
hyperkitty = callPackage ../servers/mail/mailman/hyperkitty.nix { };
|
||||
|
||||
hyperlink = callPackage ../development/python-modules/hyperlink { };
|
||||
|
||||
hyperopt = callPackage ../development/python-modules/hyperopt { };
|
||||
|
@ -5076,14 +5074,8 @@ in {
|
|||
|
||||
mailchimp = callPackage ../development/python-modules/mailchimp { };
|
||||
|
||||
mailman = callPackage ../servers/mail/mailman { };
|
||||
|
||||
mailmanclient = callPackage ../development/python-modules/mailmanclient { };
|
||||
|
||||
mailman-hyperkitty = callPackage ../development/python-modules/mailman-hyperkitty { };
|
||||
|
||||
mailman-web = callPackage ../servers/mail/mailman/web.nix { };
|
||||
|
||||
rtmixer = callPackage ../development/python-modules/rtmixer { };
|
||||
|
||||
mail-parser = callPackage ../development/python-modules/mail-parser { };
|
||||
|
@ -6665,8 +6657,6 @@ in {
|
|||
|
||||
poster3 = callPackage ../development/python-modules/poster3 { };
|
||||
|
||||
postorius = callPackage ../servers/mail/mailman/postorius.nix { };
|
||||
|
||||
pot = callPackage ../development/python-modules/pot { };
|
||||
|
||||
potentials = callPackage ../development/python-modules/potentials { };
|
||||
|
|
Loading…
Reference in a new issue