Merge master into staging-next

main
github-actions[bot] 2 years ago committed by GitHub
commit 084f3d75e7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 13
      nixos/doc/manual/from_md/release-notes/rl-2205.section.xml
  2. 4
      nixos/doc/manual/release-notes/rl-2205.section.md
  3. 58
      nixos/modules/services/mail/mailman.nix
  4. 3
      nixos/modules/services/web-apps/nextcloud.nix
  5. 2
      nixos/tests/nextcloud/default.nix
  6. 12
      pkgs/development/compilers/intercal/default.nix
  7. 4
      pkgs/development/libraries/flann/default.nix
  8. 2
      pkgs/development/libraries/libscrypt/default.nix
  9. 4
      pkgs/development/python-modules/casbin/default.nix
  10. 12
      pkgs/development/python-modules/diff-cover/default.nix
  11. 15
      pkgs/development/python-modules/python-barcode/default.nix
  12. 4
      pkgs/development/tools/database/sqlfluff/default.nix
  13. 4
      pkgs/servers/dns/bind/default.nix
  14. 6
      pkgs/servers/isso/default.nix
  15. 108
      pkgs/servers/mail/mailman/default.nix
  16. 30
      pkgs/servers/mail/mailman/hyperkitty.nix
  17. 10
      pkgs/servers/mail/mailman/mailman-hyperkitty.nix
  18. 76
      pkgs/servers/mail/mailman/package.nix
  19. 6
      pkgs/servers/mail/mailman/postorius.nix
  20. 30
      pkgs/servers/mail/mailman/python.nix
  21. 6
      pkgs/servers/mail/mailman/web.nix
  22. 20
      pkgs/servers/mail/mailman/wrapped.nix
  23. 15
      pkgs/servers/nextcloud/default.nix
  24. 5
      pkgs/tools/admin/syft/default.nix
  25. 2
      pkgs/tools/audio/beets/common.nix
  26. 5
      pkgs/tools/misc/marlin-calc/default.nix
  27. 8
      pkgs/top-level/all-packages.nix
  28. 5
      pkgs/top-level/python-aliases.nix
  29. 10
      pkgs/top-level/python-packages.nix

