From b8d3991ce58b2de158649f46061de5753dd8fccc Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 24 Apr 2022 05:41:07 +0000 Subject: [PATCH 01/15] isso: 0.12.6.1 -> 0.12.6.2 --- pkgs/servers/isso/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/servers/isso/default.nix b/pkgs/servers/isso/default.nix index a7f48861487..46942669ac6 100644 --- a/pkgs/servers/isso/default.nix +++ b/pkgs/servers/isso/default.nix @@ -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 = [ From f33b07e7289a938249658a099c72b92a41bb0b9a Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Fri, 20 May 2022 01:19:21 +0200 Subject: [PATCH 02/15] bind: 9.18.1 -> 9.18.3 > An assertion failure can be triggered if a TLS connection to a > configured http TLS listener with a defined endpoint is destroyed too > early. https://kb.isc.org/v1/docs/cve-2022-1183 Fixes: CVE-2022-1183 --- pkgs/servers/dns/bind/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/servers/dns/bind/default.nix b/pkgs/servers/dns/bind/default.nix index 435e3ae45fb..7b56061a4aa 100644 --- a/pkgs/servers/dns/bind/default.nix +++ b/pkgs/servers/dns/bind/default.nix @@ -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" ]; From 72a14ea563a3f5bf85db659349a533fe75a8b0ce Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Tue, 26 Apr 2022 12:19:41 +0200 Subject: [PATCH 03/15] mailman: refactor package structure * Removed unused `.package`-option. * Added explicit postgresql support. * Create a new meta-package for mailman to make sure each component has the **same** python and packages can be downgraded if needed (e.g. psycopg2 or sqlalchemy) without interfering with `pythonPackages` in any way. * Document why certain python overrides are needed. Closes #170035 Closes #158424 --- nixos/modules/services/mail/mailman.nix | 34 +++--- pkgs/servers/mail/mailman/default.nix | 105 ++++-------------- pkgs/servers/mail/mailman/hyperkitty.nix | 30 +---- .../mail/mailman/mailman-hyperkitty.nix} | 10 +- pkgs/servers/mail/mailman/package.nix | 76 +++++++++++++ pkgs/servers/mail/mailman/postorius.nix | 6 +- pkgs/servers/mail/mailman/python.nix | 30 +++++ pkgs/servers/mail/mailman/web.nix | 6 +- pkgs/servers/mail/mailman/wrapped.nix | 20 ---- pkgs/top-level/all-packages.nix | 6 +- pkgs/top-level/python-aliases.nix | 5 + pkgs/top-level/python-packages.nix | 10 -- 12 files changed, 164 insertions(+), 174 deletions(-) rename pkgs/{development/python-modules/mailman-hyperkitty/default.nix => servers/mail/mailman/mailman-hyperkitty.nix} (89%) create mode 100644 pkgs/servers/mail/mailman/package.nix create mode 100644 pkgs/servers/mail/mailman/python.nix delete mode 100644 pkgs/servers/mail/mailman/wrapped.nix diff --git a/nixos/modules/services/mail/mailman.nix b/nixos/modules/services/mail/mailman.nix index f1e074587b3..4dd3af219f1 100644 --- a/nixos/modules/services/mail/mailman.nix +++ b/nixos/modules/services/mail/mailman.nix @@ -6,10 +6,11 @@ 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); + pythonEnv = pkgs.mailmanPackages.buildEnv { + withHyperkitty = cfg.hyperkitty.enable; + }; + + withPostgresql = config.services.postgresql.enable; # This deliberately doesn't use recursiveUpdate so users can # override the defaults. @@ -72,6 +73,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 +88,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 +181,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"; @@ -320,8 +316,10 @@ 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"; @@ -340,6 +338,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 @@ -404,7 +404,9 @@ in { 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 @@ -462,7 +464,7 @@ in { }; meta = { - maintainers = with lib.maintainers; [ lheckemann qyliss ]; + maintainers = with lib.maintainers; [ lheckemann qyliss ma27 ]; doc = ./mailman.xml; }; diff --git a/pkgs/servers/mail/mailman/default.nix b/pkgs/servers/mail/mailman/default.nix index f5632df7949..7345f78dec5 100644 --- a/pkgs/servers/mail/mailman/default.nix +++ b/pkgs/servers/mail/mailman/default.nix @@ -1,95 +1,30 @@ -{ 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; + buildEnv = { web ? self.web + , mailman ? self.mailman + , mailman-hyperkitty ? self.mailman-hyperkitty + , withHyperkitty ? false + }: + self.python3.withPackages + (ps: + [ web mailman ps.psycopg2 ] + ++ lib.optional withHyperkitty mailman-hyperkitty); + }); - # 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 diff --git a/pkgs/servers/mail/mailman/hyperkitty.nix b/pkgs/servers/mail/mailman/hyperkitty.nix index b84e78e323d..c10f2c1ba75 100644 --- a/pkgs/servers/mail/mailman/hyperkitty.nix +++ b/pkgs/servers/mail/mailman/hyperkitty.nix @@ -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. diff --git a/pkgs/development/python-modules/mailman-hyperkitty/default.nix b/pkgs/servers/mail/mailman/mailman-hyperkitty.nix similarity index 89% rename from pkgs/development/python-modules/mailman-hyperkitty/default.nix rename to pkgs/servers/mail/mailman/mailman-hyperkitty.nix index 117ec4fb436..39f9b5ec37a 100644 --- a/pkgs/development/python-modules/mailman-hyperkitty/default.nix +++ b/pkgs/servers/mail/mailman/mailman-hyperkitty.nix @@ -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"; diff --git a/pkgs/servers/mail/mailman/package.nix b/pkgs/servers/mail/mailman/package.nix new file mode 100644 index 00000000000..a990f3cdb05 --- /dev/null +++ b/pkgs/servers/mail/mailman/package.nix @@ -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 ]; + }; +} diff --git a/pkgs/servers/mail/mailman/postorius.nix b/pkgs/servers/mail/mailman/postorius.nix index 4022b6fe91c..bd4425e5efa 100644 --- a/pkgs/servers/mail/mailman/postorius.nix +++ b/pkgs/servers/mail/mailman/postorius.nix @@ -1,6 +1,6 @@ -{ lib, buildPythonPackage, fetchPypi, beautifulsoup4, vcrpy, mock -, django-mailman3, mailmanclient, readme_renderer -}: +{ lib, python3 }: + +with python3.pkgs; buildPythonPackage rec { pname = "postorius"; diff --git a/pkgs/servers/mail/mailman/python.nix b/pkgs/servers/mail/mailman/python.nix new file mode 100644 index 00000000000..359f974f598 --- /dev/null +++ b/pkgs/servers/mail/mailman/python.nix @@ -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"; + }; + })); + }; +} diff --git a/pkgs/servers/mail/mailman/web.nix b/pkgs/servers/mail/mailman/web.nix index adad9d21943..64489bc3e41 100644 --- a/pkgs/servers/mail/mailman/web.nix +++ b/pkgs/servers/mail/mailman/web.nix @@ -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"; diff --git a/pkgs/servers/mail/mailman/wrapped.nix b/pkgs/servers/mail/mailman/wrapped.nix deleted file mode 100644 index c244af10e78..00000000000 --- a/pkgs/servers/mail/mailman/wrapped.nix +++ /dev/null @@ -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 -'' diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 743d67d5d6a..e6f5b514e1b 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -21858,12 +21858,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 { }; diff --git a/pkgs/top-level/python-aliases.nix b/pkgs/top-level/python-aliases.nix index d8e5c19f0c7..477f403c702 100644 --- a/pkgs/top-level/python-aliases.nix +++ b/pkgs/top-level/python-aliases.nix @@ -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 diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 0ed03be8d5e..25e9132e160 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -4017,8 +4017,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 { }; @@ -5068,14 +5066,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 { }; @@ -6657,8 +6649,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 { }; From aea3ec632da49c2527c75183e8566dff4c40f670 Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Fri, 20 May 2022 01:36:48 +0200 Subject: [PATCH 04/15] mailman: split python env for web and mailman --- nixos/modules/services/mail/mailman.nix | 30 +++++++++++++------------ pkgs/servers/mail/mailman/default.nix | 21 +++++++++-------- 2 files changed, 28 insertions(+), 23 deletions(-) diff --git a/nixos/modules/services/mail/mailman.nix b/nixos/modules/services/mail/mailman.nix index 4dd3af219f1..5b714c384de 100644 --- a/nixos/modules/services/mail/mailman.nix +++ b/nixos/modules/services/mail/mailman.nix @@ -6,9 +6,8 @@ let cfg = config.services.mailman; - pythonEnv = pkgs.mailmanPackages.buildEnv { - withHyperkitty = cfg.hyperkitty.enable; - }; + inherit (pkgs.mailmanPackages.buildEnvs { withHyperkitty = cfg.hyperkitty.enable; }) + mailmanEnv webEnv; withPostgresql = config.services.postgresql.enable; @@ -291,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 ''; @@ -322,8 +324,8 @@ in { 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"; @@ -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,7 +399,7 @@ in { uwsgiConfig.uwsgi = { type = "normal"; plugins = ["python3"]; - home = pythonEnv; + home = webEnv; module = "mailman_web.wsgi"; http = "127.0.0.1:18507"; }; @@ -424,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"; }; @@ -436,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"; @@ -455,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"; diff --git a/pkgs/servers/mail/mailman/default.nix b/pkgs/servers/mail/mailman/default.nix index 7345f78dec5..50742c0abc0 100644 --- a/pkgs/servers/mail/mailman/default.nix +++ b/pkgs/servers/mail/mailman/default.nix @@ -16,15 +16,18 @@ let web = callPackage ./web.nix { }; - buildEnv = { web ? self.web - , mailman ? self.mailman - , mailman-hyperkitty ? self.mailman-hyperkitty - , withHyperkitty ? false - }: - self.python3.withPackages - (ps: - [ web mailman ps.psycopg2 ] - ++ lib.optional withHyperkitty mailman-hyperkitty); + buildEnvs = { web ? self.web + , mailman ? self.mailman + , mailman-hyperkitty ? self.mailman-hyperkitty + , withHyperkitty ? false + }: + { + mailmanEnv = self.python3.withPackages + (ps: [ mailman ps.psycopg2 ] + ++ lib.optional withHyperkitty mailman-hyperkitty); + webEnv = self.python3.withPackages + (ps: [ web ps.psycopg2 ]); + }; }); in self From fced75ac031676f0fa03bc9990fadec1f3148b36 Mon Sep 17 00:00:00 2001 From: Sergei Trofimovich Date: Sat, 21 May 2022 10:59:28 +0100 Subject: [PATCH 05/15] intercal: fix build on -fno-common toolchains Without the change build fails on upstream gcc-10 as: ld: parser.o:/build/intercal-0.31/parser.c:1501: multiple definition of `yydebug'; src/perpet.o:/build/intercal-0.31/src/perpet.c:88: first defined here --- pkgs/development/compilers/intercal/default.nix | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/pkgs/development/compilers/intercal/default.nix b/pkgs/development/compilers/intercal/default.nix index d696b6801ed..f3383bdcb5f 100644 --- a/pkgs/development/compilers/intercal/default.nix +++ b/pkgs/development/compilers/intercal/default.nix @@ -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 ]; From a168dedd87af7ad027d5b885035ac0679323a070 Mon Sep 17 00:00:00 2001 From: 06kellyjac Date: Sat, 21 May 2022 12:57:12 +0100 Subject: [PATCH 06/15] syft: mark x86_64-darwin broken --- pkgs/tools/admin/syft/default.nix | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pkgs/tools/admin/syft/default.nix b/pkgs/tools/admin/syft/default.nix index 4a74b851b34..bfeb0ecb8a6 100644 --- a/pkgs/tools/admin/syft/default.nix +++ b/pkgs/tools/admin/syft/default.nix @@ -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); }; } From 2eb0ce93154e1f2faf77ef87622f4fd05ac01e12 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Sat, 21 May 2022 16:22:06 +0200 Subject: [PATCH 07/15] python310Packages.diff-cover: disable failing tests --- .../python-modules/diff-cover/default.nix | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/pkgs/development/python-modules/diff-cover/default.nix b/pkgs/development/python-modules/diff-cover/default.nix index 1fc50c5ef23..7d7a9afcd30 100644 --- a/pkgs/development/python-modules/diff-cover/default.nix +++ b/pkgs/development/python-modules/diff-cover/default.nix @@ -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 '\n' == '\n' + "test_html_with_external_css" + # assert '
' == '
Date: Sat, 21 May 2022 15:34:01 +0100 Subject: [PATCH 08/15] flann: don't unbundle lz4 for clang unbundling appears broken with the llvm toolchain: https://github.com/flann-lib/flann/pull/399#issuecomment-1133601759 --- pkgs/development/libraries/flann/default.nix | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pkgs/development/libraries/flann/default.nix b/pkgs/development/libraries/flann/default.nix index c294aec893a..ec1715b005f 100644 --- a/pkgs/development/libraries/flann/default.nix +++ b/pkgs/development/libraries/flann/default.nix @@ -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 ]; From e2ae9005abe738fc01dbbc2278d0086b36c9ee62 Mon Sep 17 00:00:00 2001 From: Gabriel Ebner Date: Sat, 21 May 2022 16:35:43 +0200 Subject: [PATCH 09/15] beets: correctly ignore tests This fixes the beetsPackages.beets-minimal build. --- pkgs/tools/audio/beets/common.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/tools/audio/beets/common.nix b/pkgs/tools/audio/beets/common.nix index 3c7ad800c3b..d5883f3cdbd 100644 --- a/pkgs/tools/audio/beets/common.nix +++ b/pkgs/tools/audio/beets/common.nix @@ -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 From 6622b728559406a0aaaffa4465c2f9b80526b59f Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sat, 21 May 2022 14:36:42 +0000 Subject: [PATCH 10/15] python310Packages.casbin: 1.16.4 -> 1.16.5 --- pkgs/development/python-modules/casbin/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/casbin/default.nix b/pkgs/development/python-modules/casbin/default.nix index f38d9aa634a..5df8ae38beb 100644 --- a/pkgs/development/python-modules/casbin/default.nix +++ b/pkgs/development/python-modules/casbin/default.nix @@ -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 = [ From a45304532427215ecc983201b5e0829934e13e18 Mon Sep 17 00:00:00 2001 From: Gabriel Ebner Date: Sat, 21 May 2022 16:54:06 +0200 Subject: [PATCH 11/15] marlin-calc: fix build with gcc 11 --- pkgs/tools/misc/marlin-calc/default.nix | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/pkgs/tools/misc/marlin-calc/default.nix b/pkgs/tools/misc/marlin-calc/default.nix index cdcdad99477..38a4f4ffb35 100644 --- a/pkgs/tools/misc/marlin-calc/default.nix +++ b/pkgs/tools/misc/marlin-calc/default.nix @@ -11,6 +11,11 @@ stdenv.mkDerivation { sha256 = "14sqajm361gnrcqv84g7kbmyqm8pppbhqsabszc4j2cn7vbwkdg5"; }; + postPatch = '' + # missing header for gcc >= 11 + sed -i '1i#include ' Marlin/src/module/calc.cpp + ''; + buildPhase = '' cd Marlin/src c++ module/planner.cpp module/calc.cpp feature/fwretract.cpp \ From cf28801975b8f5e18a6287284ef15b1aa9953b9f Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Sat, 21 May 2022 16:59:22 +0200 Subject: [PATCH 12/15] sqlfluff: 0.13.1 -> 0.13.2 --- pkgs/development/tools/database/sqlfluff/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/tools/database/sqlfluff/default.nix b/pkgs/development/tools/database/sqlfluff/default.nix index fbb435128dd..14f39f0e58a 100644 --- a/pkgs/development/tools/database/sqlfluff/default.nix +++ b/pkgs/development/tools/database/sqlfluff/default.nix @@ -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; [ From 33c44a10310b6613e735c3596af776ed1f36622b Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Sat, 21 May 2022 18:34:28 +0200 Subject: [PATCH 13/15] nextcloud22: drop Version 22 will be EOLed in July 2022[1] and we shouldn't have unsupported software in the soon-to-be-released NixOS 22.05, hence dropping it already. [1] https://github.com/nextcloud/server/wiki/Maintenance-and-Release-Schedule --- .../from_md/release-notes/rl-2205.section.xml | 13 +++++++++++++ nixos/doc/manual/release-notes/rl-2205.section.md | 4 ++++ nixos/modules/services/web-apps/nextcloud.nix | 3 +-- nixos/tests/nextcloud/default.nix | 2 +- pkgs/servers/nextcloud/default.nix | 15 +++++---------- pkgs/top-level/all-packages.nix | 2 +- 6 files changed, 25 insertions(+), 14 deletions(-) diff --git a/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml b/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml index 19aaf12f26a..aafa9b831b6 100644 --- a/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml +++ b/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml @@ -1645,6 +1645,19 @@ 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 diff --git a/nixos/doc/manual/release-notes/rl-2205.section.md b/nixos/doc/manual/release-notes/rl-2205.section.md index 9261511e7b8..52bcc2e80d9 100644 --- a/nixos/doc/manual/release-notes/rl-2205.section.md +++ b/nixos/doc/manual/release-notes/rl-2205.section.md @@ -632,6 +632,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)). diff --git a/nixos/modules/services/web-apps/nextcloud.nix b/nixos/modules/services/web-apps/nextcloud.nix index 52287a834c9..a58e8aa3abd 100644 --- a/nixos/modules/services/web-apps/nextcloud.nix +++ b/nixos/modules/services/web-apps/nextcloud.nix @@ -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 ); diff --git a/nixos/tests/nextcloud/default.nix b/nixos/tests/nextcloud/default.nix index 76feac314d5..45165b04bf8 100644 --- a/nixos/tests/nextcloud/default.nix +++ b/nixos/tests/nextcloud/default.nix @@ -18,4 +18,4 @@ foldl }; }) { } - [ 22 23 24 ] + [ 23 24 ] diff --git a/pkgs/servers/nextcloud/default.nix b/pkgs/servers/nextcloud/default.nix index 6fc386f4646..94d69ad81dc 100644 --- a/pkgs/servers/nextcloud/default.nix +++ b/pkgs/servers/nextcloud/default.nix @@ -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"; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index dfe84795999..9b6fcf7046c 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -8621,7 +8621,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 { }; From ef16b2e7f7b826a1525df034a5a1e6ddadf0a799 Mon Sep 17 00:00:00 2001 From: Robert Scott Date: Sat, 21 May 2022 17:53:49 +0100 Subject: [PATCH 14/15] libscrypt: fix build on darwin problematic flags have been moved to LDFLAGS_EXTRA --- pkgs/development/libraries/libscrypt/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/development/libraries/libscrypt/default.nix b/pkgs/development/libraries/libscrypt/default.nix index 68ef1afd2ee..6adc2124a3a 100644 --- a/pkgs/development/libraries/libscrypt/default.nix +++ b/pkgs/development/libraries/libscrypt/default.nix @@ -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"; From 7c9b6ae465e5d7cdccb9ea1c433d12e2125b4611 Mon Sep 17 00:00:00 2001 From: "P. R. d. O" Date: Sat, 21 May 2022 11:07:34 -0600 Subject: [PATCH 15/15] python3Packages.python-barcode: 0.13.1 -> 0.14.0 --- .../python-modules/python-barcode/default.nix | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/pkgs/development/python-modules/python-barcode/default.nix b/pkgs/development/python-modules/python-barcode/default.nix index 7a586c2caed..165cb5cc5d2 100644 --- a/pkgs/development/python-modules/python-barcode/default.nix +++ b/pkgs/development/python-modules/python-barcode/default.nix @@ -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" ];