0
0
Fork 0
mirror of https://github.com/NixOS/nixpkgs.git synced 2025-07-13 21:50:33 +03:00

Merge master into staging-next

This commit is contained in:
github-actions[bot] 2022-05-21 18:01:06 +00:00 committed by GitHub
commit 084f3d75e7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
29 changed files with 259 additions and 220 deletions

View file

@ -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 its <emphasis role="strong">not</emphasis> possible to
upgrade <literal>nextcloud</literal> across multiple major
versions! This means its 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

View file

@ -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)).

View file

@ -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;
}; };

View file

@ -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
); );

View file

@ -18,4 +18,4 @@ foldl
}; };
}) })
{ } { }
[ 22 23 24 ] [ 23 24 ]

View file

@ -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 ];

View file

@ -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 ];

View file

@ -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";

View file

@ -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 = [

View file

@ -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 = [

View file

@ -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" ];

View file

@ -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; [

View file

@ -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" ];

View file

@ -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 = [

View file

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

View file

@ -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.

View file

@ -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";

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

@ -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";

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

@ -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";

View file

@ -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
''

View file

@ -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";

View file

@ -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);
}; };
} }

View file

@ -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

View file

@ -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 \

View file

@ -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 { };

View file

@ -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

View file

@ -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 { };