@ -1662,6 +1662,19 @@
GnuTLS instead of OpenSSL by default for licensing reasons. GnuTLS instead of OpenSSL by default for licensing reasons.
</para> </para>
</listitem> </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> <listitem>
<para> <para>
<literal>pkgs.vimPlugins.onedark-nvim</literal> now refers to <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 `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) - `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)). (formerly refers to [olimorris/onedarkpro.nvim](https://github.com/olimorris/onedarkpro.nvim)).

@ -6,10 +6,10 @@ let
cfg = config.services.mailman; cfg = config.services.mailman;
pythonEnv = pkgs.python3.withPackages (ps: inherit (pkgs.mailmanPackages.buildEnvs { withHyperkitty = cfg.hyperkitty.enable; })
[ps.mailman ps.mailman-web] mailmanEnv webEnv;
++ lib.optional cfg.hyperkitty.enable ps.mailman-hyperkitty
++ cfg.extraPythonPackages); withPostgresql = config.services.postgresql.enable;
# This deliberately doesn't use recursiveUpdate so users can # This deliberately doesn't use recursiveUpdate so users can
# override the defaults. # override the defaults.
@ -72,6 +72,9 @@ in {
stored in the world-readable Nix store. To continue using stored in the world-readable Nix store. To continue using
Hyperkitty, you must set services.mailman.hyperkitty.enable = true. Hyperkitty, you must set services.mailman.hyperkitty.enable = true.
'') '')
(mkRemovedOptionModule [ "services" "mailman" "package" ] ''
Didn't have an effect for several years.
'')
]; ];
options = { options = {
@ -84,14 +87,6 @@ in {
description = "Enable Mailman on this host. Requires an active MTA on the host (e.g. Postfix)."; 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 { enablePostfix = mkOption {
type = types.bool; type = types.bool;
default = true; default = true;
@ -185,7 +180,7 @@ in {
mailman.layout = "fhs"; mailman.layout = "fhs";
"paths.fhs" = { "paths.fhs" = {
bin_dir = "${pkgs.python3Packages.mailman}/bin"; bin_dir = "${pkgs.mailmanPackages.mailman}/bin";
var_dir = "/var/lib/mailman"; var_dir = "/var/lib/mailman";
queue_dir = "$var_dir/queue"; queue_dir = "$var_dir/queue";
template_dir = "$var_dir/templates"; template_dir = "$var_dir/templates";
@ -295,9 +290,12 @@ in {
name = "mailman-tools"; name = "mailman-tools";
# We don't want to pollute the system PATH with a python # We don't want to pollute the system PATH with a python
# interpreter etc. so let's pick only the stuff we actually # interpreter etc. so let's pick only the stuff we actually
# want from pythonEnv # want from {web,mailman}Env
pathsToLink = ["/bin"]; pathsToLink = ["/bin"];
paths = [pythonEnv]; paths = [ mailmanEnv webEnv ];
# Only mailman-related stuff is installed, the rest is removed
# in `postBuild`.
ignoreCollisions = true;
postBuild = '' postBuild = ''
find $out/bin/ -mindepth 1 -not -name "mailman*" -delete find $out/bin/ -mindepth 1 -not -name "mailman*" -delete
''; '';
@ -320,12 +318,14 @@ in {
description = "GNU Mailman Master Process"; description = "GNU Mailman Master Process";
before = lib.optional cfg.enablePostfix "postfix.service"; before = lib.optional cfg.enablePostfix "postfix.service";
after = [ "network.target" ] 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 ]; restartTriggers = [ config.environment.etc."mailman.cfg".source ];
requires = optional withPostgresql "postgresql.service";
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
serviceConfig = { serviceConfig = {
ExecStart = "${pythonEnv}/bin/mailman start"; ExecStart = "${mailmanEnv}/bin/mailman start";
ExecStop = "${pythonEnv}/bin/mailman stop"; ExecStop = "${mailmanEnv}/bin/mailman stop";
User = "mailman"; User = "mailman";
Group = "mailman"; Group = "mailman";
Type = "forking"; Type = "forking";
@ -340,6 +340,8 @@ in {
before = [ "mailman.service" "mailman-web-setup.service" "mailman-uwsgi.service" "hyperkitty.service" ]; before = [ "mailman.service" "mailman-web-setup.service" "mailman-uwsgi.service" "hyperkitty.service" ];
requiredBy = [ "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 ]; path = with pkgs; [ jq ];
after = optional withPostgresql "postgresql.service";
requires = optional withPostgresql "postgresql.service";
serviceConfig.Type = "oneshot"; serviceConfig.Type = "oneshot";
script = '' script = ''
mailmanDir=/var/lib/mailman mailmanDir=/var/lib/mailman
@ -381,9 +383,9 @@ in {
restartTriggers = [ config.environment.etc."mailman3/settings.py".source ]; restartTriggers = [ config.environment.etc."mailman3/settings.py".source ];
script = '' script = ''
[[ -e "${webSettings.STATIC_ROOT}" ]] && find "${webSettings.STATIC_ROOT}/" -mindepth 1 -delete [[ -e "${webSettings.STATIC_ROOT}" ]] && find "${webSettings.STATIC_ROOT}/" -mindepth 1 -delete
${pythonEnv}/bin/mailman-web migrate ${webEnv}/bin/mailman-web migrate
${pythonEnv}/bin/mailman-web collectstatic ${webEnv}/bin/mailman-web collectstatic
${pythonEnv}/bin/mailman-web compress ${webEnv}/bin/mailman-web compress
''; '';
serviceConfig = { serviceConfig = {
User = cfg.webUser; User = cfg.webUser;
@ -397,14 +399,16 @@ in {
uwsgiConfig.uwsgi = { uwsgiConfig.uwsgi = {
type = "normal"; type = "normal";
plugins = ["python3"]; plugins = ["python3"];
home = pythonEnv; home = webEnv;
module = "mailman_web.wsgi"; module = "mailman_web.wsgi";
http = "127.0.0.1:18507"; http = "127.0.0.1:18507";
}; };
uwsgiConfigFile = pkgs.writeText "uwsgi-mailman.json" (builtins.toJSON uwsgiConfig); uwsgiConfigFile = pkgs.writeText "uwsgi-mailman.json" (builtins.toJSON uwsgiConfig);
in { in {
wantedBy = ["multi-user.target"]; 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 ]; restartTriggers = [ config.environment.etc."mailman3/settings.py".source ];
serviceConfig = { serviceConfig = {
# Since the mailman-web settings.py obstinately creates a logs # Since the mailman-web settings.py obstinately creates a logs
@ -422,7 +426,7 @@ in {
startAt = "daily"; startAt = "daily";
restartTriggers = [ config.environment.etc."mailman.cfg".source ]; restartTriggers = [ config.environment.etc."mailman.cfg".source ];
serviceConfig = { serviceConfig = {
ExecStart = "${pythonEnv}/bin/mailman digests --send"; ExecStart = "${mailmanEnv}/bin/mailman digests --send";
User = "mailman"; User = "mailman";
Group = "mailman"; Group = "mailman";
}; };
@ -434,7 +438,7 @@ in {
restartTriggers = [ config.environment.etc."mailman3/settings.py".source ]; restartTriggers = [ config.environment.etc."mailman3/settings.py".source ];
wantedBy = [ "mailman.service" "multi-user.target" ]; wantedBy = [ "mailman.service" "multi-user.target" ];
serviceConfig = { serviceConfig = {
ExecStart = "${pythonEnv}/bin/mailman-web qcluster"; ExecStart = "${webEnv}/bin/mailman-web qcluster";
User = cfg.webUser; User = cfg.webUser;
Group = "mailman"; Group = "mailman";
WorkingDirectory = "/var/lib/mailman-web"; WorkingDirectory = "/var/lib/mailman-web";
@ -453,7 +457,7 @@ in {
inherit startAt; inherit startAt;
restartTriggers = [ config.environment.etc."mailman3/settings.py".source ]; restartTriggers = [ config.environment.etc."mailman3/settings.py".source ];
serviceConfig = { serviceConfig = {
ExecStart = "${pythonEnv}/bin/mailman-web runjobs ${name}"; ExecStart = "${webEnv}/bin/mailman-web runjobs ${name}";
User = cfg.webUser; User = cfg.webUser;
Group = "mailman"; Group = "mailman";
WorkingDirectory = "/var/lib/mailman-web"; WorkingDirectory = "/var/lib/mailman-web";
@ -462,7 +466,7 @@ in {
}; };
meta = { meta = {
maintainers = with lib.maintainers; [ lheckemann qyliss ]; maintainers = with lib.maintainers; [ lheckemann qyliss ma27 ];
doc = ./mailman.xml; doc = ./mailman.xml;
}; };

@ -153,7 +153,7 @@ in {
package = mkOption { package = mkOption {
type = types.package; type = types.package;
description = "Which package to use for the Nextcloud instance."; description = "Which package to use for the Nextcloud instance.";
relatedPackages = [ "nextcloud22" "nextcloud23" "nextcloud24" ]; relatedPackages = [ "nextcloud23" "nextcloud24" ];
}; };
phpPackage = mkOption { phpPackage = mkOption {
type = types.package; type = types.package;
@ -625,7 +625,6 @@ in {
nextcloud defined in an overlay, please set `services.nextcloud.package` to nextcloud defined in an overlay, please set `services.nextcloud.package` to
`pkgs.nextcloud`. `pkgs.nextcloud`.
'' ''
else if versionOlder stateVersion "21.11" then nextcloud21
else if versionOlder stateVersion "22.05" then nextcloud22 else if versionOlder stateVersion "22.05" then nextcloud22
else nextcloud24 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 , pkg-config
, bison, flex , bison, flex
, makeWrapper }: , makeWrapper }:
@ -14,6 +14,16 @@ stdenv.mkDerivation rec {
sha256 = "1z2gpa5rbqb7jscqlf258k0b0jc7d2zkyipb5csjpj6d3sw45n4k"; 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 = buildInputs =
[ pkg-config bison flex makeWrapper ]; [ 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"; 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="; sha256 = "REsBnbe6vlrZ+iCcw43kR5wy2o6q10RM73xjW5kBsr4=";
}) })
] ++ lib.optionals (!stdenv.cc.isClang) [
# Avoid the bundled version of LZ4 and instead use the system one. # Avoid the bundled version of LZ4 and instead use the system one.
(fetchpatch { (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"; 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 unzip
]; ];
propagatedBuildInputs = [ lz4 ]; # lz4 unbundling broken for llvm, use internal version
propagatedBuildInputs = lib.optional (!stdenv.cc.isClang) lz4;
buildInputs = lib.optionals enablePython [ python3 ]; buildInputs = lib.optionals enablePython [ python3 ];

@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
sha256 = "sha256-QWWqC10bENemG5FYEog87tT7IxDaBJUDqu6j/sO3sYE="; 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)" ]; installFlags = [ "PREFIX=$(out)" ];
installTargets = lib.optional stdenv.isDarwin "install-osx"; installTargets = lib.optional stdenv.isDarwin "install-osx";

@ -9,7 +9,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "casbin"; pname = "casbin";
version = "1.16.4"; version = "1.16.5";
format = "setuptools"; format = "setuptools";
disabled = pythonOlder "3.6"; disabled = pythonOlder "3.6";
@ -18,7 +18,7 @@ buildPythonPackage rec {
owner = pname; owner = pname;
repo = "pycasbin"; repo = "pycasbin";
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
sha256 = "sha256-/zIx1GlzAnQf0t2d8ME+bi2CZGj6Qr9f5Z4afrQD8FY="; sha256 = "sha256-27j1iuqf0af4Cm3r32FJnWnjvvUcacuv2+1OL6z/mwM=";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [

@ -26,7 +26,7 @@ buildPythonPackage rec {
src = fetchPypi { src = fetchPypi {
pname = "diff_cover"; pname = "diff_cover";
inherit version; inherit version;
sha256 = "sha256-N2O0/C75EGO6crUCFGUiJLLQqfMVRNVQRZb1xKhHzXs="; hash = "sha256-N2O0/C75EGO6crUCFGUiJLLQqfMVRNVQRZb1xKhHzXs=";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [
@ -54,6 +54,16 @@ buildPythonPackage rec {
"test_style_defs" "test_style_defs"
# uses pytest.approx in a boolean context, which is unsupported since pytest7 # uses pytest.approx in a boolean context, which is unsupported since pytest7
"test_percent_covered" "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 = [ pythonImportsCheck = [

@ -3,29 +3,32 @@
, fetchPypi , fetchPypi
, pythonOlder , pythonOlder
, setuptools-scm , setuptools-scm
, imagesSupport ? false
, pillow , pillow
, pytestCheckHook , pytestCheckHook
}: }:
buildPythonPackage rec { buildPythonPackage rec {
pname = "python-barcode"; pname = "python-barcode";
version = "0.13.1"; version = "0.14.0";
format = "setuptools"; format = "setuptools";
disabled = pythonOlder "3.6"; disabled = pythonOlder "3.6";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
sha256 = "sha256-+vukqiTp2Wl3e+UhwpT/GPbCs2rWO1/C8hCNly4jslI="; sha256 = "sha256-JBs0qlxctqmImIL5QJsBgpA6LF0ZtCGL42Cc271f/fk=";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [
setuptools-scm setuptools-scm
] ++ lib.optionals (imagesSupport) [
pillow
]; ];
passthru.extras-require = {
images = [
pillow
];
};
postPatch = '' postPatch = ''
substituteInPlace setup.cfg \ substituteInPlace setup.cfg \
--replace "--cov=barcode" "" \ --replace "--cov=barcode" "" \
@ -35,7 +38,7 @@ buildPythonPackage rec {
checkInputs = [ checkInputs = [
pytestCheckHook pytestCheckHook
]; ] ++ passthru.extras-require.images;
pythonImportsCheck = [ "barcode" ]; pythonImportsCheck = [ "barcode" ];

@ -5,13 +5,13 @@
python3.pkgs.buildPythonApplication rec { python3.pkgs.buildPythonApplication rec {
pname = "sqlfluff"; pname = "sqlfluff";
version = "0.13.1"; version = "0.13.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = pname; owner = pname;
repo = pname; repo = pname;
rev = "refs/tags/${version}"; rev = "refs/tags/${version}";
hash = "sha256-hFpz2p8lJ4HpuSMZ8IDtqp2PIJFqEcelbYVAQpldu4o="; hash = "sha256-tPcj4QTqO03SKyZh7OQbXvjJPheUeWGhWfqpy/IBrk4=";
}; };
propagatedBuildInputs = with python3.pkgs; [ propagatedBuildInputs = with python3.pkgs; [

@ -9,11 +9,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "bind"; pname = "bind";
version = "9.18.1"; version = "9.18.3";
src = fetchurl { src = fetchurl {
url = "https://downloads.isc.org/isc/bind9/${version}/${pname}-${version}.tar.xz"; 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" ]; outputs = [ "out" "lib" "dev" "man" "dnsutils" "host" ];

@ -16,13 +16,13 @@ in
with python3Packages; buildPythonApplication rec { with python3Packages; buildPythonApplication rec {
pname = "isso"; pname = "isso";
version = "0.12.6.1"; version = "0.12.6.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "posativ"; owner = "posativ";
repo = pname; repo = pname;
rev = version; rev = "refs/tags/${version}";
sha256 = "sha256-b2iJmOOsaI4lqJ5//jmHflXRx4yFDaAoKZixXoWIyZg="; sha256 = "sha256-T5T3EJS8ef8uo+P9qkC+7I70qv+4PFrnhImr04Fz57U=";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [

@ -1,95 +1,33 @@
{ lib, buildPythonPackage, fetchPypi, fetchpatch, pythonOlder, python3, postfix, lynx { newScope, lib, python3 }:
}:
let let
# Mailman does not support sqlalchemy >= 1.4 https://gitlab.com/mailman/mailman/-/issues/845 callPackage = newScope self;
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
buildPythonPackage rec { self = lib.makeExtensible (self: {
pname = "mailman"; python3 = callPackage ./python.nix { inherit python3; };
version = "3.3.5";
disabled = pythonOlder "3.6";
src = fetchPypi { hyperkitty = callPackage ./hyperkitty.nix { };
inherit pname version;
sha256 = "12mgxs1ndhdjjkydx48b95na9k9h0disfqgrr6wxx7vda6dqvcwz";
};
propagatedBuildInputs = with pythonOverride.pkgs; [ mailman = callPackage ./package.nix { };
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 = [ mailman-hyperkitty = callPackage ./mailman-hyperkitty.nix { };
(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 = '' postorius = callPackage ./postorius.nix { };
substituteInPlace setup.py \
--replace "alembic>=1.6.2,<1.7" "alembic>=1.6.2"
substituteInPlace src/mailman/config/postfix.cfg \ web = callPackage ./web.nix { };
--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 buildEnvs = { web ? self.web
# them in shell code breaks this assumption. Use the wrapped version (see , mailman ? self.mailman
# wrapped.nix) if you need the CLI (rather than the Python library). , mailman-hyperkitty ? self.mailman-hyperkitty
# , withHyperkitty ? false
# This gives a properly wrapped 'mailman' command plus an interpreter that }:
# has all the necessary search paths to execute unwrapped 'master' and {
# 'runner' scripts. mailmanEnv = self.python3.withPackages
dontWrapPythonPrograms = true; (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 in self
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 ];
};
}

@ -1,34 +1,10 @@
{ lib { lib
, buildPythonPackage , python3
, fetchpatch , 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 { buildPythonPackage rec {
pname = "HyperKitty"; pname = "HyperKitty";
# Note: Mailman core must be on the latest version before upgrading HyperKitty. # Note: Mailman core must be on the latest version before upgrading HyperKitty.

@ -1,15 +1,9 @@
{ lib { lib
, buildPythonPackage , python3
, fetchPypi
, mailman , mailman
, mock
, nose2
, python
, pythonOlder
, requests
, zope_interface
}: }:
with python3.pkgs;
buildPythonPackage rec { buildPythonPackage rec {
pname = "mailman-hyperkitty"; pname = "mailman-hyperkitty";
version = "1.2.0"; version = "1.2.0";

@ -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 { lib, python3 }:
, django-mailman3, mailmanclient, readme_renderer
}: with python3.pkgs;
buildPythonPackage rec { buildPythonPackage rec {
pname = "postorius"; pname = "postorius";

@ -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 { lib, python3
, sassc, hyperkitty, postorius, whoosh, setuptools-scm , sassc, hyperkitty, postorius
}: }:
with python3.pkgs;
buildPythonPackage rec { buildPythonPackage rec {
pname = "mailman-web"; pname = "mailman-web";
version = "0.0.5"; 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 { in {
nextcloud21 = throw '' nextcloud22 = throw ''
Nextcloud v21 has been removed from `nixpkgs` as the support for it was dropped Nextcloud v22 has been removed from `nixpkgs` as the support for is dropped
by upstream in 2022-02. Please upgrade to at least Nextcloud v22 by declaring 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. 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! first on 21.11 because Nextcloud doesn't support upgrades accross multiple major versions!
''; '';
nextcloud22 = generic {
version = "22.2.8";
sha256 = "061b8a118d0fa500058a04ff8476ba96d4c24cef56e5fe5e300cc7113ce13a18";
};
nextcloud23 = generic { nextcloud23 = generic {
version = "23.0.5"; version = "23.0.5";
sha256 = "3cf51a795f8439e5d34f0a521d939cefafbae38450cce64c6673016984195f29"; sha256 = "3cf51a795f8439e5d34f0a521d939cefafbae38450cce64c6673016984195f29";

@ -1,4 +1,4 @@
{ lib, buildGoModule, fetchFromGitHub, installShellFiles }: { lib, stdenv, buildGoModule, fetchFromGitHub, installShellFiles }:
buildGoModule rec { buildGoModule rec {
pname = "syft"; pname = "syft";
@ -74,5 +74,8 @@ buildGoModule rec {
''; '';
license = with licenses; [ asl20 ]; license = with licenses; [ asl20 ];
maintainers = with maintainers; [ jk ]; 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)" eval "disabledTestPaths=($disabledTestPaths)"
for path in ''${disabledTestPaths[@]}; do for path in ''${disabledTestPaths[@]}; do
if [ -e "$path" ]; then if [ -e "$path" ]; then
args+=" --ignore \"$path\"" args+=" --ignore $path"
else else
echo "Skipping non-existent test path '$path'" echo "Skipping non-existent test path '$path'"
fi fi

@ -11,6 +11,11 @@ stdenv.mkDerivation {
sha256 = "14sqajm361gnrcqv84g7kbmyqm8pppbhqsabszc4j2cn7vbwkdg5"; sha256 = "14sqajm361gnrcqv84g7kbmyqm8pppbhqsabszc4j2cn7vbwkdg5";
}; };
postPatch = ''
# missing header for gcc >= 11
sed -i '1i#include <limits>' Marlin/src/module/calc.cpp
'';
buildPhase = '' buildPhase = ''
cd Marlin/src cd Marlin/src
c++ module/planner.cpp module/calc.cpp feature/fwretract.cpp \ c++ module/planner.cpp module/calc.cpp feature/fwretract.cpp \

@ -8602,7 +8602,7 @@ with pkgs;
grocy = callPackage ../servers/grocy { }; grocy = callPackage ../servers/grocy { };
inherit (callPackage ../servers/nextcloud {}) inherit (callPackage ../servers/nextcloud {})
nextcloud21 nextcloud22 nextcloud23 nextcloud24; nextcloud22 nextcloud23 nextcloud24;
nextcloud-client = libsForQt5.callPackage ../applications/networking/nextcloud-client { }; nextcloud-client = libsForQt5.callPackage ../applications/networking/nextcloud-client { };
@ -21879,12 +21879,12 @@ with pkgs;
mackerel-agent = callPackage ../servers/monitoring/mackerel-agent { }; 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-rss = callPackage ../tools/misc/mailman-rss { };
mailman-web = with python3.pkgs; toPythonApplication mailman-web;
listadmin = callPackage ../applications/networking/listadmin {}; listadmin = callPackage ../applications/networking/listadmin {};
maker-panel = callPackage ../tools/misc/maker-panel { }; maker-panel = callPackage ../tools/misc/maker-panel { };

@ -77,6 +77,7 @@ mapAliases ({
HAP-python = hap-python; # added 2021-06-01 HAP-python = hap-python; # added 2021-06-01
hbmqtt = throw "hbmqtt was removed because it is no longer maintained"; # added 2021-11-07 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 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 IMAPClient = imapclient; # added 2021-10-28
jupyter_client = jupyter-client; # added 2021-10-15 jupyter_client = jupyter-client; # added 2021-10-15
Keras = keras; # added 2021-11-25 Keras = keras; # added 2021-11-25
@ -85,12 +86,16 @@ mapAliases ({
Markups = markups; # added 2022-02-14 Markups = markups; # added 2022-02-14
MechanicalSoup = mechanicalsoup; # added 2021-06-01 MechanicalSoup = mechanicalsoup; # added 2021-06-01
memcached = python-memcached; # added 2022-05-06 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 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 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. pam = python-pam; # added 2020-09-07.
PasteDeploy = pastedeploy; # added 2021-10-07 PasteDeploy = pastedeploy; # added 2021-10-07
pathpy = path; # added 2022-04-12 pathpy = path; # added 2022-04-12
pep257 = pydocstyle; # 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 powerlineMemSegment = powerline-mem-segment; # added 2021-10-08
privacyidea = throw "privacyidea has been renamed to pkgs.privacyidea"; # added 2021-06-20 privacyidea = throw "privacyidea has been renamed to pkgs.privacyidea"; # added 2021-06-20
prometheus_client = prometheus-client; # added 2021-06-10 prometheus_client = prometheus-client; # added 2021-06-10

@ -4023,8 +4023,6 @@ in {
hyperion-py = callPackage ../development/python-modules/hyperion-py { }; hyperion-py = callPackage ../development/python-modules/hyperion-py { };
hyperkitty = callPackage ../servers/mail/mailman/hyperkitty.nix { };
hyperlink = callPackage ../development/python-modules/hyperlink { }; hyperlink = callPackage ../development/python-modules/hyperlink { };
hyperopt = callPackage ../development/python-modules/hyperopt { }; hyperopt = callPackage ../development/python-modules/hyperopt { };
@ -5076,14 +5074,8 @@ in {
mailchimp = callPackage ../development/python-modules/mailchimp { }; mailchimp = callPackage ../development/python-modules/mailchimp { };
mailman = callPackage ../servers/mail/mailman { };
mailmanclient = callPackage ../development/python-modules/mailmanclient { }; 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 { }; rtmixer = callPackage ../development/python-modules/rtmixer { };
mail-parser = callPackage ../development/python-modules/mail-parser { }; mail-parser = callPackage ../development/python-modules/mail-parser { };
@ -6665,8 +6657,6 @@ in {
poster3 = callPackage ../development/python-modules/poster3 { }; poster3 = callPackage ../development/python-modules/poster3 { };
postorius = callPackage ../servers/mail/mailman/postorius.nix { };
pot = callPackage ../development/python-modules/pot { }; pot = callPackage ../development/python-modules/pot { };
potentials = callPackage ../development/python-modules/potentials { }; potentials = callPackage ../development/python-modules/potentials { };

Loading…
Cancel
Save