From bc4631d8f0f3f388be3fffb959a893ead997d50a Mon Sep 17 00:00:00 2001 From: Silvan Mosberger Date: Thu, 24 Mar 2022 00:25:35 +0100 Subject: [PATCH 001/101] nixos/syncplay: Add server password support --- nixos/modules/services/networking/syncplay.nix | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/nixos/modules/services/networking/syncplay.nix b/nixos/modules/services/networking/syncplay.nix index b6faf2d3f772..c17426ecced7 100644 --- a/nixos/modules/services/networking/syncplay.nix +++ b/nixos/modules/services/networking/syncplay.nix @@ -61,6 +61,15 @@ in Group to use when running Syncplay. ''; }; + + passwordFile = mkOption { + type = types.nullOr types.path; + default = null; + description = '' + Path to the file that contains the server password. If + null, the server doesn't require a password. + ''; + }; }; }; @@ -71,10 +80,17 @@ in after = [ "network-online.target" ]; serviceConfig = { - ExecStart = "${pkgs.syncplay}/bin/syncplay-server ${escapeShellArgs cmdArgs}"; User = cfg.user; Group = cfg.group; + LoadCredential = lib.mkIf (cfg.passwordFile != null) "password:${cfg.passwordFile}"; }; + + script = '' + ${lib.optionalString (cfg.passwordFile != null) '' + export SYNCPLAY_PASSWORD=$(cat "''${CREDENTIALS_DIRECTORY}/password") + ''} + exec ${pkgs.syncplay}/bin/syncplay-server ${escapeShellArgs cmdArgs} + ''; }; }; } From 2ec30e4b14e7a32147c62eeb2bf410ab3acb6446 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 25 Mar 2022 07:38:20 +0000 Subject: [PATCH 002/101] matrix-synapse: 1.55.0 -> 1.55.2 --- pkgs/servers/matrix-synapse/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/servers/matrix-synapse/default.nix b/pkgs/servers/matrix-synapse/default.nix index cd762c7dc8be..ffe76b25b191 100644 --- a/pkgs/servers/matrix-synapse/default.nix +++ b/pkgs/servers/matrix-synapse/default.nix @@ -11,11 +11,11 @@ in with python3.pkgs; buildPythonApplication rec { pname = "matrix-synapse"; - version = "1.55.0"; + version = "1.55.2"; src = fetchPypi { inherit pname version; - sha256 = "sha256-IfLyp6IexNTMrq795qUMAPQ62mrMPwFyLE1yL8cu0T0="; + sha256 = "sha256-MCdwatNo4cDAaq9a3UFwSLJzT1ZxhoYqPOu/a957D2Y="; }; buildInputs = [ openssl ]; From 863773970cdf5de8ec2bd569d453df43365ae5bb Mon Sep 17 00:00:00 2001 From: notgne2 Date: Fri, 25 Mar 2022 08:32:49 -0700 Subject: [PATCH 003/101] nixos/oauth2_proxy: add user group --- nixos/modules/services/security/oauth2_proxy.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/nixos/modules/services/security/oauth2_proxy.nix b/nixos/modules/services/security/oauth2_proxy.nix index ce295bd4ba3b..5c89d5872376 100644 --- a/nixos/modules/services/security/oauth2_proxy.nix +++ b/nixos/modules/services/security/oauth2_proxy.nix @@ -571,8 +571,11 @@ in users.users.oauth2_proxy = { description = "OAuth2 Proxy"; isSystemUser = true; + group = "oauth2_proxy"; }; + users.groups.oauth2_proxy = {}; + systemd.services.oauth2_proxy = { description = "OAuth2 Proxy"; path = [ cfg.package ]; From 2cc55d8c776ba6881c3bf71a7f4d0b0ba1bcd8f2 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 28 Mar 2022 05:48:08 +0000 Subject: [PATCH 004/101] tautulli: 2.9.4 -> 2.9.5 --- pkgs/servers/tautulli/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/servers/tautulli/default.nix b/pkgs/servers/tautulli/default.nix index 9e5fb8e44827..df327f0e8f32 100644 --- a/pkgs/servers/tautulli/default.nix +++ b/pkgs/servers/tautulli/default.nix @@ -2,7 +2,7 @@ buildPythonApplication rec { pname = "Tautulli"; - version = "2.9.4"; + version = "2.9.5"; format = "other"; pythonPath = [ setuptools ]; @@ -12,7 +12,7 @@ buildPythonApplication rec { owner = "Tautulli"; repo = pname; rev = "v${version}"; - sha256 = "sha256-Hgu1peKv00+FZtszewqofwRueC5ZfUFMM/5ax2Gnf44="; + sha256 = "sha256-agkYfLWmeQOD+dtoYvTcNPXjfU3kv56c15AFeB7eVTw="; }; installPhase = '' From d113e4e06e487ea693e6af68f2431b9da14636be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Na=C3=AFm=20Favier?= Date: Mon, 28 Mar 2022 22:56:49 +0200 Subject: [PATCH 005/101] nixos/networkd: add `wait-online` options --- .../from_md/release-notes/rl-2205.section.xml | 29 ++++++++++ .../manual/release-notes/rl-2205.section.md | 5 ++ nixos/modules/system/boot/networkd.nix | 53 ++++++++++++++++++- 3 files changed, 86 insertions(+), 1 deletion(-) 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 830b0c2efcd3..ed6c49f02bbd 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 @@ -1316,6 +1316,35 @@ versions. + + + A new option group + systemd.network.wait-online was added, with + options to configure + systemd-networkd-wait-online.service: + + + + + anyInterface allows specifying that the + network should be considered online when at + least one interface is online (useful on + laptops) + + + + + timeout defines how long to wait for + the network to come online + + + + + extraArgs for everything else + + + + The influxdb2 package was split into diff --git a/nixos/doc/manual/release-notes/rl-2205.section.md b/nixos/doc/manual/release-notes/rl-2205.section.md index 91ca2882ef12..60995731d3d5 100644 --- a/nixos/doc/manual/release-notes/rl-2205.section.md +++ b/nixos/doc/manual/release-notes/rl-2205.section.md @@ -478,6 +478,11 @@ In addition to numerous new and upgraded packages, this release has the followin still under heavy development and behavior is not always flawless. Furthermore, not all Electron apps use the latest Electron versions. +- A new option group `systemd.network.wait-online` was added, with options to configure `systemd-networkd-wait-online.service`: + - `anyInterface` allows specifying that the network should be considered online when *at least one* interface is online (useful on laptops) + - `timeout` defines how long to wait for the network to come online + - `extraArgs` for everything else + - The `influxdb2` package was split into `influxdb2-server` and `influxdb2-cli`, matching the split that took place upstream. A combined `influxdb2` package is still provided in this release for diff --git a/nixos/modules/system/boot/networkd.nix b/nixos/modules/system/boot/networkd.nix index ac1e4ef34b46..092b7b8863ae 100644 --- a/nixos/modules/system/boot/networkd.nix +++ b/nixos/modules/system/boot/networkd.nix @@ -1741,6 +1741,48 @@ in })); }; + systemd.network.wait-online = { + anyInterface = mkOption { + description = '' + Whether to consider the network online when any interface is online, as opposed to all of them. + This is useful on portable machines with a wired and a wireless interface, for example. + ''; + type = types.bool; + default = false; + }; + + ignoredInterfaces = mkOption { + description = '' + Network interfaces to be ignored when deciding if the system is online. + ''; + type = with types; listOf str; + default = []; + example = [ "wg0" ]; + }; + + timeout = mkOption { + description = '' + Time to wait for the network to come online, in seconds. Set to 0 to disable. + ''; + type = types.ints.unsigned; + default = 120; + example = 0; + }; + + extraArgs = mkOption { + description = '' + Extra command-line arguments to pass to systemd-networkd-wait-online. + These also affect per-interface systemd-network-wait-online@ services. + + See + systemd-networkd-wait-online.service8 + for all available options. + ''; + type = with types; listOf str; + default = []; + }; + }; + }; config = mkMerge [ @@ -1749,6 +1791,11 @@ in { systemd.network.units = mapAttrs' (n: v: nameValuePair "${n}.link" (linkToUnit n v)) cfg.links; environment.etc = unitFiles; + + systemd.network.wait-online.extraArgs = + [ "--timeout=${toString cfg.wait-online.timeout}" ] + ++ optional cfg.wait-online.anyInterface "--any" + ++ map (i: "--ignore=${i}") cfg.wait-online.ignoredInterfaces; } (mkIf config.systemd.network.enable { @@ -1777,6 +1824,10 @@ in systemd.services.systemd-networkd-wait-online = { wantedBy = [ "network-online.target" ]; + serviceConfig.ExecStart = [ + "" + "${config.systemd.package}/lib/systemd/systemd-networkd-wait-online ${utils.escapeSystemdExecArgs cfg.wait-online.extraArgs}" + ]; }; systemd.services."systemd-network-wait-online@" = { @@ -1787,7 +1838,7 @@ in serviceConfig = { Type = "oneshot"; RemainAfterExit = true; - ExecStart = "${config.systemd.package}/lib/systemd/systemd-networkd-wait-online -i %I"; + ExecStart = "${config.systemd.package}/lib/systemd/systemd-networkd-wait-online -i %I ${utils.escapeSystemdExecArgs cfg.wait-online.extraArgs}"; }; }; From 55ea018afa663f0257979fdfb2f57fe7836633cd Mon Sep 17 00:00:00 2001 From: Doron Behar Date: Sun, 27 Mar 2022 13:43:01 +0300 Subject: [PATCH 006/101] python3.pkgs.hepunits: init at 2.2.0 --- .../python-modules/hepunits/default.nix | 31 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 ++ 2 files changed, 33 insertions(+) create mode 100644 pkgs/development/python-modules/hepunits/default.nix diff --git a/pkgs/development/python-modules/hepunits/default.nix b/pkgs/development/python-modules/hepunits/default.nix new file mode 100644 index 000000000000..9bfd4de36f78 --- /dev/null +++ b/pkgs/development/python-modules/hepunits/default.nix @@ -0,0 +1,31 @@ +{ lib +, buildPythonPackage +, fetchPypi +, setuptools-scm +, pytestCheckHook +}: + +buildPythonPackage rec { + pname = "hepunits"; + version = "2.2.0"; + + src = fetchPypi { + inherit pname version; + sha256 = "sha256-6A5hb+8oF/PGbHXcDkHtJjYkiMzgX5Stz977jgXry1g="; + }; + nativeBuildInputs = [ + setuptools-scm + ]; + + checkInputs = [ + pytestCheckHook + ]; + + meta = { + description = "Units and constants in the HEP system of units"; + homepage = "https://github.com/scikit-hep/hepunits"; + license = lib.licenses.bsd3; + maintainers = with lib.maintainers; [ doronbehar ]; + }; +} + diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 783f1866b8f5..525d50b56b3b 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -3736,6 +3736,8 @@ in { inherit python; }); + hepunits = callPackage ../development/python-modules/hepunits { }; + herepy = callPackage ../development/python-modules/herepy { }; hetzner = callPackage ../development/python-modules/hetzner { }; From 6b3b66185d3bab126f71b5c98c796f680c56e933 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 30 Mar 2022 06:56:12 +0000 Subject: [PATCH 007/101] poke: 2.1 -> 2.2 --- pkgs/applications/editors/poke/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/editors/poke/default.nix b/pkgs/applications/editors/poke/default.nix index e05008613910..c2ade207d609 100644 --- a/pkgs/applications/editors/poke/default.nix +++ b/pkgs/applications/editors/poke/default.nix @@ -22,11 +22,11 @@ let isCross = stdenv.hostPlatform != stdenv.buildPlatform; in stdenv.mkDerivation rec { pname = "poke"; - version = "2.1"; + version = "2.2"; src = fetchurl { url = "mirror://gnu/${pname}/${pname}-${version}.tar.gz"; - sha256 = "sha256-zVKObBu8VAw7YpwrTza3hLMKAmsAWji5koNCJZlEJnA="; + sha256 = "sha256-xF6k5xpRohhTZzhcAc65dZbsW3EDOGm+xKYLHLciWQM="; }; outputs = [ "out" "dev" "info" "lib" "man" ]; From a7bcc9a8718f5ffe8786e16f7f96523a34d4984c Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 30 Mar 2022 23:19:48 +0000 Subject: [PATCH 008/101] podman-tui: 0.2.0 -> 0.3.0 --- pkgs/applications/virtualization/podman-tui/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/virtualization/podman-tui/default.nix b/pkgs/applications/virtualization/podman-tui/default.nix index 7a8ed6fed284..17272acd86eb 100644 --- a/pkgs/applications/virtualization/podman-tui/default.nix +++ b/pkgs/applications/virtualization/podman-tui/default.nix @@ -11,13 +11,13 @@ }: buildGoModule rec { pname = "podman-tui"; - version = "0.2.0"; + version = "0.3.0"; src = fetchFromGitHub { owner = "containers"; repo = "podman-tui"; rev = "v${version}"; - sha256 = "sha256-y5bFr31CQ4JES6tjvThyy7qmoKFC59uwtDMG5r+r8K4="; + sha256 = "sha256-1WbDmnKyFosp4Kz9QINr3lOR/wD0UW2QZf7nAAaoClM="; }; vendorSha256 = null; From 0ca49888890cd1aec6f0d1888d6b7c46b6078436 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 31 Mar 2022 02:57:38 +0000 Subject: [PATCH 009/101] python310Packages.dropbox: 11.28.0 -> 11.29.0 --- pkgs/development/python-modules/dropbox/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/dropbox/default.nix b/pkgs/development/python-modules/dropbox/default.nix index 2e2490568e9d..f18f6203d1e0 100644 --- a/pkgs/development/python-modules/dropbox/default.nix +++ b/pkgs/development/python-modules/dropbox/default.nix @@ -11,7 +11,7 @@ buildPythonPackage rec { pname = "dropbox"; - version = "11.28.0"; + version = "11.29.0"; format = "setuptools"; disabled = pythonOlder "3.7"; @@ -20,7 +20,7 @@ buildPythonPackage rec { owner = "dropbox"; repo = "dropbox-sdk-python"; rev = "v${version}"; - sha256 = "sha256-xNenBmeCRIYxQqAkV8IDpPpIHyVAYJs1jAFr8w1tz2Y="; + sha256 = "sha256-TKJb34hJYzZtQcqgopLpN8c1utWCNjmev9epY+hYU7M="; }; propagatedBuildInputs = [ From 5b099769b07fc1a8552036a9ebfceeb1945b55c0 Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Thu, 31 Mar 2022 04:03:17 +0000 Subject: [PATCH 010/101] =?UTF-8?q?gnome-online-accounts:=203.43.1=20?= =?UTF-8?q?=E2=86=92=203.44.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit https://gitlab.gnome.org/GNOME/gnome-online-accounts/-/compare/3.43.1...3.44.0 --- pkgs/development/libraries/gnome-online-accounts/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/gnome-online-accounts/default.nix b/pkgs/development/libraries/gnome-online-accounts/default.nix index f58e87b2f7e6..1fed0b470691 100644 --- a/pkgs/development/libraries/gnome-online-accounts/default.nix +++ b/pkgs/development/libraries/gnome-online-accounts/default.nix @@ -30,7 +30,7 @@ stdenv.mkDerivation rec { pname = "gnome-online-accounts"; - version = "3.43.1"; + version = "3.44.0"; # https://gitlab.gnome.org/GNOME/gnome-online-accounts/issues/87 src = fetchFromGitLab { @@ -38,7 +38,7 @@ stdenv.mkDerivation rec { owner = "GNOME"; repo = "gnome-online-accounts"; rev = version; - sha256 = "sha256-Dpq5bQwU0ZAxmEllpbLnS1Jz3F0rxtFMKZcIvAteObU="; + sha256 = "sha256-8dp3cizyQVHegDxX9G6iGLW5g44audn431hCPMS/KlA="; }; outputs = [ "out" "man" "dev" "devdoc" ]; From abff5d05f3ce408126b31c9eaaa81bdcd0f12310 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 31 Mar 2022 08:31:57 +0000 Subject: [PATCH 011/101] python310Packages.sabyenc3: 5.1.5 -> 5.1.6 --- pkgs/development/python-modules/sabyenc3/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/sabyenc3/default.nix b/pkgs/development/python-modules/sabyenc3/default.nix index 2dec98d5ca1a..831680670d1f 100644 --- a/pkgs/development/python-modules/sabyenc3/default.nix +++ b/pkgs/development/python-modules/sabyenc3/default.nix @@ -6,14 +6,14 @@ buildPythonPackage rec { pname = "sabyenc3"; - version = "5.1.5"; + version = "5.1.6"; format = "setuptools"; disabled = pythonOlder "3.7"; src = fetchPypi { inherit pname version; - hash = "sha256-JwCzy3QRCzxT8B0VM5SXIIWlYi08tT8eLj/QKtMYLRE="; + hash = "sha256-DHHil9ZQsrKLgw5dje0Yo1J5FZAFrY1tn5y3mdBJHWg="; }; # Tests are not included in pypi distribution From bfdbd43fa19ae14a7d551c00736b1668dbb67298 Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Thu, 31 Mar 2022 18:41:19 +0800 Subject: [PATCH 012/101] =?UTF-8?q?vala=5F0=5F48:=200.48.23=20=E2=86=92=20?= =?UTF-8?q?0.48.24?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit https://gitlab.gnome.org/GNOME/vala/-/blob/0.48.24/NEWS --- pkgs/development/compilers/vala/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/compilers/vala/default.nix b/pkgs/development/compilers/vala/default.nix index 230f6ee19a20..8013f283c708 100644 --- a/pkgs/development/compilers/vala/default.nix +++ b/pkgs/development/compilers/vala/default.nix @@ -90,8 +90,8 @@ let in rec { vala_0_48 = generic { - version = "0.48.23"; - sha256 = "sha256-3jzIWNmV4HR0IZ4lo+Hw7ZmAcNLiBtOjE9Q3ml93oGo="; + version = "0.48.24"; + sha256 = "NknvhFc7aGX8NHBkDuYDcgCZ65FbOfqtGbdJjeGn3yQ="; }; vala_0_54 = generic { From 7c10b247dfcdfa7c83f2d8ef6c296deb062feb5c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Forsman?= Date: Thu, 31 Mar 2022 13:15:22 +0200 Subject: [PATCH 013/101] arcanist: add missing dependency 'which' 'arc' uses 'which' to find external programs at runtime. --- pkgs/development/tools/misc/arcanist/default.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkgs/development/tools/misc/arcanist/default.nix b/pkgs/development/tools/misc/arcanist/default.nix index a2af61fb6a16..9540f1e0a6c8 100644 --- a/pkgs/development/tools/misc/arcanist/default.nix +++ b/pkgs/development/tools/misc/arcanist/default.nix @@ -5,6 +5,7 @@ , php , lib, stdenv , installShellFiles +, which }: # Make a custom wrapper. If `wrapProgram` is used, arcanist thinks .arc-wrapped is being @@ -14,7 +15,7 @@ let makeArcWrapper = toolset: '' cat << WRAPPER > $out/bin/${toolset} #!$shell -e - export PATH='${php}/bin/'\''${PATH:+':'}\$PATH + export PATH='${php}/bin:${which}/bin'\''${PATH:+':'}\$PATH exec ${php}/bin/php $out/libexec/arcanist/bin/${toolset} "\$@" WRAPPER chmod +x $out/bin/${toolset} From cc6775822f797c751ba846406aba94939f19433f Mon Sep 17 00:00:00 2001 From: nixpkgs-upkeep-bot Date: Thu, 31 Mar 2022 12:13:44 +0000 Subject: [PATCH 014/101] vscodium: 1.65.2 -> 1.66.0 --- pkgs/applications/editors/vscode/vscodium.nix | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pkgs/applications/editors/vscode/vscodium.nix b/pkgs/applications/editors/vscode/vscodium.nix index a91227d9db40..0101b896e8cf 100644 --- a/pkgs/applications/editors/vscode/vscodium.nix +++ b/pkgs/applications/editors/vscode/vscodium.nix @@ -13,10 +13,10 @@ let archive_fmt = if system == "x86_64-darwin" then "zip" else "tar.gz"; sha256 = { - x86_64-linux = "1sh2f7hwhilwmlgy11kl0s2n3phpcir15wyl2fkyhsr2kdj4jz9r"; - x86_64-darwin = "1s04d91f08982wi8hb4dw0j57d6zqrdgns16ihrgsvahrzksgq4b"; - aarch64-linux = "1a97lk1qz2lz0lk5lpja32zy07iwdbskp6baf429iz7fz232rshm"; - armv7l-linux = "0vjqxqcr7fq3ncx1nl6ny7qcqm4vlsn33c074hhcg5292blg2a0p"; + x86_64-linux = "0dv28i8mxf45n7xj4gzgh4gsx76875nxs4yfqswxij8kzz72vqfn"; + x86_64-darwin = "0xs4f1ffqcbvzw1v64f9l8i7rflz7h1j5xgjxdz6l0hw0j4aalb2"; + aarch64-linux = "1fa7g531apigp8k7fxkp2ijmhz5axx7ixzdhlwgbsb80rb2mqhi0"; + armv7l-linux = "1ry9qm6rk46s0jn7hl30jbjdhi3fshzcs0x9krd9qin7by18hhz3"; }.${system}; sourceRoot = { @@ -31,7 +31,7 @@ in # Please backport all compatible updates to the stable release. # This is important for the extension ecosystem. - version = "1.65.2"; + version = "1.66.0"; pname = "vscodium"; executableName = "codium"; From dd2c5421967a598f4b1b7fd81c99b421bd1374c0 Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Thu, 31 Mar 2022 21:28:03 +0800 Subject: [PATCH 015/101] gnome.gnome-panel: add missing geocode-glib dependency --- pkgs/desktops/gnome/misc/gnome-panel/default.nix | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/pkgs/desktops/gnome/misc/gnome-panel/default.nix b/pkgs/desktops/gnome/misc/gnome-panel/default.nix index 139e161352a1..0b107f23d78d 100644 --- a/pkgs/desktops/gnome/misc/gnome-panel/default.nix +++ b/pkgs/desktops/gnome/misc/gnome-panel/default.nix @@ -1,9 +1,12 @@ -{ lib, stdenv +{ stdenv +, lib , fetchurl +, fetchpatch , autoreconfHook , dconf , evolution-data-server , gdm +, geocode-glib , gettext , glib , gnome-desktop @@ -37,6 +40,13 @@ stdenv.mkDerivation rec { # instead of gnome-panel’s libdir so that the NixOS module can make gnome-panel # load modules from other packages as well. ./modulesdir-env-var.patch + + # Add missing geocode-glib-1.0 dependency + # https://gitlab.gnome.org/GNOME/gnome-panel/-/merge_requests/49 + (fetchpatch { + url = "https://gitlab.gnome.org/GNOME/gnome-panel/-/commit/f58a43ec4649a25f1a762b36e1401b81cd2b214b.patch"; + sha256 = "sha256-DFqaNUjkLh4xd81qgQpl+568eUZeWyF8LxdZoTgMfCQ="; + }) ]; # make .desktop Exec absolute @@ -69,6 +79,7 @@ stdenv.mkDerivation rec { dconf evolution-data-server gdm + geocode-glib glib gnome-desktop gnome-menus From 4fce50f37e205b7dbb9f504fbf9f9b4fb68f412e Mon Sep 17 00:00:00 2001 From: xrelkd <46590321+xrelkd@users.noreply.github.com> Date: Thu, 31 Mar 2022 22:28:14 +0800 Subject: [PATCH 016/101] just: 1.1.1 -> 1.1.2 --- pkgs/development/tools/just/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/development/tools/just/default.nix b/pkgs/development/tools/just/default.nix index c11d386d7464..e5ad74d64c73 100644 --- a/pkgs/development/tools/just/default.nix +++ b/pkgs/development/tools/just/default.nix @@ -10,16 +10,16 @@ rustPlatform.buildRustPackage rec { pname = "just"; - version = "1.1.1"; + version = "1.1.2"; src = fetchFromGitHub { owner = "casey"; repo = pname; rev = version; - sha256 = "sha256-hgXMWQ7UlGyeb/j7V/Uw4gZjk/r1hA7lMjVL8i8st7o="; + sha256 = "sha256-vUtJ9QVMmDGfkYTBoK8mVaJTEfNBQD5sTEp7kC0LNZw="; }; - cargoSha256 = "sha256-QJruh4voCB/q7xh5I6XnVtKA4Jbn9U84Mt2pHte7Kog="; + cargoSha256 = "sha256-rJjLXktWnT6kRx1/18AFr6KciaFF8PaTpz27wz+vGug="; nativeBuildInputs = [ installShellFiles ]; buildInputs = lib.optionals stdenv.isDarwin [ libiconv ]; From 578ba59bbf7cf0e16dd8281b98270dfbb69f5886 Mon Sep 17 00:00:00 2001 From: xrelkd <46590321+xrelkd@users.noreply.github.com> Date: Thu, 31 Mar 2022 22:32:25 +0800 Subject: [PATCH 017/101] sn0int: 0.24.1 -> 0.24.2 --- pkgs/tools/security/sn0int/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/tools/security/sn0int/default.nix b/pkgs/tools/security/sn0int/default.nix index b2d812d521af..8e3a806d871c 100644 --- a/pkgs/tools/security/sn0int/default.nix +++ b/pkgs/tools/security/sn0int/default.nix @@ -9,16 +9,16 @@ rustPlatform.buildRustPackage rec { pname = "sn0int"; - version = "0.24.1"; + version = "0.24.2"; src = fetchFromGitHub { owner = "kpcyrd"; repo = pname; rev = "v${version}"; - sha256 = "sha256-AP/3QCol2qOvRqNW9F/m9JpiZrqtfXvr//Ku2XE3vqY="; + sha256 = "sha256-WcCNNLNvOtYiSWVvXA8mnlXOV2T/yIXFzZky5y3tYJ4="; }; - cargoSha256 = "sha256-gdDQjYU8hJdkQCh1Iswn5KlPW2BT/J5vCSOS/KHvbH4="; + cargoSha256 = "sha256-5pVxOkm9OLSX5Lxe3DSM0mVSMhlHfFBCiMMR37WrZbI="; nativeBuildInputs = [ pkg-config From 55d676321a4cc00631d2db1251ca4cf43cc476be Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Thu, 31 Mar 2022 23:22:37 +0800 Subject: [PATCH 018/101] gnome.gnome-bluetooth_1_0: init at 3.34.5 --- .../core/gnome-bluetooth/1.0/default.nix | 97 +++++++++++++++++++ pkgs/desktops/gnome/default.nix | 2 + 2 files changed, 99 insertions(+) create mode 100644 pkgs/desktops/gnome/core/gnome-bluetooth/1.0/default.nix diff --git a/pkgs/desktops/gnome/core/gnome-bluetooth/1.0/default.nix b/pkgs/desktops/gnome/core/gnome-bluetooth/1.0/default.nix new file mode 100644 index 000000000000..38bb96980dca --- /dev/null +++ b/pkgs/desktops/gnome/core/gnome-bluetooth/1.0/default.nix @@ -0,0 +1,97 @@ +{ stdenv +, lib +, fetchurl +, fetchpatch +, gnome +, meson +, ninja +, pkg-config +, gtk3 +, gettext +, glib +, udev +, itstool +, libxml2 +, wrapGAppsHook +, libnotify +, libcanberra-gtk3 +, gobject-introspection +, gtk-doc +, docbook-xsl-nons +, docbook_xml_dtd_43 +, python3 +, gsettings-desktop-schemas +}: + +stdenv.mkDerivation rec { + pname = "gnome-bluetooth"; + version = "3.34.5"; + + # TODO: split out "lib" + outputs = [ "out" "dev" "devdoc" "man" ]; + + src = fetchurl { + url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; + sha256 = "bJSeUsi+zCBU2qzWBJAfZs5c9wml+pHEu3ysyTm1Pqk="; + }; + + patches = [ + # Fix build with meson 0.61. + # sendto/meson.build:24:5: ERROR: Function does not take positional arguments. + (fetchpatch { + url = "https://gitlab.gnome.org/GNOME/gnome-bluetooth/-/commit/755fd758f866d3a3f7ca482942beee749f13a91e.patch"; + sha256 = "sha256-N0MJ0pYO411o2CTNZHWmEoG2m5TGUjR6YW6HSXHTR/A="; + }) + ]; + + nativeBuildInputs = [ + meson + ninja + gettext + itstool + pkg-config + libxml2 + wrapGAppsHook + gobject-introspection + gtk-doc + docbook-xsl-nons + docbook_xml_dtd_43 + python3 + ]; + + buildInputs = [ + glib + gtk3 + udev + libnotify + libcanberra-gtk3 + gnome.adwaita-icon-theme + gsettings-desktop-schemas + ]; + + mesonFlags = [ + "-Dicon_update=false" + "-Dgtk_doc=true" + ]; + + postPatch = '' + chmod +x meson_post_install.py # patchShebangs requires executable file + patchShebangs meson_post_install.py + ''; + + passthru = { + updateScript = gnome.updateScript { + packageName = pname; + attrPath = "gnome.gnome-bluetooth_1_0"; + freeze = true; + }; + }; + + meta = with lib; { + homepage = "https://help.gnome.org/users/gnome-bluetooth/stable/index.html.en"; + description = "Application that let you manage Bluetooth in the GNOME destkop"; + maintainers = teams.gnome.members; + license = licenses.gpl2Plus; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome/default.nix b/pkgs/desktops/gnome/default.nix index 729a6bd16ca8..1fc15fc6406f 100644 --- a/pkgs/desktops/gnome/default.nix +++ b/pkgs/desktops/gnome/default.nix @@ -48,6 +48,8 @@ lib.makeScope pkgs.newScope (self: with self; { gnome-bluetooth = callPackage ./core/gnome-bluetooth { }; + gnome-bluetooth_1_0 = callPackage ./core/gnome-bluetooth/1.0 { }; + gnome-color-manager = callPackage ./core/gnome-color-manager { }; gnome-contacts = callPackage ./core/gnome-contacts { }; From 85dff10d0644419a7c31b4faab6142bd34be3b65 Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Thu, 31 Mar 2022 23:25:54 +0800 Subject: [PATCH 019/101] gnome.gnome-flashback: use gnome-bluetooth_1_0 --- pkgs/desktops/gnome/misc/gnome-flashback/default.nix | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/pkgs/desktops/gnome/misc/gnome-flashback/default.nix b/pkgs/desktops/gnome/misc/gnome-flashback/default.nix index 34d2b6eea3c2..4401915d40ba 100644 --- a/pkgs/desktops/gnome/misc/gnome-flashback/default.nix +++ b/pkgs/desktops/gnome/misc/gnome-flashback/default.nix @@ -1,9 +1,10 @@ -{ lib, stdenv +{ stdenv +, lib , autoreconfHook , fetchurl , gettext , glib -, gnome-bluetooth +, gnome-bluetooth_1_0 , gnome-desktop , gnome-panel , gnome-session @@ -94,7 +95,7 @@ let buildInputs = [ glib - gnome-bluetooth + gnome-bluetooth_1_0 gnome-desktop gsettings-desktop-schemas gtk3 From baa0a8b9efac331802127efd57fa0be27b2cc074 Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Thu, 31 Mar 2022 23:29:42 +0800 Subject: [PATCH 020/101] blueberry: use gnome-bluetooth_1_0 --- pkgs/tools/bluetooth/blueberry/default.nix | 7 +- .../bluetooth/blueberry/gnome-bluetooth.nix | 96 ------------------- 2 files changed, 2 insertions(+), 101 deletions(-) delete mode 100644 pkgs/tools/bluetooth/blueberry/gnome-bluetooth.nix diff --git a/pkgs/tools/bluetooth/blueberry/default.nix b/pkgs/tools/bluetooth/blueberry/default.nix index bbc3babbd132..6a0f1d2d00bc 100644 --- a/pkgs/tools/bluetooth/blueberry/default.nix +++ b/pkgs/tools/bluetooth/blueberry/default.nix @@ -3,18 +3,15 @@ , fetchFromGitHub , bluez-tools , cinnamon +, gnome , gobject-introspection , intltool , pavucontrol , python3Packages , util-linux , wrapGAppsHook -, callPackage }: -let - gnome-bluetooth = callPackage ./gnome-bluetooth.nix {}; -in stdenv.mkDerivation rec { pname = "blueberry"; version = "1.4.7"; @@ -35,7 +32,7 @@ stdenv.mkDerivation rec { buildInputs = [ bluez-tools cinnamon.xapps - gnome-bluetooth + gnome.gnome-bluetooth_1_0 python3Packages.python util-linux ]; diff --git a/pkgs/tools/bluetooth/blueberry/gnome-bluetooth.nix b/pkgs/tools/bluetooth/blueberry/gnome-bluetooth.nix deleted file mode 100644 index cf0028cf833d..000000000000 --- a/pkgs/tools/bluetooth/blueberry/gnome-bluetooth.nix +++ /dev/null @@ -1,96 +0,0 @@ -{ lib -, stdenv -, fetchurl -, fetchpatch -, gnome -, meson -, ninja -, pkg-config -, gtk3 -, gettext -, glib -, udev -, itstool -, libxml2 -, wrapGAppsHook -, libnotify -, libcanberra-gtk3 -, gobject-introspection -, gtk-doc -, docbook-xsl-nons -, docbook_xml_dtd_43 -, python3 -, gsettings-desktop-schemas -}: - -stdenv.mkDerivation rec { - pname = "gnome-bluetooth"; - version = "3.34.5"; - - # TODO: split out "lib" - outputs = [ "out" "dev" "devdoc" "man" ]; - - src = fetchurl { - url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; - sha256 = "1a9ynlwwkb3wpg293ym517vmrkk63y809mmcv9a21k5yr199x53c"; - }; - - patches = [ - # Fix build with meson 0.61. - # sendto/meson.build:24:5: ERROR: Function does not take positional arguments. - (fetchpatch { - url = "https://gitlab.gnome.org/GNOME/gnome-bluetooth/-/commit/755fd758f866d3a3f7ca482942beee749f13a91e.patch"; - sha256 = "sha256-N0MJ0pYO411o2CTNZHWmEoG2m5TGUjR6YW6HSXHTR/A="; - }) - ]; - - nativeBuildInputs = [ - meson - ninja - gettext - itstool - pkg-config - libxml2 - wrapGAppsHook - gobject-introspection - gtk-doc - docbook-xsl-nons - docbook_xml_dtd_43 - python3 - ]; - - buildInputs = [ - glib - gtk3 - udev - libnotify - libcanberra-gtk3 - gnome.adwaita-icon-theme - gsettings-desktop-schemas - ]; - - mesonFlags = [ - "-Dicon_update=false" - "-Dgtk_doc=true" - ]; - - postPatch = '' - chmod +x meson_post_install.py # patchShebangs requires executable file - patchShebangs meson_post_install.py - ''; - - passthru = { - updateScript = gnome.updateScript { - packageName = pname; - attrPath = "gnome.${pname}"; - }; - }; - - meta = with lib; { - homepage = "https://help.gnome.org/users/gnome-bluetooth/stable/index.html.en"; - description = "Application that let you manage Bluetooth in the GNOME destkop"; - maintainers = teams.gnome.members; - license = licenses.gpl2Plus; - platforms = platforms.linux; - }; -} From 7ce8bc5d48b68b0e7a700b197fe9582bc2007cd9 Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Thu, 31 Mar 2022 23:32:29 +0800 Subject: [PATCH 021/101] pantheon.gnome-bluetooth-contract: use gnome-bluetooth_1_0 --- nixos/modules/services/x11/desktop-managers/pantheon.nix | 1 + pkgs/desktops/pantheon/default.nix | 2 +- .../desktop/gnome-bluetooth-contract/default.nix | 9 ++++----- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/nixos/modules/services/x11/desktop-managers/pantheon.nix b/nixos/modules/services/x11/desktop-managers/pantheon.nix index 48e119a86187..3528b0f40e7b 100644 --- a/nixos/modules/services/x11/desktop-managers/pantheon.nix +++ b/nixos/modules/services/x11/desktop-managers/pantheon.nix @@ -302,6 +302,7 @@ in environment.systemPackages = with pkgs.pantheon; [ contractor file-roller-contract + gnome-bluetooth-contract ]; environment.pathsToLink = [ diff --git a/pkgs/desktops/pantheon/default.nix b/pkgs/desktops/pantheon/default.nix index a3d5f873cbcb..7f28109ad101 100644 --- a/pkgs/desktops/pantheon/default.nix +++ b/pkgs/desktops/pantheon/default.nix @@ -108,7 +108,7 @@ lib.makeScope pkgs.newScope (self: with self; { gala = callPackage ./desktop/gala { }; gnome-bluetooth-contract = callPackage ./desktop/gnome-bluetooth-contract { - inherit (gnome) gnome-bluetooth; + inherit (gnome) gnome-bluetooth_1_0; }; wingpanel = callPackage ./desktop/wingpanel { }; diff --git a/pkgs/desktops/pantheon/desktop/gnome-bluetooth-contract/default.nix b/pkgs/desktops/pantheon/desktop/gnome-bluetooth-contract/default.nix index 190514392098..6df583c2ce6a 100644 --- a/pkgs/desktops/pantheon/desktop/gnome-bluetooth-contract/default.nix +++ b/pkgs/desktops/pantheon/desktop/gnome-bluetooth-contract/default.nix @@ -3,7 +3,7 @@ , fetchFromGitHub , unstableGitUpdater , substituteAll -, gnome-bluetooth +, gnome-bluetooth_1_0 }: stdenv.mkDerivation rec { @@ -20,7 +20,9 @@ stdenv.mkDerivation rec { patches = [ (substituteAll { src = ./exec-path.patch; - gnome_bluetooth = gnome-bluetooth; + # sendto device selection is removed in gnome-bluetooth 42 + # https://github.com/elementary/gnome-bluetooth-contract/issues/1 + gnome_bluetooth = gnome-bluetooth_1_0; }) ]; @@ -49,8 +51,5 @@ stdenv.mkDerivation rec { license = licenses.gpl3Plus; maintainers = teams.pantheon.members; platforms = platforms.linux; - # sendto device selection is removed in gnome-bluetooth 42 - # https://github.com/elementary/gnome-bluetooth-contract/issues/1 - broken = true; }; } From 732e3c70f1309bcb15e8f71251ac1bb6fd82354f Mon Sep 17 00:00:00 2001 From: teutat3s <10206665+teutat3s@users.noreply.github.com> Date: Thu, 31 Mar 2022 17:53:57 +0200 Subject: [PATCH 022/101] electron_17: 17.1.2 -> 17.3.1 https://github.com/electron/electron/compare/v17.1.2...v17.3.1 --- pkgs/development/tools/electron/default.nix | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/pkgs/development/tools/electron/default.nix b/pkgs/development/tools/electron/default.nix index 24dc8614b29a..dbb7a54a05b1 100644 --- a/pkgs/development/tools/electron/default.nix +++ b/pkgs/development/tools/electron/default.nix @@ -103,13 +103,13 @@ rec { headers = "0yv9rssrfi0hdzrjf1n735dsz9sgy78jzxdcf9is2387yrr1qiyz"; }; - electron_17 = mkElectron "17.1.2" { - armv7l-linux = "b561c04c9fa8c512f418ea5c32f5526732e1ccd150ee4830a0091d0fa1b7e31c"; - aarch64-linux = "cda7e66c6672def9edd881107c28e2eec09b7802a38227ac89bb233191ce4840"; - x86_64-linux = "7e7c35e8c1a0fc451e7af19fa73264881ae2c4672c52a2ae1cdd61604650ca94"; - i686-linux = "de87a7952c93c1d8e8c533a700bbfc76d3893e9ad438413507d11450b80a9c97"; - x86_64-darwin = "d4382d3f01b750676a1f3c9e2273ad69cac16dc64a4145469c663bcda8d2471b"; - aarch64-darwin = "135dec87211fcefdb53ab1fef13344c7b71a321f7c4f6846f260c1e0848e73bf"; - headers = "15k234d044lgmc3psyxz9syy9wvzgn54znklak9sv6gcajjzll10"; + electron_17 = mkElectron "17.3.1" { + armv7l-linux = "ad7864f9a580b3fd8865480caa6cccbaefa5d7e5fdbe455700ab711b0adf2228"; + aarch64-linux = "e0f03aff5339e4dab85cbc970568ca31599ee0f032d1e766c23deea7d96654b0"; + x86_64-linux = "59d13b1d060523d1098e6e1e5bf7c6f2494b713321541f863dc459a42d2c40a8"; + i686-linux = "6d31d5117f4508bc7e0f9ecb6423d266b47fb5f074b0dfa8ddcfc2298c764151"; + x86_64-darwin = "c70a6e906ae7ce02552f1722022147f2416f27de0f98b88a0b7b1a09e341426f"; + aarch64-darwin = "76a9c8cbfa578c7e6678e6ccab2417374d1b3d3d81c6cac5ceea0aa058c12a8f"; + headers = "11k5sw7wk0fjjdlhcvbkwpffslngm9ns8l4c7rxa4qx8n1six9sf"; }; } From 8e9aad9883201a223deb893ba640bb4e25f3a4c9 Mon Sep 17 00:00:00 2001 From: teutat3s <10206665+teutat3s@users.noreply.github.com> Date: Thu, 31 Mar 2022 17:55:12 +0200 Subject: [PATCH 023/101] electron_16: 16.1.0 -> 16.2.1 https://github.com/electron/electron/compare/v16.1.0...v16.2.1 --- pkgs/development/tools/electron/default.nix | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/pkgs/development/tools/electron/default.nix b/pkgs/development/tools/electron/default.nix index dbb7a54a05b1..b293576b29ef 100644 --- a/pkgs/development/tools/electron/default.nix +++ b/pkgs/development/tools/electron/default.nix @@ -93,14 +93,14 @@ rec { headers = "073697wjq60cnz42xmnjsr0xqcmcsl4m48mmzrz1rxrc8mvi86gr"; }; - electron_16 = mkElectron "16.1.0" { - armv7l-linux = "f3ab34c73b4100ffc5041ed9aa0608d1dc6b98fe3c2caa14be3d5c3ffbebda76"; - aarch64-linux = "e80a7e4a59b94c7cd02b16ca37a2b0f26ddb58ddac23135c6180b238589f1c62"; - x86_64-linux = "36c79af4d05e89ef9c9616a156f63adc5b453ee6bee5d8f4331e75ee77198e85"; - i686-linux = "7129a96fc33de70cfe5d6d0e17ecff1b4dcf52d825a6ad05b10ca67da7b43665"; - x86_64-darwin = "723859249e959948cdd339acf708022fb0195b433809af25b4a9f4d69b9da52f"; - aarch64-darwin = "e76558028979f70107e5b1897275a9789be20b13991bfbcebeab7fc220f15764"; - headers = "0yv9rssrfi0hdzrjf1n735dsz9sgy78jzxdcf9is2387yrr1qiyz"; + electron_16 = mkElectron "16.2.1" { + armv7l-linux = "d55daeffed60cfd0c2de4ea8cab102ec5957dbd0cd863add881080e891b02334"; + aarch64-linux = "6446c665a1c6d7648dbeae94a669423b4c6768bafa96f0d3f8072b8c5d5a949e"; + x86_64-linux = "7b27a8531a8ef60fa27dd119422a81a710e09f7d8cb01777f1fe7b7ab67e3ac4"; + i686-linux = "eb7e0c8113af80f0e4edbae35d2cca718c1e98966da87041304fa6afb2d3e4c0"; + x86_64-darwin = "0386e3318d4b5cfabccc226ca88bd9946669901f381e3817d1d414b1356e472c"; + aarch64-darwin = "280660c0333702de9d95bcf9a21d3db8d148bef2a5946bb57d20b9e5f2aadb96"; + headers = "121wrzy81h9m12y83mb0xs9jbm5l4w31f831lmb4wmkkg54bvcwj"; }; electron_17 = mkElectron "17.3.1" { From 2caf14f6cc9d1f6c46e77fcdf71f5a0a8b51dd85 Mon Sep 17 00:00:00 2001 From: teutat3s <10206665+teutat3s@users.noreply.github.com> Date: Thu, 31 Mar 2022 17:56:16 +0200 Subject: [PATCH 024/101] electron_15: 15.4.1 -> 15.5.1 https://github.com/electron/electron/compare/v15.4.1...v15.5.1 --- pkgs/development/tools/electron/default.nix | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/pkgs/development/tools/electron/default.nix b/pkgs/development/tools/electron/default.nix index b293576b29ef..8d78c2ea36cc 100644 --- a/pkgs/development/tools/electron/default.nix +++ b/pkgs/development/tools/electron/default.nix @@ -83,14 +83,14 @@ rec { headers = "0339fs3iyp869xi1xmn9z2b1n32wf408cc0z9bz6shns44ymkyhd"; }; - electron_15 = mkElectron "15.4.1" { - armv7l-linux = "e0fe5daed46a5d718b3209fa301aea743df694daf6605f9313f4ca6c70fe5167"; - aarch64-linux = "fa108edd4c146811bdee842fcd278b046ae0ff157de5e072c3ff3ac0bcb310c2"; - x86_64-linux = "867095924d434b3918df8576e7af94fecea4d29461fcfb69c40161f02158ff15"; - i686-linux = "8e79fa9f4125f254abb437445fed8f3f8ec10dd2462e1ced3e7df49c622e087d"; - x86_64-darwin = "899d16a0e0157809c297ceb3710c53441ec4396333d9ad5b65297446874e14dc"; - aarch64-darwin = "8295bf45dab1131dfdfd15654a0b1d85bfae221052ba64353368a2c0faaaa3ff"; - headers = "073697wjq60cnz42xmnjsr0xqcmcsl4m48mmzrz1rxrc8mvi86gr"; + electron_15 = mkElectron "15.5.1" { + armv7l-linux = "222e9ad3210cf538c45f938b5b1a5d901b36fb6ec09461446e4ab4ea6ee9bc1b"; + aarch64-linux = "16a0053036a9f6ba947445c85bacda720975a23a910e78cab8dce1bf8ad2acf7"; + x86_64-linux = "99867ef0eef53f214ef4c8a4ec0223890d9c38b73fd6bf4fb49a9e400dff5726"; + i686-linux = "6d65c900c77b9e259932b20978d78a56bb04fad590f29a5935d8a31f5e0891db"; + x86_64-darwin = "54e6312d5e06e16eab78d86ddb01553864b66f608d017c7a1c4a0a318be32081"; + aarch64-darwin = "6472bea7f38f38c20a8c87e6daf70ca0d00b7c29b1641eeda6c8d45f9e60784b"; + headers = "0dgxyndsyhk5m9m8iiy2h3vg1gz1xg5nj75537apsh9mdiizsfhk"; }; electron_16 = mkElectron "16.2.1" { From 5875fd68d6f4d11463fde595ff44527381651cfc Mon Sep 17 00:00:00 2001 From: teutat3s <10206665+teutat3s@users.noreply.github.com> Date: Thu, 31 Mar 2022 17:58:58 +0200 Subject: [PATCH 025/101] electron_14: 14.2.7 -> 14.2.9 https://github.com/electron/electron/compare/v14.2.7...v14.2.9 With the release of electron v18, v14 is now officially EOL. Look for "End of Support for 14.x.y" in: https://github.com/electron/electron/releases/tag/v18.0.0 --- pkgs/development/tools/electron/default.nix | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/pkgs/development/tools/electron/default.nix b/pkgs/development/tools/electron/default.nix index 8d78c2ea36cc..0ed800eb7c63 100644 --- a/pkgs/development/tools/electron/default.nix +++ b/pkgs/development/tools/electron/default.nix @@ -73,14 +73,14 @@ rec { headers = "0vvizddmhprprbdf6bklasz6amwc254bpc9j0zlx23d1pgyxpnhc"; }; - electron_14 = mkElectron "14.2.7" { - armv7l-linux = "bb0c25671daa0dc235e212831d62f18b9a7f2692279bcd8e4a15f2d84ee7124d"; - aarch64-linux = "149c5df2cf98ee0a2ce5445b3fb00752f42c3f7ab9677b7a54ba01fba2e2f4ec"; - x86_64-linux = "ad80f424e8d8d79f0be078d8a1ddef8fd659fa3dd8aaf6704ab97f2a13489558"; - i686-linux = "82b29272cb52dbe969c0bd6cf9b69896c86abe1d9ef473a3844c0ab3dc92b353"; - x86_64-darwin = "2a5d8336dcd140158964801d482344756377d924a06e6605959034a41f7e026b"; - aarch64-darwin = "b45869ff61bdf392bca498529b6445d47a784079f6a33af6b19d517953f03fd8"; - headers = "0339fs3iyp869xi1xmn9z2b1n32wf408cc0z9bz6shns44ymkyhd"; + electron_14 = mkElectron "14.2.9" { + armv7l-linux = "02ae6cd9ec9c2dcb2f550923576a0c851fff3e796a5048dd3806947c541fd564"; + aarch64-linux = "631ba0f716d0272931418de42468114360bd21ec72875605fc32d67620743d2c"; + x86_64-linux = "0a62a41e8ac4592aba347c82f9c40f3fb4c84c7d00b6bb9501d02375cd49cb7d"; + i686-linux = "55e395a209d4a90e2dcd20a78af4724355feaba86411a39e66b977ed39de4d05"; + x86_64-darwin = "1df5b4c4414ade75c6cbfe13d3024702b8ae7c77f3f07b8955b2459fde6a5842"; + aarch64-darwin = "17089e54830976c4216d26e7e2e15ad2224e3b288d94973fed7e67e9b1c213b3"; + headers = "181b2agnf4b5s81p2rdnd6wkw9c2ri4cv1x0wwf7rj60axvzvydm"; }; electron_15 = mkElectron "15.5.1" { From f6a4228db4a3c434fef63d2dd817eb8c23dd2bb6 Mon Sep 17 00:00:00 2001 From: Maxine Aubrey Date: Thu, 31 Mar 2022 18:07:27 +0200 Subject: [PATCH 026/101] yaru-theme: 22.04.2 -> 22.04.3.1 --- pkgs/data/themes/yaru/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/data/themes/yaru/default.nix b/pkgs/data/themes/yaru/default.nix index 67762e747f4a..a27370b96368 100644 --- a/pkgs/data/themes/yaru/default.nix +++ b/pkgs/data/themes/yaru/default.nix @@ -16,13 +16,13 @@ stdenv.mkDerivation rec { pname = "yaru"; - version = "22.04.2"; + version = "22.04.3.1"; src = fetchFromGitHub { owner = "ubuntu"; repo = "yaru"; rev = version; - sha256 = "sha256-oW5OOJPhC3OB3GIQWTQxPgqE7p4bAO1TyVbyKUHnyD0="; + sha256 = "sha256-nNI6Nm3ZpIJRTbIbe/P9cKofcthb6qWKjn81/ZpPo2g="; }; nativeBuildInputs = [ meson sassc pkg-config glib ninja python3 ]; From bab7f65636ecf6a35b8432f98cd0a1ab9776d407 Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Thu, 31 Mar 2022 20:45:55 +0200 Subject: [PATCH 027/101] grafana: 8.4.4 -> 8.4.5 ChangeLog: https://github.com/grafana/grafana/releases/tag/v8.4.5 --- pkgs/servers/monitoring/grafana/default.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/servers/monitoring/grafana/default.nix b/pkgs/servers/monitoring/grafana/default.nix index 2b3ae9f64de8..e3877265ca35 100644 --- a/pkgs/servers/monitoring/grafana/default.nix +++ b/pkgs/servers/monitoring/grafana/default.nix @@ -2,7 +2,7 @@ buildGoModule rec { pname = "grafana"; - version = "8.4.4"; + version = "8.4.5"; excludedPackages = "\\(alert_webhook_listener\\|clean-swagger\\|release_publisher\\|slow_proxy\\|slow_proxy_mac\\|macaron\\)"; @@ -10,15 +10,15 @@ buildGoModule rec { rev = "v${version}"; owner = "grafana"; repo = "grafana"; - sha256 = "sha256-WLmmf2GlP7axuYj0TLJlDwe1k/9xNQbLvAggG+AshKg="; + sha256 = "sha256-CdGg979c7XD5V3jZbVeHUGylAarGc+cR+bFi5FngKtU="; }; srcStatic = fetchurl { url = "https://dl.grafana.com/oss/release/grafana-${version}.linux-amd64.tar.gz"; - sha256 = "sha256-eH6L7X1WvvL+9+R9FrpvVMxVJYcrHicaLkH2LUJs3AQ="; + sha256 = "sha256-PjDTEmzjDmT1WQGqF3GwojJ6mG2whBoPK0KWfXI8AB4="; }; - vendorSha256 = "sha256-RugV5cHlpR739CA1C/7FkXasvkv18m7pPsK6mxfSkC0="; + vendorSha256 = "sha256-iOJEy7dCZGRTaOuL/09wcMlNDHjRi9SIr9bialdcKi4="; nativeBuildInputs = [ wire ]; From a7c49d7463948ef635f97babf96d914418a50de3 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 31 Mar 2022 18:50:24 +0000 Subject: [PATCH 028/101] python310Packages.jsbeautifier: 1.14.1 -> 1.14.2 --- pkgs/development/python-modules/jsbeautifier/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/jsbeautifier/default.nix b/pkgs/development/python-modules/jsbeautifier/default.nix index 746619a61445..bdd0897acbe6 100644 --- a/pkgs/development/python-modules/jsbeautifier/default.nix +++ b/pkgs/development/python-modules/jsbeautifier/default.nix @@ -9,14 +9,14 @@ buildPythonApplication rec { pname = "jsbeautifier"; - version = "1.14.1"; + version = "1.14.2"; format = "setuptools"; disabled = pythonOlder "3.7"; src = fetchPypi { inherit pname version; - hash = "sha256-ZfT3dLDkywIutJmbRc1ndi92Qnxe80CCq6VLwdjvI+s="; + hash = "sha256-PskybkfTilQ5W97/h2lWakcnWOcLnhG6fMVs/spqm/Y="; }; propagatedBuildInputs = [ From 845ca1e858cb7536cc5e0b9255002e4c6a020cc2 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 31 Mar 2022 19:05:21 +0000 Subject: [PATCH 029/101] python310Packages.aioairzone: 0.2.1 -> 0.3.1 --- pkgs/development/python-modules/aioairzone/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/aioairzone/default.nix b/pkgs/development/python-modules/aioairzone/default.nix index cda625d49533..5983c46b3ab8 100644 --- a/pkgs/development/python-modules/aioairzone/default.nix +++ b/pkgs/development/python-modules/aioairzone/default.nix @@ -7,7 +7,7 @@ buildPythonPackage rec { pname = "aioairzone"; - version = "0.2.1"; + version = "0.3.1"; format = "setuptools"; disabled = pythonOlder "3.8"; @@ -16,7 +16,7 @@ buildPythonPackage rec { owner = "Noltari"; repo = pname; rev = version; - hash = "sha256-R5OK/B7fq15lpt8nKECiHMmfK9xmiLPtoKC65C7H/7c="; + hash = "sha256-iu0pX12GmP5u6G8uY+6FODj732dD6JPxkrpWXw41/6Q="; }; propagatedBuildInputs = [ From ab4d1fb4b0f8b11afe615e6f712bc9970c629b79 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 31 Mar 2022 19:45:46 +0000 Subject: [PATCH 030/101] oh-my-zsh: 2022-03-29 -> 2022-03-31 --- pkgs/shells/zsh/oh-my-zsh/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/shells/zsh/oh-my-zsh/default.nix b/pkgs/shells/zsh/oh-my-zsh/default.nix index 851d5b08ff36..082472b9cd39 100644 --- a/pkgs/shells/zsh/oh-my-zsh/default.nix +++ b/pkgs/shells/zsh/oh-my-zsh/default.nix @@ -5,15 +5,15 @@ , git, nix, nixfmt, jq, coreutils, gnused, curl, cacert }: stdenv.mkDerivation rec { - version = "2022-03-29"; + version = "2022-03-31"; pname = "oh-my-zsh"; - rev = "93435bff4947ca0855d4d8ecc4786877578f0dd3"; + rev = "53863e7b3ff0c2e2816e90dab3d870adebdf49c7"; src = fetchFromGitHub { inherit rev; owner = "ohmyzsh"; repo = "ohmyzsh"; - sha256 = "w9DU2eTf8fID/xDhkJYVPuvYbVIXE9GKW8pycKZ9jVA="; + sha256 = "TQOGSAzcJfcUNTzUcCI5tTlAKD1JYtH9CiPnfHZaA9E="; }; installPhase = '' From 82230fc6ea9d56192346d3d9be1f2c7d951de52f Mon Sep 17 00:00:00 2001 From: TredwellGit Date: Thu, 31 Mar 2022 20:10:23 +0000 Subject: [PATCH 031/101] brave: 1.36.122 -> 1.37.109 https://github.com/brave/brave-browser/blob/master/CHANGELOG_DESKTOP.md#137109 --- pkgs/applications/networking/browsers/brave/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/networking/browsers/brave/default.nix b/pkgs/applications/networking/browsers/brave/default.nix index 65627a490d10..7c0006f745c6 100644 --- a/pkgs/applications/networking/browsers/brave/default.nix +++ b/pkgs/applications/networking/browsers/brave/default.nix @@ -91,11 +91,11 @@ in stdenv.mkDerivation rec { pname = "brave"; - version = "1.36.122"; + version = "1.37.109"; src = fetchurl { url = "https://github.com/brave/brave-browser/releases/download/v${version}/brave-browser_${version}_amd64.deb"; - sha256 = "aBHoEu1egRPMpeUBgRl2V5J3op1Ju+CvprG14dIWc8M="; + sha256 = "fL3vuCqUnzq38JD0bzM/DxLVb5P31iChbMVY2eax9RE="; }; dontConfigure = true; From bdfff535f0ce7ea8712c789240347f03fc215d43 Mon Sep 17 00:00:00 2001 From: Thiago Kenji Okada Date: Thu, 31 Mar 2022 22:35:44 +0100 Subject: [PATCH 032/101] buildGraalvmNativeImage: allow usage of arbitrary graalvm derivation This will allow for easier overrides for specific systems (e.g. `aarch64-linux` that is only supported in `graalvm17-ce`). --- .../build-graalvm-native-image/default.nix | 10 +++++----- pkgs/top-level/all-packages.nix | 4 +++- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/pkgs/build-support/build-graalvm-native-image/default.nix b/pkgs/build-support/build-graalvm-native-image/default.nix index 3aedd61ea6ce..d34f562bc537 100644 --- a/pkgs/build-support/build-graalvm-native-image/default.nix +++ b/pkgs/build-support/build-graalvm-native-image/default.nix @@ -1,4 +1,4 @@ -{ lib, stdenv, graalvmCEPackages, glibcLocales }: +{ lib, stdenv, graalvm, glibcLocales }: { name ? "${args.pname}-${args.version}" # Final executable name @@ -19,8 +19,8 @@ , extraNativeImageBuildArgs ? [ ] # XMX size of GraalVM during build , graalvmXmx ? "-J-Xmx6g" - # The GraalVM to use -, graalvm ? graalvmCEPackages.graalvm11-ce + # The GraalVM derivation to use +, graalvmDrv ? graalvm , meta ? { } , ... } @ args: @@ -28,7 +28,7 @@ stdenv.mkDerivation (args // { inherit dontUnpack; - nativeBuildInputs = (args.nativeBuildInputs or [ ]) ++ [ graalvm glibcLocales ]; + nativeBuildInputs = (args.nativeBuildInputs or [ ]) ++ [ graalvmDrv glibcLocales ]; nativeImageBuildArgs = nativeImageBuildArgs ++ extraNativeImageBuildArgs ++ [ graalvmXmx ]; @@ -52,7 +52,7 @@ stdenv.mkDerivation (args // { meta = { # default to graalvm's platforms - platforms = graalvm.meta.platforms; + platforms = graalvmDrv.meta.platforms; # default to executable name mainProgram = executable; } // meta; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 3a88b23b73b5..d6064543e4bc 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -12866,7 +12866,9 @@ with pkgs; }); graalvm11-ce = graalvmCEPackages.graalvm11-ce; graalvm17-ce = graalvmCEPackages.graalvm17-ce; - buildGraalvmNativeImage = callPackage ../build-support/build-graalvm-native-image { }; + buildGraalvmNativeImage = callPackage ../build-support/build-graalvm-native-image { + graalvm = graalvm11-ce; + }; inherit (callPackages ../development/compilers/graalvm/enterprise-edition.nix { }) graalvm8-ee From 5e7759bd9da7e0590fceedae35d1c3ae06a86d38 Mon Sep 17 00:00:00 2001 From: Thiago Kenji Okada Date: Thu, 31 Mar 2022 22:37:58 +0100 Subject: [PATCH 033/101] HentaiAtHome: rename graalvm -> graalvmDrv --- pkgs/applications/misc/HentaiAtHome/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/applications/misc/HentaiAtHome/default.nix b/pkgs/applications/misc/HentaiAtHome/default.nix index dc2b7ab804ab..d185096aa797 100644 --- a/pkgs/applications/misc/HentaiAtHome/default.nix +++ b/pkgs/applications/misc/HentaiAtHome/default.nix @@ -13,7 +13,7 @@ buildGraalvmNativeImage rec { jar = "${src}/HentaiAtHome.jar"; dontUnpack = true; - graalvm = graalvm17-ce; + graalvmDrv = graalvm17-ce; extraNativeImageBuildArgs = [ "--enable-url-protocols=http,https" "--install-exit-handlers" From 1e2c1b83728c51a23f183e518c3a312f15dd0aaf Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Fri, 1 Apr 2022 00:02:34 +0200 Subject: [PATCH 034/101] mediawiki: 1.37.1 -> 1.37.2 https://lists.wikimedia.org/hyperkitty/list/mediawiki-announce@lists.wikimedia.org/message/YJNXKPV5Z56NSUQ4G3SXPDUIZG5EQ7UR/ Fixes: CVE-2022-28202, CVE-2022-22801, CVE-2022-28203, CVE-2022-28204 --- pkgs/servers/web-apps/mediawiki/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/servers/web-apps/mediawiki/default.nix b/pkgs/servers/web-apps/mediawiki/default.nix index 650b27a7f554..2339c170f166 100644 --- a/pkgs/servers/web-apps/mediawiki/default.nix +++ b/pkgs/servers/web-apps/mediawiki/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { pname = "mediawiki"; - version = "1.37.1"; + version = "1.37.2"; src = with lib; fetchurl { url = "https://releases.wikimedia.org/mediawiki/${versions.majorMinor version}/${pname}-${version}.tar.gz"; - sha256 = "sha256-U0NuktwwrbFLZ5fYE50gaWpUYVJfOKN1yD5DXPBC4uc="; + sha256 = "sha256-WD8HS8r87BfaUBQqVvW7/eXDNml31h2RLX5W/Mo72hs="; }; prePatch = '' From b457d917dcfa6d73fdb7b9317440ff5fb5ee4b8b Mon Sep 17 00:00:00 2001 From: Dominique Martinet Date: Sun, 27 Feb 2022 19:06:44 +0900 Subject: [PATCH 035/101] logrotate: move mail dependency from package to service having pkgs.logrotate depend on mailutils brings in quite a bit of dependencies through mailutil itself and recursive dependency to guile when most people do not need it. Remove mailutils dependency from the package, and conditionally add it to the service if the user specify the mail option either at top level or in a path Fixes #162001 --- nixos/modules/services/logging/logrotate.nix | 16 ++++++---- nixos/tests/logrotate.nix | 31 +++++++++++++------- pkgs/tools/system/logrotate/default.nix | 3 -- 3 files changed, 32 insertions(+), 18 deletions(-) diff --git a/nixos/modules/services/logging/logrotate.nix b/nixos/modules/services/logging/logrotate.nix index 082cf92ff4ef..8dfece8109d3 100644 --- a/nixos/modules/services/logging/logrotate.nix +++ b/nixos/modules/services/logging/logrotate.nix @@ -97,12 +97,18 @@ let ''; paths = sortProperties (attrValues (filterAttrs (_: pathOpts: pathOpts.enable) cfg.paths)); - configFile = pkgs.writeText "logrotate.conf" ( - concatStringsSep "\n" ( + configText = concatStringsSep "\n" ( [ "missingok" "notifempty" cfg.extraConfig ] ++ (map mkConf paths) - ) - ); + ); + configFile = pkgs.writeText "logrotate.conf" configText; + mailOption = + # add mail option to service if a mail is requested in config + # this ugly match will be replaced by cleaner attribute check in + # the near future + if builtins.match "(.*[[:space:]])?mail[[:space:]].*" configText != null + then "--mail=${pkgs.mailutils}/bin/mail" + else ""; in { imports = [ @@ -172,7 +178,7 @@ in serviceConfig = { Restart = "no"; User = "root"; - ExecStart = "${pkgs.logrotate}/sbin/logrotate ${configFile}"; + ExecStart = "${pkgs.logrotate}/sbin/logrotate ${mailOption} ${configFile}"; }; }; }; diff --git a/nixos/tests/logrotate.nix b/nixos/tests/logrotate.nix index 7e3046c94272..85923465593a 100644 --- a/nixos/tests/logrotate.nix +++ b/nixos/tests/logrotate.nix @@ -1,26 +1,33 @@ # Test logrotate service works and is enabled by default -import ./make-test-python.nix ({ pkgs, ...} : rec { +import ./make-test-python.nix ({ pkgs, ... }: rec { name = "logrotate"; meta = with pkgs.lib.maintainers; { maintainers = [ martinetd ]; }; - # default machine - nodes.machine = { ... }: { + nodes = { + defaultMachine = { ... }: { }; + machine = { config, ... }: { + services.logrotate.paths = { + # using mail somewhere should add --mail to logrotate invokation + sendmail = { + extraConfig = "mail user@domain.tld"; + }; + }; + }; }; testScript = '' with subtest("whether logrotate works"): - machine.succeed( - # we must rotate once first to create logrotate stamp - "systemctl start logrotate.service") + # we must rotate once first to create logrotate stamp + defaultMachine.succeed("systemctl start logrotate.service") # we need to wait for console text once here to # clear console buffer up to this point for next wait - machine.wait_for_console_text('logrotate.service: Deactivated successfully') + defaultMachine.wait_for_console_text('logrotate.service: Deactivated successfully') - machine.succeed( + defaultMachine.succeed( # wtmp is present in default config. "rm -f /var/log/wtmp*", # we need to give it at least 1MB @@ -28,10 +35,14 @@ import ./make-test-python.nix ({ pkgs, ...} : rec { # move into the future and check rotation. "date -s 'now + 1 month + 1 day'") - machine.wait_for_console_text('logrotate.service: Deactivated successfully') - machine.succeed( + defaultMachine.wait_for_console_text('logrotate.service: Deactivated successfully') + defaultMachine.succeed( # check rotate worked "[ -e /var/log/wtmp.1 ]", ) + with subtest("default config does not have mail"): + defaultMachine.fail("systemctl cat logrotate.service | grep -- --mail") + with subtest("using mails adds mail option"): + machine.succeed("systemctl cat logrotate.service | grep -- --mail") ''; }) diff --git a/pkgs/tools/system/logrotate/default.nix b/pkgs/tools/system/logrotate/default.nix index f0ce08383359..4c9536cd7cf4 100644 --- a/pkgs/tools/system/logrotate/default.nix +++ b/pkgs/tools/system/logrotate/default.nix @@ -1,5 +1,4 @@ { lib, stdenv, fetchFromGitHub, gzip, popt, autoreconfHook -, mailutils ? null , aclSupport ? true, acl , nixosTests }: @@ -19,8 +18,6 @@ stdenv.mkDerivation rec { configureFlags = [ "--with-compress-command=${gzip}/bin/gzip" "--with-uncompress-command=${gzip}/bin/gunzip" - ] ++ lib.optionals (mailutils != null) [ - "--with-default-mail-command=${mailutils}/bin/mail" ]; nativeBuildInputs = [ autoreconfHook ]; From 3a2fa0d04928e67d20f10df75a60fa2ea0002a15 Mon Sep 17 00:00:00 2001 From: Dominique Martinet Date: Tue, 1 Mar 2022 06:53:15 +0900 Subject: [PATCH 036/101] logrotate: run through nixpkgs-fmt Running once now will make further patches formatting easier --- nixos/modules/services/logging/logrotate.nix | 25 +++++++++++--------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/nixos/modules/services/logging/logrotate.nix b/nixos/modules/services/logging/logrotate.nix index 8dfece8109d3..7e32296c7909 100644 --- a/nixos/modules/services/logging/logrotate.nix +++ b/nixos/modules/services/logging/logrotate.nix @@ -5,7 +5,7 @@ with lib; let cfg = config.services.logrotate; - pathOpts = { name, ... }: { + pathOpts = { name, ... }: { options = { enable = mkOption { type = types.bool; @@ -98,8 +98,8 @@ let paths = sortProperties (attrValues (filterAttrs (_: pathOpts: pathOpts.enable) cfg.paths)); configText = concatStringsSep "\n" ( - [ "missingok" "notifempty" cfg.extraConfig ] ++ (map mkConf paths) - ); + [ "missingok" "notifempty" cfg.extraConfig ] ++ (map mkConf paths) + ); configFile = pkgs.writeText "logrotate.conf" configText; mailOption = @@ -124,7 +124,7 @@ in paths = mkOption { type = with types; attrsOf (submodule pathOpts); - default = {}; + default = { }; description = '' Attribute set of paths to rotate. The order each block appears in the generated configuration file can be controlled by the priority option @@ -163,13 +163,16 @@ in }; config = mkIf cfg.enable { - assertions = mapAttrsToList (name: pathOpts: - { assertion = (pathOpts.user != null) == (pathOpts.group != null); - message = '' - If either of `services.logrotate.paths.${name}.user` or `services.logrotate.paths.${name}.group` are specified then *both* must be specified. - ''; - } - ) cfg.paths; + assertions = mapAttrsToList + (name: pathOpts: + { + assertion = (pathOpts.user != null) == (pathOpts.group != null); + message = '' + If either of `services.logrotate.paths.${name}.user` or `services.logrotate.paths.${name}.group` are specified then *both* must be specified. + ''; + } + ) + cfg.paths; systemd.services.logrotate = { description = "Logrotate Service"; From 3cc8ea28d1c20320b674d3d4131d02e4df8df5fa Mon Sep 17 00:00:00 2001 From: Dominique Martinet Date: Tue, 1 Mar 2022 22:02:32 +0900 Subject: [PATCH 037/101] logrotate: add services.logrotate.configFile escape hatch --- nixos/modules/services/logging/logrotate.nix | 23 +++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/nixos/modules/services/logging/logrotate.nix b/nixos/modules/services/logging/logrotate.nix index 7e32296c7909..d16a5a571ba3 100644 --- a/nixos/modules/services/logging/logrotate.nix +++ b/nixos/modules/services/logging/logrotate.nix @@ -122,6 +122,27 @@ in defaultText = literalExpression "cfg.paths != {}"; }; + configFile = mkOption { + type = types.path; + default = configFile; + defaultText = '' + A configuration file automatically generated by NixOS. + ''; + description = '' + Override the configuration file used by MySQL. By default, + NixOS generates one automatically from . + ''; + example = literalExpression '' + pkgs.writeText "logrotate.conf" ''' + missingok + "/var/log/*.log" { + rotate 4 + weekly + } + '''; + ''; + }; + paths = mkOption { type = with types; attrsOf (submodule pathOpts); default = { }; @@ -181,7 +202,7 @@ in serviceConfig = { Restart = "no"; User = "root"; - ExecStart = "${pkgs.logrotate}/sbin/logrotate ${mailOption} ${configFile}"; + ExecStart = "${pkgs.logrotate}/sbin/logrotate ${mailOption} ${cfg.configFile}"; }; }; }; From e92c05349c6053df22cf21eb9f424251ba2b114f Mon Sep 17 00:00:00 2001 From: Dominique Martinet Date: Tue, 1 Mar 2022 06:54:12 +0900 Subject: [PATCH 038/101] nixos/logrotate: convert to freeform using freeform is the new standard way of using modules and should replace extraConfig. In particular, this will allow us to place a condition on mails --- .../from_md/release-notes/rl-2205.section.xml | 17 +- .../manual/release-notes/rl-2205.section.md | 5 +- nixos/modules/services/logging/logrotate.nix | 192 +++++++++++++++--- nixos/modules/services/misc/gitlab.nix | 16 +- .../services/networking/lxd-image-server.nix | 18 +- .../web-servers/apache-httpd/default.nix | 21 +- .../services/web-servers/nginx/default.nix | 16 +- nixos/modules/system/boot/systemd.nix | 18 +- nixos/modules/virtualisation/azure-agent.nix | 14 +- nixos/tests/logrotate.nix | 80 +++++++- 10 files changed, 297 insertions(+), 100 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 99af050d7baf..9535d441740b 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 @@ -1655,9 +1655,20 @@ - services.logrotate.enable now defaults to - true if any rotate path has been defined, and some paths have - been added by default. + services.logrotate.enable + now defaults to true if any rotate path has been defined, and + some paths have been added by default. + + + + + The logrotate module also has been updated to freeform syntax: + services.logrotate.paths + and + services.logrotate.extraConfig + will work, but issue deprecation warnings and + services.logrotate.settings + should now be used instead. diff --git a/nixos/doc/manual/release-notes/rl-2205.section.md b/nixos/doc/manual/release-notes/rl-2205.section.md index 3e883625664e..377dd1b5cae1 100644 --- a/nixos/doc/manual/release-notes/rl-2205.section.md +++ b/nixos/doc/manual/release-notes/rl-2205.section.md @@ -578,8 +578,11 @@ In addition to numerous new and upgraded packages, this release has the followin - `services.mattermost.plugins` has been added to allow the declarative installation of Mattermost plugins. Plugins are automatically repackaged using autoPatchelf. -- `services.logrotate.enable` now defaults to true if any rotate path has +- [services.logrotate.enable](#opt-services.logrotate.enable) now defaults to true if any rotate path has been defined, and some paths have been added by default. +- The logrotate module also has been updated to freeform syntax: [services.logrotate.paths](#opt-services.logrotate.paths) + and [services.logrotate.extraConfig](#opt-services.logrotate.extraConfig) will work, but issue deprecation + warnings and [services.logrotate.settings](#opt-services.logrotate.settings) should now be used instead. - The `zrepl` package has been updated from 0.4.0 to 0.5: diff --git a/nixos/modules/services/logging/logrotate.nix b/nixos/modules/services/logging/logrotate.nix index d16a5a571ba3..6a9ed469fd38 100644 --- a/nixos/modules/services/logging/logrotate.nix +++ b/nixos/modules/services/logging/logrotate.nix @@ -5,6 +5,9 @@ with lib; let cfg = config.services.logrotate; + # deprecated legacy compat settings + # these options will be removed before 22.11 in the following PR: + # https://github.com/NixOS/nixpkgs/pull/164169 pathOpts = { name, ... }: { options = { enable = mkOption { @@ -86,27 +89,77 @@ let config.name = name; }; - mkConf = pathOpts: '' - # generated by NixOS using the `services.logrotate.paths.${pathOpts.name}` attribute set - ${concatMapStringsSep " " (path: ''"${path}"'') (toList pathOpts.path)} { - ${optionalString (pathOpts.user != null || pathOpts.group != null) "su ${pathOpts.user} ${pathOpts.group}"} - ${pathOpts.frequency} - rotate ${toString pathOpts.keep} - ${pathOpts.extraConfig} - } - ''; - - paths = sortProperties (attrValues (filterAttrs (_: pathOpts: pathOpts.enable) cfg.paths)); - configText = concatStringsSep "\n" ( - [ "missingok" "notifempty" cfg.extraConfig ] ++ (map mkConf paths) + generateLine = n: v: + if builtins.elem n [ "files" "priority" "enable" "global" ] || v == null then null + else if builtins.elem n [ "extraConfig" "frequency" ] then "${v}\n" + else if builtins.elem n [ "firstaction" "lastaction" "prerotate" "postrotate" "preremove" ] + then "${n}\n ${v}\n endscript\n" + else if isInt v then "${n} ${toString v}\n" + else if v == true then "${n}\n" + else if v == false then "no${n}\n" + else "${n} ${v}\n"; + generateSection = indent: settings: concatStringsSep (fixedWidthString indent " " "") ( + filter (x: x != null) (mapAttrsToList generateLine settings) + ); + + # generateSection includes a final newline hence weird closing brace + mkConf = settings: + if settings.global or false then generateSection 0 settings + else '' + ${concatMapStringsSep "\n" (files: ''"${files}"'') (toList settings.files)} { + ${generateSection 2 settings}} + ''; + + # below two mapPaths are compat functions + mapPathOptToSetting = n: v: + if n == "keep" then nameValuePair "rotate" v + else if n == "path" then nameValuePair "files" v + else nameValuePair n v; + + mapPathsToSettings = path: pathOpts: + nameValuePair path ( + filterAttrs (n: v: ! builtins.elem n [ "user" "group" "name" ] && v != "") ( + (mapAttrs' mapPathOptToSetting pathOpts) // + { + su = + if pathOpts.user != null + then "${pathOpts.user} ${pathOpts.group}" + else null; + } + ) + ); + + settings = sortProperties (attrValues (filterAttrs (_: settings: settings.enable) ( + foldAttrs recursiveUpdate { } [ + { + header = { + enable = true; + missingok = true; + notifempty = true; + frequency = "weekly"; + rotate = 4; + }; + # compat section + extraConfig = { + enable = (cfg.extraConfig != ""); + global = true; + extraConfig = cfg.extraConfig; + priority = 101; + }; + } + (mapAttrs' mapPathsToSettings cfg.paths) + cfg.settings + { header = { global = true; priority = 100; }; } + ] + ))); + configFile = pkgs.writeText "logrotate.conf" ( + concatStringsSep "\n" ( + map mkConf settings + ) ); - configFile = pkgs.writeText "logrotate.conf" configText; mailOption = - # add mail option to service if a mail is requested in config - # this ugly match will be replaced by cleaner attribute check in - # the near future - if builtins.match "(.*[[:space:]])?mail[[:space:]].*" configText != null + if foldr (n: a: a || n ? mail) false (attrValues cfg.settings) then "--mail=${pkgs.mailutils}/bin/mail" else ""; in @@ -118,8 +171,68 @@ in options = { services.logrotate = { enable = mkEnableOption "the logrotate systemd service" // { - default = foldr (n: a: a || n.enable) false (attrValues cfg.paths); - defaultText = literalExpression "cfg.paths != {}"; + default = foldr (n: a: a || n.enable) false (attrValues cfg.settings); + defaultText = literalExpression "cfg.settings != {}"; + }; + + settings = mkOption { + default = { }; + description = '' + logrotate freeform settings: each attribute here will define its own section, + ordered by priority, which can either define files to rotate with their settings + or settings common to all further files settings. + Refer to for details. + ''; + type = types.attrsOf (types.submodule ({ name, ... }: { + freeformType = with types; attrsOf (nullOr (oneOf [ int bool str ])); + + options = { + enable = mkEnableOption "setting individual kill switch" // { + default = true; + }; + + global = mkOption { + type = types.bool; + default = false; + description = '' + Whether this setting is a global option or not: set to have these + settings apply to all files settings with a higher priority. + ''; + }; + files = mkOption { + type = with types; either str (listOf str); + default = name; + defaultText = '' + The attrset name if not specified + ''; + description = '' + Single or list of files for which rules are defined. + The files are quoted with double-quotes in logrotate configuration, + so globs and spaces are supported. + Note this setting is ignored if globals is true. + ''; + }; + + frequency = mkOption { + type = types.nullOr types.str; + default = null; + description = '' + How often to rotate the logs. Defaults to previously set global setting, + which itself defauts to weekly. + ''; + }; + + priority = mkOption { + type = types.int; + default = 1000; + description = '' + Order of this logrotate block in relation to the others. The semantics are + the same as with `lib.mkOrder`. Smaller values are inserted first. + ''; + }; + }; + + })); }; configFile = mkOption { @@ -130,7 +243,7 @@ in ''; description = '' Override the configuration file used by MySQL. By default, - NixOS generates one automatically from . + NixOS generates one automatically from . ''; example = literalExpression '' pkgs.writeText "logrotate.conf" ''' @@ -143,6 +256,7 @@ in ''; }; + # deprecated legacy compat settings paths = mkOption { type = with types; attrsOf (submodule pathOpts); default = { }; @@ -150,6 +264,7 @@ in Attribute set of paths to rotate. The order each block appears in the generated configuration file can be controlled by the priority option using the same semantics as `lib.mkOrder`. Smaller values have a greater priority. + This setting has been deprecated in favor of logrotate settings. ''; example = literalExpression '' { @@ -178,22 +293,37 @@ in description = '' Extra contents to append to the logrotate configuration file. Refer to for details. + This setting has been deprecated in favor of + logrotate settings. ''; }; }; }; config = mkIf cfg.enable { - assertions = mapAttrsToList - (name: pathOpts: - { - assertion = (pathOpts.user != null) == (pathOpts.group != null); - message = '' - If either of `services.logrotate.paths.${name}.user` or `services.logrotate.paths.${name}.group` are specified then *both* must be specified. - ''; - } - ) - cfg.paths; + assertions = + mapAttrsToList + (name: pathOpts: + { + assertion = (pathOpts.user != null) == (pathOpts.group != null); + message = '' + If either of `services.logrotate.paths.${name}.user` or `services.logrotate.paths.${name}.group` are specified then *both* must be specified. + ''; + }) + cfg.paths; + + warnings = + (mapAttrsToList + (name: pathOpts: '' + Using config.services.logrotate.paths.${name} is deprecated and will become unsupported in a future release. + Please use services.logrotate.settings instead. + '') + cfg.paths + ) ++ + (optional (cfg.extraConfig != "") '' + Using config.services.logrotate.extraConfig is deprecated and will become unsupported in a future release. + Please use services.logrotate.settings with globals=true instead. + ''); systemd.services.logrotate = { description = "Logrotate Service"; diff --git a/nixos/modules/services/misc/gitlab.nix b/nixos/modules/services/misc/gitlab.nix index e48444f71612..488c3be7b653 100644 --- a/nixos/modules/services/misc/gitlab.nix +++ b/nixos/modules/services/misc/gitlab.nix @@ -848,10 +848,7 @@ in { extraConfig = mkOption { type = types.lines; - default = '' - copytruncate - compress - ''; + default = ""; description = '' Extra logrotate config options for this path. Refer to for details. @@ -977,13 +974,14 @@ in { # Enable rotation of log files services.logrotate = { enable = cfg.logrotate.enable; - paths = { + settings = { gitlab = { - path = "${cfg.statePath}/log/*.log"; - user = cfg.user; - group = cfg.group; + files = "${cfg.statePath}/log/*.log"; + su = "${cfg.user} ${cfg.group}"; frequency = cfg.logrotate.frequency; - keep = cfg.logrotate.keep; + rotate = cfg.logrotate.keep; + copytruncate = true; + compress = true; extraConfig = cfg.logrotate.extraConfig; }; }; diff --git a/nixos/modules/services/networking/lxd-image-server.nix b/nixos/modules/services/networking/lxd-image-server.nix index b119ba8acf63..d326626eed44 100644 --- a/nixos/modules/services/networking/lxd-image-server.nix +++ b/nixos/modules/services/networking/lxd-image-server.nix @@ -51,18 +51,14 @@ in environment.etc."lxd-image-server/config.toml".source = format.generate "config.toml" cfg.settings; - services.logrotate.paths.lxd-image-server = { - path = "/var/log/lxd-image-server/lxd-image-server.log"; + services.logrotate.settings.lxd-image-server = { + files = "/var/log/lxd-image-server/lxd-image-server.log"; frequency = "daily"; - keep = 21; - extraConfig = '' - create 755 lxd-image-server ${cfg.group} - missingok - compress - delaycompress - copytruncate - notifempty - ''; + rotate = 21; + create = "755 lxd-image-server ${cfg.group}"; + compress = true; + delaycompress = true; + copytruncate = true; }; systemd.tmpfiles.rules = [ diff --git a/nixos/modules/services/web-servers/apache-httpd/default.nix b/nixos/modules/services/web-servers/apache-httpd/default.nix index d817ff6019a3..3099705acbe2 100644 --- a/nixos/modules/services/web-servers/apache-httpd/default.nix +++ b/nixos/modules/services/web-servers/apache-httpd/default.nix @@ -710,20 +710,15 @@ in services.logrotate = optionalAttrs (cfg.logFormat != "none") { enable = mkDefault true; - paths.httpd = { - path = "${cfg.logDir}/*.log"; - user = cfg.user; - group = cfg.group; + settings.httpd = { + files = "${cfg.logDir}/*.log"; + su = "${cfg.user} ${cfg.group}"; frequency = "daily"; - keep = 28; - extraConfig = '' - sharedscripts - compress - delaycompress - postrotate - systemctl reload httpd.service > /dev/null 2>/dev/null || true - endscript - ''; + rotate = 28; + sharedscripts = true; + compress = true; + delaycompress = true; + postrotate = "systemctl reload httpd.service > /dev/null 2>/dev/null || true"; }; }; diff --git a/nixos/modules/services/web-servers/nginx/default.nix b/nixos/modules/services/web-servers/nginx/default.nix index e046c28dd6bb..1e18956c2dc4 100644 --- a/nixos/modules/services/web-servers/nginx/default.nix +++ b/nixos/modules/services/web-servers/nginx/default.nix @@ -989,17 +989,13 @@ in nginx.gid = config.ids.gids.nginx; }; - services.logrotate.paths.nginx = mapAttrs (_: mkDefault) { - path = "/var/log/nginx/*.log"; + services.logrotate.settings.nginx = mapAttrs (_: mkDefault) { + files = "/var/log/nginx/*.log"; frequency = "weekly"; - keep = 26; - extraConfig = '' - compress - delaycompress - postrotate - [ ! -f /var/run/nginx/nginx.pid ] || kill -USR1 `cat /var/run/nginx/nginx.pid` - endscript - ''; + rotate = 26; + compress = true; + delaycompress = true; + postrotate = "[ ! -f /var/run/nginx/nginx.pid ] || kill -USR1 `cat /var/run/nginx/nginx.pid`"; }; }; } diff --git a/nixos/modules/system/boot/systemd.nix b/nixos/modules/system/boot/systemd.nix index 297a80d4681b..f69c5d3d5a64 100644 --- a/nixos/modules/system/boot/systemd.nix +++ b/nixos/modules/system/boot/systemd.nix @@ -612,22 +612,18 @@ in boot.kernelParams = optional (!cfg.enableUnifiedCgroupHierarchy) "systemd.unified_cgroup_hierarchy=0"; - services.logrotate.paths = { + services.logrotate.settings = { "/var/log/btmp" = mapAttrs (_: mkDefault) { frequency = "monthly"; - keep = 1; - extraConfig = '' - create 0660 root ${config.users.groups.utmp.name} - minsize 1M - ''; + rotate = 1; + create = "0660 root ${config.users.groups.utmp.name}"; + minsize = "1M"; }; "/var/log/wtmp" = mapAttrs (_: mkDefault) { frequency = "monthly"; - keep = 1; - extraConfig = '' - create 0664 root ${config.users.groups.utmp.name} - minsize 1M - ''; + rotate = 1; + create = "0664 root ${config.users.groups.utmp.name}"; + minsize = "1M"; }; }; }; diff --git a/nixos/modules/virtualisation/azure-agent.nix b/nixos/modules/virtualisation/azure-agent.nix index bd8c7f8c1eea..e2425b44eac4 100644 --- a/nixos/modules/virtualisation/azure-agent.nix +++ b/nixos/modules/virtualisation/azure-agent.nix @@ -146,15 +146,11 @@ in services.logrotate = { enable = true; - extraConfig = '' - /var/log/waagent.log { - compress - monthly - rotate 6 - notifempty - missingok - } - ''; + settings."/var/log/waagent.log" = { + compress = true; + frequency = "monthly"; + rotate = 6; + }; }; systemd.targets.provisioned = { diff --git a/nixos/tests/logrotate.nix b/nixos/tests/logrotate.nix index 85923465593a..3087119c339f 100644 --- a/nixos/tests/logrotate.nix +++ b/nixos/tests/logrotate.nix @@ -1,5 +1,14 @@ # Test logrotate service works and is enabled by default +let + importTest = { ... }: { + services.logrotate.settings.import = { + olddir = false; + }; + }; + +in + import ./make-test-python.nix ({ pkgs, ... }: rec { name = "logrotate"; meta = with pkgs.lib.maintainers; { @@ -9,10 +18,59 @@ import ./make-test-python.nix ({ pkgs, ... }: rec { nodes = { defaultMachine = { ... }: { }; machine = { config, ... }: { - services.logrotate.paths = { + imports = [ importTest ]; + + services.logrotate.settings = { + # remove default frequency header and add another + header = { + frequency = null; + delaycompress = true; + }; + # extra global setting... affecting nothing + last_line = { + global = true; + priority = 2000; + shred = true; + }; # using mail somewhere should add --mail to logrotate invokation sendmail = { - extraConfig = "mail user@domain.tld"; + mail = "user@domain.tld"; + }; + # postrotate should be suffixed by 'endscript' + postrotate = { + postrotate = "touch /dev/null"; + }; + # multiple paths should be aggregated + multipath = { + files = [ "file1" "file2" ]; + }; + # overriding imported path should keep existing attributes + # (e.g. olddir is still set) + import = { + notifempty = true; + }; + }; + # extraConfig compatibility - should be added to top level, early. + services.logrotate.extraConfig = '' + nomail + ''; + # paths compatibility + services.logrotate.paths = { + compat_path = { + path = "compat_test_path"; + }; + # user/group should be grouped as 'su user group' + compat_user = { + user = config.users.users.root.name; + group = "root"; + }; + # extraConfig in path should be added to block + compat_extraConfig = { + extraConfig = "dateext"; + }; + # keep -> rotate + compat_keep = { + keep = 1; }; }; }; @@ -44,5 +102,23 @@ import ./make-test-python.nix ({ pkgs, ... }: rec { defaultMachine.fail("systemctl cat logrotate.service | grep -- --mail") with subtest("using mails adds mail option"): machine.succeed("systemctl cat logrotate.service | grep -- --mail") + with subtest("check generated config matches expectation"): + machine.succeed( + # copy conf to /tmp/logrotate.conf for easy grep + "conf=$(systemctl cat logrotate | grep -oE '/nix/store[^ ]*logrotate.conf'); cp $conf /tmp/logrotate.conf", + "! grep weekly /tmp/logrotate.conf", + "grep -E '^delaycompress' /tmp/logrotate.conf", + "tail -n 1 /tmp/logrotate.conf | grep shred", + "sed -ne '/\"sendmail\" {/,/}/p' /tmp/logrotate.conf | grep 'mail user@domain.tld'", + "sed -ne '/\"postrotate\" {/,/}/p' /tmp/logrotate.conf | grep endscript", + "grep '\"file1\"\n\"file2\" {' /tmp/logrotate.conf", + "sed -ne '/\"import\" {/,/}/p' /tmp/logrotate.conf | grep noolddir", + "sed -ne '1,/^\"/p' /tmp/logrotate.conf | grep nomail", + "grep '\"compat_test_path\" {' /tmp/logrotate.conf", + "sed -ne '/\"compat_user\" {/,/}/p' /tmp/logrotate.conf | grep 'su root root'", + "sed -ne '/\"compat_extraConfig\" {/,/}/p' /tmp/logrotate.conf | grep dateext", + "[[ $(sed -ne '/\"compat_keep\" {/,/}/p' /tmp/logrotate.conf | grep -w rotate) = \" rotate 1\" ]]", + "! sed -ne '/\"compat_keep\" {/,/}/p' /tmp/logrotate.conf | grep -w keep", + ) ''; }) From 45ef5c174113c9133250dab82d629d7ab5cdc01b Mon Sep 17 00:00:00 2001 From: Dominique Martinet Date: Wed, 2 Mar 2022 22:12:45 +0900 Subject: [PATCH 039/101] logrotate: add configuration check at build time MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Now the service no longer starts immediately, check if the config we generated makes sense as soon as possible. The check isn't perfect because logrotate --debug wants to check users required, there are two problems: - /etc/passwd and /etc/group are sandboxed and we don't have visibility of system users - the check phase runs as nixbld which cannot su to other users and logrotate fails on this Until these two problems can be addressed, users-related checks are filtered out, it's still much better than no check. The check can be disabled with services.logrotate.checkConfig if required (bird also has a preCheck param, to prepare the environment before check, but we can add it if it becomes necessary) Since this makes for very verbose builds, we only show errors: There is no way to control log level, but logrotate hardcodes 'error:' at common log level, so we can use grep, taking care to keep error codes Some manual tests: ───────┬────────────────────────────────────────── │ File: valid-config.conf ───────┼────────────────────────────────────────── 1 │ missingok ───────┴────────────────────────────────────────── logrotate --debug ok grep ok ───────┬────────────────────────────────────────── │ File: postrotate-no-end.conf ───────┼────────────────────────────────────────── 1 │ missingok 2 │ /file { 3 │ postrotate 4 │ test 5 │ } ───────┴────────────────────────────────────────── error: postrotate-no-end.conf:prerotate, postrotate or preremove without endscript ───────┬────────────────────────────────────────── │ File: missing-file.conf ───────┼────────────────────────────────────────── 1 │ "test" { daily } ───────┴────────────────────────────────────────── error: stat of test failed: No such file or directory ───────┬────────────────────────────────────────── │ File: unknown-option.conf ───────┼────────────────────────────────────────── 1 │ some syntax error ───────┴────────────────────────────────────────── logrotate --debug ok error: unknown-option.conf:1 unknown option 'some' -- ignoring line ───────┬────────────────────────────────────────── │ File: unknown-user.conf ───────┼────────────────────────────────────────── 1 │ su notauser notagroup ───────┴────────────────────────────────────────── error: unknown-user.conf:1 unknown user 'notauser' In particular note that logrotate would not error on unknown option (it just ignores the line) but this change makes the check fail. --- nixos/modules/services/logging/logrotate.nix | 60 ++++++++++++++++++-- nixos/tests/logrotate.nix | 8 +++ 2 files changed, 64 insertions(+), 4 deletions(-) diff --git a/nixos/modules/services/logging/logrotate.nix b/nixos/modules/services/logging/logrotate.nix index 6a9ed469fd38..c552d3b059c4 100644 --- a/nixos/modules/services/logging/logrotate.nix +++ b/nixos/modules/services/logging/logrotate.nix @@ -152,11 +152,45 @@ let { header = { global = true; priority = 100; }; } ] ))); - configFile = pkgs.writeText "logrotate.conf" ( - concatStringsSep "\n" ( + configFile = pkgs.writeTextFile { + name = "logrotate.conf"; + text = concatStringsSep "\n" ( map mkConf settings - ) - ); + ); + checkPhase = optionalString cfg.checkConfig '' + # logrotate --debug also checks that users specified in config + # file exist, but we only have sandboxed users here so brown these + # out. according to man page that means su, create and createolddir. + # files required to exist also won't be present, so missingok is forced. + user=$(${pkgs.coreutils}/bin/id -un) + group=$(${pkgs.coreutils}/bin/id -gn) + sed -e "s/\bsu\s.*/su $user $group/" \ + -e "s/\b\(create\s\+[0-9]*\s*\|createolddir\s\+[0-9]*\s\+\).*/\1$user $group/" \ + -e "1imissingok" -e "s/\bnomissingok\b//" \ + $out > /tmp/logrotate.conf + # Since this makes for very verbose builds only show real error. + # There is no way to control log level, but logrotate hardcodes + # 'error:' at common log level, so we can use grep, taking care + # to keep error codes + set -o pipefail + if ! ${pkgs.logrotate}/sbin/logrotate --debug /tmp/logrotate.conf 2>&1 \ + | ( ! grep "error:" ) > /tmp/logrotate-error; then + echo "Logrotate configuration check failed." + echo "The failing configuration (after adjustments to pass tests in sandbox) was:" + printf "%s\n" "-------" + cat /tmp/logrotate.conf + printf "%s\n" "-------" + echo "The error reported by logrotate was as follow:" + printf "%s\n" "-------" + cat /tmp/logrotate-error + printf "%s\n" "-------" + echo "You can disable this check with services.logrotate.checkConfig = false," + echo "but if you think it should work please report this failure along with" + echo "the config file being tested!" + false + fi + ''; + }; mailOption = if foldr (n: a: a || n ? mail) false (attrValues cfg.settings) @@ -256,6 +290,24 @@ in ''; }; + checkConfig = mkOption { + type = types.bool; + default = true; + description = '' + Whether the config should be checked at build time. + + Some options are not checkable at build time because of the build sandbox: + for example, the test does not know about existing files and system users are + not known. + These limitations mean we must adjust the file for tests (missingok is forced + and users are replaced by dummy users). + + Conversely there are still things that might make this check fail incorrectly + (e.g. a file path where we don't have access to intermediate directories): + in this case you can disable the failing check with this option. + ''; + }; + # deprecated legacy compat settings paths = mkOption { type = with types; attrsOf (submodule pathOpts); diff --git a/nixos/tests/logrotate.nix b/nixos/tests/logrotate.nix index 3087119c339f..31592f0a39c5 100644 --- a/nixos/tests/logrotate.nix +++ b/nixos/tests/logrotate.nix @@ -40,6 +40,14 @@ import ./make-test-python.nix ({ pkgs, ... }: rec { postrotate = { postrotate = "touch /dev/null"; }; + # check checkConfig works as expected: there is nothing to check here + # except that the file build passes + checkConf = { + su = "root utmp"; + createolddir = "0750 root utmp"; + create = "root utmp"; + "create " = "0750 root utmp"; + }; # multiple paths should be aggregated multipath = { files = [ "file1" "file2" ]; From b0a04e41052a7abf2c0538cd2f9c97bf9c86d911 Mon Sep 17 00:00:00 2001 From: Dominique Martinet Date: Sun, 27 Feb 2022 23:03:24 +0900 Subject: [PATCH 040/101] nginx/logrotate: run logrotate as nginx user --- nixos/modules/services/web-servers/nginx/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/nixos/modules/services/web-servers/nginx/default.nix b/nixos/modules/services/web-servers/nginx/default.nix index 1e18956c2dc4..7caaf5611cc0 100644 --- a/nixos/modules/services/web-servers/nginx/default.nix +++ b/nixos/modules/services/web-servers/nginx/default.nix @@ -992,6 +992,7 @@ in services.logrotate.settings.nginx = mapAttrs (_: mkDefault) { files = "/var/log/nginx/*.log"; frequency = "weekly"; + su = "${cfg.user} ${cfg.group}"; rotate = 26; compress = true; delaycompress = true; From 829c611b489f606c0b84fd315052681e8a03b083 Mon Sep 17 00:00:00 2001 From: Dominique Martinet Date: Sat, 5 Mar 2022 07:50:12 +0900 Subject: [PATCH 041/101] logrotate: add logrotate-checkconf.service the build-time check is not safe (e.g. doesn't protect from bad users or nomissingok paths missing), so add a new unit for configuration switch time check --- nixos/modules/services/logging/logrotate.nix | 14 +++++++++++++- nixos/tests/logrotate.nix | 20 ++++++++++++++++++++ 2 files changed, 33 insertions(+), 1 deletion(-) diff --git a/nixos/modules/services/logging/logrotate.nix b/nixos/modules/services/logging/logrotate.nix index c552d3b059c4..332a2a597edc 100644 --- a/nixos/modules/services/logging/logrotate.nix +++ b/nixos/modules/services/logging/logrotate.nix @@ -300,7 +300,10 @@ in for example, the test does not know about existing files and system users are not known. These limitations mean we must adjust the file for tests (missingok is forced - and users are replaced by dummy users). + and users are replaced by dummy users), so tests are complemented by a + logrotate-checkconf service that is enabled by default. + This extra check can be disabled by disabling it at the systemd level with the + option. Conversely there are still things that might make this check fail incorrectly (e.g. a file path where we don't have access to intermediate directories): @@ -387,5 +390,14 @@ in ExecStart = "${pkgs.logrotate}/sbin/logrotate ${mailOption} ${cfg.configFile}"; }; }; + systemd.services.logrotate-checkconf = { + description = "Logrotate configuration check"; + wantedBy = [ "multi-user.target" ]; + serviceConfig = { + Type = "oneshot"; + RemainAfterExit = true; + ExecStart = "${pkgs.logrotate}/sbin/logrotate --debug ${cfg.configFile}"; + }; + }; }; } diff --git a/nixos/tests/logrotate.nix b/nixos/tests/logrotate.nix index 31592f0a39c5..b0685f3af9ff 100644 --- a/nixos/tests/logrotate.nix +++ b/nixos/tests/logrotate.nix @@ -17,6 +17,12 @@ import ./make-test-python.nix ({ pkgs, ... }: rec { nodes = { defaultMachine = { ... }: { }; + failingMachine = { ... }: { + services.logrotate.configFile = pkgs.writeText "logrotate.conf" '' + # self-written config file + su notarealuser notagroupeither + ''; + }; machine = { config, ... }: { imports = [ importTest ]; @@ -128,5 +134,19 @@ import ./make-test-python.nix ({ pkgs, ... }: rec { "[[ $(sed -ne '/\"compat_keep\" {/,/}/p' /tmp/logrotate.conf | grep -w rotate) = \" rotate 1\" ]]", "! sed -ne '/\"compat_keep\" {/,/}/p' /tmp/logrotate.conf | grep -w keep", ) + # also check configFile option + failingMachine.succeed( + "conf=$(systemctl cat logrotate | grep -oE '/nix/store[^ ]*logrotate.conf'); cp $conf /tmp/logrotate.conf", + "grep 'self-written config' /tmp/logrotate.conf", + ) + with subtest("Check logrotate-checkconf service"): + machine.wait_for_unit("logrotate-checkconf.service") + # wait_for_unit also asserts for success, so wait for + # parent target instead and check manually. + failingMachine.wait_for_unit("multi-user.target") + info = failingMachine.get_unit_info("logrotate-checkconf.service") + if info["ActiveState"] != "failed": + raise Exception('logrotate-checkconf.service was not failed') + ''; }) From b1d0be8bc7e9f51f8df1a7433bf071717a4ea8d6 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 31 Mar 2022 23:02:53 +0000 Subject: [PATCH 042/101] p2pool: 1.8 -> 1.9 --- pkgs/applications/misc/p2pool/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/misc/p2pool/default.nix b/pkgs/applications/misc/p2pool/default.nix index f888d162fc44..cb0b53e887b2 100644 --- a/pkgs/applications/misc/p2pool/default.nix +++ b/pkgs/applications/misc/p2pool/default.nix @@ -14,13 +14,13 @@ stdenv.mkDerivation rec { pname = "p2pool"; - version = "1.8"; + version = "1.9"; src = fetchFromGitHub { owner = "SChernykh"; repo = "p2pool"; rev = "v${version}"; - sha256 = "sha256-cQd3dtih7C+pEmkvlrsYTJtQWBVVMiFbtNQUM0Ck3tg="; + sha256 = "sha256-nqJ0F99QjrpwXHRPxZ7kLCYA9VJWGH2ahcr/MBQrhyY="; fetchSubmodules = true; }; From aeb47faee2a3592b2c75e1a10c21146cfcf61a76 Mon Sep 17 00:00:00 2001 From: Adam Joseph Date: Sun, 20 Feb 2022 23:16:10 -0800 Subject: [PATCH 043/101] dante: skip configure-time getaddrinfo-too-low check on mips64 This patch allows dante to be compiled (and cross-compiled) for mips64el. Co-authored-by: John Ericson --- pkgs/servers/dante/default.nix | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/pkgs/servers/dante/default.nix b/pkgs/servers/dante/default.nix index 1ed03f0e3d5a..12ba281d811c 100644 --- a/pkgs/servers/dante/default.nix +++ b/pkgs/servers/dante/default.nix @@ -1,4 +1,4 @@ -{ lib, stdenv, fetchurl, pam, libkrb5, cyrus_sasl, miniupnpc }: +{ lib, stdenv, fetchurl, fetchpatch, pam, libkrb5, cyrus_sasl, miniupnpc, autoreconfHook }: stdenv.mkDerivation rec { pname = "dante"; @@ -9,6 +9,7 @@ stdenv.mkDerivation rec { sha256 = "0pbahkj43rx7rmv2x40mf5p3g3x9d6i2sz7pzglarf54w5ghd2j1"; }; + nativeBuildInputs = lib.optional stdenv.hostPlatform.isMips64 autoreconfHook; buildInputs = [ pam libkrb5 cyrus_sasl miniupnpc ]; configureFlags = if !stdenv.isDarwin @@ -17,6 +18,13 @@ stdenv.mkDerivation rec { dontAddDisableDepTrack = stdenv.isDarwin; + patches = lib.optional stdenv.hostPlatform.isMips64 [ + (fetchpatch { + name = "0002-osdep-m4-Remove-getaddrinfo-too-low-checks.patch"; + url = "https://raw.githubusercontent.com/buildroot/buildroot/master/package/dante/0002-osdep-m4-Remove-getaddrinfo-too-low-checks.patch"; + sha256 = "sha256-e+qF8lB5tkiA7RlJ+tX5O6KxQrQp33RSPdP1TxU961Y="; + }) ]; + meta = with lib; { description = "A circuit-level SOCKS client/server that can be used to provide convenient and secure network connectivity"; homepage = "https://www.inet.no/dante/"; From 510b655a08f000263bfa74966bd25cb2cd3f554f Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 1 Apr 2022 00:50:56 +0000 Subject: [PATCH 044/101] python310Packages.mypy-boto3-builder: 7.5.4 -> 7.5.5 --- .../development/python-modules/mypy-boto3-builder/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/mypy-boto3-builder/default.nix b/pkgs/development/python-modules/mypy-boto3-builder/default.nix index a9e4a3eed5cd..e46d8eab2bce 100644 --- a/pkgs/development/python-modules/mypy-boto3-builder/default.nix +++ b/pkgs/development/python-modules/mypy-boto3-builder/default.nix @@ -16,7 +16,7 @@ buildPythonPackage rec { pname = "mypy-boto3-builder"; - version = "7.5.4"; + version = "7.5.5"; format = "pyproject"; disabled = pythonOlder "3.10"; @@ -25,7 +25,7 @@ buildPythonPackage rec { owner = "vemel"; repo = "mypy_boto3_builder"; rev = version; - hash = "sha256-NS8lFetL/8hcvCnIHw+GDtdEKFsN81MPybEA4PGaP/Q="; + hash = "sha256-rv0c0QoXOd7aSOLhGDGfq4v0bnGBOJhGhZVNhS5hgOs="; }; nativeBuildInputs = [ From ff1c57bcfd195310c060a80bf25651ca01f648e1 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 31 Mar 2022 23:44:40 +0000 Subject: [PATCH 045/101] spectre-meltdown-checker: 0.44 -> 0.45 --- pkgs/tools/security/spectre-meltdown-checker/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/tools/security/spectre-meltdown-checker/default.nix b/pkgs/tools/security/spectre-meltdown-checker/default.nix index 49aa4a2a4ca5..cf85ed9310a1 100644 --- a/pkgs/tools/security/spectre-meltdown-checker/default.nix +++ b/pkgs/tools/security/spectre-meltdown-checker/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { pname = "spectre-meltdown-checker"; - version = "0.44"; + version = "0.45"; src = fetchFromGitHub { owner = "speed47"; repo = "spectre-meltdown-checker"; rev = "v${version}"; - sha256 = "1b47wlc52jnp2d5c7kbqnxmlm4g3cfbv25q30llv5mlmzs6d7bam"; + sha256 = "sha256-yGrsiPBux4YeiQ3BL2fnne5P55R/sQZ4FwzSkE6BqPc="; }; prePatch = '' From f1dbf7d0ada848c10258eb548c0728d5901ee66c Mon Sep 17 00:00:00 2001 From: Craig Younkins Date: Thu, 31 Mar 2022 21:09:57 -0400 Subject: [PATCH 046/101] fclones: 0.18.1 -> 0.19.0 --- pkgs/tools/misc/fclones/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/tools/misc/fclones/default.nix b/pkgs/tools/misc/fclones/default.nix index 61f7eb09d9a0..4b5c5234bf94 100644 --- a/pkgs/tools/misc/fclones/default.nix +++ b/pkgs/tools/misc/fclones/default.nix @@ -8,16 +8,16 @@ rustPlatform.buildRustPackage rec { pname = "fclones"; - version = "0.18.1"; + version = "0.19.0"; src = fetchFromGitHub { owner = "pkolaczk"; repo = pname; rev = "v${version}"; - sha256 = "0dj82dds788q0qlsrbal3n3lajmi9931svy8wk482jfqq0f8nna5"; + sha256 = "0m6l6c71f40a6wc8w7cdikwx3blwqxw55p4frrww25qgd0xdcgls"; }; - cargoSha256 = "131pbjf9s6l6g4dl6fnjh1p0ydd4nry0cvg1qrjba8qk7qwpc7jb"; + cargoSha256 = "1pl4lrr1p3c7j9fb0mb4spjzgcn9zvr67nskzgmhrbr3kyzc2ssc"; buildInputs = lib.optionals stdenv.isDarwin [ AppKit From c2080cdc046db985353dcdde261a0e0f7fc63e93 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 1 Apr 2022 01:18:54 +0000 Subject: [PATCH 047/101] python310Packages.ansible-later: 2.0.8 -> 2.0.9 --- pkgs/development/python-modules/ansible-later/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/ansible-later/default.nix b/pkgs/development/python-modules/ansible-later/default.nix index 9ed54dee25e8..43f24bfbf0a4 100644 --- a/pkgs/development/python-modules/ansible-later/default.nix +++ b/pkgs/development/python-modules/ansible-later/default.nix @@ -21,7 +21,7 @@ buildPythonPackage rec { pname = "ansible-later"; - version = "2.0.8"; + version = "2.0.9"; format = "pyproject"; disabled = pythonOlder "3.8"; @@ -30,7 +30,7 @@ buildPythonPackage rec { owner = "thegeeklab"; repo = pname; rev = "v${version}"; - hash = "sha256-oPlm9uxyN3hyf4gFv37YWEn/HOkg0QQ1Ya3tjLd53rQ="; + hash = "sha256-g7/RClQB+6HsDbe/VjjKka97LcwRTKO0OD0RlCG9lWY="; }; nativeBuildInputs = [ From 4cb2ef1c92de29328e67e2447d2155f94f92ea80 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 1 Apr 2022 01:33:36 +0000 Subject: [PATCH 048/101] python310Packages.apycula: 0.2 -> 0.3 --- pkgs/development/python-modules/apycula/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/apycula/default.nix b/pkgs/development/python-modules/apycula/default.nix index e84e3eb301b5..d8bb92e0d3bc 100644 --- a/pkgs/development/python-modules/apycula/default.nix +++ b/pkgs/development/python-modules/apycula/default.nix @@ -12,7 +12,7 @@ buildPythonPackage rec { pname = "apycula"; - version = "0.2"; + version = "0.3"; format = "setuptools"; disabled = pythonOlder "3.8"; @@ -20,7 +20,7 @@ buildPythonPackage rec { src = fetchPypi { inherit version; pname = "Apycula"; - hash = "sha256-xvr/NDAjCjhpImzNlCOcI4x5dIAefJ1TnUgoBhgdhPA="; + hash = "sha256-Ncecrn5fQW0iAgrE3P7GZTx8E1TiFqiDMhZQSPrDvdk="; }; nativeBuildInputs = [ From 3815aff67080752fc2c86f4a5a71e27f71c40272 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 1 Apr 2022 04:02:42 +0000 Subject: [PATCH 049/101] python310Packages.pynetgear: 0.9.1 -> 0.9.2 --- pkgs/development/python-modules/pynetgear/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/pynetgear/default.nix b/pkgs/development/python-modules/pynetgear/default.nix index e1d87cdcae33..2030507e07f3 100644 --- a/pkgs/development/python-modules/pynetgear/default.nix +++ b/pkgs/development/python-modules/pynetgear/default.nix @@ -7,7 +7,7 @@ buildPythonPackage rec { pname = "pynetgear"; - version = "0.9.1"; + version = "0.9.2"; format = "setuptools"; disabled = pythonOlder "3.7"; @@ -16,7 +16,7 @@ buildPythonPackage rec { owner = "MatMaul"; repo = pname; rev = version; - sha256 = "sha256-sLGr8I0LcLPrmQZ6dI+hwRAiNCrnLtr2WU04rPoG4x4="; + sha256 = "sha256-/aPyx+jNOCW6bzeYAEBP1yfIJfQwJjo1i6WaRvAz0oU="; }; propagatedBuildInputs = [ From 3a5df670ef8553575b7648ecf91d758626a48267 Mon Sep 17 00:00:00 2001 From: Vincent Laporte Date: Tue, 29 Mar 2022 10:57:10 +0200 Subject: [PATCH 050/101] =?UTF-8?q?ocaml-ng.ocamlPackages=5F4=5F14.ocaml:?= =?UTF-8?q?=204.14.0-rc2=20=E2=86=92=204.14.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkgs/development/compilers/ocaml/4.14.nix | 7 ++----- pkgs/top-level/ocaml-packages.nix | 2 +- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/pkgs/development/compilers/ocaml/4.14.nix b/pkgs/development/compilers/ocaml/4.14.nix index 558a1491ca7f..216620d67d60 100644 --- a/pkgs/development/compilers/ocaml/4.14.nix +++ b/pkgs/development/compilers/ocaml/4.14.nix @@ -1,9 +1,6 @@ import ./generic.nix { major_version = "4"; minor_version = "14"; - patch_version = "0-rc2"; - src = fetchTarball { - url = "https://caml.inria.fr/pub/distrib/ocaml-4.14/ocaml-4.14.0~rc2.tar.xz"; - sha256 = "sha256:0ch8nyfk2mzwhmlxb434cyamp7n14zxhwsq1h8033g629kw50kb0"; - }; + patch_version = "0"; + sha256 = "sha256:0axcc7c23pf4qinz4vxgkba6pwziwbp9i2ydwzar7x9zlp6diarn"; } diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix index 9b2183f63581..6e38e07ff3b6 100644 --- a/pkgs/top-level/ocaml-packages.nix +++ b/pkgs/top-level/ocaml-packages.nix @@ -1578,7 +1578,7 @@ in let inherit (pkgs) callPackage; in rec ocamlPackages_4_14 = mkOcamlPackages (callPackage ../development/compilers/ocaml/4.14.nix { }); - ocamlPackages_latest = ocamlPackages_4_13; + ocamlPackages_latest = ocamlPackages_4_14; ocamlPackages = ocamlPackages_4_13; } From 71cf6e512ccebe92d12873a149a621e8be01c76c Mon Sep 17 00:00:00 2001 From: Alex Martens Date: Thu, 31 Mar 2022 22:42:28 -0700 Subject: [PATCH 051/101] cargo-spellcheck: 0.11.1 -> 0.11.2 --- pkgs/development/tools/rust/cargo-spellcheck/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/development/tools/rust/cargo-spellcheck/default.nix b/pkgs/development/tools/rust/cargo-spellcheck/default.nix index 4d99fe1f6309..2eda19afd838 100644 --- a/pkgs/development/tools/rust/cargo-spellcheck/default.nix +++ b/pkgs/development/tools/rust/cargo-spellcheck/default.nix @@ -8,16 +8,16 @@ rustPlatform.buildRustPackage rec { pname = "cargo-spellcheck"; - version = "0.11.1"; + version = "0.11.2"; src = fetchFromGitHub { owner = "drahnr"; repo = pname; rev = "v${version}"; - sha256 = "sha256-Iafhx0bK386grGadsJc/t1lLjd/C89fCVuHrq3FMaE0="; + sha256 = "sha256-ZiRa4XYnY4fwbMenRLnvFQms66tIyGbm5saK8gN39ag="; }; - cargoSha256 = "sha256-ZYZA4H1LvsFQR6mvKAie9Tha3MWocAVpNtG7LwdtcPg="; + cargoSha256 = "sha256-gWQbhFPdBDhPZY1LHxFlWO9xG4AXfyhZp0UnZ3Y86/Y="; buildInputs = lib.optional stdenv.isDarwin Security; From 3c2a06387a0a27505b61e1037f6aa915fb57e54e Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 1 Apr 2022 06:13:01 +0000 Subject: [PATCH 052/101] python310Packages.fastcore: 1.4.0 -> 1.4.1 --- pkgs/development/python-modules/fastcore/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/fastcore/default.nix b/pkgs/development/python-modules/fastcore/default.nix index 2e43ab9a15d2..b7fc364958dd 100644 --- a/pkgs/development/python-modules/fastcore/default.nix +++ b/pkgs/development/python-modules/fastcore/default.nix @@ -8,7 +8,7 @@ buildPythonPackage rec { pname = "fastcore"; - version = "1.4.0"; + version = "1.4.1"; format = "setuptools"; disabled = pythonOlder "3.8"; @@ -17,7 +17,7 @@ buildPythonPackage rec { owner = "fastai"; repo = pname; rev = version; - sha256 = "sha256-U7tZkqfBbl5IVZlC2/JBIx7Bm5iIiXTMSm0QHmzNiys="; + sha256 = "sha256-qZsCsMwZxJsnznQ/C1SUPexkquv0tIyCkNYL5f2k0FU="; }; propagatedBuildInputs = [ From ae79ae58058bc9e9d91d864860f609649db9f229 Mon Sep 17 00:00:00 2001 From: Bernardo Meurer Date: Thu, 31 Mar 2022 23:20:51 -0700 Subject: [PATCH 053/101] pulumi: update plugins --- pkgs/tools/admin/pulumi/data.nix | 144 +++++++++++++++---------------- 1 file changed, 72 insertions(+), 72 deletions(-) diff --git a/pkgs/tools/admin/pulumi/data.nix b/pkgs/tools/admin/pulumi/data.nix index 2ac357db5b2c..194cc1618520 100644 --- a/pkgs/tools/admin/pulumi/data.nix +++ b/pkgs/tools/admin/pulumi/data.nix @@ -21,8 +21,8 @@ sha256 = "16vg56vyxqid566nzdvcnx0fm70nif31wr71mrx1n6ibk767l00i"; } { - url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v0.8.1-linux-amd64.tar.gz"; - sha256 = "1phy4499vm87hf6bzwfcmn13nkzbwl9l7fj0ih8vd5gsng2bsjqd"; + url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v1.1.0-linux-amd64.tar.gz"; + sha256 = "1sh9kcjp6b2wh0bpagp60a8hyxaq6gh1fblcbifzdf6ps7g3y58x"; } { url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v2.7.0-linux-amd64.tar.gz"; @@ -81,20 +81,20 @@ sha256 = "0bs0haa863a2qwwx140911mh2xprgyv316y98jcm8qbl03lmyzvs"; } { - url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v4.6.0-linux-amd64.tar.gz"; - sha256 = "0s1qyxdkdgy2br2kmpc0ypc6s95cryc0lbpdb9gslsl0q66gn7mk"; + url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v4.7.0-linux-amd64.tar.gz"; + sha256 = "17v460kbghvrvhxgckzg2bq556amy5hwmks4m1idkcz8akh6vlni"; } { - url = "https://api.pulumi.com/releases/plugins/pulumi-resource-google-native-v0.17.1-linux-amd64.tar.gz"; - sha256 = "10gvqkqyaxna1077rkvlzqq0mhx7zhz5k8x93bgcylv8slqcjx0k"; + url = "https://api.pulumi.com/releases/plugins/pulumi-resource-google-native-v0.18.0-linux-amd64.tar.gz"; + sha256 = "0br9faaqaksfqyngf3s9kmsjfqmhmpc09rpyqjxprxh1vmd4s31n"; } { url = "https://api.pulumi.com/releases/plugins/pulumi-resource-hcloud-v1.8.0-linux-amd64.tar.gz"; sha256 = "1gfiiwgb51ylwns3mqgnbgm2knrdzvy9r9v23yx0z03ba189d3m9"; } { - url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v3.17.0-linux-amd64.tar.gz"; - sha256 = "0xqvjqykwjgsvp379g1hjzzk64zc34xqm5da8fjhykz0l4q0cv76"; + url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v3.18.0-linux-amd64.tar.gz"; + sha256 = "0b4v07wc2xg0w1932dp14qfnvwbhr14x3ivj1vkcz2gy2gg4k2y4"; } { url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v3.7.1-linux-amd64.tar.gz"; @@ -121,12 +121,12 @@ sha256 = "0agf96ji7mzkf4k4axm1v3psm5wkml41714dz88rn0csq0b31ca9"; } { - url = "https://api.pulumi.com/releases/plugins/pulumi-resource-snowflake-v0.5.2-linux-amd64.tar.gz"; - sha256 = "0b3sj2waa3l6x4xrrsf1dq4ax3n7v5r8n0wzmk9cbgmdx97297df"; + url = "https://api.pulumi.com/releases/plugins/pulumi-resource-snowflake-v0.6.0-linux-amd64.tar.gz"; + sha256 = "10sk1hnn7sgnjgxxdjdshlgs1lf8j02y5almd3sp821gfaclfzq9"; } { - url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.15.0-linux-amd64.tar.gz"; - sha256 = "0k230wq144bs51d9w635jc572gix5jr6dhb5ai59pmzsqjiis607"; + url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.16.0-linux-amd64.tar.gz"; + sha256 = "01yaz2yh77fdcqcv94xh85b3km7q1gpjdys03gll6gz1vb0qlhis"; } { url = "https://api.pulumi.com/releases/plugins/pulumi-resource-sumologic-v0.5.0-linux-amd64.tar.gz"; @@ -141,20 +141,20 @@ sha256 = "0ayb1r9snjqgmczkvz4kjbswr0a98lmpapll4nws9q0rjj2w48y7"; } { - url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vault-v5.3.0-linux-amd64.tar.gz"; - sha256 = "0b340xsxb05c2mrckilmrh8s3bxq7z02rgrdgr02xyfrvv0r8whz"; + url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vault-v5.4.0-linux-amd64.tar.gz"; + sha256 = "0cj46m1jzfhx400qq4p40sqg0j6m2nggfpvyv4m1jxxzna11615n"; } { url = "https://api.pulumi.com/releases/plugins/pulumi-resource-venafi-v1.4.0-linux-amd64.tar.gz"; sha256 = "0hf7jrr91wpq28xsf8ajbdillblryh35k5w367d5fps7ph3fjk3f"; } { - url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vsphere-v4.1.0-linux-amd64.tar.gz"; - sha256 = "0hl5liyga4iz7j3wy3qicx43d4mijnqayrnmpa5rws29lambgrql"; + url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vsphere-v4.2.0-linux-amd64.tar.gz"; + sha256 = "1yg18l0dhljy841gi47k63wq7qxg51zds2w59hw0x3i8lgaz0m2f"; } { - url = "https://api.pulumi.com/releases/plugins/pulumi-resource-wavefront-v1.1.0-linux-amd64.tar.gz"; - sha256 = "12qdhdbighj76ab3wz965jhybxxq4f2rlwyk9m3w8w4f2aprp0cm"; + url = "https://api.pulumi.com/releases/plugins/pulumi-resource-wavefront-v1.1.1-linux-amd64.tar.gz"; + sha256 = "0vwlpczrzpgh274r300ilmm0z3vhg1fdlbx8p5j91p3cp86sj2s1"; } { url = "https://api.pulumi.com/releases/plugins/pulumi-resource-yandex-v0.13.0-linux-amd64.tar.gz"; @@ -179,8 +179,8 @@ sha256 = "14skymvy5mf0509v3b8wrmi7n390la9nr859l7afbhxk4cwvq3av"; } { - url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v0.8.1-darwin-amd64.tar.gz"; - sha256 = "149wbmpc51qcfsxsffif2ar9pzmg91h33jd3fy23hyfjbqp6yvdz"; + url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v1.1.0-darwin-amd64.tar.gz"; + sha256 = "0g68wfgrmdapf7nkiyxapqykq5svcsms5si5848x23nn4rwx0qkk"; } { url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v2.7.0-darwin-amd64.tar.gz"; @@ -239,20 +239,20 @@ sha256 = "0a8lycsgk2xawhg9yd6lkbfg7j6v6l3m0llvdzs0drb2k954wbym"; } { - url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v4.6.0-darwin-amd64.tar.gz"; - sha256 = "026sh6x8jl8krq2vv0vwbrfi4yl4pbwbfliqqhidvv71xqv7igah"; + url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v4.7.0-darwin-amd64.tar.gz"; + sha256 = "08b6p6gliay66bd7687kjc9n3n7xdgbrrcnbjbqi7a3am14mf5p6"; } { - url = "https://api.pulumi.com/releases/plugins/pulumi-resource-google-native-v0.17.1-darwin-amd64.tar.gz"; - sha256 = "1v5dxqc9rl7m3yqxlbklg0bv20l4qvhs86g5lavc1bj46jysr8nk"; + url = "https://api.pulumi.com/releases/plugins/pulumi-resource-google-native-v0.18.0-darwin-amd64.tar.gz"; + sha256 = "0wn9jpvaj3hwlm3yakgm7y87dcv1ja606hkf3vllqjmjz99113c3"; } { url = "https://api.pulumi.com/releases/plugins/pulumi-resource-hcloud-v1.8.0-darwin-amd64.tar.gz"; sha256 = "11r73jfqkc0wgdf66zp6pmgq5packlm4dkjp12a00z6l2s4f0w4h"; } { - url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v3.17.0-darwin-amd64.tar.gz"; - sha256 = "1x13w1j8vm3qvpn99npnsvx7kr5vac8vkrb31jii9difrgwis2wc"; + url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v3.18.0-darwin-amd64.tar.gz"; + sha256 = "1v0bgd7dyc19wp95grxgq65i9sx60d487yqzjqqzscxqx62d7axh"; } { url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v3.7.1-darwin-amd64.tar.gz"; @@ -279,12 +279,12 @@ sha256 = "1wmvmhxnjp32kp43fhjp8w9nrb0biki63w23l4zjxsdk7njply7c"; } { - url = "https://api.pulumi.com/releases/plugins/pulumi-resource-snowflake-v0.5.2-darwin-amd64.tar.gz"; - sha256 = "0digqqr920g2ahmbiyird7kidnk0j04bbzb9nr2p6lgmdd659ayq"; + url = "https://api.pulumi.com/releases/plugins/pulumi-resource-snowflake-v0.6.0-darwin-amd64.tar.gz"; + sha256 = "0g3l2yslnwp72w7r00h5hdj3w00dbgbgbsw31m327rd6p143iasr"; } { - url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.15.0-darwin-amd64.tar.gz"; - sha256 = "0b0ynqd7drkycaf7xxx6s9xbm3xp8k18xsrys68hr8gh2nq8s0y9"; + url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.16.0-darwin-amd64.tar.gz"; + sha256 = "1viwk26qj9civh4plqm34j5iky69sxvskmqbga03x1v5rd7567aa"; } { url = "https://api.pulumi.com/releases/plugins/pulumi-resource-sumologic-v0.5.0-darwin-amd64.tar.gz"; @@ -299,20 +299,20 @@ sha256 = "1jzirnaxy6y862khqf29i25r8qyrpac2kmacs9ny118l77xp33il"; } { - url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vault-v5.3.0-darwin-amd64.tar.gz"; - sha256 = "1dwv4aa5albn8yfyb430klc3w3fsy4pz07lmrppcbzg5mwf22mq1"; + url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vault-v5.4.0-darwin-amd64.tar.gz"; + sha256 = "1ghghaq9svy7sv2s1j8b1qjah6aj7vwwdh9wd9agm4xdiillprhf"; } { url = "https://api.pulumi.com/releases/plugins/pulumi-resource-venafi-v1.4.0-darwin-amd64.tar.gz"; sha256 = "08b3lyyf8zjkn9jaw4l0yb741i6kqhfb7cbwshrwqh6l3yh7kc2y"; } { - url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vsphere-v4.1.0-darwin-amd64.tar.gz"; - sha256 = "1wkyjxgrp3llvis3yjdnw65chscmxxcwigkr71i2crj28db8fhwx"; + url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vsphere-v4.2.0-darwin-amd64.tar.gz"; + sha256 = "06sws30nxmhkcgg6ag01b32l4vi4c6sr9rdwdc3sy27abqhsmhgn"; } { - url = "https://api.pulumi.com/releases/plugins/pulumi-resource-wavefront-v1.1.0-darwin-amd64.tar.gz"; - sha256 = "154za5bvq1bgyzn5cfz3n0la1gy27lmjafgs42mgyy511jz4m60l"; + url = "https://api.pulumi.com/releases/plugins/pulumi-resource-wavefront-v1.1.1-darwin-amd64.tar.gz"; + sha256 = "1ldksyxgwbg6fswfakgy3gdm5y50kc0bk74pxcza7w7ncirr9cvg"; } { url = "https://api.pulumi.com/releases/plugins/pulumi-resource-yandex-v0.13.0-darwin-amd64.tar.gz"; @@ -337,8 +337,8 @@ sha256 = "1g6ymjsmxp149cv93sn5843pxlih1dbw16nvv4sn3prl360c4lxa"; } { - url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v0.8.1-linux-arm64.tar.gz"; - sha256 = "0ghgm1p79smlcx5cby34pxl8apwm33n1aqs2lxkgjz9m6895djkx"; + url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v1.1.0-linux-arm64.tar.gz"; + sha256 = "0lhgp5wmlza75v1b7nkkp4y2d4bzk1658frnqblxsdcz9z12cwmi"; } { url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v2.7.0-linux-arm64.tar.gz"; @@ -397,20 +397,20 @@ sha256 = "1lrbl7x7hf1i7xx10cpxz17hihl8b6654wphz8s8g9lp0jryn6am"; } { - url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v4.6.0-linux-arm64.tar.gz"; - sha256 = "1d04bxq8vrxmsiix130lhqys5q1jbgwbdhyhn6rsskk0636hbf71"; + url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v4.7.0-linux-arm64.tar.gz"; + sha256 = "0i6qxrdijf653nj6yqhdikbj3spzzwr5rbgngkc0v7yxkphlzlnj"; } { - url = "https://api.pulumi.com/releases/plugins/pulumi-resource-google-native-v0.17.1-linux-arm64.tar.gz"; - sha256 = "0paypln2948dyj6cic3riybl2zpps6ia0pjsv3wjpklp57gfc9h4"; + url = "https://api.pulumi.com/releases/plugins/pulumi-resource-google-native-v0.18.0-linux-arm64.tar.gz"; + sha256 = "152qrcik44iz5lrfg649wmk67wcjdm4lnkwrc1gwhm34w0lrbarf"; } { url = "https://api.pulumi.com/releases/plugins/pulumi-resource-hcloud-v1.8.0-linux-arm64.tar.gz"; sha256 = "1vrz3pm14i5zdmk3yibny2sghxk8kzwb2qi77mjbiyfhbvciy97q"; } { - url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v3.17.0-linux-arm64.tar.gz"; - sha256 = "0jvm3g1d3yhghcd14rz1ca7zps8cajw0cy38s1p6lh2c5f1yaqcj"; + url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v3.18.0-linux-arm64.tar.gz"; + sha256 = "1w2j27sd5gsfz561wgr3lgcpxn9wghgvc5s4zpciiwyxpczmv8r3"; } { url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v3.7.1-linux-arm64.tar.gz"; @@ -437,12 +437,12 @@ sha256 = "1x8v39icapr8iakp9yd50md9dyvj63z7yj93cl3b07qlwr9lcvmv"; } { - url = "https://api.pulumi.com/releases/plugins/pulumi-resource-snowflake-v0.5.2-linux-arm64.tar.gz"; - sha256 = "0dbqyizvx8gxlidiqc390wjfix1hyikpan32q3hq8d4f8342vjks"; + url = "https://api.pulumi.com/releases/plugins/pulumi-resource-snowflake-v0.6.0-linux-arm64.tar.gz"; + sha256 = "1jh4qbdgcqbkznyq0ivf4wlrn1izgjqf811qncgkab890fp9v37w"; } { - url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.15.0-linux-arm64.tar.gz"; - sha256 = "0x1mjdaaaa40ks8glqq906dbq2x13z760agnfmd5hc3m9swvnczs"; + url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.16.0-linux-arm64.tar.gz"; + sha256 = "0ksya9nywimkm4jcd67ccaaxbvsxq747d21j8aywpwp3nwfl58wi"; } { url = "https://api.pulumi.com/releases/plugins/pulumi-resource-sumologic-v0.5.0-linux-arm64.tar.gz"; @@ -457,20 +457,20 @@ sha256 = "1275cikf75lnf3d4k4ld0by1r8hr6gq6mih09fsfg98b8f7n16kq"; } { - url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vault-v5.3.0-linux-arm64.tar.gz"; - sha256 = "0sqgdxkqrh0d1y53qigzs4wywmvjws0j6av2z19lyc2qwz3gn0hn"; + url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vault-v5.4.0-linux-arm64.tar.gz"; + sha256 = "09rvvps2kijjr4r9h75xijpsxw5ar2gy3ncmrvjfyqx17zch92v6"; } { url = "https://api.pulumi.com/releases/plugins/pulumi-resource-venafi-v1.4.0-linux-arm64.tar.gz"; sha256 = "1lh459lxa4gvxkbypmcm4hwcwcchkvs79ajlb9gvrm4ds68nm5xb"; } { - url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vsphere-v4.1.0-linux-arm64.tar.gz"; - sha256 = "1f7h6xl3jk9y29ffjxv9r4a748fwip17x7pazs62zwc3h10a65ac"; + url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vsphere-v4.2.0-linux-arm64.tar.gz"; + sha256 = "1wbx83fc5v4n57rjn5xn4y7iiv8z4fdx1inj9w1ibqlij5hf0xra"; } { - url = "https://api.pulumi.com/releases/plugins/pulumi-resource-wavefront-v1.1.0-linux-arm64.tar.gz"; - sha256 = "00902vymkc841lpdmgh80a1lipb5bjphiivy7d9xw9cldar35nz3"; + url = "https://api.pulumi.com/releases/plugins/pulumi-resource-wavefront-v1.1.1-linux-arm64.tar.gz"; + sha256 = "13ys3i7anpvbmikzxlj44kw8shp9x4cg6nlqijx80vwl3hwk5qpw"; } { url = "https://api.pulumi.com/releases/plugins/pulumi-resource-yandex-v0.13.0-linux-arm64.tar.gz"; @@ -495,8 +495,8 @@ sha256 = "1n061d8phk6cjvr24138vqzxs5midfadqgrpmaaknbpykcd3vym3"; } { - url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v0.8.1-darwin-arm64.tar.gz"; - sha256 = "0i8k2z1is7iw6hfgsqfwirby469f8nkczhzvxda48fhwlix6x55d"; + url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v1.1.0-darwin-arm64.tar.gz"; + sha256 = "1vldwyy7vhq9l6c51lqc30h0sal5liqza4s1yhk1pbc0wsgvcdv2"; } { url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v2.7.0-darwin-arm64.tar.gz"; @@ -555,20 +555,20 @@ sha256 = "1hx8rsf9yysvjg6df8dxzz8kqci000jxzg8wwxjfhcfb9adzjmy8"; } { - url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v4.6.0-darwin-arm64.tar.gz"; - sha256 = "0r8bvrnyspmczn38lav7hfhjgkflsiciw8slbs5k3s6z8690dxc2"; + url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v4.7.0-darwin-arm64.tar.gz"; + sha256 = "1gvzjf5mp3iy43srvx3blxfwcg20gqbqvycysnl2p8g8sg3scx5f"; } { - url = "https://api.pulumi.com/releases/plugins/pulumi-resource-google-native-v0.17.1-darwin-arm64.tar.gz"; - sha256 = "0qva7r2pdbpxjd50ijjckwsbagj46h94s12z05czgj8sfslx8jpz"; + url = "https://api.pulumi.com/releases/plugins/pulumi-resource-google-native-v0.18.0-darwin-arm64.tar.gz"; + sha256 = "04qjg2rd71375ny817h1l4174bafrhkl0d9n5qrp546dhaqmv6vr"; } { url = "https://api.pulumi.com/releases/plugins/pulumi-resource-hcloud-v1.8.0-darwin-arm64.tar.gz"; sha256 = "058f1j40ar4xh860c3qrm0qaagm69fdmbw14avvrhsmw245cyyzc"; } { - url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v3.17.0-darwin-arm64.tar.gz"; - sha256 = "1fz906l37kykbn725p81xpyvpg7ywvqav9r7rxrnc05d338c391d"; + url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v3.18.0-darwin-arm64.tar.gz"; + sha256 = "1llvcnrghhwr0qzd1zmdrc1x384lrd06dqcx1ng9l4ixhz6nmkl1"; } { url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v3.7.1-darwin-arm64.tar.gz"; @@ -595,12 +595,12 @@ sha256 = "1rbig2n5x2lzxpscnja0ya9a68z3jk0qz2zwdnzi66xy7i3zd39l"; } { - url = "https://api.pulumi.com/releases/plugins/pulumi-resource-snowflake-v0.5.2-darwin-arm64.tar.gz"; - sha256 = "1r1ln833jfi7hpyfb0cbg8vgam1wghdgr03m75w4hbds5nllw3zm"; + url = "https://api.pulumi.com/releases/plugins/pulumi-resource-snowflake-v0.6.0-darwin-arm64.tar.gz"; + sha256 = "1mlwggyx7l23z9fiy9bnlsjbsiw3i8kwrag2zjszbqj6sflskrij"; } { - url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.15.0-darwin-arm64.tar.gz"; - sha256 = "14ag3gq6w4yzbrwpy0vqqbr091fs26xvhmwd0v1adjl3sxa0lcqc"; + url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.16.0-darwin-arm64.tar.gz"; + sha256 = "0wk8vdx3w5n60dbh2fjqmfxnc24cbrfxygsa211ckb2pcmmr93lm"; } { url = "https://api.pulumi.com/releases/plugins/pulumi-resource-sumologic-v0.5.0-darwin-arm64.tar.gz"; @@ -615,20 +615,20 @@ sha256 = "08dhxd39w7wjpqjfy59vxfipjl45psd6yh53h2g025y8hh80gcrs"; } { - url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vault-v5.3.0-darwin-arm64.tar.gz"; - sha256 = "13q9r819wln46hiy2anri44wvxvjigcvfj7dpr3ya69kj17kyr4n"; + url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vault-v5.4.0-darwin-arm64.tar.gz"; + sha256 = "1jfgphwcr3z31yyf36wh147spwdk82713m03kkahva11m6h4x6gm"; } { url = "https://api.pulumi.com/releases/plugins/pulumi-resource-venafi-v1.4.0-darwin-arm64.tar.gz"; sha256 = "0pgrlz8nx1gfgwlp5sk70w14z0hrxcwkv9xkzjc694nwlwk1ipm8"; } { - url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vsphere-v4.1.0-darwin-arm64.tar.gz"; - sha256 = "1915f5d24vfrwgzvs5nkj5p05fjgqjyxpm54ym2wshl9s4fjb6sp"; + url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vsphere-v4.2.0-darwin-arm64.tar.gz"; + sha256 = "0r399sqs15knbq1h1p9qixzm3836whskpk9i91ag5h7kg5xjvnin"; } { - url = "https://api.pulumi.com/releases/plugins/pulumi-resource-wavefront-v1.1.0-darwin-arm64.tar.gz"; - sha256 = "0xzh9n69prbaf0795dzmyp4jbzmgqvg4sl2sad3l3mkbgghx4cll"; + url = "https://api.pulumi.com/releases/plugins/pulumi-resource-wavefront-v1.1.1-darwin-arm64.tar.gz"; + sha256 = "02zj0d1cc9qmmql27licsm33ygvgcmj19blxkhn8zxwr666jf6kw"; } { url = "https://api.pulumi.com/releases/plugins/pulumi-resource-yandex-v0.13.0-darwin-arm64.tar.gz"; From 34f5c38b509b969d76553fd3dc5d6e76c04a5478 Mon Sep 17 00:00:00 2001 From: Doron Behar Date: Sun, 27 Mar 2022 13:43:21 +0300 Subject: [PATCH 054/101] python3.pkgs.particle: init at 0.20.1 --- .../python-modules/particle/default.nix | 56 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 58 insertions(+) create mode 100644 pkgs/development/python-modules/particle/default.nix diff --git a/pkgs/development/python-modules/particle/default.nix b/pkgs/development/python-modules/particle/default.nix new file mode 100644 index 000000000000..d1207fe84983 --- /dev/null +++ b/pkgs/development/python-modules/particle/default.nix @@ -0,0 +1,56 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub +, fetchPypi +, setuptools-scm +, attrs +, deprecated +, hepunits +, pytestCheckHook +, tabulate +, pandas +}: + +buildPythonPackage rec { + pname = "particle"; + version = "0.20.1"; + + src = fetchPypi { + inherit pname version; + sha256 = "sha256-HoWWwoGMrkRqlYzrF2apGsxsZAHwHbHSO5TCSCelxUc="; + }; + nativeBuildInputs = [ + setuptools-scm + ]; + + propagatedBuildInputs = [ + attrs + deprecated + hepunits + ]; + + pythonImportsCheck = [ + "particle" + ]; + + preCheck = '' + # Disable benchmark tests, so we won't need pytest-benchmark and pytest-cov + # as dependencies + substituteInPlace pyproject.toml \ + --replace '"--benchmark-disable", ' "" + rm tests/particle/test_performance.py + ''; + + checkInputs = [ + pytestCheckHook + tabulate + pandas + ]; + + meta = { + description = "Package to deal with particles, the PDG particle data table, PDGIDs, etc."; + homepage = "https://github.com/scikit-hep/particle"; + license = lib.licenses.bsd3; + maintainers = with lib.maintainers; [ doronbehar ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 525d50b56b3b..57183e6c439f 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -5957,6 +5957,8 @@ in { parts = callPackage ../development/python-modules/parts { }; + particle = callPackage ../development/python-modules/particle { }; + parver = callPackage ../development/python-modules/parver { }; arpeggio = callPackage ../development/python-modules/arpeggio { }; From c2b82609818cd09043e218537489366fbfeae5d7 Mon Sep 17 00:00:00 2001 From: Artturin Date: Fri, 1 Apr 2022 09:33:37 +0300 Subject: [PATCH 055/101] zotero: add x-scheme-handler/zotero to desktop file so `zotero://select/library/items/GICAH8PU` will work --- pkgs/applications/office/zotero/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/applications/office/zotero/default.nix b/pkgs/applications/office/zotero/default.nix index 53c61f0d993c..749b6959b740 100644 --- a/pkgs/applications/office/zotero/default.nix +++ b/pkgs/applications/office/zotero/default.nix @@ -105,7 +105,7 @@ stdenv.mkDerivation rec { genericName = "Reference Management"; categories = [ "Office" "Database" ]; startupNotify = true; - mimeTypes = [ "text/plain" ]; + mimeTypes = [ "x-scheme-handler/zotero" "text/plain" ]; }; installPhase = '' From 34fd00a5b82b5e573a863c75fd5486faea497fdd Mon Sep 17 00:00:00 2001 From: Artturin Date: Fri, 1 Apr 2022 10:33:51 +0300 Subject: [PATCH 056/101] pkgs: remove dead dir --- pkgs/servers/web-apps/frab/Gemfile | 88 --- pkgs/servers/web-apps/frab/Gemfile.lock | 329 -------- pkgs/servers/web-apps/frab/gemset.nix | 998 ------------------------ 3 files changed, 1415 deletions(-) delete mode 100644 pkgs/servers/web-apps/frab/Gemfile delete mode 100644 pkgs/servers/web-apps/frab/Gemfile.lock delete mode 100644 pkgs/servers/web-apps/frab/gemset.nix diff --git a/pkgs/servers/web-apps/frab/Gemfile b/pkgs/servers/web-apps/frab/Gemfile deleted file mode 100644 index 098b8f3d7d7a..000000000000 --- a/pkgs/servers/web-apps/frab/Gemfile +++ /dev/null @@ -1,88 +0,0 @@ -source 'https://rubygems.org' - -if ENV['CUSTOM_RUBY_VERSION'] - ruby ENV['CUSTOM_RUBY_VERSION'] # i.e.: '2.3' -end - -gem 'rails', '~> 4.2' - -# Use SCSS for stylesheets -gem 'sass-rails', '~> 5.0' -# Use Uglifier as compressor for JavaScript assets -gem 'uglifier', '>= 1.3.0' -# Use CoffeeScript for .coffee assets and views -gem 'coffee-rails', '~> 4.1.0' - -gem 'mysql2', group: :mysql -gem 'pg', group: :postgresql -gem 'sqlite3', group: :sqlite3 - -# Use Puma as the app server -gem 'puma' - -# Capistrano for deployment -group :capistrano do - gem 'airbrussh' - gem 'capistrano', '~> 3.4.0', require: false - gem 'capistrano-rails', require: false - gem 'capistrano-bundler', require: false - gem 'capistrano-rvm', require: false - gem 'capistrano3-puma', require: false -end - -# Use jquery as the JavaScript library -gem 'jquery-rails' -gem 'jquery-migrate-rails' -gem 'jquery-ui-rails' - -# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder -gem 'jbuilder', '~> 2.0' - -gem 'activeresource' -gem 'acts_as_commentable' -gem 'bcrypt' -gem 'cancancan' -gem 'cocoon' -gem 'dotenv-rails' -gem 'haml' -gem 'localized_language_select', github: 'frab/localized_language_select', branch: 'master' -gem 'nokogiri' -gem 'paperclip', '~> 4.1' -gem 'paper_trail' -gem 'prawn', '< 1.0' -gem 'prawn_rails' -gem 'ransack' -gem 'ri_cal' -gem 'roust' -gem 'rqrcode' -#gem 'roust', :git => 'git@github.com:bulletproofnetworks/roust.git' -gem 'simple_form' -gem 'sucker_punch' -gem 'transitions', require: ['transitions', 'active_record/transitions'] -gem 'will_paginate' - -group :production do - gem 'exception_notification' -end - -group :development, :test do - gem 'bullet' - gem 'pry-rails' - gem 'pry-byebug' - gem 'letter_opener' - gem 'faker' -end - -group :test do - gem 'database_cleaner' - gem 'factory_girl_rails', '~> 4.0' - gem 'shoulda' -end - -group :doc do - gem 'redcarpet' # documentation - gem 'github-markdown' # documentation - gem 'yard' # documentation - # gem 'rails-erd' # graph - # gem 'ruby-graphviz', require: 'graphviz' # Optional: only required for graphing -end diff --git a/pkgs/servers/web-apps/frab/Gemfile.lock b/pkgs/servers/web-apps/frab/Gemfile.lock deleted file mode 100644 index dc18be7a33db..000000000000 --- a/pkgs/servers/web-apps/frab/Gemfile.lock +++ /dev/null @@ -1,329 +0,0 @@ -GIT - remote: git://github.com/frab/localized_language_select.git - revision: 85df6b97789de6e29c630808b630e56a1b76f80c - branch: master - specs: - localized_language_select (0.3.0) - rails (>= 4.1.0) - -GEM - remote: https://rubygems.org/ - specs: - actionmailer (4.2.7.1) - actionpack (= 4.2.7.1) - actionview (= 4.2.7.1) - activejob (= 4.2.7.1) - mail (~> 2.5, >= 2.5.4) - rails-dom-testing (~> 1.0, >= 1.0.5) - actionpack (4.2.7.1) - actionview (= 4.2.7.1) - activesupport (= 4.2.7.1) - rack (~> 1.6) - rack-test (~> 0.6.2) - rails-dom-testing (~> 1.0, >= 1.0.5) - rails-html-sanitizer (~> 1.0, >= 1.0.2) - actionview (4.2.7.1) - activesupport (= 4.2.7.1) - builder (~> 3.1) - erubis (~> 2.7.0) - rails-dom-testing (~> 1.0, >= 1.0.5) - rails-html-sanitizer (~> 1.0, >= 1.0.2) - activejob (4.2.7.1) - activesupport (= 4.2.7.1) - globalid (>= 0.3.0) - activemodel (4.2.7.1) - activesupport (= 4.2.7.1) - builder (~> 3.1) - activerecord (4.2.7.1) - activemodel (= 4.2.7.1) - activesupport (= 4.2.7.1) - arel (~> 6.0) - activeresource (4.1.0) - activemodel (~> 4.0) - activesupport (~> 4.0) - rails-observers (~> 0.1.2) - activesupport (4.2.7.1) - i18n (~> 0.7) - json (~> 1.7, >= 1.7.7) - minitest (~> 5.1) - thread_safe (~> 0.3, >= 0.3.4) - tzinfo (~> 1.1) - acts_as_commentable (4.0.2) - addressable (2.4.0) - airbrussh (1.1.1) - sshkit (>= 1.6.1, != 1.7.0) - arel (6.0.3) - bcrypt (3.1.11) - builder (3.2.2) - bullet (5.4.0) - activesupport (>= 3.0.0) - uniform_notifier (~> 1.10.0) - byebug (9.0.5) - cancancan (1.15.0) - capistrano (3.4.1) - i18n - rake (>= 10.0.0) - sshkit (~> 1.3) - capistrano-bundler (1.1.4) - capistrano (~> 3.1) - sshkit (~> 1.2) - capistrano-rails (1.1.8) - capistrano (~> 3.1) - capistrano-bundler (~> 1.1) - capistrano-rvm (0.1.2) - capistrano (~> 3.0) - sshkit (~> 1.2) - capistrano3-puma (1.2.1) - capistrano (~> 3.0) - puma (>= 2.6) - chunky_png (1.3.7) - climate_control (0.0.3) - activesupport (>= 3.0) - cocaine (0.5.8) - climate_control (>= 0.0.3, < 1.0) - cocoon (1.2.9) - coderay (1.1.1) - coffee-rails (4.1.1) - coffee-script (>= 2.2.0) - railties (>= 4.0.0, < 5.1.x) - coffee-script (2.4.1) - coffee-script-source - execjs - coffee-script-source (1.10.0) - concurrent-ruby (1.0.2) - database_cleaner (1.5.3) - dotenv (2.1.1) - dotenv-rails (2.1.1) - dotenv (= 2.1.1) - railties (>= 4.0, < 5.1) - erubis (2.7.0) - exception_notification (4.2.1) - actionmailer (>= 4.0, < 6) - activesupport (>= 4.0, < 6) - execjs (2.7.0) - factory_girl (4.7.0) - activesupport (>= 3.0.0) - factory_girl_rails (4.7.0) - factory_girl (~> 4.7.0) - railties (>= 3.0.0) - faker (1.6.6) - i18n (~> 0.5) - github-markdown (0.6.9) - globalid (0.3.7) - activesupport (>= 4.1.0) - haml (4.0.7) - tilt - httparty (0.14.0) - multi_xml (>= 0.5.2) - i18n (0.7.0) - jbuilder (2.6.0) - activesupport (>= 3.0.0, < 5.1) - multi_json (~> 1.2) - jquery-migrate-rails (1.2.1) - jquery-rails (4.2.1) - rails-dom-testing (>= 1, < 3) - railties (>= 4.2.0) - thor (>= 0.14, < 2.0) - jquery-ui-rails (5.0.5) - railties (>= 3.2.16) - json (1.8.3) - launchy (2.4.3) - addressable (~> 2.3) - letter_opener (1.4.1) - launchy (~> 2.2) - loofah (2.0.3) - nokogiri (>= 1.5.9) - mail (2.6.4) - mime-types (>= 1.16, < 4) - method_source (0.8.2) - mime-types (3.1) - mime-types-data (~> 3.2015) - mime-types-data (3.2016.0521) - mimemagic (0.3.0) - mini_portile2 (2.1.0) - minitest (5.9.1) - multi_json (1.12.1) - multi_xml (0.5.5) - mysql2 (0.4.4) - net-scp (1.2.1) - net-ssh (>= 2.6.5) - net-ssh (3.2.0) - nokogiri (1.6.7.2) - mini_portile2 (~> 2.0.0.rc2) - pkg-config (~> 1.1.7) - paper_trail (5.2.2) - activerecord (>= 3.0, < 6.0) - request_store (~> 1.1) - paperclip (4.3.7) - activemodel (>= 3.2.0) - activesupport (>= 3.2.0) - cocaine (~> 0.5.5) - mime-types - mimemagic (= 0.3.0) - pdf-core (0.1.6) - pg (0.19.0) - pkg-config (1.1.7) - polyamorous (1.3.1) - activerecord (>= 3.0) - prawn (0.15.0) - pdf-core (~> 0.1.3) - ttfunk (~> 1.1.0) - prawn_rails (0.0.11) - prawn (>= 0.11.1) - railties (>= 3.0.0) - pry (0.10.4) - coderay (~> 1.1.0) - method_source (~> 0.8.1) - slop (~> 3.4) - pry-byebug (3.4.0) - byebug (~> 9.0) - pry (~> 0.10) - pry-rails (0.3.4) - pry (>= 0.9.10) - puma (3.9.1) - rack (1.6.11) - rack-test (0.6.3) - rack (>= 1.0) - rails (4.2.7.1) - actionmailer (= 4.2.7.1) - actionpack (= 4.2.7.1) - actionview (= 4.2.7.1) - activejob (= 4.2.7.1) - activemodel (= 4.2.7.1) - activerecord (= 4.2.7.1) - activesupport (= 4.2.7.1) - bundler (>= 1.3.0, < 2.0) - railties (= 4.2.7.1) - sprockets-rails - rails-deprecated_sanitizer (1.0.3) - activesupport (>= 4.2.0.alpha) - rails-dom-testing (1.0.7) - activesupport (>= 4.2.0.beta, < 5.0) - nokogiri (~> 1.6.0) - rails-deprecated_sanitizer (>= 1.0.1) - rails-html-sanitizer (1.0.3) - loofah (~> 2.0) - rails-observers (0.1.2) - activemodel (~> 4.0) - railties (4.2.7.1) - actionpack (= 4.2.7.1) - activesupport (= 4.2.7.1) - rake (>= 0.8.7) - thor (>= 0.18.1, < 2.0) - rake (11.3.0) - ransack (1.8.2) - actionpack (>= 3.0) - activerecord (>= 3.0) - activesupport (>= 3.0) - i18n - polyamorous (~> 1.3) - redcarpet (3.3.4) - request_store (1.3.1) - ri_cal (0.8.8) - roust (1.8.9) - activesupport (>= 4.0.10) - httparty (>= 0.13.1) - mail (>= 2.5.4) - rqrcode (0.10.1) - chunky_png (~> 1.0) - sass (3.4.22) - sass-rails (5.0.6) - railties (>= 4.0.0, < 6) - sass (~> 3.1) - sprockets (>= 2.8, < 4.0) - sprockets-rails (>= 2.0, < 4.0) - tilt (>= 1.1, < 3) - shoulda (3.5.0) - shoulda-context (~> 1.0, >= 1.0.1) - shoulda-matchers (>= 1.4.1, < 3.0) - shoulda-context (1.2.1) - shoulda-matchers (2.8.0) - activesupport (>= 3.0.0) - simple_form (3.3.1) - actionpack (> 4, < 5.1) - activemodel (> 4, < 5.1) - slop (3.6.0) - sprockets (3.7.0) - concurrent-ruby (~> 1.0) - rack (> 1, < 3) - sprockets-rails (3.2.0) - actionpack (>= 4.0) - activesupport (>= 4.0) - sprockets (>= 3.0.0) - sqlite3 (1.3.11) - sshkit (1.11.3) - net-scp (>= 1.1.2) - net-ssh (>= 2.8.0) - sucker_punch (2.0.2) - concurrent-ruby (~> 1.0.0) - thor (0.19.1) - thread_safe (0.3.5) - tilt (2.0.5) - transitions (1.2.0) - ttfunk (1.1.1) - tzinfo (1.2.2) - thread_safe (~> 0.1) - uglifier (3.0.2) - execjs (>= 0.3.0, < 3) - uniform_notifier (1.10.0) - will_paginate (3.1.3) - yard (0.9.5) - -PLATFORMS - ruby - -DEPENDENCIES - activeresource - acts_as_commentable - airbrussh - bcrypt - bullet - cancancan - capistrano (~> 3.4.0) - capistrano-bundler - capistrano-rails - capistrano-rvm - capistrano3-puma - cocoon - coffee-rails (~> 4.1.0) - database_cleaner - dotenv-rails - exception_notification - factory_girl_rails (~> 4.0) - faker - github-markdown - haml - jbuilder (~> 2.0) - jquery-migrate-rails - jquery-rails - jquery-ui-rails - letter_opener - localized_language_select! - mysql2 - nokogiri - paper_trail - paperclip (~> 4.1) - pg - prawn (< 1.0) - prawn_rails - pry-byebug - pry-rails - puma - rails (~> 4.2) - ransack - redcarpet - ri_cal - roust - rqrcode - sass-rails (~> 5.0) - shoulda - simple_form - sqlite3 - sucker_punch - transitions - uglifier (>= 1.3.0) - will_paginate - yard - -BUNDLED WITH - 1.13.1 diff --git a/pkgs/servers/web-apps/frab/gemset.nix b/pkgs/servers/web-apps/frab/gemset.nix deleted file mode 100644 index cf39de25ea6a..000000000000 --- a/pkgs/servers/web-apps/frab/gemset.nix +++ /dev/null @@ -1,998 +0,0 @@ -{ - actionmailer = { - dependencies = ["actionpack" "actionview" "activejob" "mail" "rails-dom-testing"]; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0lw1pss1mrjm7x7qcg9pvxv55rz3d994yf3mwmlfg1y12fxq00n3"; - type = "gem"; - }; - version = "4.2.7.1"; - }; - actionpack = { - dependencies = ["actionview" "activesupport" "rack" "rack-test" "rails-dom-testing" "rails-html-sanitizer"]; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1ray5bvlmkimjax011zsw0mz9llfkqrfm7q1avjlp4i0kpcz8zlh"; - type = "gem"; - }; - version = "4.2.7.1"; - }; - actionview = { - dependencies = ["activesupport" "builder" "erubis" "rails-dom-testing" "rails-html-sanitizer"]; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "11m2x5nlbqrw79fh6h7m444lrka7wwy32b0dvgqg7ilbzih43k0c"; - type = "gem"; - }; - version = "4.2.7.1"; - }; - activejob = { - dependencies = ["activesupport" "globalid"]; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0ish5wd8nvmj7f6x1i22aw5ycizy5n1z1c7f3kyxmqwhw7lb0gaz"; - type = "gem"; - }; - version = "4.2.7.1"; - }; - activemodel = { - dependencies = ["activesupport" "builder"]; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0acz0mbmahsc9mn41275fpfnrqwig5k09m3xhz3455kv90fn79v5"; - type = "gem"; - }; - version = "4.2.7.1"; - }; - activerecord = { - dependencies = ["activemodel" "activesupport" "arel"]; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1lk8l6i9p7qfl0pg261v5yph0w0sc0vysrdzc6bm5i5rxgi68flj"; - type = "gem"; - }; - version = "4.2.7.1"; - }; - activeresource = { - dependencies = ["activemodel" "activesupport" "rails-observers"]; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0nr5is20cx18s7vg8bdrdc996s2abl3h7fsi1q6mqsrzw7nrv2fa"; - type = "gem"; - }; - version = "4.1.0"; - }; - activesupport = { - dependencies = ["i18n" "json" "minitest" "thread_safe" "tzinfo"]; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1gds12k7nxrcc09b727a458ndidy1nfcllj9x22jcaj7pppvq6r4"; - type = "gem"; - }; - version = "4.2.7.1"; - }; - acts_as_commentable = { - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1p4bwyqmm4ybcscn292aixschdzvns2dpl8a7w4zm0rqy2619cc9"; - type = "gem"; - }; - version = "4.0.2"; - }; - addressable = { - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0mpn7sbjl477h56gmxsjqb89r5s3w7vx5af994ssgc3iamvgzgvs"; - type = "gem"; - }; - version = "2.4.0"; - }; - airbrussh = { - dependencies = ["sshkit"]; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0pv22d2kjdbsg9q45jca3f5gsylr2r1wfpn58g58xj4s4q4r95nx"; - type = "gem"; - }; - version = "1.1.1"; - }; - arel = { - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1a270mlajhrmpqbhxcqjqypnvgrq4pgixpv3w9gwp1wrrapnwrzk"; - type = "gem"; - }; - version = "6.0.3"; - }; - bcrypt = { - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1d254sdhdj6mzak3fb5x3jam8b94pvl1srladvs53j05a89j5z50"; - type = "gem"; - }; - version = "3.1.11"; - }; - builder = { - source = { - remotes = ["https://rubygems.org"]; - sha256 = "14fii7ab8qszrvsvhz6z2z3i4dw0h41a62fjr2h1j8m41vbrmyv2"; - type = "gem"; - }; - version = "3.2.2"; - }; - bullet = { - dependencies = ["activesupport" "uniform_notifier"]; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "06pba7bdjnazbl0yhhvlina08nkawnm76zihkaam4k7fm0yrq1k0"; - type = "gem"; - }; - version = "5.4.0"; - }; - byebug = { - source = { - remotes = ["https://rubygems.org"]; - sha256 = "18sdnscwwm76i2kbcib2ckwfwpq8b1dbfr97gdcx3j1x547yqv9x"; - type = "gem"; - }; - version = "9.0.5"; - }; - cancancan = { - source = { - remotes = ["https://rubygems.org"]; - sha256 = "05kb459laaw339n7mas37v4k83nwz228bfpaghgybza347341x85"; - type = "gem"; - }; - version = "1.15.0"; - }; - capistrano = { - dependencies = ["i18n" "rake" "sshkit"]; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0f73w6gpml0ickmwky1cn6d8392q075zy10a323f3vmyvxyhr0jb"; - type = "gem"; - }; - version = "3.4.1"; - }; - capistrano-bundler = { - dependencies = ["capistrano" "sshkit"]; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1f4iikm7pn0li2lj6p53wl0d6y7svn0h76z9c6c582mmwxa9c72p"; - type = "gem"; - }; - version = "1.1.4"; - }; - capistrano-rails = { - dependencies = ["capistrano" "capistrano-bundler"]; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "03lzihrq72rwcqq7jiqak79wy0xbdnymn5gxj0bfgfjlg5kpgssw"; - type = "gem"; - }; - version = "1.1.8"; - }; - capistrano-rvm = { - dependencies = ["capistrano" "sshkit"]; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "15sy8zcal041yy5kb7fcdqnxvndgdhg3w1kvb5dk7hfjk3ypznsa"; - type = "gem"; - }; - version = "0.1.2"; - }; - capistrano3-puma = { - dependencies = ["capistrano" "puma"]; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0ynz1arnr07kcl0vsaa1znhp2ywhhs4fwndnkw8sasr9bydksln8"; - type = "gem"; - }; - version = "1.2.1"; - }; - chunky_png = { - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1p1zy4gyfp7rapr2yxcljkw6qh0chkwf356i387b3fg85cwdj4xh"; - type = "gem"; - }; - version = "1.3.7"; - }; - climate_control = { - dependencies = ["activesupport"]; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0krknwk6b8lwv1j9kjbxib6kf5zh4pxkf3y2vcyycx5d6nci1s55"; - type = "gem"; - }; - version = "0.0.3"; - }; - cocaine = { - dependencies = ["climate_control"]; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "01kk5xd7lspbkdvn6nyj0y51zhvia3z6r4nalbdcqw5fbsywwi7d"; - type = "gem"; - }; - version = "0.5.8"; - }; - cocoon = { - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1gzznkrs6qy31v85cvdqyn5wd3vwlciwibf9clmd6gi4dns21pmv"; - type = "gem"; - }; - version = "1.2.9"; - }; - coderay = { - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1x6z923iwr1hi04k6kz5a6llrixflz8h5sskl9mhaaxy9jx2x93r"; - type = "gem"; - }; - version = "1.1.1"; - }; - coffee-rails = { - dependencies = ["coffee-script" "railties"]; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1mv1kaw3z4ry6cm51w8pfrbby40gqwxanrqyqr0nvs8j1bscc1gw"; - type = "gem"; - }; - version = "4.1.1"; - }; - coffee-script = { - dependencies = ["coffee-script-source" "execjs"]; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0rc7scyk7mnpfxqv5yy4y5q1hx3i7q3ahplcp4bq2g5r24g2izl2"; - type = "gem"; - }; - version = "2.4.1"; - }; - coffee-script-source = { - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1k4fg39rrkl3bpgchfj94fbl9s4ysaz16w8dkqncf2vyf79l3qz0"; - type = "gem"; - }; - version = "1.10.0"; - }; - concurrent-ruby = { - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1kb4sav7yli12pjr8lscv8z49g52a5xzpfg3z9h8clzw6z74qjsw"; - type = "gem"; - }; - version = "1.0.2"; - }; - database_cleaner = { - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0fx6zmqznklmkbjl6f713jyl11d4g9q220rcl86m2jp82r8kfwjj"; - type = "gem"; - }; - version = "1.5.3"; - }; - dotenv = { - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1p6zz0xzb15vq8jphpw2fh6m4dianw7s76ci8vj9x3zxayrn4lfm"; - type = "gem"; - }; - version = "2.1.1"; - }; - dotenv-rails = { - dependencies = ["dotenv" "railties"]; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "17s6c0yqaz01xd5wywjscbvv0pa3grak2lhwby91j84qm6h95vxz"; - type = "gem"; - }; - version = "2.1.1"; - }; - erubis = { - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1fj827xqjs91yqsydf0zmfyw9p4l2jz5yikg3mppz6d7fi8kyrb3"; - type = "gem"; - }; - version = "2.7.0"; - }; - exception_notification = { - dependencies = ["actionmailer" "activesupport"]; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1vclsr0rjfy1khvqyj67lgpa0v14nb542vvjkyaswn367nnmijhw"; - type = "gem"; - }; - version = "4.2.1"; - }; - execjs = { - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1yz55sf2nd3l666ms6xr18sm2aggcvmb8qr3v53lr4rir32y1yp1"; - type = "gem"; - }; - version = "2.7.0"; - }; - factory_girl = { - dependencies = ["activesupport"]; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1xzl4z9z390fsnyxp10c9if2n46zan3n6zwwpfnwc33crv4s410i"; - type = "gem"; - }; - version = "4.7.0"; - }; - factory_girl_rails = { - dependencies = ["factory_girl" "railties"]; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0hzpirb33xdqaz44i1mbcfv0icjrghhgaz747llcfsflljd4pa4r"; - type = "gem"; - }; - version = "4.7.0"; - }; - faker = { - dependencies = ["i18n"]; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "09amnh5d0m3q2gpb0vr9spbfa8l2nc0kl3s79y6sx7a16hrl4vvc"; - type = "gem"; - }; - version = "1.6.6"; - }; - github-markdown = { - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0nax4fyyhz9xmi7q6mmc6d1h8hc0cxda9d7q5z0pba88mj00s9fj"; - type = "gem"; - }; - version = "0.6.9"; - }; - globalid = { - dependencies = ["activesupport"]; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "11plkgyl3w9k4y2scc1igvpgwyz4fnmsr63h2q4j8wkb48nlnhak"; - type = "gem"; - }; - version = "0.3.7"; - }; - haml = { - dependencies = ["tilt"]; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0mrzjgkygvfii66bbylj2j93na8i89998yi01fin3whwqbvx0m1p"; - type = "gem"; - }; - version = "4.0.7"; - }; - httparty = { - dependencies = ["multi_xml"]; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1msa213hclsv14ijh49i1wggf9avhnj2j4xr58m9jx6fixlbggw6"; - type = "gem"; - }; - version = "0.14.0"; - }; - i18n = { - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1i5z1ykl8zhszsxcs8mzl8d0dxgs3ylz8qlzrw74jb0gplkx6758"; - type = "gem"; - }; - version = "0.7.0"; - }; - jbuilder = { - dependencies = ["activesupport" "multi_json"]; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1jbh1296imd0arc9nl1m71yfd7kg505p8srr1ijpsqv4hhbz5qci"; - type = "gem"; - }; - version = "2.6.0"; - }; - jquery-migrate-rails = { - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0pcfs339wki4ax4imb4qi2xb04bbj6j4xvn8x3yn6yf95frrvch6"; - type = "gem"; - }; - version = "1.2.1"; - }; - jquery-rails = { - dependencies = ["rails-dom-testing" "railties" "thor"]; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0prqyixv7j2qlq67qdr3miwcyvi27b9a82j51gbpb6vcl0ig2rik"; - type = "gem"; - }; - version = "4.2.1"; - }; - jquery-ui-rails = { - dependencies = ["railties"]; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1gfygrv4bjpjd2c377lw7xzk1b77rxjyy3w6wl4bq1gkqvyrkx77"; - type = "gem"; - }; - version = "5.0.5"; - }; - json = { - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1nsby6ry8l9xg3yw4adlhk2pnc7i0h0rznvcss4vk3v74qg0k8lc"; - type = "gem"; - }; - version = "1.8.3"; - }; - launchy = { - dependencies = ["addressable"]; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "190lfbiy1vwxhbgn4nl4dcbzxvm049jwc158r2x7kq3g5khjrxa2"; - type = "gem"; - }; - version = "2.4.3"; - }; - letter_opener = { - dependencies = ["launchy"]; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1pcrdbxvp2x5six8fqn8gf09bn9rd3jga76ds205yph5m8fsda21"; - type = "gem"; - }; - version = "1.4.1"; - }; - localized_language_select = { - dependencies = ["rails"]; - source = { - fetchSubmodules = false; - rev = "85df6b97789de6e29c630808b630e56a1b76f80c"; - sha256 = "1b2pd8120nrl3s3idpgdzhrjkn9g5sxnkx4j671fjiyhadlr0q5j"; - type = "git"; - url = "git://github.com/frab/localized_language_select.git"; - }; - version = "0.3.0"; - }; - loofah = { - dependencies = ["nokogiri"]; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "109ps521p0sr3kgc460d58b4pr1z4mqggan2jbsf0aajy9s6xis8"; - type = "gem"; - }; - version = "2.0.3"; - }; - mail = { - dependencies = ["mime-types"]; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0c9vqfy0na9b5096i5i4qvrvhwamjnmajhgqi3kdsdfl8l6agmkp"; - type = "gem"; - }; - version = "2.6.4"; - }; - method_source = { - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1g5i4w0dmlhzd18dijlqw5gk27bv6dj2kziqzrzb7mpgxgsd1sf2"; - type = "gem"; - }; - version = "0.8.2"; - }; - mime-types = { - dependencies = ["mime-types-data"]; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0087z9kbnlqhci7fxh9f6il63hj1k02icq2rs0c6cppmqchr753m"; - type = "gem"; - }; - version = "3.1"; - }; - mime-types-data = { - source = { - remotes = ["https://rubygems.org"]; - sha256 = "04my3746hwa4yvbx1ranhfaqkgf6vavi1kyijjnw8w3dy37vqhkm"; - type = "gem"; - }; - version = "3.2016.0521"; - }; - mimemagic = { - source = { - remotes = ["https://rubygems.org"]; - sha256 = "101lq4bnjs7ywdcicpw3vbz9amg5gbb4va1626fybd2hawgdx8d9"; - type = "gem"; - }; - version = "0.3.0"; - }; - mini_portile2 = { - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1y25adxb1hgg1wb2rn20g3vl07qziq6fz364jc5694611zz863hb"; - type = "gem"; - }; - version = "2.1.0"; - }; - minitest = { - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0300naf4ilpd9sf0k8si9h9sclkizaschn8bpnri5fqmvm9ybdbq"; - type = "gem"; - }; - version = "5.9.1"; - }; - multi_json = { - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1wpc23ls6v2xbk3l1qncsbz16npvmw8p0b38l8czdzri18mp51xk"; - type = "gem"; - }; - version = "1.12.1"; - }; - multi_xml = { - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0i8r7dsz4z79z3j023l8swan7qpbgxbwwz11g38y2vjqjk16v4q8"; - type = "gem"; - }; - version = "0.5.5"; - }; - mysql2 = { - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1v537b7865f4z610rljy8prwmq1yhk3zalp9mcbxn7aqb3g75pra"; - type = "gem"; - }; - version = "0.4.4"; - }; - net-scp = { - dependencies = ["net-ssh"]; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0b0jqrcsp4bbi4n4mzyf70cp2ysyp6x07j8k8cqgxnvb4i3a134j"; - type = "gem"; - }; - version = "1.2.1"; - }; - net-ssh = { - source = { - remotes = ["https://rubygems.org"]; - sha256 = "11djaq0h3bzzy61dca3l84rrs91702hha4vgg387gviipgz7f3yy"; - type = "gem"; - }; - version = "3.2.0"; - }; - nokogiri = { - dependencies = ["mini_portile2" "pkg-config"]; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "11sbmpy60ynak6s3794q32lc99hs448msjy8rkp84ay7mq7zqspv"; - type = "gem"; - }; - version = "1.6.7.2"; - }; - paper_trail = { - dependencies = ["activerecord" "request_store"]; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1w3y2h1w0kml2fmzx4sdcrhnbj273npwrs0cx91xdgy2qfjj6hmr"; - type = "gem"; - }; - version = "5.2.2"; - }; - paperclip = { - dependencies = ["activemodel" "activesupport" "cocaine" "mime-types" "mimemagic"]; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0r8krh5xg790845wzlc2r7l0jwskw4c4wk9xh4bpprqykwaghg0r"; - type = "gem"; - }; - version = "4.3.7"; - }; - pdf-core = { - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1x121sznmhfmjnk0rzpp6djxgi28afpc8avnhn3kzlmpc87r7fyi"; - type = "gem"; - }; - version = "0.1.6"; - }; - pg = { - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0bplv27d0f8vwdj51967498pl1cjxq19hhcj4hdjr4h3s72l2z4j"; - type = "gem"; - }; - version = "0.19.0"; - }; - pkg-config = { - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0lljiqnm0b4z6iy87lzapwrdfa6ps63x2z5zbs038iig8dqx2g0z"; - type = "gem"; - }; - version = "1.1.7"; - }; - polyamorous = { - dependencies = ["activerecord"]; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1501y9l81b2lwb93fkycq8dr1bi6qcdhia3qv4fddnmrdihkl3pv"; - type = "gem"; - }; - version = "1.3.1"; - }; - prawn = { - dependencies = ["pdf-core" "ttfunk"]; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "04pxzfmmy8a6bv3zvh1mmyy5zi4bj994kq1v6qnlq2xlhvg4cxjc"; - type = "gem"; - }; - version = "0.15.0"; - }; - prawn_rails = { - dependencies = ["prawn" "railties"]; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "19m1pv2rsl3rf9rni78l8137dy2sq1r2443biv19wi9nis2pvgdg"; - type = "gem"; - }; - version = "0.0.11"; - }; - pry = { - dependencies = ["coderay" "method_source" "slop"]; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "05xbzyin63aj2prrv8fbq2d5df2mid93m81hz5bvf2v4hnzs42ar"; - type = "gem"; - }; - version = "0.10.4"; - }; - pry-byebug = { - dependencies = ["byebug" "pry"]; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0pvc94kgxd33p6iz41ghyadq8zfbjhkk07nvz2mbh3yhrc8w7gmw"; - type = "gem"; - }; - version = "3.4.0"; - }; - pry-rails = { - dependencies = ["pry"]; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0a2iinvabis2xmv0z7z7jmh7bbkkngxj2qixfdg5m6qj9x8k1kx6"; - type = "gem"; - }; - version = "0.3.4"; - }; - puma = { - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1k13n500r7v480rcbxm7k09hip0zi7p8zvy3vajj8g9hb7gdcwnp"; - type = "gem"; - }; - version = "3.9.1"; - }; - rack = { - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1g9926ln2lw12lfxm4ylq1h6nl0rafl10za3xvjzc87qvnqic87f"; - type = "gem"; - }; - version = "1.6.11"; - }; - rack-test = { - dependencies = ["rack"]; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0h6x5jq24makgv2fq5qqgjlrk74dxfy62jif9blk43llw8ib2q7z"; - type = "gem"; - }; - version = "0.6.3"; - }; - rails = { - dependencies = ["actionmailer" "actionpack" "actionview" "activejob" "activemodel" "activerecord" "activesupport" "railties" "sprockets-rails"]; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1avd16ir7qx23dcnz1b3cafq1lja6rq0w222bs658p9n33rbw54l"; - type = "gem"; - }; - version = "4.2.7.1"; - }; - rails-deprecated_sanitizer = { - dependencies = ["activesupport"]; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0qxymchzdxww8bjsxj05kbf86hsmrjx40r41ksj0xsixr2gmhbbj"; - type = "gem"; - }; - version = "1.0.3"; - }; - rails-dom-testing = { - dependencies = ["activesupport" "nokogiri" "rails-deprecated_sanitizer"]; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1v8jl6803mbqpxh4hn0szj081q1a3ap0nb8ni0qswi7z4la844v8"; - type = "gem"; - }; - version = "1.0.7"; - }; - rails-html-sanitizer = { - dependencies = ["loofah"]; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "138fd86kv073zqfx0xifm646w6bgw2lr8snk16lknrrfrss8xnm7"; - type = "gem"; - }; - version = "1.0.3"; - }; - rails-observers = { - dependencies = ["activemodel"]; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1lsw19jzmvipvrfy2z04hi7r29dvkfc43h43vs67x6lsj9rxwwcy"; - type = "gem"; - }; - version = "0.1.2"; - }; - railties = { - dependencies = ["actionpack" "activesupport" "rake" "thor"]; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "04rz7cn64zzvq7lnhc9zqmaqmqkq84q25v0ym9lcw75j1cj1mrq4"; - type = "gem"; - }; - version = "4.2.7.1"; - }; - rake = { - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0cnjmbcyhm4hacpjn337mg1pnaw6hj09f74clwgh6znx8wam9xla"; - type = "gem"; - }; - version = "11.3.0"; - }; - ransack = { - dependencies = ["actionpack" "activerecord" "activesupport" "i18n" "polyamorous"]; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0cya3wygwjhj8rckckkl387bmva4nyfvqcl0qhp9hk3zv8y6wxjc"; - type = "gem"; - }; - version = "1.8.2"; - }; - redcarpet = { - source = { - remotes = ["https://rubygems.org"]; - sha256 = "04v85p0bnpf1c7w4n0yr03s35yimxh0idgdrrybl9y13zbw5kgvg"; - type = "gem"; - }; - version = "3.3.4"; - }; - request_store = { - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1va9x0b3ww4chcfqlmi8b14db39di1mwa7qrjbh7ma0lhndvs2zv"; - type = "gem"; - }; - version = "1.3.1"; - }; - ri_cal = { - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1flga63anfpfpdwz6lpm3icpdqmvjq757hihfaw63rlkwq4pf390"; - type = "gem"; - }; - version = "0.8.8"; - }; - roust = { - dependencies = ["activesupport" "httparty" "mail"]; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1zdnwxxh34psv0iybcdnk9w4dpgpr07j3w1fvigkpccgz5vs82qk"; - type = "gem"; - }; - version = "1.8.9"; - }; - rqrcode = { - dependencies = ["chunky_png"]; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0h1pnnydgs032psakvg3l779w3ghbn08ajhhhw19hpmnfhrs8k0a"; - type = "gem"; - }; - version = "0.10.1"; - }; - sass = { - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0dkj6v26fkg1g0majqswwmhxva7cd6p3psrhdlx93qal72dssywy"; - type = "gem"; - }; - version = "3.4.22"; - }; - sass-rails = { - dependencies = ["railties" "sass" "sprockets" "sprockets-rails" "tilt"]; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0iji20hb8crncz14piss1b29bfb6l89sz3ai5fny3iw39vnxkdcb"; - type = "gem"; - }; - version = "5.0.6"; - }; - shoulda = { - dependencies = ["shoulda-context" "shoulda-matchers"]; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0csmf15a7mcinfq54lfa4arp0f4b2jmwva55m0p94hdf3pxnjymy"; - type = "gem"; - }; - version = "3.5.0"; - }; - shoulda-context = { - source = { - remotes = ["https://rubygems.org"]; - sha256 = "06wv2ika5zrbxn0m3qxwk0zkbspxids3zmlq3xxays5qmvl1qb55"; - type = "gem"; - }; - version = "1.2.1"; - }; - shoulda-matchers = { - dependencies = ["activesupport"]; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0d3ryqcsk1n9y35bx5wxnqbgw4m8b3c79isazdjnnbg8crdp72d0"; - type = "gem"; - }; - version = "2.8.0"; - }; - simple_form = { - dependencies = ["actionpack" "activemodel"]; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0ii3rkkbj5cc10f5rdiny18ncdh36kijr25cah0ybbr7kigh3v3b"; - type = "gem"; - }; - version = "3.3.1"; - }; - slop = { - source = { - remotes = ["https://rubygems.org"]; - sha256 = "00w8g3j7k7kl8ri2cf1m58ckxk8rn350gp4chfscmgv6pq1spk3n"; - type = "gem"; - }; - version = "3.6.0"; - }; - sprockets = { - dependencies = ["concurrent-ruby" "rack"]; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0jzsfiladswnzbrwqfiaj1xip68y58rwx0lpmj907vvq47k87gj1"; - type = "gem"; - }; - version = "3.7.0"; - }; - sprockets-rails = { - dependencies = ["actionpack" "activesupport" "sprockets"]; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1zr9vk2vn44wcn4265hhnnnsciwlmqzqc6bnx78if1xcssxj6x44"; - type = "gem"; - }; - version = "3.2.0"; - }; - sqlite3 = { - source = { - remotes = ["https://rubygems.org"]; - sha256 = "19r06wglnm6479ffj9dl0fa4p5j2wi6dj7k6k3d0rbx7036cv3ny"; - type = "gem"; - }; - version = "1.3.11"; - }; - sshkit = { - dependencies = ["net-scp" "net-ssh"]; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0wpqvr2dyxwp3shwh0221i1ahyg8vd2hyilmjvdi026l00gk2j4l"; - type = "gem"; - }; - version = "1.11.3"; - }; - sucker_punch = { - dependencies = ["concurrent-ruby"]; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0l8b53mlzl568kdl4la8kcjjcnawmbl0q6hq9c3kkyippa5c0x55"; - type = "gem"; - }; - version = "2.0.2"; - }; - thor = { - source = { - remotes = ["https://rubygems.org"]; - sha256 = "08p5gx18yrbnwc6xc0mxvsfaxzgy2y9i78xq7ds0qmdm67q39y4z"; - type = "gem"; - }; - version = "0.19.1"; - }; - thread_safe = { - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1hq46wqsyylx5afkp6jmcihdpv4ynzzq9ygb6z2pb1cbz5js0gcr"; - type = "gem"; - }; - version = "0.3.5"; - }; - tilt = { - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0lgk8bfx24959yq1cn55php3321wddw947mgj07bxfnwyipy9hqf"; - type = "gem"; - }; - version = "2.0.5"; - }; - transitions = { - source = { - remotes = ["https://rubygems.org"]; - sha256 = "11byymi45s4pxbhj195277r16dyhxkqc2jwf7snbhan23izzay2c"; - type = "gem"; - }; - version = "1.2.0"; - }; - ttfunk = { - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1jvgqhp0i6v9d7davwdn20skgi508yd0xcf1h4p9f5dlslmpnkhj"; - type = "gem"; - }; - version = "1.1.1"; - }; - tzinfo = { - dependencies = ["thread_safe"]; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1c01p3kg6xvy1cgjnzdfq45fggbwish8krd0h864jvbpybyx7cgx"; - type = "gem"; - }; - version = "1.2.2"; - }; - uglifier = { - dependencies = ["execjs"]; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0f30s1631k03x4wm7xyc79g92pppzvyysa773zsaq2kcry1pmifc"; - type = "gem"; - }; - version = "3.0.2"; - }; - uniform_notifier = { - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1jha0l7x602g5rvah960xl9r0f3q25gslj39i0x1vai8i5z6zr1l"; - type = "gem"; - }; - version = "1.10.0"; - }; - will_paginate = { - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1xlls78hkkmk33q1rb84rgg2xr39g06a1z1239nq59c825g83k01"; - type = "gem"; - }; - version = "3.1.3"; - }; - yard = { - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1gjl0sh7h0a9s67pllagw8192kscljg4y8nddfrqhji4g21yvcas"; - type = "gem"; - }; - version = "0.9.5"; - }; -} From 58b6768280c56df995bcddfbf776126c951a3778 Mon Sep 17 00:00:00 2001 From: Florian Brandes Date: Tue, 29 Mar 2022 17:50:14 +0200 Subject: [PATCH 057/101] pinegrow: bugfix for missing gsettings Signed-off-by: Florian Brandes --- pkgs/applications/editors/pinegrow/default.nix | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/pkgs/applications/editors/pinegrow/default.nix b/pkgs/applications/editors/pinegrow/default.nix index 1f069024eb9e..dfcf8e4f787c 100644 --- a/pkgs/applications/editors/pinegrow/default.nix +++ b/pkgs/applications/editors/pinegrow/default.nix @@ -8,6 +8,7 @@ , autoPatchelfHook , gsettings-desktop-schemas , gtk3 +, wrapGAppsHook , makeWrapper }: @@ -24,6 +25,7 @@ stdenv.mkDerivation rec { unzip autoPatchelfHook makeWrapper + wrapGAppsHook ]; buildInputs = [ @@ -34,7 +36,8 @@ stdenv.mkDerivation rec { gtk3 ]; - wrapProgramFlags = [ + dontWrapGApps = true; + makeWrapperArgs = [ "--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ gcc-unwrapped.lib gtk3 udev ]}" "--prefix PATH : ${lib.makeBinPath [ stdenv.cc ]}" ]; @@ -51,7 +54,7 @@ stdenv.mkDerivation rec { # we can't unzip it in $out/lib, because nw.js will start with # an empty screen. Therefore it will be unzipped in a non-typical # folder and symlinked. - unzip $src -d $out/opt/pinegrow + unzip -q $src -d $out/opt/pinegrow substituteInPlace $out/opt/pinegrow/Pinegrow.desktop \ --replace 'Exec=sh -c "$(dirname %k)/PinegrowLibrary"' 'Exec=sh -c "$out/bin/Pinegrow"' mv $out/opt/pinegrow/Pinegrow.desktop $out/share/applications/Pinegrow.desktop @@ -60,9 +63,11 @@ stdenv.mkDerivation rec { runHook postInstall ''; + # GSETTINGS_SCHEMAS_PATH is not set in installPhase preFixup = '' - export XDG_DATA_DIRS=${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}:${gtk3}/share/gsettings-schemas/${gtk3.name}:$XDG_DATA_DIRS - wrapProgram "$out/opt/pinegrow/PinegrowLibrary" ''${wrapProgramFlags[@]} + wrapProgram $out/bin/Pinegrow \ + ''${makeWrapperArgs[@]} \ + ''${gappsWrapperArgs[@]} ''; meta = with lib; { From 9a2a80df28ddbb7e887ad054582a130ab0a9c634 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 1 Apr 2022 08:10:31 +0000 Subject: [PATCH 058/101] python310Packages.glean-parser: 5.1.0 -> 5.1.1 --- pkgs/development/python-modules/glean-parser/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/glean-parser/default.nix b/pkgs/development/python-modules/glean-parser/default.nix index 953e3faa67bb..afcdd3d66b97 100644 --- a/pkgs/development/python-modules/glean-parser/default.nix +++ b/pkgs/development/python-modules/glean-parser/default.nix @@ -15,7 +15,7 @@ buildPythonPackage rec { pname = "glean-parser"; - version = "5.1.0"; + version = "5.1.1"; format = "setuptools"; disabled = pythonOlder "3.6"; @@ -23,7 +23,7 @@ buildPythonPackage rec { src = fetchPypi { pname = "glean_parser"; inherit version; - hash = "sha256-8oMbaGsW5Lkw9OluNsXXe2IBNbjeoIb9vDjVOt+uHR0="; + hash = "sha256-zUiF0buHBe0BaaeIRJcRoT/g+NhWv6XTuhCZ6WPrris="; }; nativeBuildInputs = [ From ec61fa185de397fe6c5ba4ccb07b4cb6e08bc80e Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 1 Apr 2022 09:19:01 +0000 Subject: [PATCH 059/101] python310Packages.hahomematic: 1.0.3 -> 1.0.4 --- pkgs/development/python-modules/hahomematic/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/hahomematic/default.nix b/pkgs/development/python-modules/hahomematic/default.nix index 7d1a3d8425fe..b70c80819754 100644 --- a/pkgs/development/python-modules/hahomematic/default.nix +++ b/pkgs/development/python-modules/hahomematic/default.nix @@ -14,7 +14,7 @@ buildPythonPackage rec { pname = "hahomematic"; - version = "1.0.3"; + version = "1.0.4"; format = "setuptools"; disabled = pythonOlder "3.9"; @@ -23,7 +23,7 @@ buildPythonPackage rec { owner = "danielperna84"; repo = pname; rev = version; - sha256 = "sha256-WteSLhO/Ei+467tXT7Y1S6bYNNFUILbP5Pm4ZhBYaeg="; + sha256 = "sha256-YpsZKhuK3IzUZFNmBToBOuUacaDgbMC/N7pZDjuSzbE="; }; propagatedBuildInputs = [ From da1544fbf745fc154d3b94fe2e98b710044225f9 Mon Sep 17 00:00:00 2001 From: B4rc1 <0b4rc1@mailbox.org> Date: Fri, 1 Apr 2022 10:03:26 +0000 Subject: [PATCH 060/101] mailspring: 1.9.2 -> 1.10.2 --- .../networking/mailreaders/mailspring/default.nix | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/networking/mailreaders/mailspring/default.nix b/pkgs/applications/networking/mailreaders/mailspring/default.nix index d2e5beb17180..b37274d1e1bb 100644 --- a/pkgs/applications/networking/mailreaders/mailspring/default.nix +++ b/pkgs/applications/networking/mailreaders/mailspring/default.nix @@ -15,15 +15,17 @@ , openssl , udev , xorg +, mesa +, libdrm }: stdenv.mkDerivation rec { pname = "mailspring"; - version = "1.9.2"; + version = "1.10.2"; src = fetchurl { url = "https://github.com/Foundry376/Mailspring/releases/download/${version}/mailspring-${version}-amd64.deb"; - sha256 = "sha256-o7w2XHd5FnPYt9j8IIGy6OgKtdeNb/qZ+EiXGEn0NUQ="; + sha256 = "sha256-6KHhkmHWhj/AgECYqNuJ0iSPEYyuBDac/3fW6J0fgTg="; }; nativeBuildInputs = [ @@ -44,6 +46,9 @@ stdenv.mkDerivation rec { xorg.libXdamage xorg.libXScrnSaver xorg.libXtst + xorg.libxshmfence + mesa + libdrm ]; runtimeDependencies = [ From 18262c79e1c247f813652afc2393bdc38bd4649e Mon Sep 17 00:00:00 2001 From: adisbladis Date: Fri, 1 Apr 2022 22:01:41 +1200 Subject: [PATCH 061/101] poetry2nix: 1.26.0 -> 1.27.1 --- .../tools/poetry2nix/poetry2nix/default.nix | 42 +- .../poetry2nix/poetry2nix/hooks/default.nix | 7 + .../poetry2nix/poetry2nix/hooks/fixup-hook.sh | 14 +- .../poetry2nix/hooks/pip-build-hook.sh | 8 - .../tools/poetry2nix/poetry2nix/lib.nix | 10 +- .../poetry2nix/poetry2nix/mk-poetry-dep.nix | 22 +- .../tools/poetry2nix/poetry2nix/overrides.nix | 2271 ---------------- .../poetry2nix/overrides/build-systems.json | 1557 +++++++++++ .../poetry2nix/overrides/default.nix | 2294 +++++++++++++++++ .../tools/poetry2nix/poetry2nix/pep425.nix | 34 +- .../tools/poetry2nix/poetry2nix/pep508.nix | 4 +- .../poetry2nix/pkgs/poetry/default.nix | 3 - .../poetry2nix/pkgs/poetry/poetry.lock | 159 +- .../poetry2nix/pkgs/poetry/pyproject.toml | 7 +- .../poetry2nix/pkgs/poetry/src.json | 10 +- .../poetry2nix/poetry2nix/pkgs/poetry/update | 11 - pkgs/development/tools/poetry2nix/update | 5 +- 17 files changed, 4034 insertions(+), 2424 deletions(-) delete mode 100644 pkgs/development/tools/poetry2nix/poetry2nix/overrides.nix create mode 100644 pkgs/development/tools/poetry2nix/poetry2nix/overrides/build-systems.json create mode 100644 pkgs/development/tools/poetry2nix/poetry2nix/overrides/default.nix delete mode 100755 pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/update diff --git a/pkgs/development/tools/poetry2nix/poetry2nix/default.nix b/pkgs/development/tools/poetry2nix/poetry2nix/default.nix index c9b70c83bfee..6489a23c37d8 100644 --- a/pkgs/development/tools/poetry2nix/poetry2nix/default.nix +++ b/pkgs/development/tools/poetry2nix/poetry2nix/default.nix @@ -5,17 +5,10 @@ }: let # Poetry2nix version - version = "1.26.0"; + version = "1.27.1"; inherit (poetryLib) isCompatible readTOML moduleName; - /* The default list of poetry2nix override overlays */ - mkEvalPep508 = import ./pep508.nix { - inherit lib poetryLib; - stdenv = pkgs.stdenv; - }; - getFunctorFn = fn: if builtins.typeOf fn == "set" then fn.__functor else fn; - # Map SPDX identifiers to license names spdxLicenses = lib.listToAttrs (lib.filter (pair: pair.name != null) (builtins.map (v: { name = if lib.hasAttr "spdxId" v then v.spdxId else null; value = v; }) (lib.attrValues lib.licenses))); # Get license by id falling back to input string @@ -121,10 +114,16 @@ lib.makeScope pkgs.newScope (self: { , preferWheels ? false # Example: { my-app = ./src; } , editablePackageSources ? { } - , __isBootstrap ? false # Hack: Always add Poetry as a build input unless bootstrapping , pyProject ? readTOML pyproject }@attrs: let + /* The default list of poetry2nix override overlays */ + mkEvalPep508 = import ./pep508.nix { + inherit lib poetryLib; + inherit (python) stdenv; + }; + getFunctorFn = fn: if builtins.typeOf fn == "set" then fn.__functor else fn; + poetryPkg = poetry.override { inherit python; }; scripts = pyProject.tool.poetry.scripts or { }; @@ -180,7 +179,6 @@ lib.makeScope pkgs.newScope (self: { value = self.mkPoetryDep ( pkgMeta // { inherit pwd preferWheels; - inherit __isBootstrap; source = pkgMeta.source or null; files = lockFiles.${name}; pythonPackages = self; @@ -207,12 +205,12 @@ lib.makeScope pkgs.newScope (self: { in { mkPoetryDep = self.callPackage ./mk-poetry-dep.nix { - inherit pkgs lib python poetryLib evalPep508; + inherit lib python poetryLib evalPep508; }; - # Use poetry-core from the poetry build (pep517/518 build-system) - poetry-core = if __isBootstrap then null else poetryPkg.passthru.python.pkgs.poetry-core; - poetry = if __isBootstrap then null else poetryPkg; + # # Use poetry-core from the poetry build (pep517/518 build-system) + poetry-core = poetryPkg.passthru.python.pkgs.poetry-core; + poetry = poetryPkg; __toPluginAble = toPluginAble self; @@ -222,10 +220,21 @@ lib.makeScope pkgs.newScope (self: { setuptools-scm = super.setuptools_scm; } ) + + # Fix infinite recursion in a lot of packages because of checkInputs + (self: super: lib.mapAttrs + (name: value: ( + if lib.isDerivation value && lib.hasAttr "overridePythonAttrs" value + then value.overridePythonAttrs (_: { doCheck = false; }) + else value + )) + super) + # Null out any filtered packages, we don't want python.pkgs from nixpkgs (self: super: builtins.listToAttrs (builtins.map (x: { name = moduleName x.name; value = null; }) incompatible)) # Create poetry2nix layer baseOverlay + ] ++ # User provided overrides (if builtins.typeOf overrides == "list" then overrides else [ overrides ]) ); @@ -318,12 +327,11 @@ lib.makeScope pkgs.newScope (self: { , python ? pkgs.python3 , pwd ? projectDir , preferWheels ? false - , __isBootstrap ? false # Hack: Always add Poetry as a build input unless bootstrapping , ... }@attrs: let poetryPython = self.mkPoetryPackages { - inherit pyproject poetrylock overrides python pwd preferWheels __isBootstrap; + inherit pyproject poetrylock overrides python pwd preferWheels; }; py = poetryPython.python; @@ -429,7 +437,7 @@ lib.makeScope pkgs.newScope (self: { Can be overriden by calling defaultPoetryOverrides.overrideOverlay which takes an overlay function */ - defaultPoetryOverrides = self.mkDefaultPoetryOverrides (import ./overrides.nix { inherit pkgs lib; }); + defaultPoetryOverrides = self.mkDefaultPoetryOverrides (import ./overrides { inherit pkgs lib; }); /* Convenience functions for specifying overlays with or without the poerty2nix default overrides diff --git a/pkgs/development/tools/poetry2nix/poetry2nix/hooks/default.nix b/pkgs/development/tools/poetry2nix/poetry2nix/hooks/default.nix index 0abbe2459927..5d562017b8fb 100644 --- a/pkgs/development/tools/poetry2nix/poetry2nix/hooks/default.nix +++ b/pkgs/development/tools/poetry2nix/poetry2nix/hooks/default.nix @@ -67,6 +67,13 @@ in { name = "fixup-hook.sh"; deps = [ ]; + substitutions = { + inherit pythonSitePackages; + filenames = builtins.concatStringsSep " " [ + "pyproject.toml" + "README.md" + ]; + }; } ./fixup-hook.sh ) { }; diff --git a/pkgs/development/tools/poetry2nix/poetry2nix/hooks/fixup-hook.sh b/pkgs/development/tools/poetry2nix/poetry2nix/hooks/fixup-hook.sh index fc539e4298c6..8cbe2b178c7a 100644 --- a/pkgs/development/tools/poetry2nix/poetry2nix/hooks/fixup-hook.sh +++ b/pkgs/development/tools/poetry2nix/poetry2nix/hooks/fixup-hook.sh @@ -1,8 +1,20 @@ poetry2nix-fixup-hook() { + # Including tests in the output is a common mistake if [ -z "${dontFixupTests-}" ]; then - rm -rf $out/lib/python3.7/site-packages/tests + rm -rf $out/@pythonSitePackages@/tests fi + + # Including files in site-packages is a common packaging mistake + # + # While we cannot remove all normal files dumped in site-packages + # we can clean up some common mistakes + if [ -z "${dontFixupSitePackages-}" ]; then + for f in @filenames@; do + rm -f $out/@pythonSitePackages@/$f + done + fi + } postFixupHooks+=(poetry2nix-fixup-hook) diff --git a/pkgs/development/tools/poetry2nix/poetry2nix/hooks/pip-build-hook.sh b/pkgs/development/tools/poetry2nix/poetry2nix/hooks/pip-build-hook.sh index a3ebe311d591..31e06909b3b6 100644 --- a/pkgs/development/tools/poetry2nix/poetry2nix/hooks/pip-build-hook.sh +++ b/pkgs/development/tools/poetry2nix/poetry2nix/hooks/pip-build-hook.sh @@ -5,14 +5,6 @@ pipBuildPhase() { echo "Executing pipBuildPhase" runHook preBuild - # Prefer using setup.py to avoid build-system dependencies if we have a setup.py - if [ -z "${dontPreferSetupPy-}" ]; then - if test -e setup.py && test -e pyproject.toml; then - echo "Removing pyproject.toml..." - rm -f pyproject.toml - fi - fi - mkdir -p dist echo "Creating a wheel..." @pythonInterpreter@ -m pip wheel --verbose --no-index --no-deps --no-clean --no-build-isolation --wheel-dir dist . diff --git a/pkgs/development/tools/poetry2nix/poetry2nix/lib.nix b/pkgs/development/tools/poetry2nix/poetry2nix/lib.nix index 8e9dee865a54..a905d302d2a9 100644 --- a/pkgs/development/tools/poetry2nix/poetry2nix/lib.nix +++ b/pkgs/development/tools/poetry2nix/poetry2nix/lib.nix @@ -79,6 +79,7 @@ let if lib.strings.hasInfix "manylinux1" f then { pkg = [ ml.manylinux1 ]; str = "1"; } else if lib.strings.hasInfix "manylinux2010" f then { pkg = [ ml.manylinux2010 ]; str = "2010"; } else if lib.strings.hasInfix "manylinux2014" f then { pkg = [ ml.manylinux2014 ]; str = "2014"; } + else if lib.strings.hasInfix "manylinux_" f then { pkg = [ ml.manylinux2014 ]; str = "pep600"; } else { pkg = [ ]; str = null; }; # Predict URL from the PyPI index. @@ -110,8 +111,8 @@ let (pkgs.stdenvNoCC.mkDerivation { name = file; nativeBuildInputs = [ - pkgs.curl - pkgs.jq + pkgs.buildPackages.curl + pkgs.buildPackages.jq ]; isWheel = lib.strings.hasSuffix "whl" file; system = "builtin"; @@ -219,7 +220,8 @@ let }; # Machine tag for our target platform (if available) - targetMachine = manyLinuxTargetMachines.${stdenv.targetPlatform.parsed.cpu.name} or null; + getTargetMachine = stdenv: manyLinuxTargetMachines.${stdenv.targetPlatform.parsed.cpu.name} or null; + in { inherit @@ -233,6 +235,6 @@ in cleanPythonSources moduleName getPythonVersion - targetMachine + getTargetMachine ; } diff --git a/pkgs/development/tools/poetry2nix/poetry2nix/mk-poetry-dep.nix b/pkgs/development/tools/poetry2nix/poetry2nix/mk-poetry-dep.nix index 5735e320c03f..a5c19f873616 100644 --- a/pkgs/development/tools/poetry2nix/poetry2nix/mk-poetry-dep.nix +++ b/pkgs/development/tools/poetry2nix/poetry2nix/mk-poetry-dep.nix @@ -1,5 +1,4 @@ { autoPatchelfHook -, pkgs , lib , python , buildPythonPackage @@ -17,7 +16,6 @@ , sourceSpec , supportedExtensions ? lib.importJSON ./extensions.json , preferWheels ? false -, __isBootstrap ? false # Hack: Always add Poetry as a build input unless bootstrapping , ... }: @@ -27,12 +25,11 @@ pythonPackages.callPackage , ... }@args: let - inherit (pkgs) stdenv; + inherit (python) stdenv; inherit (poetryLib) isCompatible getManyLinuxDeps fetchFromLegacy fetchFromPypi moduleName; inherit (import ./pep425.nix { - inherit lib poetryLib python; - inherit (pkgs) stdenv; + inherit lib poetryLib python stdenv; }) selectWheel ; fileCandidates = @@ -97,6 +94,7 @@ pythonPackages.callPackage "setuptools-scm" "toml" # Toml is an extra for setuptools-scm "tomli" # tomli is an extra for later versions of setuptools-scm + "flit-core" "packaging" "six" "pyparsing" @@ -129,7 +127,6 @@ pythonPackages.callPackage ++ lib.optional (stdenv.buildPlatform != stdenv.hostPlatform) pythonPackages.setuptools ++ lib.optional (!isSource) (getManyLinuxDeps fileInfo.name).pkg ++ lib.optional isDirectory buildSystemPkgs - ++ lib.optional (!__isBootstrap) pythonPackages.poetry ); propagatedBuildInputs = @@ -169,11 +166,18 @@ pythonPackages.callPackage src = if isGit then ( - builtins.fetchGit { + builtins.fetchGit ({ inherit (source) url; rev = source.resolved_reference or source.reference; - ref = sourceSpec.branch or sourceSpec.rev or (if sourceSpec?tag then "refs/tags/${sourceSpec.tag}" else "HEAD"); - } + ref = sourceSpec.branch or (if sourceSpec ? tag then "refs/tags/${sourceSpec.tag}" else "HEAD"); + } // ( + let + nixVersion = builtins.substring 0 3 builtins.nixVersion; + in + lib.optionalAttrs ((sourceSpec ? rev) && (lib.versionAtLeast nixVersion "2.4")) { + allRefs = true; + } + )) ) else if isUrl then builtins.fetchTarball diff --git a/pkgs/development/tools/poetry2nix/poetry2nix/overrides.nix b/pkgs/development/tools/poetry2nix/poetry2nix/overrides.nix deleted file mode 100644 index 6e35069a817c..000000000000 --- a/pkgs/development/tools/poetry2nix/poetry2nix/overrides.nix +++ /dev/null @@ -1,2271 +0,0 @@ -{ pkgs ? import { } -, lib ? pkgs.lib -, stdenv ? pkgs.stdenv -}: - -self: super: - -{ - automat = super.automat.overridePythonAttrs ( - old: rec { - propagatedBuildInputs = (old.propagatedBuildInputs or [ ]) ++ [ self.m2r ]; - } - ); - - aiohttp-swagger3 = super.aiohttp-swagger3.overridePythonAttrs ( - old: { - nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ self.pytest-runner ]; - } - ); - - ansible = super.ansible.overridePythonAttrs ( - old: { - # Inputs copied from nixpkgs as ansible doesn't specify it's dependencies - # in a correct manner. - propagatedBuildInputs = (old.propagatedBuildInputs or [ ]) ++ [ - self.pycrypto - self.paramiko - self.jinja2 - self.pyyaml - self.httplib2 - self.six - self.netaddr - self.dnspython - self.jmespath - self.dopy - self.ncclient - ]; - } // lib.optionalAttrs (lib.versionOlder old.version "5.0") { - prePatch = pkgs.python.pkgs.ansible.prePatch or ""; - postInstall = pkgs.python.pkgs.ansible.postInstall or ""; - } - ); - - ansible-lint = super.ansible-lint.overridePythonAttrs ( - old: { - buildInputs = (old.buildInputs or [ ]) ++ [ self.setuptools-scm-git-archive ]; - preBuild = '' - export HOME=$(mktemp -d) - ''; - } - ); - - anyio = super.anyio.overridePythonAttrs (old: { - postPatch = '' - substituteInPlace setup.py --replace 'setup()' 'setup(version="${old.version}")' - ''; - }); - - argcomplete = super.argcomplete.overridePythonAttrs ( - old: rec { - buildInputs = (old.buildInputs or [ ]) ++ [ self.importlib-metadata ]; - } - ); - - arpeggio = super.arpeggio.overridePythonAttrs ( - old: { - nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ self.pytest-runner ]; - } - ); - - astroid = super.astroid.overridePythonAttrs ( - old: rec { - buildInputs = (old.buildInputs or [ ]) ++ [ self.pytest-runner ]; - } - ); - - av = super.av.overridePythonAttrs ( - old: { - nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ - pkgs.pkg-config - ]; - buildInputs = (old.buildInputs or [ ]) ++ [ pkgs.ffmpeg_4 ]; - } - ); - - argon2-cffi = super.argon2-cffi.overridePythonAttrs ( - old: { - buildInputs = (old.buildInputs or [ ]) ++ - lib.optional (lib.versionAtLeast old.version "21.2.0") [ self.flit-core ]; - } - ); - - backports-entry-points-selectable = super.backports-entry-points-selectable.overridePythonAttrs (old: { - postPatch = '' - substituteInPlace setup.py --replace \ - 'setuptools.setup()' \ - 'setuptools.setup(version="${old.version}")' - ''; - }); - - backports-functools-lru-cache = super.backports-functools-lru-cache.overridePythonAttrs (old: { - postPatch = '' - substituteInPlace setup.py --replace \ - 'setuptools.setup()' \ - 'setuptools.setup(version="${old.version}")' - ''; - }); - - bcrypt = super.bcrypt.overridePythonAttrs ( - old: { - buildInputs = (old.buildInputs or [ ]) ++ [ pkgs.libffi ]; - } - ); - - bjoern = super.bjoern.overridePythonAttrs ( - old: { - buildInputs = (old.nativeBuildInputs or [ ]) ++ [ pkgs.libev ]; - } - ); - - black = super.black.overridePythonAttrs ( - old: { - dontPreferSetupPy = true; - } - ); - - borgbackup = super.borgbackup.overridePythonAttrs ( - old: { - BORG_OPENSSL_PREFIX = pkgs.openssl.dev; - nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ pkgs.pkg-config ]; - buildInputs = (old.buildInputs or [ ]) ++ [ pkgs.openssl pkgs.acl ]; - } - ); - - cairocffi = super.cairocffi.overridePythonAttrs ( - old: { - inherit (pkgs.python3.pkgs.cairocffi) patches; - buildInputs = (old.buildInputs or [ ]) ++ [ self.pytest-runner ]; - } - ); - - cairosvg = super.cairosvg.overridePythonAttrs ( - old: { - buildInputs = (old.buildInputs or [ ]) ++ [ self.pytest-runner ]; - } - ); - - celery = super.celery.overridePythonAttrs (old: { - propagatedBuildInputs = (old.propagatedBuildInputs or [ ]) ++ [ self.setuptools ]; - }); - - cssselect2 = super.cssselect2.overridePythonAttrs ( - old: { - buildInputs = (old.buildInputs or [ ]) ++ [ self.pytest-runner ]; - } - ); - - cffi = - # cffi is bundled with pypy - if self.python.implementation == "pypy" then null else - ( - super.cffi.overridePythonAttrs ( - old: { - buildInputs = (old.buildInputs or [ ]) ++ [ pkgs.libffi ]; - } - ) - ); - - cftime = super.cftime.overridePythonAttrs ( - old: { - buildInputs = (old.buildInputs or [ ]) ++ [ - self.cython - ]; - } - ); - - cheroot = super.cheroot.overridePythonAttrs ( - old: { - dontPreferSetupPy = true; - } - ); - - cloudflare = super.cloudflare.overridePythonAttrs ( - old: { - postPatch = '' - rm -rf examples/* - ''; - } - ); - - colour = super.colour.overridePythonAttrs ( - old: { - buildInputs = (old.buildInputs or [ ]) ++ [ self.d2to1 ]; - } - ); - - configparser = super.configparser.overridePythonAttrs ( - old: { - buildInputs = (old.buildInputs or [ ]) ++ [ - self.toml - ]; - - postPatch = '' - substituteInPlace setup.py --replace 'setuptools.setup()' 'setuptools.setup(version="${old.version}")' - ''; - } - ); - - cryptography = super.cryptography.overridePythonAttrs ( - old: { - nativeBuildInputs = (old.nativeBuildInputs or [ ]) - ++ lib.optional (lib.versionAtLeast old.version "3.4") [ self.setuptools-rust ] - ++ lib.optional (stdenv.buildPlatform != stdenv.hostPlatform) self.python.pythonForBuild.pkgs.cffi - ++ lib.optional (lib.versionAtLeast old.version "3.5") - (with pkgs.rustPlatform; [ cargoSetupHook rust.cargo rust.rustc ]); - buildInputs = (old.buildInputs or [ ]) ++ [ pkgs.openssl ]; - } // lib.optionalAttrs (lib.versionAtLeast old.version "3.4" && lib.versionOlder old.version "3.5") { - CRYPTOGRAPHY_DONT_BUILD_RUST = "1"; - } // lib.optionalAttrs (lib.versionAtLeast old.version "35") rec { - cargoDeps = - let - getCargoHash = version: - if lib.versionOlder version "36.0.0" then "sha256-tQoQfo+TAoqAea86YFxyj/LNQCiViu5ij/3wj7ZnYLI=" - else if lib.versionOlder version "36.0.1" then "sha256-Y6TuW7AryVgSvZ6G8WNoDIvi+0tvx8ZlEYF5qB0jfNk=" - # This hash could no longer be valid for cryptography versions - # different from 36.0.1 - else "sha256-kozYXkqt1Wpqyo9GYCwN08J+zV92ZWFJY/f+rulxmeQ="; - in - pkgs.rustPlatform.fetchCargoTarball { - src = old.src; - sourceRoot = "${old.pname}-${old.version}/${cargoRoot}"; - name = "${old.pname}-${old.version}"; - sha256 = getCargoHash old.version; - }; - cargoRoot = "src/rust"; - } - ); - - cwcwidth = super.cwcwidth.overridePythonAttrs (old: { - nativeBuildInputs = (old.nativeBuildInputs or [ ]) - ++ [ self.cython ]; - }); - - cyclonedx-python-lib = super.cyclonedx-python-lib.overridePythonAttrs (old: { - propagatedBuildInputs = (old.propagatedBuildInputs or [ ]) ++ [ self.setuptools ]; - postPatch = '' - substituteInPlace setup.py --replace 'setuptools>=50.3.2,<51.0.0' 'setuptools' - ''; - }); - - daphne = super.daphne.overridePythonAttrs (old: { - postPatch = '' - substituteInPlace setup.py --replace 'setup_requires=["pytest-runner"],' "" - ''; - }); - - datadog-lambda = super.datadog-lambda.overridePythonAttrs (old: { - postPatch = '' - substituteInPlace setup.py --replace "setuptools==" "setuptools>=" - ''; - buildInputs = (old.buildInputs or [ ]) ++ [ self.setuptools ]; - }); - - dbus-python = super.dbus-python.overridePythonAttrs (old: { - outputs = [ "out" "dev" ]; - - postPatch = old.postPatch or "" + '' - substituteInPlace ./configure --replace /usr/bin/file ${pkgs.file}/bin/file - substituteInPlace ./dbus-python.pc.in --replace 'Cflags: -I''${includedir}' 'Cflags: -I''${includedir}/dbus-1.0' - ''; - - configureFlags = (old.configureFlags or [ ]) ++ [ - "PYTHON_VERSION=${lib.versions.major self.python.version}" - ]; - - preConfigure = lib.concatStringsSep "\n" [ - (old.preConfigure or "") - (if (lib.versionAtLeast stdenv.hostPlatform.darwinMinVersion "11" && stdenv.isDarwin) then '' - MACOSX_DEPLOYMENT_TARGET=10.16 - '' else "") - ]; - - preBuild = old.preBuild or "" + '' - make distclean - ''; - - nativeBuildInputs = old.nativeBuildInputs or [ ] ++ [ pkgs.pkg-config ]; - buildInputs = old.buildInputs or [ ] ++ [ pkgs.dbus pkgs.dbus-glib ] - # My guess why it's sometimes trying to -lncurses. - # It seems not to retain the dependency anyway. - ++ lib.optional (! self.python ? modules) pkgs.ncurses; - }); - - dcli = super.dcli.overridePythonAttrs (old: { - propagatedBuildInputs = (old.propagatedBuildInputs or [ ]) ++ [ self.setuptools ]; - }); - - ddtrace = super.ddtrace.overridePythonAttrs (old: { - buildInputs = (old.buildInputs or [ ]) ++ - (pkgs.lib.optionals pkgs.stdenv.isDarwin [ pkgs.darwin.IOKit ]) ++ [ self.cython ]; - }); - - dictdiffer = super.dictdiffer.overridePythonAttrs ( - old: { - buildInputs = (old.buildInputs or [ ]) ++ [ self.pytest-runner ]; - propagatedBuildInputs = (old.propagatedBuildInputs or [ ]) ++ [ self.setuptools ]; - } - ); - - django = ( - super.django.overridePythonAttrs ( - old: { - propagatedNativeBuildInputs = (old.propagatedNativeBuildInputs or [ ]) - ++ [ pkgs.gettext self.pytest-runner ]; - } - ) - ); - - django-bakery = super.django-bakery.overridePythonAttrs ( - old: { - configurePhase = '' - if ! test -e LICENSE; then - touch LICENSE - fi - '' + (old.configurePhase or ""); - } - ); - - django-cors-headers = super.django-cors-headers.overridePythonAttrs ( - old: { - nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ self.pytest-runner ]; - } - ); - - django-hijack = super.django-hijack.overridePythonAttrs ( - old: { - nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ self.pytest-runner ]; - } - ); - - django-prometheus = super.django-prometheus.overridePythonAttrs ( - old: { - nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ self.pytest-runner ]; - } - ); - - django-rosetta = super.django-rosetta.overridePythonAttrs ( - old: { - nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ self.pytest-runner ]; - } - ); - - django-stubs-ext = super.django-stubs-ext.overridePythonAttrs ( - old: { - prePatch = (old.prePatch or "") + "touch ../LICENSE.txt"; - } - ); - - dlib = super.dlib.overridePythonAttrs ( - old: { - # Parallel building enabled - inherit (pkgs.python.pkgs.dlib) patches; - - enableParallelBuilding = true; - dontUseCmakeConfigure = true; - - nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ pkgs.dlib.nativeBuildInputs; - buildInputs = (old.buildInputs or [ ]) ++ pkgs.dlib.buildInputs; - } - ); - - # Environment markers are not always included (depending on how a dep was defined) - enum34 = if self.pythonAtLeast "3.4" then null else super.enum34; - - eth-hash = super.eth-hash.overridePythonAttrs { - preConfigure = '' - substituteInPlace setup.py --replace \'setuptools-markdown\' "" - ''; - }; - - eth-keyfile = super.eth-keyfile.overridePythonAttrs { - preConfigure = '' - substituteInPlace setup.py --replace \'setuptools-markdown\' "" - ''; - }; - - eth-keys = super.eth-keys.overridePythonAttrs { - preConfigure = '' - substituteInPlace setup.py --replace \'setuptools-markdown\' "" - ''; - }; - - # remove eth-hash dependency because eth-hash also depends on eth-utils causing a cycle. - eth-utils = super.eth-utils.overridePythonAttrs (old: { - propagatedBuildInputs = - builtins.filter (i: i.pname != "eth-hash") old.propagatedBuildInputs; - preConfigure = '' - ${old.preConfigure or ""} - sed -i '/eth-hash/d' setup.py - ''; - }); - - faker = super.faker.overridePythonAttrs ( - old: { - buildInputs = (old.buildInputs or [ ]) ++ [ self.pytest-runner ]; - doCheck = false; - } - ); - - fancycompleter = super.fancycompleter.overridePythonAttrs ( - old: { - postPatch = '' - substituteInPlace setup.py \ - --replace 'setup_requires="setupmeta"' 'setup_requires=[]' \ - --replace 'versioning="devcommit"' 'version="${old.version}"' - ''; - } - ); - - fastapi = super.fastapi.overridePythonAttrs ( - old: { - # Note: requires full flit, not just flit-core - nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ self.flit ]; - } - ); - - fastecdsa = super.fastecdsa.overridePythonAttrs (old: { - buildInputs = old.buildInputs ++ [ pkgs.gmp.dev ]; - }); - - fastparquet = super.fastparquet.overridePythonAttrs ( - old: { - buildInputs = (old.buildInputs or [ ]) ++ [ self.pytest-runner ]; - } - ); - - filelock = super.filelock.overridePythonAttrs (old: { - postPatch = '' - substituteInPlace setup.py --replace 'setup()' 'setup(version="${old.version}")' - ''; - }); - - fiona = super.fiona.overridePythonAttrs ( - old: { - buildInputs = (old.buildInputs or [ ]) ++ [ pkgs.gdal_2 ]; - nativeBuildInputs = [ - pkgs.gdal_2 # for gdal-config - ]; - } - ); - - gdal = super.gdal.overridePythonAttrs ( - old: { - preBuild = (old.preBuild or "") + '' - substituteInPlace setup.cfg \ - --replace "../../apps/gdal-config" '${pkgs.gdal}/bin/gdal-config' - ''; - } - ); - - grandalf = super.grandalf.overridePythonAttrs ( - old: { - buildInputs = (old.buildInputs or [ ]) ++ [ self.pytest-runner ]; - doCheck = false; - } - ); - - gitpython = super.gitpython.overridePythonAttrs ( - old: { - buildInputs = (old.buildInputs or [ ]) ++ [ self.typing-extensions ]; - } - ); - - grpcio = super.grpcio.overridePythonAttrs (old: { - nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ self.cython pkgs.pkg-config ]; - buildInputs = (old.buildInputs or [ ]) ++ [ pkgs.c-ares pkgs.openssl pkgs.zlib ]; - - outputs = [ "out" "dev" ]; - - GRPC_BUILD_WITH_BORING_SSL_ASM = ""; - GRPC_PYTHON_BUILD_SYSTEM_OPENSSL = 1; - GRPC_PYTHON_BUILD_SYSTEM_ZLIB = 1; - GRPC_PYTHON_BUILD_SYSTEM_CARES = 1; - DISABLE_LIBC_COMPATIBILITY = 1; - }); - - grpcio-tools = super.grpcio-tools.overridePythonAttrs (old: { - outputs = [ "out" "dev" ]; - }); - - h3 = super.h3.overridePythonAttrs ( - old: { - preBuild = (old.preBuild or "") + '' - substituteInPlace h3/h3.py \ - --replace "'{}/{}'.format(_dirname, libh3_path)" '"${pkgs.h3}/lib/libh3${pkgs.stdenv.hostPlatform.extensions.sharedLibrary}"' - ''; - } - ); - - h5py = super.h5py.overridePythonAttrs ( - old: - if old.format != "wheel" then - ( - let - mpi = pkgs.hdf5.mpi; - mpiSupport = pkgs.hdf5.mpiSupport; - in - { - nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ pkgs.pkg-config ]; - buildInputs = - (old.buildInputs or [ ]) - ++ [ pkgs.hdf5 self.pkgconfig self.cython ] - ++ lib.optional mpiSupport mpi - ; - propagatedBuildInputs = - (old.propagatedBuildInputs or [ ]) - ++ lib.optionals mpiSupport [ self.mpi4py self.openssh ] - ; - preBuild = if mpiSupport then "export CC=${mpi}/bin/mpicc" else ""; - HDF5_DIR = "${pkgs.hdf5}"; - HDF5_MPI = if mpiSupport then "ON" else "OFF"; - # avoid strict pinning of numpy - postPatch = '' - substituteInPlace setup.py \ - --replace "numpy ==" "numpy >=" - ''; - pythonImportsCheck = [ "h5py" ]; - } - ) else old - ); - - hid = super.hid.overridePythonAttrs ( - old: { - postPatch = '' - found= - for name in libhidapi-hidraw libhidapi-libusb libhidapi-iohidmanager libhidapi; do - full_path=${pkgs.hidapi.out}/lib/$name${pkgs.stdenv.hostPlatform.extensions.sharedLibrary} - if test -f $full_path; then - found=t - sed -i -e "s|'$name\..*'|'$full_path'|" hid/__init__.py - fi - done - test -n "$found" || { echo "ERROR: No known libraries found in ${pkgs.hidapi.out}/lib, please update/fix this build expression."; exit 1; } - ''; - } - ); - - horovod = super.horovod.overridePythonAttrs ( - old: { - propagatedBuildInputs = (old.propagatedBuildInputs or [ ]) ++ [ pkgs.mpi ]; - } - ); - - httplib2 = super.httplib2.overridePythonAttrs (old: { - propagatedBuildInputs = (old.propagatedBuildInputs or [ ]) ++ [ self.pyparsing ]; - }); - - icecream = super.icecream.overridePythonAttrs (old: { - # # ERROR: Could not find a version that satisfies the requirement executing>=0.3.1 (from icecream) (from versions: none) - postPatch = '' - substituteInPlace setup.py --replace 'executing>=0.3.1' 'executing' - ''; - }); - - imagecodecs = super.imagecodecs.overridePythonAttrs ( - old: { - patchPhase = '' - substituteInPlace setup.py \ - --replace "/usr/include/openjpeg-2.3" \ - "${pkgs.openjpeg.dev}/include/${pkgs.openjpeg.dev.incDir} - substituteInPlace setup.py \ - --replace "/usr/include/jxrlib" \ - "$out/include/libjxr" - substituteInPlace imagecodecs/_zopfli.c \ - --replace '"zopfli/zopfli.h"' \ - '' - substituteInPlace imagecodecs/_zopfli.c \ - --replace '"zopfli/zlib_container.h"' \ - '' - substituteInPlace imagecodecs/_zopfli.c \ - --replace '"zopfli/gzip_container.h"' \ - '' - ''; - - preBuild = '' - mkdir -p $out/include/libjxr - ln -s ${pkgs.jxrlib}/include/libjxr/**/* $out/include/libjxr - - ''; - - buildInputs = (old.buildInputs or [ ]) ++ [ - # Commented out packages are declared required, but not actually - # needed to build. They are not yet packaged for nixpkgs. - # bitshuffle - pkgs.brotli - # brunsli - pkgs.bzip2 - pkgs.c-blosc - # charls - pkgs.giflib - pkgs.jxrlib - pkgs.lcms - pkgs.libaec - pkgs.libaec - pkgs.libjpeg_turbo - # liblzf - # liblzma - pkgs.libpng - pkgs.libtiff - pkgs.libwebp - pkgs.lz4 - pkgs.openjpeg - pkgs.snappy - # zfp - pkgs.zopfli - pkgs.zstd - pkgs.zlib - ]; - } - ); - - # importlib-metadata has an incomplete dependency specification - importlib-metadata = super.importlib-metadata.overridePythonAttrs ( - old: { - propagatedBuildInputs = (old.propagatedBuildInputs or [ ]) ++ lib.optional self.python.isPy2 self.pathlib2; - - # disable the removal of pyproject.toml, required because of setuptools_scm - dontPreferSetupPy = true; - - postPatch = old.postPatch or "" + (lib.optionalString ((old.format or "") != "wheel") '' - substituteInPlace setup.py --replace 'setuptools.setup()' 'setuptools.setup(version="${old.version}")' - ''); - } - ); - - importlib-resources = super.importlib-resources.overridePythonAttrs ( - old: { - # disable the removal of pyproject.toml, required because of setuptools_scm - dontPreferSetupPy = true; - } - ); - - intreehooks = super.intreehooks.overridePythonAttrs ( - old: { - doCheck = false; - } - ); - - isort = super.isort.overridePythonAttrs ( - old: { - propagatedBuildInputs = (old.propagatedBuildInputs or [ ]) ++ [ self.setuptools ]; - } - ); - - jaraco-functools = super.jaraco-functools.overridePythonAttrs ( - old: { - # required for the extra "toml" dependency in setuptools_scm[toml] - buildInputs = (old.buildInputs or [ ]) ++ [ - self.toml - ]; - # disable the removal of pyproject.toml, required because of setuptools_scm - dontPreferSetupPy = true; - } - ); - - jira = super.jira.overridePythonAttrs ( - old: { - inherit (pkgs.python3Packages.jira) patches; - buildInputs = (old.buildInputs or [ ]) ++ [ - self.pytestrunner - self.cryptography - self.pyjwt - self.setuptools-scm-git-archive - ]; - } - ); - - jq = super.jq.overridePythonAttrs (attrs: { - buildInputs = [ pkgs.jq ]; - patches = [ - (pkgs.fetchpatch { - url = "https://raw.githubusercontent.com/NixOS/nixpkgs/088da8735f6620b60d724aa7db742607ea216087/pkgs/development/python-modules/jq/jq-py-setup.patch"; - sha256 = "sha256-MYvX3S1YGe0QsUtExtOtULvp++AdVrv+Fid4Jh1xewQ="; - }) - ]; - }); - - jsondiff = super.jsondiff.overridePythonAttrs ( - old: { - preBuild = (old.preBuild or "") + '' - substituteInPlace setup.py \ - --replace "'jsondiff=jsondiff.cli:main_deprecated'," "" - ''; - } - ); - - jsonpickle = super.jsonpickle.overridePythonAttrs ( - old: { - dontPreferSetupPy = true; - } - ); - - jsonslicer = super.jsonslicer.overridePythonAttrs (old: { - nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ pkgs.pkgconfig ]; - buildInputs = (old.buildInputs or [ ]) ++ [ pkgs.yajl ]; - }); - - jupyter = super.jupyter.overridePythonAttrs ( - old: rec { - # jupyter is a meta-package. Everything relevant comes from the - # dependencies. It does however have a jupyter.py file that conflicts - # with jupyter-core so this meta solves this conflict. - meta.priority = 100; - } - ); - - jupyterlab-widgets = super.jupyterlab-widgets.overridePythonAttrs ( - old: rec { - buildInputs = (old.buildInputs or [ ]) ++ [ self.jupyter-packaging ]; - } - ); - - kerberos = super.kerberos.overrideAttrs (old: { - nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ pkgs.libkrb5 ]; - }); - - keyring = super.keyring.overridePythonAttrs ( - old: { - buildInputs = (old.buildInputs or [ ]) ++ [ - self.toml - ]; - postPatch = '' - substituteInPlace setup.py --replace 'setuptools.setup()' 'setuptools.setup(version="${old.version}")' - ''; - } - ); - - kiwisolver = super.kiwisolver.overridePythonAttrs ( - old: { - buildInputs = (old.buildInputs or [ ]) ++ [ - self.cppy - ]; - } - ); - - lap = super.lap.overridePythonAttrs ( - old: { - propagatedBuildInputs = (old.propagatedBuildInputs or [ ]) ++ [ - self.numpy - ]; - } - ); - - libvirt-python = super.libvirt-python.overridePythonAttrs ({ nativeBuildInputs ? [ ], ... }: { - nativeBuildInputs = nativeBuildInputs ++ [ pkgs.pkg-config ]; - propagatedBuildInputs = [ pkgs.libvirt ]; - }); - - licensecheck = super.licensecheck.overridePythonAttrs (old: { - dontPreferSetupPy = true; - }); - - llvmlite = super.llvmlite.overridePythonAttrs ( - old: - let - llvm = - if lib.versionAtLeast old.version "0.37.0" then - pkgs.llvmPackages_11.llvm - else if (lib.versionOlder old.version "0.37.0" && lib.versionAtLeast old.version "0.34.0") then - pkgs.llvmPackages_10.llvm - else if (lib.versionOlder old.version "0.34.0" && lib.versionAtLeast old.version "0.33.0") then - pkgs.llvmPackages_9.llvm - else if (lib.versionOlder old.version "0.33.0" && lib.versionAtLeast old.version "0.29.0") then - pkgs.llvmPackages_8.llvm - else if (lib.versionOlder old.version "0.28.0" && lib.versionAtLeast old.version "0.27.0") then - pkgs.llvmPackages_7.llvm - else if (lib.versionOlder old.version "0.27.0" && lib.versionAtLeast old.version "0.23.0") then - pkgs.llvmPackages_6.llvm - else if (lib.versionOlder old.version "0.23.0" && lib.versionAtLeast old.version "0.21.0") then - pkgs.llvmPackages_5.llvm - else - pkgs.llvm; # Likely to fail. - in - { - nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ pkgs.llvm ]; - - # Disable static linking - # https://github.com/numba/llvmlite/issues/93 - postPatch = '' - substituteInPlace ffi/Makefile.linux --replace "-static-libstdc++" "" - - substituteInPlace llvmlite/tests/test_binding.py --replace "test_linux" "nope" - ''; - - # Set directory containing llvm-config binary - preConfigure = '' - export LLVM_CONFIG=${llvm.dev}/bin/llvm-config - ''; - - __impureHostDeps = lib.optionals pkgs.stdenv.isDarwin [ "/usr/lib/libm.dylib" ]; - - passthru = old.passthru // { llvm = llvm; }; - } - ); - - lockfile = super.lockfile.overridePythonAttrs ( - old: { - propagatedBuildInputs = (old.propagatedBuildInputs or [ ]) ++ [ self.pbr ]; - } - ); - - lxml = super.lxml.overridePythonAttrs ( - old: { - nativeBuildInputs = with pkgs; (old.nativeBuildInputs or [ ]) ++ [ pkg-config libxml2.dev libxslt.dev ] ++ lib.optionals stdenv.isDarwin [ xcodebuild ]; - buildInputs = with pkgs; (old.buildInputs or [ ]) ++ [ libxml2 libxslt ]; - } - ); - - markupsafe = super.markupsafe.overridePythonAttrs ( - old: { - src = old.src.override { pname = builtins.replaceStrings [ "markupsafe" ] [ "MarkupSafe" ] old.pname; }; - } - ); - - matplotlib = super.matplotlib.overridePythonAttrs ( - old: - let - enableGhostscript = old.passthru.enableGhostscript or false; - enableGtk3 = old.passthru.enableTk or false; - enableQt = old.passthru.enableQt or false; - enableTk = old.passthru.enableTk or false; - - inherit (pkgs.darwin.apple_sdk.frameworks) Cocoa; - in - { - NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isDarwin "-I${pkgs.libcxx}/include/c++/v1"; - - XDG_RUNTIME_DIR = "/tmp"; - - buildInputs = (old.buildInputs or [ ]) - ++ lib.optional enableGhostscript pkgs.ghostscript - ++ lib.optional stdenv.isDarwin [ Cocoa ] - ++ [ self.certifi ]; - - nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ - pkgs.pkg-config - ] ++ lib.optional (lib.versionAtLeast super.matplotlib.version "3.5.0") [ - self.setuptools-scm - self.setuptools-scm-git-archive - ]; - - MPLSETUPCFG = pkgs.writeText "mplsetup.cfg" '' - [libs] - system_freetype = True - system_qhull = True - '' + lib.optionalString stdenv.isDarwin '' - # LTO not working in darwin stdenv, see NixOS/nixpkgs/pull/19312 - enable_lto = false - ''; - - propagatedBuildInputs = (old.propagatedBuildInputs or [ ]) ++ [ - pkgs.libpng - pkgs.freetype - pkgs.qhull - ] - ++ lib.optionals enableGtk3 [ pkgs.cairo self.pycairo pkgs.gtk3 pkgs.gobject-introspection self.pygobject3 ] - ++ lib.optionals enableTk [ pkgs.tcl pkgs.tk self.tkinter pkgs.libX11 ] - ++ lib.optionals enableQt [ self.pyqt5 ] - ; - - preBuild = '' - cp -r ${pkgs.qhull} . - ''; - - inherit (super.matplotlib) patches; - } - ); - - # Calls Cargo at build time for source builds and is really tricky to package - maturin = super.maturin.override { - preferWheel = true; - }; - - mccabe = super.mccabe.overridePythonAttrs ( - old: { - buildInputs = (old.buildInputs or [ ]) ++ [ self.pytest-runner ]; - doCheck = false; - } - ); - - mip = super.mip.overridePythonAttrs ( - old: { - nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ pkgs.autoPatchelfHook ]; - - buildInputs = (old.buildInputs or [ ]) ++ [ pkgs.zlib self.cppy ]; - } - ); - - mmdet = super.mmdet.overridePythonAttrs ( - old: { - buildInputs = (old.buildInputs or [ ]) ++ [ self.pytorch ]; - } - ); - - molecule = - if lib.versionOlder super.molecule.version "3.0.0" then - (super.molecule.overridePythonAttrs ( - old: { - patches = (old.patches or [ ]) ++ [ - # Fix build with more recent setuptools versions - (pkgs.fetchpatch { - url = "https://github.com/ansible-community/molecule/commit/c9fee498646a702c77b5aecf6497cff324acd056.patch"; - sha256 = "1g1n45izdz0a3c9akgxx14zhdw6c3dkb48j8pq64n82fa6ndl1b7"; - excludes = [ "pyproject.toml" ]; - }) - ]; - buildInputs = (old.buildInputs or [ ]) ++ [ self.setuptools-scm-git-archive ]; - } - )) else - super.molecule.overridePythonAttrs (old: { - buildInputs = (old.buildInputs or [ ]) ++ [ self.setuptools-scm-git-archive ]; - }); - - mongomock = super.mongomock.overridePythonAttrs (oa: { - buildInputs = oa.buildInputs ++ [ self.pbr ]; - }); - - mpi4py = super.mpi4py.overridePythonAttrs ( - old: - let - cfg = pkgs.writeTextFile { - name = "mpi.cfg"; - text = ( - lib.generators.toINI - { } - { - mpi = { - mpicc = "${pkgs.mpi.outPath}/bin/mpicc"; - }; - } - ); - }; - in - { - propagatedBuildInputs = (old.propagatedBuildInputs or [ ]) ++ [ pkgs.mpi ]; - enableParallelBuilding = true; - preBuild = '' - ln -sf ${cfg} mpi.cfg - ''; - } - ); - - multiaddr = super.multiaddr.overridePythonAttrs ( - old: { - buildInputs = (old.buildInputs or [ ]) ++ [ self.pytest-runner ]; - } - ); - - munch = super.munch.overridePythonAttrs ( - old: { - buildInputs = (old.buildInputs or [ ]) ++ [ self.pbr ]; - } - ); - - mypy = super.mypy.overridePythonAttrs ( - old: { - MYPY_USE_MYPYC = - # is64bit: unfortunately the build would exhaust all possible memory on i686-linux. - stdenv.buildPlatform.is64bit - # Derivation fails to build since v0.900 if mypyc is enabled. - && lib.strings.versionOlder old.version "0.900"; - } - ); - - mysqlclient = super.mysqlclient.overridePythonAttrs ( - old: { - nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ pkgs.libmysqlclient ]; - buildInputs = (old.buildInputs or [ ]) ++ [ pkgs.libmysqlclient ]; - } - ); - - netcdf4 = super.netcdf4.overridePythonAttrs ( - old: { - buildInputs = (old.buildInputs or [ ]) ++ [ - self.cython - ]; - - propagatedBuildInputs = (old.propagatedBuildInputs or [ ]) ++ [ - pkgs.zlib - pkgs.netcdf - pkgs.hdf5 - pkgs.curl - pkgs.libjpeg - ]; - - # Variables used to configure the build process - USE_NCCONFIG = "0"; - HDF5_DIR = lib.getDev pkgs.hdf5; - NETCDF4_DIR = pkgs.netcdf; - CURL_DIR = pkgs.curl.dev; - JPEG_DIR = pkgs.libjpeg.dev; - } - ); - - numpy = super.numpy.overridePythonAttrs ( - old: - let - blas = old.passthru.args.blas or pkgs.openblasCompat; - blasImplementation = lib.nameFromURL blas.name "-"; - cfg = pkgs.writeTextFile { - name = "site.cfg"; - text = ( - lib.generators.toINI - { } - { - ${blasImplementation} = { - include_dirs = "${blas}/include"; - library_dirs = "${blas}/lib"; - } // lib.optionalAttrs (blasImplementation == "mkl") { - mkl_libs = "mkl_rt"; - lapack_libs = ""; - }; - } - ); - }; - in - { - nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ pkgs.gfortran ]; - buildInputs = (old.buildInputs or [ ]) ++ [ blas self.cython ]; - enableParallelBuilding = true; - preBuild = '' - ln -s ${cfg} site.cfg - ''; - passthru = old.passthru // { - blas = blas; - inherit blasImplementation cfg; - }; - } - ); - - opencv-python = super.opencv-python.overridePythonAttrs ( - old: { - nativeBuildInputs = [ pkgs.cmake ] ++ old.nativeBuildInputs; - buildInputs = [ self.scikit-build ] ++ (old.buildInputs or [ ]); - dontUseCmakeConfigure = true; - } - ); - - opencv-contrib-python = super.opencv-contrib-python.overridePythonAttrs ( - old: { - nativeBuildInputs = [ pkgs.cmake ] ++ old.nativeBuildInputs; - buildInputs = [ self.scikit-build ] ++ (old.buildInputs or [ ]); - dontUseCmakeConfigure = true; - } - ); - - openexr = super.openexr.overridePythonAttrs ( - old: rec { - buildInputs = (old.buildInputs or [ ]) ++ [ pkgs.openexr pkgs.ilmbase ]; - NIX_CFLAGS_COMPILE = [ "-I${pkgs.openexr.dev}/include/OpenEXR" "-I${pkgs.ilmbase.dev}/include/OpenEXR" ]; - } - ); - - osqp = super.osqp.overridePythonAttrs ( - old: { - nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ pkgs.cmake ]; - dontUseCmakeConfigure = true; - } - ); - - pantalaimon = super.pantalaimon.overridePythonAttrs (old: { - nativeBuildInputs = old.nativeBuildInputs or [ ] ++ [ pkgs.installShellFiles ]; - postInstall = old.postInstall or "" + '' - installManPage docs/man/*.[1-9] - ''; - }); - - paramiko = super.paramiko.overridePythonAttrs (old: { - doCheck = false; # requires networking - }); - - parsel = super.parsel.overridePythonAttrs ( - old: rec { - nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ self.pytest-runner ]; - } - ); - - pdal = super.pdal.overridePythonAttrs ( - old: { - PDAL_CONFIG = "${pkgs.pdal}/bin/pdal-config"; - } - ); - - peewee = super.peewee.overridePythonAttrs ( - old: - let - withPostgres = old.passthru.withPostgres or false; - withMysql = old.passthru.withMysql or false; - in - { - buildInputs = (old.buildInputs or [ ]) ++ [ pkgs.sqlite ]; - propagatedBuildInputs = (old.propagatedBuildInputs or [ ]) - ++ lib.optional withPostgres self.psycopg2 - ++ lib.optional withMysql self.mysql-connector; - } - ); - - pillow = super.pillow.overridePythonAttrs ( - old: { - nativeBuildInputs = [ pkgs.pkg-config self.pytest-runner ] ++ (old.nativeBuildInputs or [ ]); - buildInputs = with pkgs; [ freetype libjpeg zlib libtiff libwebp tcl lcms2 ] ++ (old.buildInputs or [ ]); - } - ); - - platformdirs = super.platformdirs.overridePythonAttrs (old: { - postPatch = '' - substituteInPlace setup.py --replace 'setup()' 'setup(version="${old.version}")' - ''; - }); - - poetry-core = super.poetry-core.overridePythonAttrs (old: { - # "Vendor" dependencies (for build-system support) - postPatch = '' - echo "import sys" >> poetry/__init__.py - for path in $propagatedBuildInputs; do - echo "sys.path.insert(0, \"$path\")" >> poetry/__init__.py - done - ''; - - # Propagating dependencies leads to issues downstream - # We've already patched poetry to prefer "vendored" dependencies - postFixup = '' - rm $out/nix-support/propagated-build-inputs - ''; - }); - - portend = super.portend.overridePythonAttrs ( - old: { - # required for the extra "toml" dependency in setuptools_scm[toml] - buildInputs = (old.buildInputs or [ ]) ++ [ - self.toml - ]; - # disable the removal of pyproject.toml, required because of setuptools_scm - dontPreferSetupPy = true; - } - ); - - prettytable = super.prettytable.overridePythonAttrs (old: { - propagatedBuildInputs = (old.propagatedBuildInputs or [ ]) ++ [ self.setuptools ]; - }); - - psycopg2 = super.psycopg2.overridePythonAttrs ( - old: { - buildInputs = (old.buildInputs or [ ]) - ++ lib.optional stdenv.isDarwin pkgs.openssl; - nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ pkgs.postgresql ]; - } - ); - - psycopg2-binary = super.psycopg2-binary.overridePythonAttrs ( - old: { - buildInputs = (old.buildInputs or [ ]) - ++ lib.optional stdenv.isDarwin pkgs.openssl; - nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ pkgs.postgresql ]; - } - ); - - pyarrow = - if lib.versionAtLeast super.pyarrow.version "0.16.0" then - super.pyarrow.overridePythonAttrs - ( - old: - let - parseMinor = drv: lib.concatStringsSep "." (lib.take 2 (lib.splitVersion drv.version)); - - # Starting with nixpkgs revision f149c7030a7, pyarrow takes "python3" as an argument - # instead of "python". Below we inspect function arguments to maintain compatibilitiy. - _arrow-cpp = pkgs.arrow-cpp.override ( - builtins.intersectAttrs - (lib.functionArgs pkgs.arrow-cpp.override) - { python = self.python; python3 = self.python; } - ); - - ARROW_HOME = _arrow-cpp; - arrowCppVersion = parseMinor _arrow-cpp; - pyArrowVersion = parseMinor super.pyarrow; - errorMessage = "arrow-cpp version (${arrowCppVersion}) mismatches pyarrow version (${pyArrowVersion})"; - in - if arrowCppVersion != pyArrowVersion then throw errorMessage else { - - nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ - self.cython - pkgs.pkg-config - pkgs.cmake - ]; - - preBuild = '' - export PYARROW_PARALLEL=$NIX_BUILD_CORES - ''; - - PARQUET_HOME = _arrow-cpp; - inherit ARROW_HOME; - - PYARROW_BUILD_TYPE = "release"; - PYARROW_WITH_FLIGHT = if _arrow-cpp.enableFlight then 1 else 0; - PYARROW_WITH_DATASET = 1; - PYARROW_WITH_PARQUET = 1; - PYARROW_CMAKE_OPTIONS = [ - "-DCMAKE_INSTALL_RPATH=${ARROW_HOME}/lib" - - # This doesn't use setup hook to call cmake so we need to workaround #54606 - # ourselves - "-DCMAKE_POLICY_DEFAULT_CMP0025=NEW" - ]; - - dontUseCmakeConfigure = true; - } - ) else - super.pyarrow.overridePythonAttrs ( - old: { - nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ - self.cython - ]; - } - ); - - pycairo = ( - drv: ( - drv.overridePythonAttrs ( - _: { - format = "other"; - } - ) - ).overridePythonAttrs ( - old: { - - nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ - pkgs.meson - pkgs.ninja - pkgs.pkg-config - ]; - - propagatedBuildInputs = (old.propagatedBuildInputs or [ ]) ++ [ - pkgs.cairo - pkgs.xlibsWrapper - ]; - - mesonFlags = [ "-Dpython=${if self.isPy3k then "python3" else "python"}" ]; - } - ) - ) - super.pycairo; - - pycocotools = super.pycocotools.overridePythonAttrs ( - old: { - buildInputs = (old.buildInputs or [ ]) ++ [ - self.cython - self.numpy - ]; - } - ); - - pyfuse3 = super.pyfuse3.overridePythonAttrs (old: { - nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ pkgs.pkg-config ]; - buildInputs = (old.buildInputs or [ ]) ++ [ pkgs.fuse3 ]; - }); - - pygame = super.pygame.overridePythonAttrs ( - old: rec { - nativeBuildInputs = [ - pkgs.pkg-config - pkgs.SDL - ]; - - buildInputs = [ - pkgs.SDL - pkgs.SDL_image - pkgs.SDL_mixer - pkgs.SDL_ttf - pkgs.libpng - pkgs.libjpeg - pkgs.portmidi - pkgs.xorg.libX11 - pkgs.freetype - ]; - - # Tests fail because of no audio device and display. - doCheck = false; - preConfigure = '' - sed \ - -e "s/origincdirs = .*/origincdirs = []/" \ - -e "s/origlibdirs = .*/origlibdirs = []/" \ - -e "/'\/lib\/i386-linux-gnu', '\/lib\/x86_64-linux-gnu']/d" \ - -e "/\/include\/smpeg/d" \ - -i buildconfig/config_unix.py - ${lib.concatMapStrings - (dep: '' - sed \ - -e "/origincdirs =/a\ origincdirs += ['${lib.getDev dep}/include']" \ - -e "/origlibdirs =/a\ origlibdirs += ['${lib.getLib dep}/lib']" \ - -i buildconfig/config_unix.py - '') - buildInputs - } - LOCALBASE=/ ${self.python.interpreter} buildconfig/config.py - ''; - } - ); - - pygeos = super.pygeos.overridePythonAttrs ( - old: { - buildInputs = (old.buildInputs or [ ]) ++ [ pkgs.geos ]; - nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ pkgs.geos ]; - } - ); - - pygobject = super.pygobject.overridePythonAttrs ( - old: { - nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ pkgs.pkg-config ]; - buildInputs = (old.buildInputs or [ ]) ++ [ pkgs.glib pkgs.gobject-introspection ]; - } - ); - - pylint = super.pylint.overridePythonAttrs ( - old: { - buildInputs = (old.buildInputs or [ ]) ++ [ self.pytest-runner ]; - } - ); - - pyopenssl = super.pyopenssl.overridePythonAttrs ( - old: { - buildInputs = (old.buildInputs or [ ]) ++ [ pkgs.openssl ]; - } - ); - - pyproj = super.pyproj.overridePythonAttrs ( - old: { - buildInputs = (old.buildInputs or [ ]) ++ - [ self.cython ]; - PROJ_DIR = "${pkgs.proj}"; - PROJ_LIBDIR = "${pkgs.proj}/lib"; - PROJ_INCDIR = "${pkgs.proj.dev}/include"; - } - ); - - pyproject-flake8 = super.pyproject-flake8.overridePythonAttrs ( - old: { - buildInputs = (old.buildInputs or [ ]) ++ [ self.flit-core ]; - } - ); - - pytaglib = super.pytaglib.overridePythonAttrs (old: { - buildInputs = (old.buildInputs or [ ]) ++ [ pkgs.taglib ]; - }); - - pytezos = super.pytezos.overridePythonAttrs (old: { - buildInputs = (old.buildInputs or [ ]) ++ [ pkgs.libsodium ]; - }); - - python-bugzilla = super.python-bugzilla.overridePythonAttrs ( - old: { - nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ - self.docutils - ]; - } - ); - - python-ldap = super.python-ldap.overridePythonAttrs ( - old: { - buildInputs = (old.buildInputs or [ ]) ++ [ pkgs.openldap pkgs.cyrus_sasl ]; - } - ); - - pytoml = super.pytoml.overridePythonAttrs ( - old: { - doCheck = false; - } - ); - - pyqt5 = - let - drv = super.pyqt5; - withConnectivity = drv.passthru.args.withConnectivity or false; - withMultimedia = drv.passthru.args.withMultimedia or false; - withWebKit = drv.passthru.args.withWebKit or false; - withWebSockets = drv.passthru.args.withWebSockets or false; - in - super.pyqt5.overridePythonAttrs ( - old: { - format = "other"; - - dontWrapQtApps = true; - - nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ - pkgs.pkg-config - pkgs.qt5.qmake - pkgs.xorg.lndir - pkgs.qt5.qtbase - pkgs.qt5.qtsvg - pkgs.qt5.qtdeclarative - pkgs.qt5.qtwebchannel - pkgs.qt5.qt3d - # self.pyqt5-sip - self.sip - ] - ++ lib.optional withConnectivity pkgs.qt5.qtconnectivity - ++ lib.optional withMultimedia pkgs.qt5.qtmultimedia - ++ lib.optional withWebKit pkgs.qt5.qtwebkit - ++ lib.optional withWebSockets pkgs.qt5.qtwebsockets - ; - - buildInputs = (old.buildInputs or [ ]) ++ [ - pkgs.dbus - pkgs.qt5.qtbase - pkgs.qt5.qtsvg - pkgs.qt5.qtdeclarative - self.sip - ] - ++ lib.optional withConnectivity pkgs.qt5.qtconnectivity - ++ lib.optional withWebKit pkgs.qt5.qtwebkit - ++ lib.optional withWebSockets pkgs.qt5.qtwebsockets - ; - - # Fix dbus mainloop - patches = pkgs.python3.pkgs.pyqt5.patches or [ ]; - - configurePhase = '' - runHook preConfigure - - export PYTHONPATH=$PYTHONPATH:$out/${self.python.sitePackages} - - mkdir -p $out/${self.python.sitePackages}/dbus/mainloop - ${self.python.executable} configure.py -w \ - --confirm-license \ - --no-qml-plugin \ - --bindir=$out/bin \ - --destdir=$out/${self.python.sitePackages} \ - --stubsdir=$out/${self.python.sitePackages}/PyQt5 \ - --sipdir=$out/share/sip/PyQt5 \ - --designer-plugindir=$out/plugins/designer - - runHook postConfigure - ''; - - postInstall = '' - ln -s ${self.pyqt5-sip}/${self.python.sitePackages}/PyQt5/sip.* $out/${self.python.sitePackages}/PyQt5/ - for i in $out/bin/*; do - wrapProgram $i --prefix PYTHONPATH : "$PYTHONPATH" - done - - # Let's make it a namespace package - cat << EOF > $out/${self.python.sitePackages}/PyQt5/__init__.py - from pkgutil import extend_path - __path__ = extend_path(__path__, __name__) - EOF - ''; - - installCheckPhase = - let - modules = [ - "PyQt5" - "PyQt5.QtCore" - "PyQt5.QtQml" - "PyQt5.QtWidgets" - "PyQt5.QtGui" - ] - ++ lib.optional withWebSockets "PyQt5.QtWebSockets" - ++ lib.optional withWebKit "PyQt5.QtWebKit" - ++ lib.optional withMultimedia "PyQt5.QtMultimedia" - ++ lib.optional withConnectivity "PyQt5.QtConnectivity" - ; - imports = lib.concatMapStrings (module: "import ${module};") modules; - in - '' - echo "Checking whether modules can be imported..." - ${self.python.interpreter} -c "${imports}" - ''; - - doCheck = true; - - enableParallelBuilding = true; - } - ); - - pytest-datadir = super.pytest-datadir.overridePythonAttrs ( - old: { - postInstall = '' - rm -f $out/LICENSE - ''; - } - ); - - pytest = super.pytest.overridePythonAttrs ( - old: { - # Fixes https://github.com/pytest-dev/pytest/issues/7891 - postPatch = old.postPatch or "" + '' - sed -i '/\[metadata\]/aversion = ${old.version}' setup.cfg - ''; - } - ); - - pytest-django = super.pytest-django.overridePythonAttrs ( - old: { - postPatch = '' - substituteInPlace setup.py --replace "'pytest>=3.6'," "" - substituteInPlace setup.py --replace "'pytest>=3.6'" "" - ''; - } - ); - - pytest-randomly = super.pytest-randomly.overrideAttrs (old: { - propagatedBuildInputs = (old.propagatedBuildInputs or [ ]) ++ [ - self.importlib-metadata - ]; - }); - - pytest-runner = super.pytest-runner or super.pytestrunner; - - pytest-pylint = super.pytest-pylint.overridePythonAttrs ( - old: { - buildInputs = [ self.pytest-runner ]; - } - ); - - # pytest-splinter seems to put a .marker file in an empty directory - # presumably so it's tracked by and can be installed with MANIFEST.in, see - # https://github.com/pytest-dev/pytest-splinter/commit/a48eeef662f66ff9d3772af618748e73211a186b - # - # This directory then gets used as an empty initial profile directory and is - # zipped up. But if the .marker file is in the Nix store, it has the - # creation date of 1970, and Zip doesn't work with such old files, so it - # fails at runtime! - # - # We fix this here by just removing the file after the installation - # - # The error you get without this is: - # - # E ValueError: ZIP does not support timestamps before 1980 - # /nix/store/55b9ip7xkpimaccw9pa0vacy5q94f5xa-python3-3.7.6/lib/python3.7/zipfile.py:357: ValueError - pytest-splinter = super.pytest-splinter.overrideAttrs (old: { - postInstall = old.postInstall or "" + '' - rm $out/${super.python.sitePackages}/pytest_splinter/profiles/firefox/.marker - ''; - }); - - python-jose = super.python-jose.overridePythonAttrs ( - old: { - buildInputs = [ self.pytest-runner ]; - } - ); - - python-olm = super.python-olm.overridePythonAttrs ( - old: { - buildInputs = old.buildInputs or [ ] ++ [ pkgs.olm ]; - } - ); - - python-snappy = super.python-snappy.overridePythonAttrs ( - old: { - buildInputs = (old.buildInputs or [ ]) ++ [ pkgs.snappy ]; - } - ); - - pythran = super.pythran.overridePythonAttrs (old: { - buildInputs = (old.buildInputs or [ ]) ++ [ self.pytest-runner ]; - }); - - ffmpeg-python = super.ffmpeg-python.overridePythonAttrs ( - old: { - buildInputs = (old.buildInputs or [ ]) ++ [ self.pytest-runner ]; - } - ); - - python-prctl = super.python-prctl.overridePythonAttrs ( - old: { - buildInputs = (old.buildInputs or [ ]) ++ [ - pkgs.libcap - ]; - } - ); - - pyudev = super.pyudev.overridePythonAttrs (old: { - postPatch = '' - substituteInPlace src/pyudev/_ctypeslib/utils.py \ - --replace "find_library(name)" "'${pkgs.lib.getLib pkgs.systemd}/lib/libudev.so'" - ''; - }); - - pyusb = super.pyusb.overridePythonAttrs ( - old: { - postPatch = '' - libusb=${pkgs.libusb1.out}/lib/libusb-1.0${pkgs.stdenv.hostPlatform.extensions.sharedLibrary} - test -f $libusb || { echo "ERROR: $libusb doesn't exist, please update/fix this build expression."; exit 1; } - sed -i -e "s|find_library=None|find_library=lambda _:\"$libusb\"|" usb/backend/libusb1.py - ''; - } - ); - - pywavelets = super.pywavelets.overridePythonAttrs ( - old: { - HDF5_DIR = "${pkgs.hdf5}"; - propagatedBuildInputs = (old.propagatedBuildInputs or [ ]) ++ [ pkgs.hdf5 ]; - } - ); - - pyzmq = super.pyzmq.overridePythonAttrs ( - old: { - nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ pkgs.pkg-config ]; - propagatedBuildInputs = (old.propagatedBuildInputs or [ ]) ++ [ pkgs.zeromq ]; - } - ); - - rockset = super.rockset.overridePythonAttrs ( - old: rec { - postPatch = '' - cp ./setup_rockset.py ./setup.py - ''; - } - ); - - scaleapi = super.scaleapi.overridePythonAttrs ( - old: { - postPatch = '' - substituteInPlace setup.py --replace "install_requires = ['requests>=2.4.2', 'enum34']" "install_requires = ['requests>=2.4.2']" || true - ''; - } - ); - - pandas = super.pandas.overridePythonAttrs ( - old: { - nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ self.cython ]; - } - ); - - panel = super.panel.overridePythonAttrs ( - old: { - nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ pkgs.nodejs ]; - } - ); - - # Pybind11 is an undeclared dependency of scipy that we need to pick from nixpkgs - # Make it not fail with infinite recursion - pybind11 = super.pybind11.overridePythonAttrs ( - old: { - cmakeFlags = (old.cmakeFlags or [ ]) ++ [ - "-DPYBIND11_TEST=off" - ]; - doCheck = false; # Circular test dependency - } - ); - - requests-mock = super.requests-mock.overridePythonAttrs ( - old: { - propagatedBuildInputs = (old.propagatedBuildInputs or [ ]) ++ [ super.pbr ]; - } - ); - - requests-unixsocket = super.requests-unixsocket.overridePythonAttrs ( - old: { - nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ self.pbr ]; - } - ); - - requestsexceptions = super.requestsexceptions.overridePythonAttrs (old: { - nativeBuildInputs = old.nativeBuildInputs ++ [ self.pbr ]; - }); - - rlp = super.rlp.overridePythonAttrs { - preConfigure = '' - substituteInPlace setup.py --replace \'setuptools-markdown\' "" - ''; - }; - - - rmfuse = super.rmfuse.overridePythonAttrs (old: { - propagatedBuildInputs = (old.propagatedBuildInputs or [ ]) ++ [ self.setuptools ]; - }); - - rtree = super.rtree.overridePythonAttrs (old: { - propagatedNativeBuildInputs = (old.propagatedNativeBuildInputs or [ ]) ++ [ pkgs.libspatialindex ]; - postPatch = '' - substituteInPlace rtree/finder.py --replace \ - "find_library('spatialindex_c')" \ - "'${pkgs.libspatialindex}/lib/libspatialindex_c${pkgs.stdenv.hostPlatform.extensions.sharedLibrary}'" - ''; - }); - - ruamel-yaml = super.ruamel-yaml.overridePythonAttrs ( - old: { - propagatedBuildInputs = (old.propagatedBuildInputs or [ ]) - ++ [ self.ruamel-yaml-clib ]; - } - ); - - scipy = super.scipy.overridePythonAttrs ( - old: - if old.format != "wheel" then { - nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ - [ pkgs.gfortran ] ++ - lib.optional (lib.versionAtLeast super.scipy.version "1.7.0") [ self.cython self.pythran ]; - propagatedBuildInputs = (old.propagatedBuildInputs or [ ]) ++ [ self.pybind11 ]; - setupPyBuildFlags = [ "--fcompiler='gnu95'" ]; - enableParallelBuilding = true; - buildInputs = (old.buildInputs or [ ]) ++ [ self.numpy.blas ]; - preConfigure = '' - sed -i '0,/from numpy.distutils.core/s//import setuptools;from numpy.distutils.core/' setup.py - export NPY_NUM_BUILD_JOBS=$NIX_BUILD_CORES - ''; - preBuild = '' - ln -s ${self.numpy.cfg} site.cfg - ''; - } else old - ); - - scikit-image = super.scikit-image.overridePythonAttrs ( - old: { - nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ - self.cython - self.pythran - self.packaging - self.wheel - self.numpy - ]; - } - ); - - scikit-learn = super.scikit-learn.overridePythonAttrs ( - old: { - buildInputs = (old.buildInputs or [ ]) ++ [ - pkgs.gfortran - pkgs.glibcLocales - ] ++ lib.optionals stdenv.cc.isClang [ - pkgs.llvmPackages.openmp - ]; - - nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ - self.cython - ]; - - enableParallelBuilding = true; - } - ); - - secp256k1 = super.secp256k1.overridePythonAttrs (old: { - nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ pkgs.pkgconfig pkgs.autoconf pkgs.automake pkgs.libtool ]; - buildInputs = (old.buildInputs or [ ]) ++ [ self.pytest-runner ]; - doCheck = false; - # Local setuptools versions like "x.y.post0" confuse an internal check - postPatch = '' - substituteInPlace setup.py \ - --replace 'setuptools_version.' '"${self.setuptools.version}".' - ''; - }); - - shapely = super.shapely.overridePythonAttrs ( - old: { - buildInputs = (old.buildInputs or [ ]) ++ [ pkgs.geos self.cython ]; - inherit (pkgs.python3.pkgs.shapely) patches GEOS_LIBRARY_PATH; - } - ); - - shellcheck-py = super.shellcheck-py.overridePythonAttrs (old: { - - # Make fetching/installing external binaries no-ops - preConfigure = - let - fakeCommand = "type('FakeCommand', (Command,), {'initialize_options': lambda self: None, 'finalize_options': lambda self: None, 'run': lambda self: None})"; - in - '' - substituteInPlace setup.py \ - --replace "'fetch_binaries': fetch_binaries," "'fetch_binaries': ${fakeCommand}," \ - --replace "'install_shellcheck': install_shellcheck," "'install_shellcheck': ${fakeCommand}," - ''; - - propagatedUserEnvPkgs = (old.propagatedUserEnvPkgs or [ ]) ++ [ - pkgs.shellcheck - ]; - - }); - - tables = super.tables.overridePythonAttrs ( - old: { - buildInputs = (old.buildInputs or [ ]) ++ [ self.pywavelets ]; - HDF5_DIR = lib.getDev pkgs.hdf5; - nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ pkgs.pkg-config ]; - propagatedBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ pkgs.hdf5 self.numpy self.numexpr ]; - } - ); - - tempora = super.tempora.overridePythonAttrs ( - old: { - # required for the extra "toml" dependency in setuptools_scm[toml] - buildInputs = (old.buildInputs or [ ]) ++ [ - self.toml - ]; - # disable the removal of pyproject.toml, required because of setuptools_scm - dontPreferSetupPy = true; - } - ); - - tensorboard = super.tensorboard.overridePythonAttrs ( - old: { - buildInputs = (old.buildInputs or [ ]) ++ [ - self.wheel - self.absl-py - ]; - HDF5_DIR = "${pkgs.hdf5}"; - propagatedBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ - pkgs.hdf5 - self.google-auth-oauthlib - self.tensorboard-plugin-wit - self.numpy - self.markdown - self.tensorboard-data-server - self.grpcio - self.protobuf - self.werkzeug - self.absl-py - ]; - } - ); - - tensorflow = super.tensorflow.overridePythonAttrs ( - old: { - postInstall = '' - rm $out/bin/tensorboard - ''; - } - ); - - tensorpack = super.tensorpack.overridePythonAttrs ( - old: { - postPatch = '' - substituteInPlace setup.cfg --replace "# will call find_packages()" "" - ''; - } - ); - - tinycss2 = super.tinycss2.overridePythonAttrs ( - old: { - buildInputs = (old.buildInputs or [ ]) ++ [ self.pytest-runner ]; - } - ); - - # The tokenizers build requires a complex rust setup (cf. nixpkgs override) - # - # Instead of providing a full source build, we use a wheel to keep - # the complexity manageable for now. - tokenizers = super.tokenizers.override { - preferWheel = true; - }; - - torch = lib.makeOverridable - ({ enableCuda ? false - , cudatoolkit ? pkgs.cudatoolkit_10_1 - , pkg ? super.torch - }: pkg.overrideAttrs (old: - { - preConfigure = - if (!enableCuda) then '' - export USE_CUDA=0 - '' else '' - export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${cudatoolkit}/targets/x86_64-linux/lib" - ''; - preFixup = lib.optionalString (!enableCuda) '' - # For some reason pytorch retains a reference to libcuda even if it - # is explicitly disabled with USE_CUDA=0. - find $out -name "*.so" -exec ${pkgs.patchelf}/bin/patchelf --remove-needed libcuda.so.1 {} \; - ''; - buildInputs = - (old.buildInputs or [ ]) - ++ [ self.typing-extensions ] - ++ lib.optionals enableCuda [ - pkgs.linuxPackages.nvidia_x11 - pkgs.nccl.dev - pkgs.nccl.out - ]; - propagatedBuildInputs = [ - self.numpy - self.future - self.typing-extensions - ]; - }) - ) - { }; - - torchvision = lib.makeOverridable - ({ enableCuda ? false - , cudatoolkit ? pkgs.cudatoolkit_10_1 - , pkg ? super.torchvision - }: pkg.overrideAttrs (old: { - - # without that autoPatchelfHook will fail because cudatoolkit is not in LD_LIBRARY_PATH - autoPatchelfIgnoreMissingDeps = true; - buildInputs = (old.buildInputs or [ ]) - ++ [ self.torch ] - ++ lib.optionals enableCuda [ - cudatoolkit - ]; - preConfigure = - if (enableCuda) then '' - export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${self.torch}/${self.python.sitePackages}/torch/lib:${lib.makeLibraryPath [ cudatoolkit "${cudatoolkit}" ]}" - '' else '' - export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${self.torch}/${self.python.sitePackages}/torch/lib" - ''; - })) - { }; - - typeguard = super.typeguard.overridePythonAttrs (old: { - postPatch = '' - substituteInPlace setup.py \ - --replace 'setup()' 'setup(version="${old.version}")' - ''; - }); - - typed_ast = super.typed-ast.overridePythonAttrs (old: { - nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ - self.pytest-runner - ]; - }); - - # nix uses a dash, poetry uses an underscore - typing-extensions = (super.typing_extensions or super.typing-extensions).overridePythonAttrs ( - old: { - buildInputs = (old.buildInputs or [ ]) ++ - lib.optional (lib.versionAtLeast old.version "4.0.0") [ self.flit-core ]; - } - ); - - urwidtrees = super.urwidtrees.overridePythonAttrs ( - old: { - propagatedBuildInputs = (old.propagatedBuildInputs or [ ]) ++ [ - self.urwid - ]; - } - ); - - vose-alias-method = super.vose-alias-method.overridePythonAttrs ( - old: { - postInstall = '' - rm -f $out/LICENSE - ''; - } - ); - - vispy = super.vispy.overrideAttrs ( - old: { - inherit (pkgs.python3.pkgs.vispy) patches; - nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ - self.cython - self.setuptools-scm-git-archive - ]; - } - ); - - uvloop = super.uvloop.overridePythonAttrs ( - old: { - buildInputs = (old.buildInputs or [ ]) ++ lib.optionals stdenv.isDarwin [ - pkgs.darwin.apple_sdk.frameworks.ApplicationServices - pkgs.darwin.apple_sdk.frameworks.CoreServices - ]; - } - ); - - - # Stop infinite recursion by using bootstrapped pkg from nixpkgs - bootstrapped-pip = super.bootstrapped-pip.override { - wheel = (pkgs.python3.pkgs.override { - python = self.python; - }).wheel; - }; - - weasyprint = super.weasyprint.overridePythonAttrs ( - old: { - inherit (pkgs.python3.pkgs.weasyprint) patches; - nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ self.pytest-runner ]; - buildInputs = (old.buildInputs or [ ]) ++ [ self.pytest-runner ]; - } - ); - - web3 = super.web3.overridePythonAttrs { - preConfigure = '' - substituteInPlace setup.py --replace \'setuptools-markdown\' "" - ''; - }; - - weblate-language-data = super.weblate-language-data.overridePythonAttrs ( - old: { - buildInputs = (old.buildInputs or [ ]) ++ [ - self.translate-toolkit - ]; - } - ); - - wheel = - let - isWheel = super.wheel.src.isWheel or false; - # If "wheel" is a pre-built binary wheel - wheelPackage = super.buildPythonPackage { - inherit (super.wheel) pname name version src; - inherit (pkgs.python3.pkgs.wheel) meta; - format = "wheel"; - }; - # If "wheel" is built from source - sourcePackage = (( - pkgs.python3.pkgs.override { - python = self.python; - } - ).wheel.override { - inherit (self) buildPythonPackage bootstrapped-pip setuptools; - }).overrideAttrs (old: { - inherit (super.wheel) pname name version src; - }); - in - if isWheel then wheelPackage else sourcePackage; - - zipp = if super.zipp == null then null else - ( - if lib.versionAtLeast super.zipp.version "2.0.0" then - ( - super.zipp.overridePythonAttrs ( - old: - if (old.format or "pyproject") != "wheel" then { - prePatch = '' - substituteInPlace setup.py --replace \ - 'setuptools.setup()' \ - 'setuptools.setup(version="${super.zipp.version}")' - ''; - } else old - ) - ) else super.zipp - ).overridePythonAttrs ( - old: { - propagatedBuildInputs = (old.propagatedBuildInputs or [ ]) ++ [ - self.toml - ]; - } - ); - - credis = super.credis.overridePythonAttrs ( - old: { - buildInputs = (old.buildInputs or [ ]) ++ [ self.cython ]; - } - ); - - hashids = super.hashids.overridePythonAttrs ( - old: { - buildInputs = (old.buildInputs or [ ]) ++ [ self.flit-core ]; - } - ); - - packaging = super.packaging.overridePythonAttrs ( - old: { - buildInputs = (old.buildInputs or [ ]) ++ - # From 20.5 until 20.7, packaging used flit for packaging (heh) - # See https://github.com/pypa/packaging/pull/352 and https://github.com/pypa/packaging/pull/367 - lib.optional (lib.versionAtLeast old.version "20.5" && lib.versionOlder old.version "20.8") [ self.flit-core ]; - } - ); - - psutil = super.psutil.overridePythonAttrs ( - old: { - buildInputs = (old.buildInputs or [ ]) ++ - lib.optional stdenv.isDarwin pkgs.darwin.apple_sdk.frameworks.IOKit; - } - ); - - sentencepiece = super.sentencepiece.overridePythonAttrs ( - old: { - dontUseCmakeConfigure = true; - nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ - pkgs.pkg-config - pkgs.cmake - pkgs.gperftools - ]; - buildInputs = (old.buildInputs or [ ]) ++ [ - pkgs.sentencepiece - ]; - } - ); - - sentence-transformers = super.sentence-transformers.overridePythonAttrs ( - old: { - buildInputs = - (old.buildInputs or [ ]) - ++ [ self.typing-extensions ]; - } - ); - - supervisor = super.supervisor.overridePythonAttrs ( - old: { - propagatedBuildInputs = (old.propagatedBuildInputs or [ ]) ++ [ - self.meld3 - self.setuptools - ]; - } - ); - - cytoolz = super.cytoolz.overridePythonAttrs ( - old: { - propagatedBuildInputs = (old.propagatedBuildInputs or [ ]) ++ [ self.toolz ]; - } - ); - - # For some reason the toml dependency of tqdm declared here: - # https://github.com/tqdm/tqdm/blob/67130a23646ae672836b971e1086b6ae4c77d930/pyproject.toml#L2 - # is not translated correctly to a nix dependency. - tqdm = super.tqdm.overrideAttrs ( - old: { - buildInputs = [ super.toml ] ++ (old.buildInputs or [ ]); - } - ); - - watchdog = super.watchdog.overrideAttrs ( - old: { - buildInputs = (old.buildInputs or [ ]) - ++ pkgs.lib.optional pkgs.stdenv.isDarwin pkgs.darwin.apple_sdk.frameworks.CoreServices; - } - ); - - # pyee cannot find `vcversioner` and other "setup requirements", so it tries to - # download them from the internet, which only works when nix sandboxing is disabled. - # Additionally, since pyee uses vcversioner to specify its version, we need to do this - # manually specify its version. - pyee = super.pyee.overrideAttrs ( - old: { - postPatch = old.postPatch or "" + '' - sed -i setup.py \ - -e '/setup_requires/,/],/d' \ - -e 's/vcversioner={},/version="${old.version}",/' - ''; - } - ); - - # nixpkgs has setuptools_scm 4.1.2 - # but newrelic has a seemingly unnecessary version constraint for <4 - # So we patch that out - newrelic = super.newrelic.overridePythonAttrs ( - old: { - postPatch = old.postPatch or "" + '' - substituteInPlace setup.py --replace '"setuptools_scm>=3.2,<4"' '"setuptools_scm"' - ''; - } - ); - - wxpython = super.wxpython.overridePythonAttrs (old: - let - localPython = self.python.withPackages (ps: with ps; [ - setuptools - numpy - six - ]); - in - { - DOXYGEN = "${pkgs.doxygen}/bin/doxygen"; - - nativeBuildInputs = with pkgs; [ - which - doxygen - gtk3 - pkg-config - autoPatchelfHook - ] ++ (old.nativeBuildInputs or [ ]); - - buildInputs = with pkgs; [ - gtk3 - webkitgtk - ncurses - SDL2 - xorg.libXinerama - xorg.libSM - xorg.libXxf86vm - xorg.libXtst - xorg.xorgproto - gst_all_1.gstreamer - gst_all_1.gst-plugins-base - libGLU - libGL - libglvnd - mesa - ] ++ old.buildInputs; - - buildPhase = '' - ${localPython.interpreter} build.py -v build_wx - ${localPython.interpreter} build.py -v dox etg --nodoc sip - ${localPython.interpreter} build.py -v build_py - ''; - - installPhase = '' - ${localPython.interpreter} setup.py install --skip-build --prefix=$out - ''; - }); - - marisa-trie = super.marisa-trie.overridePythonAttrs ( - old: { - buildInputs = (old.buildInputs or [ ]) ++ [ self.pytest-runner ]; - } - ); - - ua-parser = super.ua-parser.overridePythonAttrs ( - old: { - propagatedBuildInputs = (old.propagatedBuildInputs or [ ]) ++ [ self.pyyaml ]; - } - ); - - lazy-object-proxy = super.lazy-object-proxy.overridePythonAttrs ( - old: { - # disable the removal of pyproject.toml, required because of setuptools_scm - dontPreferSetupPy = true; - } - ); - - pendulum = super.pendulum.overridePythonAttrs (old: { - # Technically incorrect, but fixes the build error.. - preInstall = lib.optionalString stdenv.isLinux '' - mv --no-clobber ./dist/*.whl $(echo ./dist/*.whl | sed s/'manylinux_[0-9]*_[0-9]*'/'manylinux1'/) - ''; - }); - - pygraphviz = super.pygraphviz.overridePythonAttrs (old: { - nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ pkgs.pkg-config ]; - buildInputs = (old.buildInputs or [ ]) ++ [ pkgs.graphviz ]; - }); - - pyjsg = super.pyjsg.overridePythonAttrs (old: { - buildInputs = (old.buildInputs or [ ]) ++ [ self.pbr ]; - }); - - pyshex = super.pyshex.overridePythonAttrs (old: { - buildInputs = (old.buildInputs or [ ]) ++ [ self.pbr ]; - }); - - pyshexc = super.pyshexc.overridePythonAttrs (old: { - buildInputs = (old.buildInputs or [ ]) ++ [ self.pbr ]; - }); - - pysqlite = super.pysqlite.overridePythonAttrs (old: { - buildInputs = (old.buildInputs or [ ]) ++ [ pkgs.sqlite ]; - }); - - selinux = super.selinux.overridePythonAttrs (old: { - buildInputs = (old.buildInputs or [ ]) ++ [ self.setuptools-scm-git-archive ]; - }); - - shexjsg = super.shexjsg.overridePythonAttrs (old: { - buildInputs = (old.buildInputs or [ ]) ++ [ self.pbr ]; - }); - - sparqlslurper = super.sparqlslurper.overridePythonAttrs (old: { - buildInputs = (old.buildInputs or [ ]) ++ [ self.pbr ]; - }); - - tomli = super.tomli.overridePythonAttrs (old: { - nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ self.flit-core ]; - }); - - uwsgi = super.uwsgi.overridePythonAttrs (old: { - buildInputs = (old.buildInputs or [ ]) ++ [ pkgs.ncurses ]; - sourceRoot = "."; - }); - - wcwidth = super.wcwidth.overridePythonAttrs (old: { - propagatedBuildInputs = (old.propagatedBuildInputs or [ ]) ++ - lib.optional self.isPy27 (self.backports-functools-lru-cache or self.backports_functools_lru_cache) - ; - }); - - wtforms = super.wtforms.overridePythonAttrs (old: { - buildInputs = (old.buildInputs or [ ]) ++ [ self.Babel ]; - }); -} diff --git a/pkgs/development/tools/poetry2nix/poetry2nix/overrides/build-systems.json b/pkgs/development/tools/poetry2nix/poetry2nix/overrides/build-systems.json new file mode 100644 index 000000000000..e3c74473b8cc --- /dev/null +++ b/pkgs/development/tools/poetry2nix/poetry2nix/overrides/build-systems.json @@ -0,0 +1,1557 @@ +{ + "HTSeq": [ + "cython" + ], + "PyStemmer": [ + "cython" + ], + "adguardhome": [ + "poetry-core" + ], + "aesara": [ + "cython" + ], + "aioambient": [ + "poetry-core" + ], + "aioboto3": [ + "poetry" + ], + "aiocurrencylayer": [ + "poetry-core" + ], + "aioeafm": [ + "poetry" + ], + "aiofiles": [ + "poetry-core" + ], + "aioflo": [ + "poetry-core" + ], + "aioguardian": [ + "poetry-core" + ], + "aiohomekit": [ + "poetry-core" + ], + "aiohttp-remotes": [ + "flitBuildHook" + ], + "aioitertools": [ + "flit-core" + ], + "aiojobs": [ + "flitBuildHook" + ], + "aiokafka": [ + "cython" + ], + "aiomultiprocess": [ + "flit-core" + ], + "aiomusiccast": [ + "poetry-core" + ], + "aionotion": [ + "poetry-core" + ], + "aiopvpc": [ + "poetry-core" + ], + "aiorecollect": [ + "poetry-core" + ], + "aioresponses": [ + "pbr" + ], + "aioridwell": [ + "poetry-core" + ], + "aiorun": [ + "flitBuildHook" + ], + "aiosqlite": [ + "flit-core" + ], + "aiosteamist": [ + "poetry-core" + ], + "aioswitcher": [ + "poetry-core" + ], + "aiowatttime": [ + "poetry-core" + ], + "ambee": [ + "poetry-core" + ], + "amqtt": [ + "poetry-core" + ], + "apache-beam": [ + "cython" + ], + "argon2_cffi": [ + "flitBuildHook" + ], + "aria2p": [ + "poetry" + ], + "astropy": [ + "cython" + ], + "async-dns": [ + "poetry-core" + ], + "asyncmy": [ + "cython", + "poetry-core" + ], + "asyncstdlib": [ + "flitBuildHook" + ], + "atomman": [ + "cython" + ], + "autarco": [ + "poetry-core" + ], + "authcaptureproxy": [ + "poetry-core" + ], + "awesomeversion": [ + "poetry-core" + ], + "aws-error-utils": [ + "poetry" + ], + "backcall": [ + "flit-core" + ], + "backoff": [ + "poetry" + ], + "bandit": [ + "pbr" + ], + "bash_kernel": [ + "flitBuildHook" + ], + "bimmer-connected": [ + "pbr" + ], + "blis": [ + "cython" + ], + "boltztrap2": [ + "cython" + ], + "build": [ + "flit-core" + ], + "bx-python": [ + "cython" + ], + "cartopy": [ + "cython" + ], + "cassandra-driver": [ + "cython" + ], + "cattrs": [ + "poetry-core" + ], + "censys": [ + "poetry-core" + ], + "cftime": [ + "cython" + ], + "chispa": [ + "poetry-core" + ], + "ciscoconfparse": [ + "poetry-core" + ], + "cleo": [ + "poetry-core" + ], + "cliff": [ + "pbr" + ], + "clikit": [ + "poetry-core" + ], + "collections-extended": [ + "poetry-core" + ], + "colorclass": [ + "poetry" + ], + "colorhash": [ + "poetry" + ], + "commitizen": [ + "poetry-core" + ], + "confuse": [ + "flit-core", + "flitBuildHook" + ], + "cpyparsing": [ + "cython" + ], + "crashtest": [ + "poetry-core" + ], + "credis": [ + "cython", + "poetry-core" + ], + "cssselect2": [ + "flit" + ], + "cwcwidth": [ + "cython" + ], + "cyclonedx-python-lib": [ + "poetry-core" + ], + "cymem": [ + "cython" + ], + "cypari2": [ + "cython" + ], + "cysignals": [ + "cython" + ], + "datrie": [ + "cython" + ], + "ddtrace": [ + "cython" + ], + "debtcollector": [ + "pbr" + ], + "deezer-python": [ + "poetry-core" + ], + "diagrams": [ + "poetry-core" + ], + "dipy": [ + "cython" + ], + "discovery30303": [ + "poetry-core" + ], + "django-graphiql-debug-toolbar": [ + "poetry-core" + ], + "django-timezone-field": [ + "poetry-core" + ], + "dnspython": [ + "poetry-core" + ], + "doc8": [ + "pbr" + ], + "dtlssocket": [ + "cython" + ], + "duckdb": [ + "pybind11" + ], + "duckdb-engine": [ + "poetry-core" + ], + "dunamai": [ + "poetry-core" + ], + "dynd": [ + "cython" + ], + "ecs-logging": [ + "flit-core", + "flitBuildHook" + ], + "editdistance": [ + "cython" + ], + "eebrightbox": [ + "pbr" + ], + "eiswarnung": [ + "poetry-core" + ], + "elegy": [ + "poetry" + ], + "elgato": [ + "poetry-core" + ], + "elkm1-lib": [ + "poetry-core" + ], + "elmax": [ + "poetry-core" + ], + "entrypoints": [ + "flit" + ], + "enturclient": [ + "poetry-core" + ], + "enumatch": [ + "poetry" + ], + "fastapi": [ + "flitBuildHook" + ], + "fastapi-restful": [ + "poetry" + ], + "fastavro": [ + "cython" + ], + "fastdtw": [ + "cython" + ], + "fhconfparser": [ + "poetry-core" + ], + "finalfusion": [ + "cython" + ], + "fixtures": [ + "pbr" + ], + "flake8-debugger": [ + "poetry-core" + ], + "flake8-print": [ + "poetry-core" + ], + "flatten-dict": [ + "poetry-core" + ], + "flipr-api": [ + "poetry-core" + ], + "flit": [ + "flit-core" + ], + "formbox": [ + "flitBuildHook" + ], + "fpylll": [ + "cython" + ], + "freebox-api": [ + "poetry-core" + ], + "frozenlist": [ + "cython" + ], + "funcparserlib": [ + "poetry-core" + ], + "furo": [ + "flitBuildHook" + ], + "galario": [ + "cython" + ], + "gaphas": [ + "poetry-core" + ], + "garages-amsterdam": [ + "poetry-core" + ], + "gbinder-python": [ + "cython" + ], + "generic": [ + "poetry-core" + ], + "glances-api": [ + "poetry-core" + ], + "gpy": [ + "cython" + ], + "gpyopt": [ + "cython" + ], + "gradient-utils": [ + "poetry-core" + ], + "graphql-core": [ + "poetry-core" + ], + "graphql-relay": [ + "poetry-core" + ], + "gridnet": [ + "poetry-core" + ], + "grpcio": [ + "cython" + ], + "gsd": [ + "cython" + ], + "gssapi": [ + "cython" + ], + "gudhi": [ + "cython" + ], + "gvm-tools": [ + "poetry-core" + ], + "h3": [ + "cython" + ], + "h5py": [ + "cython" + ], + "h5py-mpi": [ + "cython" + ], + "hacking": [ + "pbr" + ], + "hashids": [ + "flit-core" + ], + "hdate": [ + "poetry-core" + ], + "hdbscan": [ + "cython" + ], + "hdmedians": [ + "cython" + ], + "hidapi": [ + "cython" + ], + "hmmlearn": [ + "cython" + ], + "homeassistant-pyozw": [ + "cython" + ], + "html5lib": [ + "flit-core" + ], + "hypercorn": [ + "poetry-core" + ], + "hyperion-py": [ + "poetry-core" + ], + "hypothesis-auto": [ + "poetry" + ], + "hypothesis-graphql": [ + "poetry" + ], + "ibis-framework": [ + "poetry-core" + ], + "icmplib": [ + "pbr" + ], + "idasen": [ + "poetry-core" + ], + "imagecodecs-lite": [ + "cython" + ], + "immutabledict": [ + "poetry-core" + ], + "inquirer": [ + "poetry-core" + ], + "installer": [ + "flit-core" + ], + "iodata": [ + "cython" + ], + "ipfshttpclient": [ + "flitBuildHook" + ], + "ipwhl": [ + "flitBuildHook" + ], + "isort": [ + "poetry-core" + ], + "jedi-language-server": [ + "poetry" + ], + "jeepney": [ + "flit-core" + ], + "jenkins-job-builder": [ + "pbr" + ], + "jinja2-git": [ + "poetry-core" + ], + "jschema-to-python": [ + "pbr" + ], + "json-schema-for-humans": [ + "poetry-core" + ], + "jupyter-server": [ + "jupyter-packaging" + ], + "jupyterlab": [ + "jupyter-packaging" + ], + "keystoneauth1": [ + "pbr" + ], + "kivy": [ + "cython" + ], + "langcodes": [ + "poetry-core" + ], + "language-data": [ + "poetry-core" + ], + "lc7001": [ + "poetry-core" + ], + "ldappool": [ + "pbr" + ], + "libgpuarray": [ + "cython" + ], + "libmr": [ + "cython" + ], + "libtmux": [ + "poetry-core" + ], + "licensecheck": [ + "poetry-core" + ], + "line_profiler": [ + "cython" + ], + "linecache2": [ + "pbr" + ], + "llfuse": [ + "cython" + ], + "loca": [ + "flitBuildHook" + ], + "lockfile": [ + "pbr" + ], + "luftdaten": [ + "poetry-core" + ], + "lupa": [ + "cython" + ], + "lxml": [ + "cython" + ], + "lz4": [ + "pkgconfig" + ], + "maestral": [ + "pbr" + ], + "manimpango": [ + "cython" + ], + "marisa-trie": [ + "cython" + ], + "mask-rcnn": [ + "cython" + ], + "matrix-nio": [ + "poetry-core" + ], + "mcstatus": [ + "poetry-core" + ], + "mdformat": [ + "poetry-core" + ], + "mdurl": [ + "flit-core" + ], + "mediafile": [ + "flit-core", + "flitBuildHook" + ], + "memory-allocator": [ + "cython" + ], + "metprint": [ + "poetry-core" + ], + "mkdocs-autorefs": [ + "pdm-pep517", + "poetry" + ], + "mkdocs-gen-files": [ + "poetry" + ], + "mkdocs-jupyter": [ + "poetry-core" + ], + "mkdocs-literate-nav": [ + "poetry" + ], + "mkdocstrings": [ + "pdm-pep517" + ], + "mock": [ + "pbr" + ], + "mongomock": [ + "pbr" + ], + "monosat": [ + "cython" + ], + "motioneye-client": [ + "poetry-core" + ], + "mox3": [ + "pbr" + ], + "msgpack-numpy": [ + "cython" + ], + "msoffcrypto-tool": [ + "poetry-core" + ], + "munch": [ + "pbr" + ], + "murmurhash": [ + "cython" + ], + "myhome": [ + "poetry-core" + ], + "mypy-boto3-builder": [ + "poetry-core" + ], + "nats-python": [ + "poetry-core" + ], + "nbclassic": [ + "jupyter-packaging" + ], + "net2grid": [ + "poetry-core" + ], + "netcdf4": [ + "cython" + ], + "netdata": [ + "poetry-core" + ], + "newversion": [ + "poetry-core" + ], + "nghttp2": [ + "cython" + ], + "nitime": [ + "cython" + ], + "nixpkgs": [ + "pbr" + ], + "nkdfu": [ + "flitBuildHook" + ], + "notus-scanner": [ + "poetry-core" + ], + "ntc-templates": [ + "poetry-core" + ], + "numcodecs": [ + "cython" + ], + "numpy": [ + "cython" + ], + "numpy-stl": [ + "cython" + ], + "omnikinverter": [ + "poetry-core" + ], + "open-meteo": [ + "poetry-core" + ], + "openapi-schema-validator": [ + "poetry-core" + ], + "openapi-spec-validator": [ + "poetry-core" + ], + "openevsewifi": [ + "poetry-core" + ], + "openstackdocstheme": [ + "pbr" + ], + "openstacksdk": [ + "pbr" + ], + "openvino": [ + "cython" + ], + "ormar": [ + "poetry-core" + ], + "os-service-types": [ + "pbr" + ], + "osc-lib": [ + "pbr" + ], + "oslo-concurrency": [ + "pbr" + ], + "oslo-config": [ + "pbr" + ], + "oslo-context": [ + "pbr" + ], + "oslo-db": [ + "pbr" + ], + "oslo-i18n": [ + "pbr" + ], + "oslo-log": [ + "pbr" + ], + "oslo-serialization": [ + "pbr" + ], + "oslo-utils": [ + "pbr" + ], + "oslotest": [ + "pbr" + ], + "p1monitor": [ + "poetry-core" + ], + "paddle-client": [ + "poetry" + ], + "palace": [ + "cython" + ], + "pandas": [ + "cython" + ], + "pastel": [ + "poetry-core" + ], + "pathable": [ + "poetry-core" + ], + "peewee": [ + "cython" + ], + "pendulum": [ + "poetry-core" + ], + "pep440-version-utils": [ + "poetry" + ], + "pep517": [ + "flit-core" + ], + "pex": [ + "flit-core", + "flitBuildHook" + ], + "pipenv-poetry-migrate": [ + "poetry" + ], + "pixelmatch": [ + "poetry-core" + ], + "poetry": [ + "poetry-core" + ], + "poetry2conda": [ + "poetry" + ], + "pomegranate": [ + "cython" + ], + "pontos": [ + "poetry-core" + ], + "pot": [ + "cython" + ], + "pplpy": [ + "cython" + ], + "preprocess-cancellation": [ + "poetry-core" + ], + "preshed": [ + "cython" + ], + "primecountpy": [ + "cython" + ], + "primer3": [ + "cython" + ], + "prometheus-fastapi-instrumentator": [ + "poetry" + ], + "ptyprocess": [ + "flit-core" + ], + "publication": [ + "flit" + ], + "purepng": [ + "cython" + ], + "pvo": [ + "poetry-core" + ], + "py-synologydsm-api": [ + "poetry-core" + ], + "py17track": [ + "poetry-core" + ], + "pyairnow": [ + "poetry" + ], + "pyairvisual": [ + "poetry-core" + ], + "pyarrow": [ + "cython" + ], + "pyaussiebb": [ + "poetry-core" + ], + "pycangjie": [ + "cython" + ], + "pycapnp": [ + "cython" + ], + "pycep-parser": [ + "poetry-core" + ], + "pyclipper": [ + "cython" + ], + "pycocotools": [ + "cython" + ], + "pydantic": [ + "cython" + ], + "pydy": [ + "cython" + ], + "pyebus": [ + "poetry-core" + ], + "pyemd": [ + "cython" + ], + "pyfftw": [ + "cython" + ], + "pyflunearyou": [ + "poetry-core" + ], + "pygame_sdl2": [ + "cython" + ], + "pygeos": [ + "cython" + ], + "pyhumps": [ + "poetry-core" + ], + "pyiqvia": [ + "poetry-core" + ], + "pyjet": [ + "cython" + ], + "pyjsg": [ + "pbr" + ], + "pykka": [ + "poetry-core" + ], + "pyliblo": [ + "cython" + ], + "pymatgen": [ + "cython" + ], + "pymaven-patch": [ + "pbr" + ], + "pymfy": [ + "poetry-core" + ], + "pymssql": [ + "cython" + ], + "pynixutil": [ + "poetry" + ], + "pynuki": [ + "poetry-core" + ], + "pyopencl": [ + "pybind11" + ], + "pyopenuv": [ + "poetry-core" + ], + "pyopnsense": [ + "pbr" + ], + "pyoverkiz": [ + "poetry-core" + ], + "pypass": [ + "pbr" + ], + "pyphen": [ + "flit" + ], + "pypika-tortoise": [ + "poetry-core" + ], + "pypoolstation": [ + "poetry-core" + ], + "pyppeteer": [ + "poetry-core" + ], + "pyprecice": [ + "cython" + ], + "pyproj": [ + "cython" + ], + "pyproject-flake8": [ + "flit-core" + ], + "pyquil": [ + "poetry-core" + ], + "pyregion": [ + "cython" + ], + "pyrmvtransport": [ + "flit" + ], + "pysam": [ + "cython" + ], + "pyshex": [ + "pbr" + ], + "pyshexc": [ + "pbr" + ], + "pysigma": [ + "poetry-core" + ], + "pysigma-backend-splunk": [ + "poetry-core" + ], + "pysigma-pipeline-crowdstrike": [ + "poetry-core" + ], + "pysigma-pipeline-sysmon": [ + "poetry-core" + ], + "pysmf": [ + "cython" + ], + "pysml": [ + "poetry-core" + ], + "pysnow": [ + "poetry" + ], + "pysptk": [ + "cython" + ], + "pytaglib": [ + "cython" + ], + "pytest-celery": [ + "flitBuildHook" + ], + "pytest-check": [ + "flitBuildHook" + ], + "pytest-cid": [ + "flitBuildHook" + ], + "pytest-httpserver": [ + "poetry-core" + ], + "pytest-mockservers": [ + "poetry-core" + ], + "pytest-profiling": [ + "setuptools-git" + ], + "pytest-raisin": [ + "flit-core", + "flitBuildHook" + ], + "pytest-socket": [ + "poetry-core" + ], + "python-awair": [ + "poetry-core" + ], + "python-cinderclient": [ + "pbr" + ], + "python-csxcad": [ + "cython" + ], + "python-fontconfig": [ + "cython" + ], + "python-glanceclient": [ + "pbr" + ], + "python-gvm": [ + "poetry-core" + ], + "python-heatclient": [ + "pbr" + ], + "python-ironicclient": [ + "pbr" + ], + "python-jenkins": [ + "pbr" + ], + "python-kasa": [ + "poetry-core" + ], + "python-keystoneclient": [ + "pbr" + ], + "python-manilaclient": [ + "pbr" + ], + "python-miio": [ + "poetry", + "poetry-core" + ], + "python-novaclient": [ + "pbr" + ], + "python-openems": [ + "cython" + ], + "python-openstackclient": [ + "pbr" + ], + "python-pkcs11": [ + "cython" + ], + "python-songpal": [ + "poetry-core" + ], + "python-swiftclient": [ + "pbr" + ], + "python_openzwave": [ + "cython" + ], + "pytile": [ + "poetry-core" + ], + "pytkdocs": [ + "pdm-pep517" + ], + "pytzdata": [ + "poetry" + ], + "pyvera": [ + "poetry-core" + ], + "pywavelets": [ + "cython" + ], + "pywbem": [ + "pbr" + ], + "pywemo": [ + "poetry-core" + ], + "pyworld": [ + "cython" + ], + "pyyaml": [ + "cython" + ], + "pyyaml-env-tag": [ + "flit-core" + ], + "qcs-api-client": [ + "poetry-core" + ], + "qiskit-aer": [ + "cython" + ], + "qiskit-terra": [ + "cython" + ], + "questionary": [ + "poetry-core" + ], + "qutip": [ + "cython" + ], + "radios": [ + "poetry-core" + ], + "rasterio": [ + "cython" + ], + "reedsolo": [ + "cython" + ], + "regenmaschine": [ + "poetry-core" + ], + "remarshal": [ + "poetry-core" + ], + "renault-api": [ + "poetry-core" + ], + "rencode": [ + "cython" + ], + "reproject": [ + "cython" + ], + "requests-cache": [ + "poetry-core" + ], + "requests-mock": [ + "pbr" + ], + "requests-unixsocket": [ + "pbr" + ], + "requestsexceptions": [ + "pbr" + ], + "requirements-parser": [ + "poetry-core" + ], + "resampy": [ + "cython" + ], + "retry": [ + "pbr" + ], + "rich": [ + "poetry-core" + ], + "ripser": [ + "cython" + ], + "rmcl": [ + "poetry-core" + ], + "rmfuse": [ + "poetry-core" + ], + "rmrl": [ + "poetry-core" + ], + "rokuecp": [ + "poetry" + ], + "roombapy": [ + "poetry-core" + ], + "roonapi": [ + "poetry-core" + ], + "rsa": [ + "poetry-core" + ], + "rtmidi-python": [ + "cython" + ], + "rtmixer": [ + "cython" + ], + "sanic": [ + "poetry-core" + ], + "sarif-om": [ + "pbr" + ], + "scikit-bio": [ + "cython" + ], + "scikit-build": [ + "cython" + ], + "scikit-image": [ + "cython" + ], + "scikit-learn": [ + "cython" + ], + "scikit-learn-extra": [ + "cython" + ], + "scikit-survival": [ + "cython" + ], + "scikit-tda": [ + "cython" + ], + "scikitimage": [ + "cython" + ], + "scikitlearn": [ + "cython" + ], + "scikits-odes": [ + "cython" + ], + "scipy": [ + "cython" + ], + "seabreeze": [ + "cython" + ], + "seccomp": [ + "cython" + ], + "sentinel": [ + "poetry-core" + ], + "sfepy": [ + "cython" + ], + "shapely": [ + "cython" + ], + "shexjsg": [ + "pbr" + ], + "simplisafe-python": [ + "poetry-core" + ], + "single-source": [ + "poetry-core" + ], + "single-version": [ + "poetry-core" + ], + "slowapi": [ + "poetry-core" + ], + "solo-python": [ + "flitBuildHook" + ], + "spacy-pkuseg": [ + "cython" + ], + "sparqlslurper": [ + "pbr" + ], + "sphinx-inline-tabs": [ + "flitBuildHook" + ], + "sphinx-jinja": [ + "pbr" + ], + "sphinxcontrib-apidoc": [ + "pbr" + ], + "sphinxcontrib-fulltoc": [ + "pbr" + ], + "sphinxcontrib-spelling": [ + "pbr" + ], + "spiderpy": [ + "poetry-core" + ], + "sqlalchemy-migrate": [ + "pbr" + ], + "sqlalchemy_migrate": [ + "pbr" + ], + "srsly": [ + "cython" + ], + "ssdp": [ + "pbr" + ], + "stack-data": [ + "cython" + ], + "staticjinja": [ + "poetry-core" + ], + "statmake": [ + "poetry-core" + ], + "statsmodels": [ + "cython" + ], + "stestr": [ + "pbr" + ], + "stevedore": [ + "pbr" + ], + "strawberry-graphql": [ + "poetry" + ], + "streaming-form-data": [ + "cython" + ], + "structlog": [ + "flitBuildHook" + ], + "structlog-sentry": [ + "poetry-core" + ], + "subunit2sql": [ + "pbr" + ], + "sumo": [ + "cython" + ], + "surepy": [ + "poetry-core" + ], + "swift": [ + "pbr" + ], + "swspotify": [ + "poetry-core" + ], + "symengine": [ + "cython" + ], + "synologydsm-api": [ + "poetry-core" + ], + "tables": [ + "cython" + ], + "tailscale": [ + "poetry-core" + ], + "tarsafe": [ + "poetry" + ], + "tempest": [ + "pbr" + ], + "tenacity": [ + "pbr" + ], + "terminaltables": [ + "poetry" + ], + "tern": [ + "pbr" + ], + "tesla-wall-connector": [ + "poetry-core" + ], + "teslajsonpy": [ + "poetry-core" + ], + "tess": [ + "cython" + ], + "tesserocr": [ + "cython" + ], + "testpath": [ + "flit" + ], + "testrepository": [ + "pbr" + ], + "testresources": [ + "pbr" + ], + "testtools": [ + "pbr" + ], + "textual": [ + "poetry-core" + ], + "thinc": [ + "cython" + ], + "threadpoolctl": [ + "flitBuildHook" + ], + "thriftpy2": [ + "cython" + ], + "tikzplotlib": [ + "flit-core" + ], + "tinycss": [ + "cython" + ], + "tinycss2": [ + "flitBuildHook" + ], + "tinydb": [ + "poetry-core" + ], + "toggl-cli": [ + "pbr" + ], + "toml-sort": [ + "poetry" + ], + "tomli": [ + "flit-core" + ], + "tomli-w": [ + "flit-core" + ], + "tomlkit": [ + "poetry-core" + ], + "tortoise-orm": [ + "poetry-core" + ], + "traceback2": [ + "pbr" + ], + "transmission-rpc": [ + "poetry-core" + ], + "treeo": [ + "poetry-core" + ], + "treex": [ + "poetry-core" + ], + "ttls": [ + "poetry-core" + ], + "twentemilieu": [ + "poetry-core" + ], + "typer": [ + "flit-core" + ], + "typical": [ + "poetry-core" + ], + "typing-extensions": [ + "flit-core" + ], + "unpaddedbase64": [ + "poetry-core" + ], + "url-normalize": [ + "poetry-core" + ], + "vehicle": [ + "poetry-core" + ], + "virtualenv": [ + "cython" + ], + "virtualenvwrapper": [ + "pbr" + ], + "vispy": [ + "cython" + ], + "wakeonlan": [ + "poetry-core" + ], + "weasyprint": [ + "flit-core" + ], + "wled": [ + "poetry-core" + ], + "word2vec": [ + "cython" + ], + "wordcloud": [ + "cython" + ], + "xdg": [ + "poetry-core" + ], + "xpath-expressions": [ + "poetry-core" + ], + "yaspin": [ + "poetry-core" + ], + "yoda": [ + "cython" + ], + "zeversolarlocal": [ + "flit-core", + "flitBuildHook" + ] +} diff --git a/pkgs/development/tools/poetry2nix/poetry2nix/overrides/default.nix b/pkgs/development/tools/poetry2nix/poetry2nix/overrides/default.nix new file mode 100644 index 000000000000..5439f1814dc5 --- /dev/null +++ b/pkgs/development/tools/poetry2nix/poetry2nix/overrides/default.nix @@ -0,0 +1,2294 @@ +{ pkgs ? import { } +, lib ? pkgs.lib +, stdenv ? pkgs.stdenv +}: + +let + addBuildSystem = + { self + , drv + , attr + }: + let + buildSystem = if attr == "cython" then self.python.pythonForBuild.pkgs.cython else self.${attr}; + in + ( + # Flit only works on Python3 + if (attr == "flit-core" || attr == "flit") && !self.isPy3k then drv + else + drv.overridePythonAttrs ( + old: + # We do not need the build system for wheels. + if old ? format && old.format == "wheel" then + { } + else + { + nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ self.${attr} ]; + } + ) + ); + + +in +lib.composeManyExtensions [ + + # NixOps + (self: super: + lib.mapAttrs (_: v: addBuildSystem { inherit self; drv = v; attr = "poetry"; }) (lib.filterAttrs (n: _: lib.strings.hasPrefix "nixops" n) super) + // { + # NixOps >=2 dependency + nixos-modules-contrib = addBuildSystem { inherit self; drv = super.nixos-modules-contrib; attr = "poetry"; }; + } + ) + + # Add build systems + (self: super: + let + buildSystems = lib.importJSON ./build-systems.json; + in + lib.mapAttrs + (attr: systems: builtins.foldl' + (drv: attr: addBuildSystem { + inherit drv self attr; + }) + super.${attr} + systems) + buildSystems) + + # Build fixes + (self: super: + let + inherit (self.python) stdenv; + inherit (pkgs.buildPackages) pkg-config; + inherit (pkgs) buildPackages; + pyBuildPackages = self.python.pythonForBuild.pkgs; + + in + + { + automat = super.automat.overridePythonAttrs ( + old: rec { + propagatedBuildInputs = (old.propagatedBuildInputs or [ ]) ++ [ self.m2r ]; + } + ); + + aiohttp-swagger3 = super.aiohttp-swagger3.overridePythonAttrs ( + old: { + nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ self.pytest-runner ]; + } + ); + + ansible = super.ansible.overridePythonAttrs ( + old: { + # Inputs copied from nixpkgs as ansible doesn't specify it's dependencies + # in a correct manner. + propagatedBuildInputs = (old.propagatedBuildInputs or [ ]) ++ [ + self.pycrypto + self.paramiko + self.jinja2 + self.pyyaml + self.httplib2 + self.six + self.netaddr + self.dnspython + self.jmespath + self.dopy + self.ncclient + ]; + } // lib.optionalAttrs (lib.versionOlder old.version "5.0") { + prePatch = pkgs.python.pkgs.ansible.prePatch or ""; + postInstall = pkgs.python.pkgs.ansible.postInstall or ""; + } + ); + + ansible-lint = super.ansible-lint.overridePythonAttrs ( + old: { + buildInputs = (old.buildInputs or [ ]) ++ [ self.setuptools-scm-git-archive ]; + preBuild = '' + export HOME=$(mktemp -d) + ''; + } + ); + + argcomplete = super.argcomplete.overridePythonAttrs ( + old: rec { + buildInputs = (old.buildInputs or [ ]) ++ [ self.importlib-metadata ]; + } + ); + + arpeggio = super.arpeggio.overridePythonAttrs ( + old: { + nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ self.pytest-runner ]; + } + ); + + astroid = super.astroid.overridePythonAttrs ( + old: rec { + buildInputs = (old.buildInputs or [ ]) ++ [ self.pytest-runner ]; + } + ); + + av = super.av.overridePythonAttrs ( + old: { + nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ + pkg-config + ]; + buildInputs = (old.buildInputs or [ ]) ++ [ pkgs.ffmpeg_4 ]; + } + ); + + argon2-cffi = + if (lib.versionAtLeast super.argon2-cffi.version "21.2.0") then + addBuildSystem + { + inherit self; + drv = super.argon2-cffi; + attr = "flit-core"; + } else super.argon2-cffi; + + bcrypt = super.bcrypt.overridePythonAttrs ( + old: { + buildInputs = (old.buildInputs or [ ]) ++ [ pkgs.libffi ]; + } + ); + + bjoern = super.bjoern.overridePythonAttrs ( + old: { + buildInputs = (old.nativeBuildInputs or [ ]) ++ [ pkgs.libev ]; + } + ); + + borgbackup = super.borgbackup.overridePythonAttrs ( + old: { + BORG_OPENSSL_PREFIX = pkgs.openssl.dev; + nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ pkg-config ]; + buildInputs = (old.buildInputs or [ ]) ++ [ pkgs.openssl pkgs.acl ]; + } + ); + + cairocffi = super.cairocffi.overridePythonAttrs ( + old: { + inherit (pkgs.python3.pkgs.cairocffi) patches; + buildInputs = (old.buildInputs or [ ]) ++ [ self.pytest-runner ]; + } + ); + + cairosvg = super.cairosvg.overridePythonAttrs ( + old: { + buildInputs = (old.buildInputs or [ ]) ++ [ self.pytest-runner ]; + } + ); + + cattrs = + let + drv = super.cattrs; + in + if drv.version == "1.10.0" then + drv.overridePythonAttrs + (old: { + # 1.10.0 contains a pyproject.toml that requires a pre-release Poetry + # We can avoid using Poetry and use the generated setup.py + preConfigure = old.preConfigure or "" + '' + rm pyproject.toml + ''; + }) else drv; + + ccxt = super.ccxt.overridePythonAttrs (old: { + preBuild = '' + ln -s README.{rst,md} + ''; + }); + + celery = super.celery.overridePythonAttrs (old: { + propagatedBuildInputs = (old.propagatedBuildInputs or [ ]) ++ [ self.setuptools ]; + }); + + cssselect2 = super.cssselect2.overridePythonAttrs ( + old: { + buildInputs = (old.buildInputs or [ ]) ++ [ self.pytest-runner ]; + } + ); + + cffi = + # cffi is bundled with pypy + if self.python.implementation == "pypy" then null else + ( + super.cffi.overridePythonAttrs ( + old: { + nativeBuildInputs = old.nativeBuildInputs or [ ] ++ [ pkg-config ]; + buildInputs = old.buildInputs or [ ] ++ [ pkgs.libffi ]; + prePatch = (old.prePatch or "") + lib.optionalString stdenv.isDarwin '' + # Remove setup.py impurities + substituteInPlace setup.py --replace "'-iwithsysroot/usr/include/ffi'" "" + substituteInPlace setup.py --replace "'/usr/include/ffi'," "" + substituteInPlace setup.py --replace '/usr/include/libffi' '${lib.getDev pkgs.libffi}/include' + ''; + + } + ) + ); + + cloudflare = super.cloudflare.overridePythonAttrs ( + old: { + postPatch = '' + rm -rf examples/* + ''; + } + ); + + colour = super.colour.overridePythonAttrs ( + old: { + buildInputs = (old.buildInputs or [ ]) ++ [ self.d2to1 ]; + } + ); + + coincurve = super.coincurve.overridePythonAttrs ( + old: { + # package setup logic + LIB_DIR = "${lib.getLib pkgs.secp256k1}/lib"; + + # for actual C toolchain build + NIX_CFLAGS_COMPILE = "-I ${lib.getDev pkgs.secp256k1}/include"; + NIX_LDFLAGS = "-L ${lib.getLib pkgs.secp256k1}/lib"; + } + ); + + configparser = super.configparser.overridePythonAttrs ( + old: { + buildInputs = (old.buildInputs or [ ]) ++ [ + self.toml + ]; + } + ); + + confluent-kafka = super.confluent-kafka.overridePythonAttrs ( + old: { + buildInputs = (old.buildInputs or [ ]) ++ [ + pkgs.rdkafka + ]; + } + ); + + cryptography = + let + getCargoHash = version: { + "35.0.0" = "sha256-tQoQfo+TAoqAea86YFxyj/LNQCiViu5ij/3wj7ZnYLI="; + "36.0.0" = "sha256-Y6TuW7AryVgSvZ6G8WNoDIvi+0tvx8ZlEYF5qB0jfNk="; + "36.0.1" = "sha256-kozYXkqt1Wpqyo9GYCwN08J+zV92ZWFJY/f+rulxmeQ="; + "36.0.2" = "1a0ni1a3dbv2dvh6gx2i54z8v5j9m6asqg97kkv7gqb1ivihsbp8"; + }.${version} or null; + sha256 = getCargoHash super.cryptography.version; + scrypto = + if lib.versionAtLeast super.cryptography.version "35" && sha256 == null then + ( + super.cryptography.override { preferWheel = true; } + ) else super.cryptography; + in + scrypto.overridePythonAttrs + ( + old: { + nativeBuildInputs = (old.nativeBuildInputs or [ ]) + ++ lib.optional (lib.versionAtLeast old.version "3.4") [ self.setuptools-rust ] + ++ lib.optional (!self.isPyPy) pyBuildPackages.cffi + ++ lib.optional (lib.versionAtLeast old.version "3.5") + (with pkgs.rustPlatform; [ cargoSetupHook rust.cargo rust.rustc ]); + buildInputs = (old.buildInputs or [ ]) ++ [ pkgs.openssl ] + ++ lib.optionals stdenv.isDarwin [ pkgs.darwin.apple_sdk.frameworks.Security pkgs.libiconv ]; + propagatedBuildInputs = old.propagatedBuildInputs or [ ] ++ [ self.cffi ]; + } // lib.optionalAttrs (lib.versionAtLeast old.version "3.4" && lib.versionOlder old.version "3.5") { + CRYPTOGRAPHY_DONT_BUILD_RUST = "1"; + } // lib.optionalAttrs (lib.versionAtLeast old.version "35" && sha256 != null) rec { + cargoDeps = + pkgs.rustPlatform.fetchCargoTarball { + src = old.src; + sourceRoot = "${old.pname}-${old.version}/${cargoRoot}"; + name = "${old.pname}-${old.version}"; + inherit sha256; + }; + cargoRoot = "src/rust"; + } + ); + + cyclonedx-python-lib = super.cyclonedx-python-lib.overridePythonAttrs (old: { + propagatedBuildInputs = (old.propagatedBuildInputs or [ ]) ++ [ self.setuptools ]; + postPatch = '' + substituteInPlace setup.py --replace 'setuptools>=50.3.2,<51.0.0' 'setuptools' + ''; + }); + + daphne = super.daphne.overridePythonAttrs (old: { + postPatch = '' + substituteInPlace setup.py --replace 'setup_requires=["pytest-runner"],' "" + ''; + }); + + datadog-lambda = super.datadog-lambda.overridePythonAttrs (old: { + postPatch = '' + substituteInPlace setup.py --replace "setuptools==" "setuptools>=" + ''; + buildInputs = (old.buildInputs or [ ]) ++ [ self.setuptools ]; + }); + + dbus-python = super.dbus-python.overridePythonAttrs (old: { + outputs = [ "out" "dev" ]; + + postPatch = old.postPatch or "" + '' + substituteInPlace ./configure --replace /usr/bin/file ${pkgs.file}/bin/file + substituteInPlace ./dbus-python.pc.in --replace 'Cflags: -I''${includedir}' 'Cflags: -I''${includedir}/dbus-1.0' + ''; + + configureFlags = (old.configureFlags or [ ]) ++ [ + "PYTHON_VERSION=${lib.versions.major self.python.version}" + ]; + + preConfigure = lib.concatStringsSep "\n" [ + (old.preConfigure or "") + (if (lib.versionAtLeast stdenv.hostPlatform.darwinMinVersion "11" && stdenv.isDarwin) then '' + MACOSX_DEPLOYMENT_TARGET=10.16 + '' else "") + ]; + + preBuild = old.preBuild or "" + '' + make distclean + ''; + + nativeBuildInputs = old.nativeBuildInputs or [ ] ++ [ pkg-config ]; + buildInputs = old.buildInputs or [ ] ++ [ pkgs.dbus pkgs.dbus-glib ] + # My guess why it's sometimes trying to -lncurses. + # It seems not to retain the dependency anyway. + ++ lib.optional (! self.python ? modules) pkgs.ncurses; + }); + + dcli = super.dcli.overridePythonAttrs (old: { + propagatedBuildInputs = (old.propagatedBuildInputs or [ ]) ++ [ self.setuptools ]; + }); + + ddtrace = super.ddtrace.overridePythonAttrs (old: { + buildInputs = (old.buildInputs or [ ]) ++ + (lib.optionals pkgs.stdenv.isDarwin [ pkgs.darwin.IOKit ]); + }); + + dictdiffer = super.dictdiffer.overridePythonAttrs ( + old: { + buildInputs = (old.buildInputs or [ ]) ++ [ self.pytest-runner ]; + propagatedBuildInputs = (old.propagatedBuildInputs or [ ]) ++ [ self.setuptools ]; + } + ); + + django = ( + super.django.overridePythonAttrs ( + old: { + propagatedNativeBuildInputs = (old.propagatedNativeBuildInputs or [ ]) + ++ [ pkgs.gettext self.pytest-runner ]; + } + ) + ); + + django-bakery = super.django-bakery.overridePythonAttrs ( + old: { + configurePhase = '' + if ! test -e LICENSE; then + touch LICENSE + fi + '' + (old.configurePhase or ""); + } + ); + + django-cors-headers = super.django-cors-headers.overridePythonAttrs ( + old: { + nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ self.pytest-runner ]; + } + ); + + django-hijack = super.django-hijack.overridePythonAttrs ( + old: { + nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ self.pytest-runner ]; + } + ); + + django-prometheus = super.django-prometheus.overridePythonAttrs ( + old: { + nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ self.pytest-runner ]; + } + ); + + django-rosetta = super.django-rosetta.overridePythonAttrs ( + old: { + nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ self.pytest-runner ]; + } + ); + + django-stubs-ext = super.django-stubs-ext.overridePythonAttrs ( + old: { + prePatch = (old.prePatch or "") + "touch ../LICENSE.txt"; + } + ); + + dlib = super.dlib.overridePythonAttrs ( + old: { + # Parallel building enabled + inherit (pkgs.python.pkgs.dlib) patches; + + enableParallelBuilding = true; + dontUseCmakeConfigure = true; + + nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ pkgs.dlib.nativeBuildInputs; + buildInputs = (old.buildInputs or [ ]) ++ pkgs.dlib.buildInputs; + } + ); + + # Environment markers are not always included (depending on how a dep was defined) + enum34 = if self.pythonAtLeast "3.4" then null else super.enum34; + + eth-hash = super.eth-hash.overridePythonAttrs { + preConfigure = '' + substituteInPlace setup.py --replace \'setuptools-markdown\' "" + ''; + }; + + eth-keyfile = super.eth-keyfile.overridePythonAttrs { + preConfigure = '' + substituteInPlace setup.py --replace \'setuptools-markdown\' "" + ''; + }; + + eth-keys = super.eth-keys.overridePythonAttrs { + preConfigure = '' + substituteInPlace setup.py --replace \'setuptools-markdown\' "" + ''; + }; + + # remove eth-hash dependency because eth-hash also depends on eth-utils causing a cycle. + eth-utils = super.eth-utils.overridePythonAttrs (old: { + propagatedBuildInputs = + builtins.filter (i: i.pname != "eth-hash") old.propagatedBuildInputs; + preConfigure = '' + ${old.preConfigure or ""} + sed -i '/eth-hash/d' setup.py + ''; + }); + + faker = super.faker.overridePythonAttrs ( + old: { + buildInputs = (old.buildInputs or [ ]) ++ [ self.pytest-runner ]; + doCheck = false; + } + ); + + fancycompleter = super.fancycompleter.overridePythonAttrs ( + old: { + postPatch = '' + substituteInPlace setup.py \ + --replace 'setup_requires="setupmeta"' 'setup_requires=[]' \ + --replace 'versioning="devcommit"' 'version="${old.version}"' + ''; + } + ); + + fastecdsa = super.fastecdsa.overridePythonAttrs (old: { + buildInputs = old.buildInputs ++ [ pkgs.gmp.dev ]; + }); + + fastparquet = super.fastparquet.overridePythonAttrs ( + old: { + buildInputs = (old.buildInputs or [ ]) ++ [ self.pytest-runner ]; + } + ); + + fiona = super.fiona.overridePythonAttrs ( + old: { + buildInputs = (old.buildInputs or [ ]) ++ [ pkgs.gdal_2 ]; + nativeBuildInputs = [ + pkgs.gdal_2 # for gdal-config + ]; + } + ); + + flatbuffers = super.flatbuffers.overrideAttrs (old: { + VERSION = old.version; + }); + + gdal = super.gdal.overridePythonAttrs ( + old: { + preBuild = (old.preBuild or "") + '' + substituteInPlace setup.cfg \ + --replace "../../apps/gdal-config" '${pkgs.gdal}/bin/gdal-config' + ''; + } + ); + + grandalf = super.grandalf.overridePythonAttrs ( + old: { + buildInputs = (old.buildInputs or [ ]) ++ [ self.pytest-runner ]; + doCheck = false; + } + ); + + gitpython = super.gitpython.overridePythonAttrs ( + old: { + buildInputs = (old.buildInputs or [ ]) ++ [ self.typing-extensions ]; + } + ); + + grpcio = super.grpcio.overridePythonAttrs (old: { + nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ pkg-config ]; + buildInputs = (old.buildInputs or [ ]) ++ [ pkgs.c-ares pkgs.openssl pkgs.zlib ]; + + outputs = [ "out" "dev" ]; + + GRPC_BUILD_WITH_BORING_SSL_ASM = ""; + GRPC_PYTHON_BUILD_SYSTEM_OPENSSL = 1; + GRPC_PYTHON_BUILD_SYSTEM_ZLIB = 1; + GRPC_PYTHON_BUILD_SYSTEM_CARES = 1; + DISABLE_LIBC_COMPATIBILITY = 1; + }); + + grpcio-tools = super.grpcio-tools.overridePythonAttrs (old: { + outputs = [ "out" "dev" ]; + }); + + h3 = super.h3.overridePythonAttrs ( + old: { + preBuild = (old.preBuild or "") + '' + substituteInPlace h3/h3.py \ + --replace "'{}/{}'.format(_dirname, libh3_path)" '"${pkgs.h3}/lib/libh3${pkgs.stdenv.hostPlatform.extensions.sharedLibrary}"' + ''; + } + ); + + h5py = super.h5py.overridePythonAttrs ( + old: + if old.format != "wheel" then + ( + let + mpi = pkgs.hdf5.mpi; + mpiSupport = pkgs.hdf5.mpiSupport; + in + { + nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ pkg-config ]; + buildInputs = + (old.buildInputs or [ ]) + ++ [ pkgs.hdf5 self.pkgconfig ] + ++ lib.optional mpiSupport mpi + ; + propagatedBuildInputs = + (old.propagatedBuildInputs or [ ]) + ++ lib.optionals mpiSupport [ self.mpi4py self.openssh ] + ; + preBuild = if mpiSupport then "export CC=${mpi}/bin/mpicc" else ""; + HDF5_DIR = "${pkgs.hdf5}"; + HDF5_MPI = if mpiSupport then "ON" else "OFF"; + # avoid strict pinning of numpy + postPatch = '' + substituteInPlace setup.py \ + --replace "numpy ==" "numpy >=" + ''; + pythonImportsCheck = [ "h5py" ]; + } + ) else old + ); + + hid = super.hid.overridePythonAttrs ( + old: { + postPatch = '' + found= + for name in libhidapi-hidraw libhidapi-libusb libhidapi-iohidmanager libhidapi; do + full_path=${pkgs.hidapi.out}/lib/$name${pkgs.stdenv.hostPlatform.extensions.sharedLibrary} + if test -f $full_path; then + found=t + sed -i -e "s|'$name\..*'|'$full_path'|" hid/__init__.py + fi + done + test -n "$found" || { echo "ERROR: No known libraries found in ${pkgs.hidapi.out}/lib, please update/fix this build expression."; exit 1; } + ''; + } + ); + + horovod = super.horovod.overridePythonAttrs ( + old: { + propagatedBuildInputs = (old.propagatedBuildInputs or [ ]) ++ [ pkgs.mpi ]; + } + ); + + httplib2 = super.httplib2.overridePythonAttrs (old: { + propagatedBuildInputs = (old.propagatedBuildInputs or [ ]) ++ [ self.pyparsing ]; + }); + + icecream = super.icecream.overridePythonAttrs (old: { + # # ERROR: Could not find a version that satisfies the requirement executing>=0.3.1 (from icecream) (from versions: none) + postPatch = '' + substituteInPlace setup.py --replace 'executing>=0.3.1' 'executing' + ''; + }); + + igraph = super.igraph.overridePythonAttrs ( + old: { + nativeBuildInputs = [ pkgs.cmake ] ++ old.nativeBuildInputs; + dontUseCmakeConfigure = true; + } + ); + + imagecodecs = super.imagecodecs.overridePythonAttrs ( + old: { + patchPhase = '' + substituteInPlace setup.py \ + --replace "/usr/include/openjpeg-2.3" \ + "${pkgs.openjpeg.dev}/include/${pkgs.openjpeg.dev.incDir} + substituteInPlace setup.py \ + --replace "/usr/include/jxrlib" \ + "$out/include/libjxr" + substituteInPlace imagecodecs/_zopfli.c \ + --replace '"zopfli/zopfli.h"' \ + '' + substituteInPlace imagecodecs/_zopfli.c \ + --replace '"zopfli/zlib_container.h"' \ + '' + substituteInPlace imagecodecs/_zopfli.c \ + --replace '"zopfli/gzip_container.h"' \ + '' + ''; + + preBuild = '' + mkdir -p $out/include/libjxr + ln -s ${pkgs.jxrlib}/include/libjxr/**/* $out/include/libjxr + + ''; + + buildInputs = (old.buildInputs or [ ]) ++ [ + # Commented out packages are declared required, but not actually + # needed to build. They are not yet packaged for nixpkgs. + # bitshuffle + pkgs.brotli + # brunsli + pkgs.bzip2 + pkgs.c-blosc + # charls + pkgs.giflib + pkgs.jxrlib + pkgs.lcms + pkgs.libaec + pkgs.libaec + pkgs.libjpeg_turbo + # liblzf + # liblzma + pkgs.libpng + pkgs.libtiff + pkgs.libwebp + pkgs.lz4 + pkgs.openjpeg + pkgs.snappy + # zfp + pkgs.zopfli + pkgs.zstd + pkgs.zlib + ]; + } + ); + + # importlib-metadata has an incomplete dependency specification + importlib-metadata = super.importlib-metadata.overridePythonAttrs ( + old: { + propagatedBuildInputs = (old.propagatedBuildInputs or [ ]) ++ lib.optional self.python.isPy2 self.pathlib2; + } + ); + + intreehooks = super.intreehooks.overridePythonAttrs ( + old: { + doCheck = false; + } + ); + + isort = super.isort.overridePythonAttrs ( + old: { + propagatedBuildInputs = (old.propagatedBuildInputs or [ ]) ++ [ self.setuptools ]; + } + ); + + jaraco-functools = super.jaraco-functools.overridePythonAttrs ( + old: { + # required for the extra "toml" dependency in setuptools_scm[toml] + buildInputs = (old.buildInputs or [ ]) ++ [ + self.toml + ]; + } + ); + + jira = super.jira.overridePythonAttrs ( + old: { + inherit (pkgs.python3Packages.jira) patches; + buildInputs = (old.buildInputs or [ ]) ++ [ + self.pytestrunner + self.cryptography + self.pyjwt + self.setuptools-scm-git-archive + ]; + } + ); + + jq = super.jq.overridePythonAttrs (attrs: { + buildInputs = [ pkgs.jq ]; + patches = [ + (pkgs.fetchpatch { + url = "https://raw.githubusercontent.com/NixOS/nixpkgs/088da8735f6620b60d724aa7db742607ea216087/pkgs/development/python-modules/jq/jq-py-setup.patch"; + sha256 = "sha256-MYvX3S1YGe0QsUtExtOtULvp++AdVrv+Fid4Jh1xewQ="; + }) + ]; + }); + + jsondiff = super.jsondiff.overridePythonAttrs ( + old: { + preBuild = (old.preBuild or "") + '' + substituteInPlace setup.py \ + --replace "'jsondiff=jsondiff.cli:main_deprecated'," "" + ''; + } + ); + + jsonslicer = super.jsonslicer.overridePythonAttrs (old: { + nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ pkgs.pkgconfig ]; + buildInputs = (old.buildInputs or [ ]) ++ [ pkgs.yajl ]; + }); + + jupyter = super.jupyter.overridePythonAttrs ( + old: rec { + # jupyter is a meta-package. Everything relevant comes from the + # dependencies. It does however have a jupyter.py file that conflicts + # with jupyter-core so this meta solves this conflict. + meta.priority = 100; + } + ); + + jupyter-packaging = super.jupyter-packaging.overridePythonAttrs (old: { + propagatedBuildInputs = (old.propagatedBuildInputs or [ ]) ++ [ self.wheel ]; + }); + + jupyterlab-widgets = super.jupyterlab-widgets.overridePythonAttrs ( + old: rec { + buildInputs = (old.buildInputs or [ ]) ++ [ self.jupyter-packaging ]; + } + ); + + kerberos = super.kerberos.overrideAttrs (old: { + nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ pkgs.libkrb5 ]; + }); + + keyring = super.keyring.overridePythonAttrs ( + old: { + buildInputs = (old.buildInputs or [ ]) ++ [ + self.toml + ]; + } + ); + + kiwisolver = super.kiwisolver.overridePythonAttrs ( + old: { + buildInputs = (old.buildInputs or [ ]) ++ [ + self.cppy + ]; + } + ); + + lap = super.lap.overridePythonAttrs ( + old: { + propagatedBuildInputs = (old.propagatedBuildInputs or [ ]) ++ [ + self.numpy + ]; + } + ); + + libvirt-python = super.libvirt-python.overridePythonAttrs ({ nativeBuildInputs ? [ ], ... }: { + nativeBuildInputs = nativeBuildInputs ++ [ pkg-config ]; + propagatedBuildInputs = [ pkgs.libvirt ]; + }); + + llvmlite = super.llvmlite.overridePythonAttrs ( + old: + let + llvm = + if lib.versionAtLeast old.version "0.37.0" then + pkgs.llvmPackages_11.llvm + else if (lib.versionOlder old.version "0.37.0" && lib.versionAtLeast old.version "0.34.0") then + pkgs.llvmPackages_10.llvm + else if (lib.versionOlder old.version "0.34.0" && lib.versionAtLeast old.version "0.33.0") then + pkgs.llvmPackages_9.llvm + else if (lib.versionOlder old.version "0.33.0" && lib.versionAtLeast old.version "0.29.0") then + pkgs.llvmPackages_8.llvm + else if (lib.versionOlder old.version "0.28.0" && lib.versionAtLeast old.version "0.27.0") then + pkgs.llvmPackages_7.llvm + else if (lib.versionOlder old.version "0.27.0" && lib.versionAtLeast old.version "0.23.0") then + pkgs.llvmPackages_6.llvm + else if (lib.versionOlder old.version "0.23.0" && lib.versionAtLeast old.version "0.21.0") then + pkgs.llvmPackages_5.llvm + else + pkgs.llvm; # Likely to fail. + in + { + nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ pkgs.llvm ]; + + # Disable static linking + # https://github.com/numba/llvmlite/issues/93 + postPatch = '' + substituteInPlace ffi/Makefile.linux --replace "-static-libstdc++" "" + + substituteInPlace llvmlite/tests/test_binding.py --replace "test_linux" "nope" + ''; + + # Set directory containing llvm-config binary + preConfigure = '' + export LLVM_CONFIG=${llvm.dev}/bin/llvm-config + ''; + + __impureHostDeps = lib.optionals pkgs.stdenv.isDarwin [ "/usr/lib/libm.dylib" ]; + + passthru = old.passthru // { llvm = llvm; }; + } + ); + + lxml = super.lxml.overridePythonAttrs ( + old: { + nativeBuildInputs = with pkgs.buildPackages; (old.nativeBuildInputs or [ ]) ++ [ pkg-config libxml2.dev libxslt.dev ] ++ lib.optionals stdenv.isDarwin [ xcodebuild ]; + buildInputs = with pkgs; (old.buildInputs or [ ]) ++ [ libxml2 libxslt ]; + } + ); + + markupsafe = super.markupsafe.overridePythonAttrs ( + old: { + src = old.src.override { pname = builtins.replaceStrings [ "markupsafe" ] [ "MarkupSafe" ] old.pname; }; + } + ); + + matplotlib = super.matplotlib.overridePythonAttrs ( + old: + let + enableGhostscript = old.passthru.args.enableGhostscript or false; + enableGtk3 = old.passthru.args.enableGtk3 or false; + enableQt = old.passthru.args.enableQt or false; + enableTk = old.passthru.args.enableTk or false; + + interactive = enableTk || enableGtk3 || enableQt; + + passthru = { + config = { + directories = { basedirlist = "."; }; + libs = { + system_freetype = true; + system_qhull = true; + } // lib.optionalAttrs stdenv.isDarwin { + # LTO not working in darwin stdenv, see Nixpkgs #19312 + enable_lto = false; + }; + }; + }; + + inherit (pkgs) tk tcl wayland qhull; + inherit (pkgs.xorg) libX11; + inherit (pkgs.darwin.apple_sdk.frameworks) Cocoa; + in + { + XDG_RUNTIME_DIR = "/tmp"; + + buildInputs = old.buildInputs or [ ] ++ [ + pkgs.which + ] ++ lib.optional enableGhostscript [ + pkgs.ghostscript + ] ++ lib.optional stdenv.isDarwin [ + Cocoa + ]; + + propagatedBuildInputs = (old.propagatedBuildInputs or [ ]) ++ [ + self.certifi + pkgs.libpng + pkgs.freetype + qhull + ] + ++ lib.optionals enableGtk3 [ pkgs.cairo self.pycairo pkgs.gtk3 pkgs.gobject-introspection self.pygobject3 ] + ++ lib.optionals enableTk [ pkgs.tcl pkgs.tk self.tkinter pkgs.libX11 ] + ++ lib.optionals enableQt [ self.pyqt5 ] + ; + + nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ + pkg-config + ] ++ lib.optional (lib.versionAtLeast super.matplotlib.version "3.5.0") [ + self.setuptools-scm + self.setuptools-scm-git-archive + ]; + + passthru = old.passthru or { } // passthru; + + MPLSETUPCFG = pkgs.writeText "mplsetup.cfg" (lib.generators.toINI { } passthru.config); + + # Matplotlib tries to find Tcl/Tk by opening a Tk window and asking the + # corresponding interpreter object for its library paths. This fails if + # `$DISPLAY` is not set. The fallback option assumes that Tcl/Tk are both + # installed under the same path which is not true in Nix. + # With the following patch we just hard-code these paths into the install + # script. + postPatch = + let + tcl_tk_cache = ''"${tk}/lib", "${tcl}/lib", "${lib.strings.substring 0 3 tk.version}"''; + in + lib.optionalString enableTk '' + sed -i '/self.tcl_tk_cache = None/s|None|${tcl_tk_cache}|' setupext.py + '' + lib.optionalString (stdenv.isLinux && interactive) '' + # fix paths to libraries in dlopen calls (headless detection) + substituteInPlace src/_c_internal_utils.c \ + --replace libX11.so.6 ${libX11}/lib/libX11.so.6 \ + --replace libwayland-client.so.0 ${wayland}/lib/libwayland-client.so.0 + '' + + # avoid matplotlib trying to download dependencies + '' + echo "[libs] + system_freetype=true + system_qhull=true" > mplsetup.cfg + ''; + + } + ); + + # Calls Cargo at build time for source builds and is really tricky to package + maturin = super.maturin.override { + preferWheel = true; + }; + + mccabe = super.mccabe.overridePythonAttrs ( + old: { + buildInputs = (old.buildInputs or [ ]) ++ [ self.pytest-runner ]; + doCheck = false; + } + ); + + mip = super.mip.overridePythonAttrs ( + old: { + nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ pkgs.autoPatchelfHook ]; + + buildInputs = (old.buildInputs or [ ]) ++ [ pkgs.zlib self.cppy ]; + } + ); + + mmdet = super.mmdet.overridePythonAttrs ( + old: { + buildInputs = (old.buildInputs or [ ]) ++ [ self.pytorch ]; + } + ); + + molecule = + if lib.versionOlder super.molecule.version "3.0.0" then + (super.molecule.overridePythonAttrs ( + old: { + patches = (old.patches or [ ]) ++ [ + # Fix build with more recent setuptools versions + (pkgs.fetchpatch { + url = "https://github.com/ansible-community/molecule/commit/c9fee498646a702c77b5aecf6497cff324acd056.patch"; + sha256 = "1g1n45izdz0a3c9akgxx14zhdw6c3dkb48j8pq64n82fa6ndl1b7"; + excludes = [ "pyproject.toml" ]; + }) + ]; + buildInputs = (old.buildInputs or [ ]) ++ [ self.setuptools-scm-git-archive ]; + } + )) else + super.molecule.overridePythonAttrs (old: { + buildInputs = (old.buildInputs or [ ]) ++ [ self.setuptools-scm-git-archive ]; + }); + + mpi4py = super.mpi4py.overridePythonAttrs ( + old: + let + cfg = pkgs.writeTextFile { + name = "mpi.cfg"; + text = ( + lib.generators.toINI + { } + { + mpi = { + mpicc = "${pkgs.mpi.outPath}/bin/mpicc"; + }; + } + ); + }; + in + { + propagatedBuildInputs = (old.propagatedBuildInputs or [ ]) ++ [ pkgs.mpi ]; + enableParallelBuilding = true; + preBuild = '' + ln -sf ${cfg} mpi.cfg + ''; + } + ); + + multiaddr = super.multiaddr.overridePythonAttrs ( + old: { + buildInputs = (old.buildInputs or [ ]) ++ [ self.pytest-runner ]; + } + ); + + mypy = super.mypy.overridePythonAttrs ( + old: { + # FIXME: Remove patch after upstream has decided the proper solution. + # https://github.com/python/mypy/pull/11143 + patches = (old.patches or [ ]) ++ lib.optionals ((lib.strings.versionAtLeast old.version "0.900") && lib.strings.versionOlder old.version "0.940") [ + (pkgs.fetchpatch { + url = "https://github.com/python/mypy/commit/f1755259d54330cd087cae763cd5bbbff26e3e8a.patch"; + sha256 = "sha256-5gPahX2X6+/qUaqDQIGJGvh9lQ2EDtks2cpQutgbOHk="; + }) + ] ++ lib.optionals (lib.strings.versionAtLeast old.version "0.940") [ + (pkgs.fetchpatch { + url = "https://github.com/python/mypy/commit/e7869f05751561958b946b562093397027f6d5fa.patch"; + sha256 = "sha256-waIZ+m3tfvYE4HJ8kL6rN/C4fMjvLEe9UoPbt9mHWIM="; + }) + ]; + buildInputs = (old.buildInputs or [ ]) ++ [ + self.types-typed-ast + ]; + # Compile mypy with mypyc, which makes mypy about 4 times faster. The compiled + # version is also the default in the wheels on Pypi that include binaries. + # is64bit: unfortunately the build would exhaust all possible memory on i686-linux. + MYPY_USE_MYPYC = stdenv.buildPlatform.is64bit; + + # when testing reduce optimisation level to drastically reduce build time + # (default is 3) + # MYPYC_OPT_LEVEL = 1; + } + ); + + mysqlclient = super.mysqlclient.overridePythonAttrs ( + old: { + nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ pkgs.libmysqlclient ]; + buildInputs = (old.buildInputs or [ ]) ++ [ pkgs.libmysqlclient ]; + } + ); + + netcdf4 = super.netcdf4.overridePythonAttrs ( + old: { + propagatedBuildInputs = (old.propagatedBuildInputs or [ ]) ++ [ + pkgs.zlib + pkgs.netcdf + pkgs.hdf5 + pkgs.curl + pkgs.libjpeg + ]; + + # Variables used to configure the build process + USE_NCCONFIG = "0"; + HDF5_DIR = lib.getDev pkgs.hdf5; + NETCDF4_DIR = pkgs.netcdf; + CURL_DIR = pkgs.curl.dev; + JPEG_DIR = pkgs.libjpeg.dev; + } + ); + + numpy = super.numpy.overridePythonAttrs ( + old: + let + blas = old.passthru.args.blas or pkgs.openblasCompat; + blasImplementation = lib.nameFromURL blas.name "-"; + cfg = pkgs.writeTextFile { + name = "site.cfg"; + text = ( + lib.generators.toINI + { } + { + ${blasImplementation} = { + include_dirs = "${blas}/include"; + library_dirs = "${blas}/lib"; + } // lib.optionalAttrs (blasImplementation == "mkl") { + mkl_libs = "mkl_rt"; + lapack_libs = ""; + }; + } + ); + }; + in + { + nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ pkgs.gfortran ]; + buildInputs = (old.buildInputs or [ ]) ++ [ blas ]; + enableParallelBuilding = true; + preBuild = '' + ln -s ${cfg} site.cfg + ''; + passthru = old.passthru // { + blas = blas; + inherit blasImplementation cfg; + }; + } + ); + + open3d = super.open3d.overridePythonAttrs (old: { + buildInputs = (old.buildInputs or [ ]) ++ (with pkgs; [ + udev + ]); + # TODO(Sem Mulder): Add overridable flags for CUDA/PyTorch/Tensorflow support. + autoPatchelfIgnoreMissingDeps = true; + }); + + opencv-python = super.opencv-python.overridePythonAttrs ( + old: { + nativeBuildInputs = [ pkgs.cmake ] ++ old.nativeBuildInputs; + buildInputs = [ self.scikit-build ] ++ (old.buildInputs or [ ]); + dontUseCmakeConfigure = true; + } + ); + + opencv-contrib-python = super.opencv-contrib-python.overridePythonAttrs ( + old: { + nativeBuildInputs = [ pkgs.cmake ] ++ old.nativeBuildInputs; + buildInputs = [ self.scikit-build ] ++ (old.buildInputs or [ ]); + dontUseCmakeConfigure = true; + } + ); + + openexr = super.openexr.overridePythonAttrs ( + old: rec { + buildInputs = (old.buildInputs or [ ]) ++ [ pkgs.openexr pkgs.ilmbase ]; + NIX_CFLAGS_COMPILE = [ "-I${pkgs.openexr.dev}/include/OpenEXR" "-I${pkgs.ilmbase.dev}/include/OpenEXR" ]; + } + ); + + osqp = super.osqp.overridePythonAttrs ( + old: { + nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ pkgs.cmake ]; + dontUseCmakeConfigure = true; + } + ); + + pantalaimon = super.pantalaimon.overridePythonAttrs (old: { + nativeBuildInputs = old.nativeBuildInputs or [ ] ++ [ pkgs.installShellFiles ]; + postInstall = old.postInstall or "" + '' + installManPage docs/man/*.[1-9] + ''; + }); + + paramiko = super.paramiko.overridePythonAttrs (old: { + doCheck = false; # requires networking + }); + + parsel = super.parsel.overridePythonAttrs ( + old: rec { + nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ self.pytest-runner ]; + } + ); + + pdal = super.pdal.overridePythonAttrs ( + old: { + PDAL_CONFIG = "${pkgs.pdal}/bin/pdal-config"; + } + ); + + peewee = super.peewee.overridePythonAttrs ( + old: + let + withPostgres = old.passthru.withPostgres or false; + withMysql = old.passthru.withMysql or false; + in + { + buildInputs = (old.buildInputs or [ ]) ++ [ pkgs.sqlite ]; + propagatedBuildInputs = (old.propagatedBuildInputs or [ ]) + ++ lib.optional withPostgres self.psycopg2 + ++ lib.optional withMysql self.mysql-connector; + } + ); + + pikepdf = super.pikepdf.overridePythonAttrs ( + old: { + buildInputs = old.buildInputs or [ ] ++ [ pkgs.qpdf self.pybind11 ]; + pythonImportsCheck = old.pythonImportsCheck or [ ] ++ [ "pikepdf" ]; + } + ); + + pillow = super.pillow.overridePythonAttrs ( + old: { + nativeBuildInputs = [ pkg-config self.pytest-runner ] ++ (old.nativeBuildInputs or [ ]); + buildInputs = with pkgs; [ freetype libjpeg zlib libtiff libwebp tcl lcms2 ] ++ (old.buildInputs or [ ]); + } + ); + + poetry-core = super.poetry-core.overridePythonAttrs (old: { + # "Vendor" dependencies (for build-system support) + postPatch = '' + echo "import sys" >> poetry/__init__.py + for path in $propagatedBuildInputs; do + echo "sys.path.insert(0, \"$path\")" >> poetry/__init__.py + done + ''; + + # Propagating dependencies leads to issues downstream + # We've already patched poetry to prefer "vendored" dependencies + postFixup = '' + rm $out/nix-support/propagated-build-inputs + ''; + }); + + portend = super.portend.overridePythonAttrs ( + old: { + # required for the extra "toml" dependency in setuptools_scm[toml] + buildInputs = (old.buildInputs or [ ]) ++ [ + self.toml + ]; + } + ); + + prettytable = super.prettytable.overridePythonAttrs (old: { + propagatedBuildInputs = (old.propagatedBuildInputs or [ ]) ++ [ self.setuptools ]; + }); + + psycopg2 = super.psycopg2.overridePythonAttrs ( + old: { + buildInputs = (old.buildInputs or [ ]) + ++ lib.optional stdenv.isDarwin pkgs.openssl; + nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ pkgs.postgresql ]; + } + ); + + psycopg2-binary = super.psycopg2-binary.overridePythonAttrs ( + old: { + buildInputs = (old.buildInputs or [ ]) + ++ lib.optional stdenv.isDarwin pkgs.openssl; + nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ pkgs.postgresql ]; + } + ); + + py-solc-x = super.py-solc-x.overridePythonAttrs ( + old: { + preConfigure = '' + substituteInPlace setup.py --replace \'setuptools-markdown\' "" + ''; + propagatedBuildInputs = (old.propagatedBuildInputs or [ ]) ++ [ self.requests self.semantic-version ]; + } + ); + + pyarrow = + if lib.versionAtLeast super.pyarrow.version "0.16.0" then + super.pyarrow.overridePythonAttrs + ( + old: + let + parseMinor = drv: lib.concatStringsSep "." (lib.take 2 (lib.splitVersion drv.version)); + + # Starting with nixpkgs revision f149c7030a7, pyarrow takes "python3" as an argument + # instead of "python". Below we inspect function arguments to maintain compatibilitiy. + _arrow-cpp = pkgs.arrow-cpp.override ( + builtins.intersectAttrs + (lib.functionArgs pkgs.arrow-cpp.override) + { python = self.python; python3 = self.python; } + ); + + ARROW_HOME = _arrow-cpp; + arrowCppVersion = parseMinor _arrow-cpp; + pyArrowVersion = parseMinor super.pyarrow; + errorMessage = "arrow-cpp version (${arrowCppVersion}) mismatches pyarrow version (${pyArrowVersion})"; + in + if arrowCppVersion != pyArrowVersion then throw errorMessage else { + + nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ + pkg-config + pkgs.cmake + ]; + + preBuild = '' + export PYARROW_PARALLEL=$NIX_BUILD_CORES + ''; + + PARQUET_HOME = _arrow-cpp; + inherit ARROW_HOME; + + PYARROW_BUILD_TYPE = "release"; + PYARROW_WITH_FLIGHT = if _arrow-cpp.enableFlight then 1 else 0; + PYARROW_WITH_DATASET = 1; + PYARROW_WITH_PARQUET = 1; + PYARROW_CMAKE_OPTIONS = [ + "-DCMAKE_INSTALL_RPATH=${ARROW_HOME}/lib" + + # This doesn't use setup hook to call cmake so we need to workaround #54606 + # ourselves + "-DCMAKE_POLICY_DEFAULT_CMP0025=NEW" + ]; + + dontUseCmakeConfigure = true; + } + ) else + super.pyarrow; + + pycairo = ( + drv: ( + drv.overridePythonAttrs ( + _: { + format = "other"; + } + ) + ).overridePythonAttrs ( + old: { + + nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ + pkgs.meson + pkgs.ninja + pkg-config + ]; + + propagatedBuildInputs = (old.propagatedBuildInputs or [ ]) ++ [ + pkgs.cairo + pkgs.xlibsWrapper + ]; + + mesonFlags = [ "-Dpython=${if self.isPy3k then "python3" else "python"}" ]; + } + ) + ) + super.pycairo; + + pycocotools = super.pycocotools.overridePythonAttrs ( + old: { + buildInputs = (old.buildInputs or [ ]) ++ [ + self.numpy + ]; + } + ); + + pyfuse3 = super.pyfuse3.overridePythonAttrs (old: { + nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ pkg-config ]; + buildInputs = (old.buildInputs or [ ]) ++ [ pkgs.fuse3 ]; + }); + + pygame = super.pygame.overridePythonAttrs ( + old: rec { + nativeBuildInputs = [ + pkg-config + pkgs.SDL + ]; + + buildInputs = [ + pkgs.SDL + pkgs.SDL_image + pkgs.SDL_mixer + pkgs.SDL_ttf + pkgs.libpng + pkgs.libjpeg + pkgs.portmidi + pkgs.xorg.libX11 + pkgs.freetype + ]; + + # Tests fail because of no audio device and display. + doCheck = false; + preConfigure = '' + sed \ + -e "s/origincdirs = .*/origincdirs = []/" \ + -e "s/origlibdirs = .*/origlibdirs = []/" \ + -e "/'\/lib\/i386-linux-gnu', '\/lib\/x86_64-linux-gnu']/d" \ + -e "/\/include\/smpeg/d" \ + -i buildconfig/config_unix.py + ${lib.concatMapStrings + (dep: '' + sed \ + -e "/origincdirs =/a\ origincdirs += ['${lib.getDev dep}/include']" \ + -e "/origlibdirs =/a\ origlibdirs += ['${lib.getLib dep}/lib']" \ + -i buildconfig/config_unix.py + '') + buildInputs + } + LOCALBASE=/ ${self.python.interpreter} buildconfig/config.py + ''; + } + ); + + pygeos = super.pygeos.overridePythonAttrs ( + old: { + buildInputs = (old.buildInputs or [ ]) ++ [ pkgs.geos ]; + nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ pkgs.geos ]; + } + ); + + pygobject = super.pygobject.overridePythonAttrs ( + old: { + nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ pkg-config ]; + buildInputs = (old.buildInputs or [ ]) ++ [ pkgs.glib pkgs.gobject-introspection ]; + } + ); + + pylint = super.pylint.overridePythonAttrs ( + old: { + buildInputs = (old.buildInputs or [ ]) ++ [ self.pytest-runner ]; + } + ); + + pymediainfo = super.pymediainfo.overridePythonAttrs ( + old: { + postPatch = (old.postPatch or "") + '' + substituteInPlace pymediainfo/__init__.py \ + --replace "libmediainfo.0.dylib" \ + "${pkgs.libmediainfo}/lib/libmediainfo.0${stdenv.hostPlatform.extensions.sharedLibrary}" \ + --replace "libmediainfo.dylib" \ + "${pkgs.libmediainfo}/lib/libmediainfo${stdenv.hostPlatform.extensions.sharedLibrary}" \ + --replace "libmediainfo.so.0" \ + "${pkgs.libmediainfo}/lib/libmediainfo${stdenv.hostPlatform.extensions.sharedLibrary}.0" + ''; + } + ); + + pymssql = super.pymssql.overridePythonAttrs (old: { + buildInputs = (old.buildInputs or [ ]) + ++ [ pkgs.openssl ]; + propagatedBuildInputs = (old.propagatedBuildInputs or [ ]) + ++ [ pkgs.freetds ]; + }); + + pyopenssl = super.pyopenssl.overridePythonAttrs ( + old: { + buildInputs = (old.buildInputs or [ ]) ++ [ pkgs.openssl ]; + } + ); + + pyproj = super.pyproj.overridePythonAttrs ( + old: { + PROJ_DIR = "${pkgs.proj}"; + PROJ_LIBDIR = "${pkgs.proj}/lib"; + PROJ_INCDIR = "${pkgs.proj.dev}/include"; + } + ); + + pyrfr = super.pyrfr.overridePythonAttrs (old: { + nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ pkgs.swig ]; + }); + + pytaglib = super.pytaglib.overridePythonAttrs (old: { + buildInputs = (old.buildInputs or [ ]) ++ [ pkgs.taglib ]; + }); + + pytezos = super.pytezos.overridePythonAttrs (old: { + buildInputs = (old.buildInputs or [ ]) ++ [ pkgs.libsodium ]; + }); + + python-bugzilla = super.python-bugzilla.overridePythonAttrs ( + old: { + nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ + self.docutils + ]; + } + ); + + python-ldap = super.python-ldap.overridePythonAttrs ( + old: { + buildInputs = (old.buildInputs or [ ]) ++ [ pkgs.openldap pkgs.cyrus_sasl ]; + } + ); + + pytoml = super.pytoml.overridePythonAttrs ( + old: { + doCheck = false; + } + ); + + pyqt5 = + let + drv = super.pyqt5; + withConnectivity = drv.passthru.args.withConnectivity or false; + withMultimedia = drv.passthru.args.withMultimedia or false; + withWebKit = drv.passthru.args.withWebKit or false; + withWebSockets = drv.passthru.args.withWebSockets or false; + in + super.pyqt5.overridePythonAttrs ( + old: { + format = "other"; + + dontWrapQtApps = true; + + nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ + pkg-config + pkgs.qt5.qmake + pkgs.xorg.lndir + pkgs.qt5.qtbase + pkgs.qt5.qtsvg + pkgs.qt5.qtdeclarative + pkgs.qt5.qtwebchannel + pkgs.qt5.qt3d + # self.pyqt5-sip + self.sip + ] + ++ lib.optional withConnectivity pkgs.qt5.qtconnectivity + ++ lib.optional withMultimedia pkgs.qt5.qtmultimedia + ++ lib.optional withWebKit pkgs.qt5.qtwebkit + ++ lib.optional withWebSockets pkgs.qt5.qtwebsockets + ; + + buildInputs = (old.buildInputs or [ ]) ++ [ + pkgs.dbus + pkgs.qt5.qtbase + pkgs.qt5.qtsvg + pkgs.qt5.qtdeclarative + self.sip + ] + ++ lib.optional withConnectivity pkgs.qt5.qtconnectivity + ++ lib.optional withWebKit pkgs.qt5.qtwebkit + ++ lib.optional withWebSockets pkgs.qt5.qtwebsockets + ; + + # Fix dbus mainloop + patches = pkgs.python3.pkgs.pyqt5.patches or [ ]; + + configurePhase = '' + runHook preConfigure + + export PYTHONPATH=$PYTHONPATH:$out/${self.python.sitePackages} + + mkdir -p $out/${self.python.sitePackages}/dbus/mainloop + ${self.python.executable} configure.py -w \ + --confirm-license \ + --no-qml-plugin \ + --bindir=$out/bin \ + --destdir=$out/${self.python.sitePackages} \ + --stubsdir=$out/${self.python.sitePackages}/PyQt5 \ + --sipdir=$out/share/sip/PyQt5 \ + --designer-plugindir=$out/plugins/designer + + runHook postConfigure + ''; + + postInstall = '' + ln -s ${self.pyqt5-sip}/${self.python.sitePackages}/PyQt5/sip.* $out/${self.python.sitePackages}/PyQt5/ + for i in $out/bin/*; do + wrapProgram $i --prefix PYTHONPATH : "$PYTHONPATH" + done + + # Let's make it a namespace package + cat << EOF > $out/${self.python.sitePackages}/PyQt5/__init__.py + from pkgutil import extend_path + __path__ = extend_path(__path__, __name__) + EOF + ''; + + installCheckPhase = + let + modules = [ + "PyQt5" + "PyQt5.QtCore" + "PyQt5.QtQml" + "PyQt5.QtWidgets" + "PyQt5.QtGui" + ] + ++ lib.optional withWebSockets "PyQt5.QtWebSockets" + ++ lib.optional withWebKit "PyQt5.QtWebKit" + ++ lib.optional withMultimedia "PyQt5.QtMultimedia" + ++ lib.optional withConnectivity "PyQt5.QtConnectivity" + ; + imports = lib.concatMapStrings (module: "import ${module};") modules; + in + '' + echo "Checking whether modules can be imported..." + ${self.python.interpreter} -c "${imports}" + ''; + + doCheck = true; + + enableParallelBuilding = true; + } + ); + + pytest-datadir = super.pytest-datadir.overridePythonAttrs ( + old: { + postInstall = '' + rm -f $out/LICENSE + ''; + } + ); + + pytest = super.pytest.overridePythonAttrs ( + old: { + # Fixes https://github.com/pytest-dev/pytest/issues/7891 + postPatch = old.postPatch or "" + '' + sed -i '/\[metadata\]/aversion = ${old.version}' setup.cfg + ''; + } + ); + + pytest-django = super.pytest-django.overridePythonAttrs ( + old: { + postPatch = '' + substituteInPlace setup.py --replace "'pytest>=3.6'," "" + substituteInPlace setup.py --replace "'pytest>=3.6'" "" + ''; + } + ); + + pytest-randomly = super.pytest-randomly.overrideAttrs (old: { + propagatedBuildInputs = (old.propagatedBuildInputs or [ ]) ++ [ + self.importlib-metadata + ]; + }); + + pytest-runner = super.pytest-runner or super.pytestrunner; + + pytest-pylint = super.pytest-pylint.overridePythonAttrs ( + old: { + buildInputs = [ self.pytest-runner ]; + } + ); + + # pytest-splinter seems to put a .marker file in an empty directory + # presumably so it's tracked by and can be installed with MANIFEST.in, see + # https://github.com/pytest-dev/pytest-splinter/commit/a48eeef662f66ff9d3772af618748e73211a186b + # + # This directory then gets used as an empty initial profile directory and is + # zipped up. But if the .marker file is in the Nix store, it has the + # creation date of 1970, and Zip doesn't work with such old files, so it + # fails at runtime! + # + # We fix this here by just removing the file after the installation + # + # The error you get without this is: + # + # E ValueError: ZIP does not support timestamps before 1980 + # /nix/store/55b9ip7xkpimaccw9pa0vacy5q94f5xa-python3-3.7.6/lib/python3.7/zipfile.py:357: ValueError + pytest-splinter = super.pytest-splinter.overrideAttrs (old: { + postInstall = old.postInstall or "" + '' + rm $out/${super.python.sitePackages}/pytest_splinter/profiles/firefox/.marker + ''; + }); + + python-jose = super.python-jose.overridePythonAttrs ( + old: { + buildInputs = [ self.pytest-runner ]; + } + ); + + python-magic = super.python-magic.overridePythonAttrs ( + old: { + postPatch = '' + substituteInPlace magic/loader.py \ + --replace "'libmagic.so.1'" "'${lib.getLib pkgs.file}/lib/libmagic.so.1'" + ''; + pythonImportsCheck = old.pythonImportsCheck or [ ] ++ [ "magic" ]; + } + ); + + python-olm = super.python-olm.overridePythonAttrs ( + old: { + buildInputs = old.buildInputs or [ ] ++ [ pkgs.olm ]; + } + ); + + python-snappy = super.python-snappy.overridePythonAttrs ( + old: { + buildInputs = (old.buildInputs or [ ]) ++ [ pkgs.snappy ]; + } + ); + + pythran = super.pythran.overridePythonAttrs (old: { + buildInputs = (old.buildInputs or [ ]) ++ [ self.pytest-runner ]; + }); + + ffmpeg-python = super.ffmpeg-python.overridePythonAttrs ( + old: { + buildInputs = (old.buildInputs or [ ]) ++ [ self.pytest-runner ]; + } + ); + + python-prctl = super.python-prctl.overridePythonAttrs ( + old: { + buildInputs = (old.buildInputs or [ ]) ++ [ + pkgs.libcap + ]; + } + ); + + pyudev = super.pyudev.overridePythonAttrs (old: { + postPatch = '' + substituteInPlace src/pyudev/_ctypeslib/utils.py \ + --replace "find_library(name)" "'${lib.getLib pkgs.systemd}/lib/libudev.so'" + ''; + }); + + pyusb = super.pyusb.overridePythonAttrs ( + old: { + postPatch = '' + libusb=${pkgs.libusb1.out}/lib/libusb-1.0${pkgs.stdenv.hostPlatform.extensions.sharedLibrary} + test -f $libusb || { echo "ERROR: $libusb doesn't exist, please update/fix this build expression."; exit 1; } + sed -i -e "s|find_library=None|find_library=lambda _:\"$libusb\"|" usb/backend/libusb1.py + ''; + } + ); + + pywavelets = super.pywavelets.overridePythonAttrs ( + old: { + HDF5_DIR = "${pkgs.hdf5}"; + propagatedBuildInputs = (old.propagatedBuildInputs or [ ]) ++ [ pkgs.hdf5 ]; + } + ); + + pyzmq = super.pyzmq.overridePythonAttrs ( + old: { + nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ pkg-config ]; + propagatedBuildInputs = (old.propagatedBuildInputs or [ ]) ++ [ pkgs.zeromq ]; + } + ); + + rockset = super.rockset.overridePythonAttrs ( + old: rec { + postPatch = '' + cp ./setup_rockset.py ./setup.py + ''; + } + ); + + scaleapi = super.scaleapi.overridePythonAttrs ( + old: { + postPatch = '' + substituteInPlace setup.py --replace "install_requires = ['requests>=2.4.2', 'enum34']" "install_requires = ['requests>=2.4.2']" || true + ''; + } + ); + + panel = super.panel.overridePythonAttrs ( + old: { + nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ pkgs.nodejs ]; + } + ); + + # Pybind11 is an undeclared dependency of scipy that we need to pick from nixpkgs + # Make it not fail with infinite recursion + pybind11 = super.pybind11.overridePythonAttrs ( + old: { + cmakeFlags = (old.cmakeFlags or [ ]) ++ [ + "-DPYBIND11_TEST=off" + ]; + doCheck = false; # Circular test dependency + } + ); + + rlp = super.rlp.overridePythonAttrs { + preConfigure = '' + substituteInPlace setup.py --replace \'setuptools-markdown\' "" + ''; + }; + + rmfuse = super.rmfuse.overridePythonAttrs (old: { + propagatedBuildInputs = (old.propagatedBuildInputs or [ ]) ++ [ self.setuptools ]; + }); + + rtree = super.rtree.overridePythonAttrs (old: { + propagatedNativeBuildInputs = (old.propagatedNativeBuildInputs or [ ]) ++ [ pkgs.libspatialindex ]; + postPatch = '' + substituteInPlace rtree/finder.py --replace \ + "find_library('spatialindex_c')" \ + "'${pkgs.libspatialindex}/lib/libspatialindex_c${pkgs.stdenv.hostPlatform.extensions.sharedLibrary}'" + ''; + }); + + ruamel-yaml = super.ruamel-yaml.overridePythonAttrs ( + old: { + propagatedBuildInputs = (old.propagatedBuildInputs or [ ]) + ++ [ self.ruamel-yaml-clib ]; + } + ); + + scipy = super.scipy.overridePythonAttrs ( + old: + if old.format != "wheel" then { + nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ + [ pkgs.gfortran ] ++ + lib.optional (lib.versionAtLeast super.scipy.version "1.7.0") [ self.pythran ]; + propagatedBuildInputs = (old.propagatedBuildInputs or [ ]) ++ [ self.pybind11 ]; + setupPyBuildFlags = [ "--fcompiler='gnu95'" ]; + enableParallelBuilding = true; + buildInputs = (old.buildInputs or [ ]) ++ [ self.numpy.blas ]; + preConfigure = '' + sed -i '0,/from numpy.distutils.core/s//import setuptools;from numpy.distutils.core/' setup.py + export NPY_NUM_BUILD_JOBS=$NIX_BUILD_CORES + ''; + preBuild = '' + ln -s ${self.numpy.cfg} site.cfg + ''; + } else old + ); + + scikit-image = super.scikit-image.overridePythonAttrs ( + old: { + nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ + self.pythran + self.packaging + self.wheel + self.numpy + ]; + } + ); + + scikit-learn = super.scikit-learn.overridePythonAttrs ( + old: { + buildInputs = (old.buildInputs or [ ]) ++ [ + pkgs.gfortran + ] ++ lib.optionals stdenv.cc.isClang [ + pkgs.llvmPackages.openmp + ] ++ lib.optionals stdenv.isLinux [ + pkgs.glibcLocales + ]; + + enableParallelBuilding = true; + } + ); + + secp256k1 = super.secp256k1.overridePythonAttrs (old: { + nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ pkgs.pkgconfig pkgs.autoconf pkgs.automake pkgs.libtool ]; + buildInputs = (old.buildInputs or [ ]) ++ [ self.pytest-runner ]; + doCheck = false; + # Local setuptools versions like "x.y.post0" confuse an internal check + postPatch = '' + substituteInPlace setup.py \ + --replace 'setuptools_version.' '"${self.setuptools.version}".' + ''; + }); + + shapely = super.shapely.overridePythonAttrs ( + old: { + buildInputs = (old.buildInputs or [ ]) ++ [ pkgs.geos ]; + inherit (pkgs.python3.pkgs.shapely) patches GEOS_LIBRARY_PATH; + } + ); + + shellcheck-py = super.shellcheck-py.overridePythonAttrs (old: { + + # Make fetching/installing external binaries no-ops + preConfigure = + let + fakeCommand = "type('FakeCommand', (Command,), {'initialize_options': lambda self: None, 'finalize_options': lambda self: None, 'run': lambda self: None})"; + in + '' + substituteInPlace setup.py \ + --replace "'fetch_binaries': fetch_binaries," "'fetch_binaries': ${fakeCommand}," \ + --replace "'install_shellcheck': install_shellcheck," "'install_shellcheck': ${fakeCommand}," + ''; + + propagatedUserEnvPkgs = (old.propagatedUserEnvPkgs or [ ]) ++ [ + pkgs.shellcheck + ]; + + }); + + systemd-python = super.systemd-python.overridePythonAttrs (old: { + buildInputs = old.buildInputs ++ [ pkgs.systemd ]; + nativeBuildInputs = old.nativeBuildInputs ++ [ pkgs.pkg-config ]; + }); + + tables = super.tables.overridePythonAttrs ( + old: { + buildInputs = (old.buildInputs or [ ]) ++ [ self.pywavelets ]; + HDF5_DIR = lib.getDev pkgs.hdf5; + nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ pkg-config ]; + propagatedBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ pkgs.hdf5 self.numpy self.numexpr ]; + } + ); + + tempora = super.tempora.overridePythonAttrs ( + old: { + # required for the extra "toml" dependency in setuptools_scm[toml] + buildInputs = (old.buildInputs or [ ]) ++ [ + self.toml + ]; + } + ); + + tensorboard = super.tensorboard.overridePythonAttrs ( + old: { + buildInputs = (old.buildInputs or [ ]) ++ [ + self.wheel + self.absl-py + ]; + HDF5_DIR = "${pkgs.hdf5}"; + propagatedBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ + pkgs.hdf5 + self.google-auth-oauthlib + self.tensorboard-plugin-wit + self.numpy + self.markdown + self.tensorboard-data-server + self.grpcio + self.protobuf + self.werkzeug + self.absl-py + ]; + } + ); + + tensorflow = super.tensorflow.overridePythonAttrs ( + old: { + postInstall = '' + rm $out/bin/tensorboard + ''; + } + ); + + tensorpack = super.tensorpack.overridePythonAttrs ( + old: { + postPatch = '' + substituteInPlace setup.cfg --replace "# will call find_packages()" "" + ''; + } + ); + + tinycss2 = super.tinycss2.overridePythonAttrs ( + old: { + buildInputs = (old.buildInputs or [ ]) ++ [ self.pytest-runner ]; + } + ); + + # The tokenizers build requires a complex rust setup (cf. nixpkgs override) + # + # Instead of providing a full source build, we use a wheel to keep + # the complexity manageable for now. + tokenizers = super.tokenizers.override { + preferWheel = true; + }; + + torch = lib.makeOverridable + ({ enableCuda ? false + , cudatoolkit ? pkgs.cudatoolkit_10_1 + , pkg ? super.torch + }: pkg.overrideAttrs (old: + { + preConfigure = + if (!enableCuda) then '' + export USE_CUDA=0 + '' else '' + export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${cudatoolkit}/targets/x86_64-linux/lib" + ''; + preFixup = lib.optionalString (!enableCuda) '' + # For some reason pytorch retains a reference to libcuda even if it + # is explicitly disabled with USE_CUDA=0. + find $out -name "*.so" -exec ${pkgs.patchelf}/bin/patchelf --remove-needed libcuda.so.1 {} \; + ''; + buildInputs = + (old.buildInputs or [ ]) + ++ [ self.typing-extensions ] + ++ lib.optionals enableCuda [ + pkgs.linuxPackages.nvidia_x11 + pkgs.nccl.dev + pkgs.nccl.out + ]; + propagatedBuildInputs = [ + self.numpy + self.future + self.typing-extensions + ]; + }) + ) + { }; + + torchvision = lib.makeOverridable + ({ enableCuda ? false + , cudatoolkit ? pkgs.cudatoolkit_10_1 + , pkg ? super.torchvision + }: pkg.overrideAttrs (old: { + + # without that autoPatchelfHook will fail because cudatoolkit is not in LD_LIBRARY_PATH + autoPatchelfIgnoreMissingDeps = true; + buildInputs = (old.buildInputs or [ ]) + ++ [ self.torch ] + ++ lib.optionals enableCuda [ + cudatoolkit + ]; + preConfigure = + if (enableCuda) then '' + export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${self.torch}/${self.python.sitePackages}/torch/lib:${lib.makeLibraryPath [ cudatoolkit "${cudatoolkit}" ]}" + '' else '' + export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${self.torch}/${self.python.sitePackages}/torch/lib" + ''; + })) + { }; + + typed_ast = super.typed-ast.overridePythonAttrs (old: { + nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ + self.pytest-runner + ]; + }); + + urwidtrees = super.urwidtrees.overridePythonAttrs ( + old: { + propagatedBuildInputs = (old.propagatedBuildInputs or [ ]) ++ [ + self.urwid + ]; + } + ); + + vose-alias-method = super.vose-alias-method.overridePythonAttrs ( + old: { + postInstall = '' + rm -f $out/LICENSE + ''; + } + ); + + vispy = super.vispy.overrideAttrs ( + old: { + inherit (pkgs.python3.pkgs.vispy) patches; + nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ + self.setuptools-scm-git-archive + ]; + } + ); + + uvloop = super.uvloop.overridePythonAttrs ( + old: { + buildInputs = (old.buildInputs or [ ]) ++ lib.optionals stdenv.isDarwin [ + pkgs.darwin.apple_sdk.frameworks.ApplicationServices + pkgs.darwin.apple_sdk.frameworks.CoreServices + ]; + } + ); + + + # Stop infinite recursion by using bootstrapped pkg from nixpkgs + bootstrapped-pip = super.bootstrapped-pip.override { + wheel = (pkgs.python3.pkgs.override { + python = self.python; + }).wheel; + }; + + weasyprint = super.weasyprint.overridePythonAttrs ( + old: { + inherit (pkgs.python3.pkgs.weasyprint) patches; + nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ self.pytest-runner ]; + buildInputs = (old.buildInputs or [ ]) ++ [ self.pytest-runner ]; + } + ); + + web3 = super.web3.overridePythonAttrs { + preConfigure = '' + substituteInPlace setup.py --replace \'setuptools-markdown\' "" + ''; + }; + + weblate-language-data = super.weblate-language-data.overridePythonAttrs ( + old: { + buildInputs = (old.buildInputs or [ ]) ++ [ + self.translate-toolkit + ]; + } + ); + + wheel = + let + isWheel = super.wheel.src.isWheel or false; + # If "wheel" is a pre-built binary wheel + wheelPackage = super.buildPythonPackage { + inherit (super.wheel) pname name version src; + inherit (pkgs.python3.pkgs.wheel) meta; + format = "wheel"; + }; + # If "wheel" is built from source + sourcePackage = (( + pkgs.python3.pkgs.override { + python = self.python; + } + ).wheel.override { + inherit (self) buildPythonPackage bootstrapped-pip setuptools; + }).overrideAttrs (old: { + inherit (super.wheel) pname name version src; + }); + in + if isWheel then wheelPackage else sourcePackage; + + zipp = if super.zipp == null then null else + super.zipp.overridePythonAttrs ( + old: { + propagatedBuildInputs = (old.propagatedBuildInputs or [ ]) ++ [ + self.toml + ]; + } + ); + + packaging = + let + old = super.packaging; + in + # From 20.5 until 20.7, packaging used flit for packaging (heh) + # See https://github.com/pypa/packaging/pull/352 and https://github.com/pypa/packaging/pull/367 + if (lib.versionAtLeast old.version "20.5" && lib.versionOlder old.version "20.8") then + addBuildSystem + { + inherit self; + drv = old; + attr = "flit-core"; + } else old; + + psutil = super.psutil.overridePythonAttrs ( + old: { + buildInputs = (old.buildInputs or [ ]) ++ + lib.optional stdenv.isDarwin pkgs.darwin.apple_sdk.frameworks.IOKit; + } + ); + + sentencepiece = super.sentencepiece.overridePythonAttrs ( + old: { + dontUseCmakeConfigure = true; + nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ + pkg-config + pkgs.cmake + pkgs.gperftools + ]; + buildInputs = (old.buildInputs or [ ]) ++ [ + pkgs.sentencepiece + ]; + } + ); + + sentence-transformers = super.sentence-transformers.overridePythonAttrs ( + old: { + buildInputs = + (old.buildInputs or [ ]) + ++ [ self.typing-extensions ]; + } + ); + + supervisor = super.supervisor.overridePythonAttrs ( + old: { + propagatedBuildInputs = (old.propagatedBuildInputs or [ ]) ++ [ + self.meld3 + self.setuptools + ]; + } + ); + + cytoolz = super.cytoolz.overridePythonAttrs ( + old: { + propagatedBuildInputs = (old.propagatedBuildInputs or [ ]) ++ [ self.toolz ]; + } + ); + + # For some reason the toml dependency of tqdm declared here: + # https://github.com/tqdm/tqdm/blob/67130a23646ae672836b971e1086b6ae4c77d930/pyproject.toml#L2 + # is not translated correctly to a nix dependency. + tqdm = super.tqdm.overrideAttrs ( + old: { + buildInputs = [ super.toml ] ++ (old.buildInputs or [ ]); + } + ); + + watchdog = super.watchdog.overrideAttrs ( + old: { + buildInputs = (old.buildInputs or [ ]) + ++ lib.optional pkgs.stdenv.isDarwin pkgs.darwin.apple_sdk.frameworks.CoreServices; + } + ); + + # pyee cannot find `vcversioner` and other "setup requirements", so it tries to + # download them from the internet, which only works when nix sandboxing is disabled. + # Additionally, since pyee uses vcversioner to specify its version, we need to do this + # manually specify its version. + pyee = super.pyee.overrideAttrs ( + old: { + postPatch = old.postPatch or "" + '' + sed -i setup.py \ + -e '/setup_requires/,/],/d' \ + -e 's/vcversioner={},/version="${old.version}",/' + ''; + } + ); + + # nixpkgs has setuptools_scm 4.1.2 + # but newrelic has a seemingly unnecessary version constraint for <4 + # So we patch that out + newrelic = super.newrelic.overridePythonAttrs ( + old: { + postPatch = old.postPatch or "" + '' + substituteInPlace setup.py --replace '"setuptools_scm>=3.2,<4"' '"setuptools_scm"' + ''; + } + ); + + wxpython = super.wxpython.overridePythonAttrs (old: + let + localPython = self.python.withPackages (ps: with ps; [ + setuptools + numpy + six + ]); + in + { + DOXYGEN = "${pkgs.doxygen}/bin/doxygen"; + + nativeBuildInputs = with pkgs; [ + which + doxygen + gtk3 + pkg-config + autoPatchelfHook + ] ++ (old.nativeBuildInputs or [ ]); + + buildInputs = with pkgs; [ + gtk3 + webkitgtk + ncurses + SDL2 + xorg.libXinerama + xorg.libSM + xorg.libXxf86vm + xorg.libXtst + xorg.xorgproto + gst_all_1.gstreamer + gst_all_1.gst-plugins-base + libGLU + libGL + libglvnd + mesa + ] ++ old.buildInputs; + + buildPhase = '' + ${localPython.interpreter} build.py -v build_wx + ${localPython.interpreter} build.py -v dox etg --nodoc sip + ${localPython.interpreter} build.py -v build_py + ''; + + installPhase = '' + ${localPython.interpreter} setup.py install --skip-build --prefix=$out + ''; + }); + + marisa-trie = super.marisa-trie.overridePythonAttrs ( + old: { + buildInputs = (old.buildInputs or [ ]) ++ [ self.pytest-runner ]; + } + ); + + ua-parser = super.ua-parser.overridePythonAttrs ( + old: { + propagatedBuildInputs = (old.propagatedBuildInputs or [ ]) ++ [ self.pyyaml ]; + } + ); + + pygraphviz = super.pygraphviz.overridePythonAttrs (old: { + nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ pkg-config ]; + buildInputs = (old.buildInputs or [ ]) ++ [ pkgs.graphviz ]; + }); + + pysqlite = super.pysqlite.overridePythonAttrs (old: { + propagatedBuildInputs = (old.propagatedBuildInputs or [ ]) ++ [ pkgs.sqlite ]; + patchPhase = '' + substituteInPlace "setup.cfg" \ + --replace "/usr/local/include" "${pkgs.sqlite.dev}/include" \ + --replace "/usr/local/lib" "${pkgs.sqlite.out}/lib" + ${lib.optionalString (!stdenv.isDarwin) ''export LDSHARED="$CC -pthread -shared"''} + ''; + }); + + selinux = super.selinux.overridePythonAttrs (old: { + buildInputs = (old.buildInputs or [ ]) ++ [ self.setuptools-scm-git-archive ]; + }); + + uwsgi = super.uwsgi.overridePythonAttrs + (old: + { + buildInputs = (old.buildInputs or [ ]) ++ [ pkgs.ncurses ]; + } // lib.optionalAttrs (lib.versionAtLeast old.version "2.0.19" && lib.versionOlder old.version "2.0.20") { + sourceRoot = "."; + }); + + wcwidth = super.wcwidth.overridePythonAttrs (old: { + propagatedBuildInputs = (old.propagatedBuildInputs or [ ]) ++ + lib.optional self.isPy27 (self.backports-functools-lru-cache or self.backports_functools_lru_cache) + ; + }); + + wtforms = super.wtforms.overridePythonAttrs (old: { + buildInputs = (old.buildInputs or [ ]) ++ [ self.Babel ]; + }); + + } + ) + +] diff --git a/pkgs/development/tools/poetry2nix/poetry2nix/pep425.nix b/pkgs/development/tools/poetry2nix/poetry2nix/pep425.nix index 56f894c2e752..b16bd5f3cebc 100644 --- a/pkgs/development/tools/poetry2nix/poetry2nix/pep425.nix +++ b/pkgs/development/tools/poetry2nix/poetry2nix/pep425.nix @@ -1,7 +1,7 @@ { lib, stdenv, poetryLib, python, isLinux ? stdenv.isLinux }: let - inherit (lib.strings) hasSuffix hasInfix splitString removeSuffix; - inherit (poetryLib) targetMachine; + inherit (lib.strings) escapeRegex hasPrefix hasSuffix hasInfix splitString removePrefix removeSuffix; + targetMachine = poetryLib.getTargetMachine stdenv; # The 'cpxy" as determined by `python.version` # @@ -52,10 +52,10 @@ let # x = "cpXX" | "py2" | "py3" | "py2.py3" isPyVersionCompatible = pyver: x: let - normalize = y: ''cp${lib.strings.removePrefix "cp" (lib.strings.removePrefix "py" y)}''; - isCompat = p: x: lib.strings.hasPrefix (normalize x) p; + normalize = y: ''cp${removePrefix "cp" (removePrefix "py" y)}''; + isCompat = p: x: hasPrefix (normalize x) p; in - lib.lists.any (isCompat pyver) (lib.strings.splitString "." x); + lib.lists.any (isCompat pyver) (splitString "." x); # # Selects the best matching wheel file from a list of files @@ -63,7 +63,7 @@ let selectWheel = files: let filesWithoutSources = (builtins.filter (x: hasSuffix ".whl" x.file) files); - isPyAbiCompatible = pyabi: x: x == "none" || lib.hasPrefix pyabi x || lib.hasPrefix x pyabi || ( + isPyAbiCompatible = pyabi: x: x == "none" || hasPrefix pyabi x || hasPrefix x pyabi || ( # The CPython stable ABI is abi3 as in the shared library suffix. python.passthru.implementation == "cpython" && builtins.elemAt (lib.splitString "." python.version) 0 == "3" && @@ -75,32 +75,30 @@ let then if targetMachine != null then - ( - x: x.platform == "any" || lib.lists.any (e: hasInfix e x.platform) [ - "manylinux1_${targetMachine}" - "manylinux2010_${targetMachine}" - "manylinux2014_${targetMachine}" - ] + # See PEP 600 for details. + (p: + builtins.match "any|manylinux(1|2010|2014)_${escapeRegex targetMachine}|manylinux_[0-9]+_[0-9]+_${escapeRegex targetMachine}" p != null ) else - (x: x.platform == "any") + (p: p == "any") else if stdenv.isDarwin then if stdenv.targetPlatform.isAarch64 - then (x: x.platform == "any" || (hasInfix "macosx" x.platform && lib.lists.any (e: hasSuffix e x.platform) [ "arm64" "aarch64" ])) - else (x: x.platform == "any" || (hasInfix "macosx" x.platform && hasSuffix "x86_64" x.platform)) - else (x: x.platform == "any"); + then (p: p == "any" || (hasInfix "macosx" p && lib.lists.any (e: hasSuffix e p) [ "arm64" "aarch64" ])) + else (p: p == "any" || (hasInfix "macosx" p && hasSuffix "x86_64" p)) + else (p: p == "any"); + withPlatforms = x: lib.lists.any withPlatform (splitString "." x.platform); filterWheel = x: let f = toWheelAttrs x.file; in - (withPython pythonTag abiTag f) && (withPlatform f); + (withPython pythonTag abiTag f) && (withPlatforms f); filtered = builtins.filter filterWheel filesWithoutSources; choose = files: let osxMatches = [ "12_0" "11_0" "10_12" "10_11" "10_10" "10_9" "10_8" "10_7" "any" ]; - linuxMatches = [ "manylinux1_" "manylinux2010_" "manylinux2014_" "any" ]; + linuxMatches = [ "manylinux1_" "manylinux2010_" "manylinux2014_" "manylinux_" "any" ]; chooseLinux = x: lib.take 1 (findBestMatches linuxMatches x); chooseOSX = x: lib.take 1 (findBestMatches osxMatches x); in diff --git a/pkgs/development/tools/poetry2nix/poetry2nix/pep508.nix b/pkgs/development/tools/poetry2nix/poetry2nix/pep508.nix index 5098c5c3a90c..c9cef28fe85e 100644 --- a/pkgs/development/tools/poetry2nix/poetry2nix/pep508.nix +++ b/pkgs/development/tools/poetry2nix/poetry2nix/pep508.nix @@ -1,6 +1,8 @@ { lib, stdenv, poetryLib }: python: let - inherit (poetryLib) ireplace targetMachine; + inherit (poetryLib) ireplace; + + targetMachine = poetryLib.getTargetMachine stdenv; # Like builtins.substring but with stop being offset instead of length substr = start: stop: s: builtins.substring start (stop - start) s; diff --git a/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/default.nix b/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/default.nix index 8e52d7387c40..868599bde689 100644 --- a/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/default.nix +++ b/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/default.nix @@ -14,9 +14,6 @@ poetry2nix.mkPoetryApplication { inherit projectDir pyproject poetrylock; - # Don't include poetry in inputs - __isBootstrap = true; - src = fetchFromGitHub (lib.importJSON ./src.json); # "Vendor" dependencies (for build-system support) diff --git a/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/poetry.lock b/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/poetry.lock index 2da1370add73..5f179e2415d7 100644 --- a/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/poetry.lock +++ b/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/poetry.lock @@ -8,32 +8,17 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" [[package]] name = "attrs" -version = "21.2.0" +version = "21.4.0" description = "Classes Without Boilerplate" category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" [package.extras] -dev = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "zope.interface", "furo", "sphinx", "sphinx-notfound-page", "pre-commit"] +dev = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "zope.interface", "furo", "sphinx", "sphinx-notfound-page", "pre-commit", "cloudpickle"] docs = ["furo", "sphinx", "zope.interface", "sphinx-notfound-page"] -tests = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "zope.interface"] -tests_no_zope = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins"] - -[[package]] -name = "backports.entry-points-selectable" -version = "1.1.1" -description = "Compatibility shim providing selectable entry points for older implementations" -category = "main" -optional = false -python-versions = ">=2.7" - -[package.dependencies] -importlib-metadata = {version = "*", markers = "python_version < \"3.8\""} - -[package.extras] -docs = ["sphinx", "jaraco.packaging (>=8.2)", "rst.linker (>=1.9)"] -testing = ["pytest", "pytest-flake8", "pytest-cov", "pytest-black (>=0.3.7)", "pytest-mypy", "pytest-checkdocs (>=2.4)", "pytest-enabler (>=1.0.1)"] +tests = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "zope.interface", "cloudpickle"] +tests_no_zope = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "cloudpickle"] [[package]] name = "backports.functools-lru-cache" @@ -245,7 +230,7 @@ test = ["pytest (>=3.6.0,!=3.9.0,!=3.9.1,!=3.9.2)", "pretend", "iso8601", "pytz" [[package]] name = "cryptography" -version = "36.0.1" +version = "36.0.2" description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers." category = "main" optional = false @@ -364,7 +349,7 @@ six = "*" [[package]] name = "identify" -version = "2.4.0" +version = "2.4.4" description = "File identification library for Python" category = "dev" optional = false @@ -417,6 +402,14 @@ zipp = {version = ">=0.4", markers = "python_version < \"3.8\""} [package.extras] docs = ["sphinx", "rst.linker", "jaraco.packaging"] +[[package]] +name = "iniconfig" +version = "1.1.1" +description = "iniconfig: brain-dead simple config-ini parsing" +category = "dev" +optional = false +python-versions = "*" + [[package]] name = "ipaddress" version = "1.0.23" @@ -484,7 +477,7 @@ testing = ["pytest (>=3.5,!=3.7.3)", "pytest-checkdocs (>=1.2.3)", "pytest-flake [[package]] name = "keyring" -version = "21.8.0" +version = "22.3.0" description = "Store and access your passwords safely." category = "main" optional = false @@ -498,7 +491,7 @@ SecretStorage = {version = ">=3.2", markers = "sys_platform == \"linux\""} [package.extras] docs = ["sphinx", "jaraco.packaging (>=8.2)", "rst.linker (>=1.9)"] -testing = ["pytest (>=3.5,!=3.7.3)", "pytest-checkdocs (>=1.2.3)", "pytest-flake8", "pytest-cov", "jaraco.test (>=3.2.0)", "pytest-black (>=0.3.7)", "pytest-mypy"] +testing = ["pytest (>=4.6)", "pytest-checkdocs (>=1.2.3)", "pytest-flake8", "pytest-cov", "pytest-enabler", "pytest-black (>=0.3.7)", "pytest-mypy"] [[package]] name = "lockfile" @@ -589,7 +582,7 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" [[package]] name = "pathlib2" -version = "2.3.6" +version = "2.3.7.post1" description = "Object-oriented filesystem paths" category = "main" optional = false @@ -598,6 +591,7 @@ python-versions = "*" [package.dependencies] scandir = {version = "*", markers = "python_version < \"3.5\""} six = "*" +typing = {version = "*", markers = "python_version < \"3.5\""} [[package]] name = "pexpect" @@ -645,7 +639,7 @@ dev = ["pre-commit", "tox"] [[package]] name = "poetry-core" -version = "1.0.7" +version = "1.0.8" description = "Poetry PEP 517 Build Backend" category = "main" optional = false @@ -660,7 +654,7 @@ typing = {version = ">=3.7.4.1,<4.0.0.0", markers = "python_version >= \"2.7\" a [[package]] name = "pre-commit" -version = "2.16.0" +version = "2.17.0" description = "A framework for managing and maintaining multi-language pre-commit hooks." category = "dev" optional = false @@ -768,6 +762,28 @@ wcwidth = "*" checkqa-mypy = ["mypy (==v0.761)"] testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "requests", "xmlschema"] +[[package]] +name = "pytest" +version = "6.2.5" +description = "pytest: simple powerful testing with Python" +category = "dev" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +atomicwrites = {version = ">=1.0", markers = "sys_platform == \"win32\""} +attrs = ">=19.2.0" +colorama = {version = "*", markers = "sys_platform == \"win32\""} +importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""} +iniconfig = "*" +packaging = "*" +pluggy = ">=0.12,<2.0" +py = ">=1.8.2" +toml = "*" + +[package.extras] +testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "requests", "xmlschema"] + [[package]] name = "pytest-cov" version = "2.12.1" @@ -973,7 +989,7 @@ typing = {version = ">=3.6,<4.0", markers = "python_version >= \"2.7\" and pytho [[package]] name = "tox" -version = "3.24.4" +version = "3.24.5" description = "tox is a generic virtualenv management and test command line tool" category = "dev" optional = false @@ -992,7 +1008,7 @@ virtualenv = ">=16.0.0,<20.0.0 || >20.0.0,<20.0.1 || >20.0.1,<20.0.2 || >20.0.2, [package.extras] docs = ["pygments-github-lexers (>=0.0.5)", "sphinx (>=2.0.0)", "sphinxcontrib-autoprogram (>=0.1.5)", "towncrier (>=18.5.0)"] -testing = ["flaky (>=3.4.0)", "freezegun (>=0.3.11)", "psutil (>=5.6.1)", "pytest (>=4.0.0)", "pytest-cov (>=2.5.1)", "pytest-mock (>=1.10.0)", "pytest-randomly (>=1.0.0)", "pytest-xdist (>=1.22.2)", "pathlib2 (>=2.3.3)"] +testing = ["flaky (>=3.4.0)", "freezegun (>=0.3.11)", "pytest (>=4.0.0)", "pytest-cov (>=2.5.1)", "pytest-mock (>=1.10.0)", "pytest-randomly (>=1.0.0)", "psutil (>=5.6.1)", "pathlib2 (>=2.3.3)"] [[package]] name = "typing" @@ -1025,14 +1041,13 @@ socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"] [[package]] name = "virtualenv" -version = "20.10.0" +version = "20.14.0" description = "Virtual Python Environment builder" category = "main" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" [package.dependencies] -"backports.entry-points-selectable" = ">=1.0.4" distlib = ">=0.3.1,<1" filelock = ">=3.2,<4" importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""} @@ -1082,7 +1097,7 @@ testing = ["pathlib2", "unittest2", "jaraco.itertools", "func-timeout"] [metadata] lock-version = "1.1" python-versions = "~2.7 || ^3.5" -content-hash = "290e530f0cdd81360dd6cb93f3182ac8e8b18a46238198d25de11c26f6b0c356" +content-hash = "3de9a28e5a2f53d26b75a9aa3eb333b360eb04470769675fb435183ab871798c" [metadata.files] atomicwrites = [ @@ -1090,12 +1105,8 @@ atomicwrites = [ {file = "atomicwrites-1.4.0.tar.gz", hash = "sha256:ae70396ad1a434f9c7046fd2dd196fc04b12f9e91ffb859164193be8b6168a7a"}, ] attrs = [ - {file = "attrs-21.2.0-py2.py3-none-any.whl", hash = "sha256:149e90d6d8ac20db7a955ad60cf0e6881a3f20d37096140088356da6c716b0b1"}, - {file = "attrs-21.2.0.tar.gz", hash = "sha256:ef6aaac3ca6cd92904cdd0d83f629a15f18053ec84e6432106f7a4d04ae4f5fb"}, -] -"backports.entry-points-selectable" = [ - {file = "backports.entry_points_selectable-1.1.1-py2.py3-none-any.whl", hash = "sha256:7fceed9532a7aa2bd888654a7314f864a3c16a4e710b34a58cfc0f08114c663b"}, - {file = "backports.entry_points_selectable-1.1.1.tar.gz", hash = "sha256:914b21a479fde881635f7af5adc7f6e38d6b274be32269070c53b698c60d5386"}, + {file = "attrs-21.4.0-py2.py3-none-any.whl", hash = "sha256:2d27e3784d7a565d36ab851fe94887c5eccd6a463168875832a1be79c82828b4"}, + {file = "attrs-21.4.0.tar.gz", hash = "sha256:626ba8234211db98e869df76230a137c4c40a12d72445c45d5f5b716f076e2fd"}, ] "backports.functools-lru-cache" = [ {file = "backports.functools_lru_cache-1.6.4-py2.py3-none-any.whl", hash = "sha256:dbead04b9daa817909ec64e8d2855fb78feafe0b901d4568758e3a60559d8978"}, @@ -1290,26 +1301,26 @@ cryptography = [ {file = "cryptography-3.3.2-cp36-abi3-win32.whl", hash = "sha256:3c284fc1e504e88e51c428db9c9274f2da9f73fdf5d7e13a36b8ecb039af6e6c"}, {file = "cryptography-3.3.2-cp36-abi3-win_amd64.whl", hash = "sha256:7951a966613c4211b6612b0352f5bf29989955ee592c4a885d8c7d0f830d0433"}, {file = "cryptography-3.3.2.tar.gz", hash = "sha256:5a60d3780149e13b7a6ff7ad6526b38846354d11a15e21068e57073e29e19bed"}, - {file = "cryptography-36.0.1-cp36-abi3-macosx_10_10_universal2.whl", hash = "sha256:73bc2d3f2444bcfeac67dd130ff2ea598ea5f20b40e36d19821b4df8c9c5037b"}, - {file = "cryptography-36.0.1-cp36-abi3-macosx_10_10_x86_64.whl", hash = "sha256:2d87cdcb378d3cfed944dac30596da1968f88fb96d7fc34fdae30a99054b2e31"}, - {file = "cryptography-36.0.1-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:74d6c7e80609c0f4c2434b97b80c7f8fdfaa072ca4baab7e239a15d6d70ed73a"}, - {file = "cryptography-36.0.1-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:6c0c021f35b421ebf5976abf2daacc47e235f8b6082d3396a2fe3ccd537ab173"}, - {file = "cryptography-36.0.1-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d59a9d55027a8b88fd9fd2826c4392bd487d74bf628bb9d39beecc62a644c12"}, - {file = "cryptography-36.0.1-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0a817b961b46894c5ca8a66b599c745b9a3d9f822725221f0e0fe49dc043a3a3"}, - {file = "cryptography-36.0.1-cp36-abi3-manylinux_2_24_x86_64.whl", hash = "sha256:94ae132f0e40fe48f310bba63f477f14a43116f05ddb69d6fa31e93f05848ae2"}, - {file = "cryptography-36.0.1-cp36-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:7be0eec337359c155df191d6ae00a5e8bbb63933883f4f5dffc439dac5348c3f"}, - {file = "cryptography-36.0.1-cp36-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:e0344c14c9cb89e76eb6a060e67980c9e35b3f36691e15e1b7a9e58a0a6c6dc3"}, - {file = "cryptography-36.0.1-cp36-abi3-win32.whl", hash = "sha256:4caa4b893d8fad33cf1964d3e51842cd78ba87401ab1d2e44556826df849a8ca"}, - {file = "cryptography-36.0.1-cp36-abi3-win_amd64.whl", hash = "sha256:391432971a66cfaf94b21c24ab465a4cc3e8bf4a939c1ca5c3e3a6e0abebdbcf"}, - {file = "cryptography-36.0.1-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:bb5829d027ff82aa872d76158919045a7c1e91fbf241aec32cb07956e9ebd3c9"}, - {file = "cryptography-36.0.1-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ebc15b1c22e55c4d5566e3ca4db8689470a0ca2babef8e3a9ee057a8b82ce4b1"}, - {file = "cryptography-36.0.1-pp37-pypy37_pp73-manylinux_2_24_x86_64.whl", hash = "sha256:596f3cd67e1b950bc372c33f1a28a0692080625592ea6392987dba7f09f17a94"}, - {file = "cryptography-36.0.1-pp38-pypy38_pp73-macosx_10_10_x86_64.whl", hash = "sha256:30ee1eb3ebe1644d1c3f183d115a8c04e4e603ed6ce8e394ed39eea4a98469ac"}, - {file = "cryptography-36.0.1-pp38-pypy38_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:ec63da4e7e4a5f924b90af42eddf20b698a70e58d86a72d943857c4c6045b3ee"}, - {file = "cryptography-36.0.1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ca238ceb7ba0bdf6ce88c1b74a87bffcee5afbfa1e41e173b1ceb095b39add46"}, - {file = "cryptography-36.0.1-pp38-pypy38_pp73-manylinux_2_24_x86_64.whl", hash = "sha256:ca28641954f767f9822c24e927ad894d45d5a1e501767599647259cbf030b903"}, - {file = "cryptography-36.0.1-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:39bdf8e70eee6b1c7b289ec6e5d84d49a6bfa11f8b8646b5b3dfe41219153316"}, - {file = "cryptography-36.0.1.tar.gz", hash = "sha256:53e5c1dc3d7a953de055d77bef2ff607ceef7a2aac0353b5d630ab67f7423638"}, + {file = "cryptography-36.0.2-cp36-abi3-macosx_10_10_universal2.whl", hash = "sha256:4e2dddd38a5ba733be6a025a1475a9f45e4e41139d1321f412c6b360b19070b6"}, + {file = "cryptography-36.0.2-cp36-abi3-macosx_10_10_x86_64.whl", hash = "sha256:4881d09298cd0b669bb15b9cfe6166f16fc1277b4ed0d04a22f3d6430cb30f1d"}, + {file = "cryptography-36.0.2-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:ea634401ca02367c1567f012317502ef3437522e2fc44a3ea1844de028fa4b84"}, + {file = "cryptography-36.0.2-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:7be666cc4599b415f320839e36367b273db8501127b38316f3b9f22f17a0b815"}, + {file = "cryptography-36.0.2-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8241cac0aae90b82d6b5c443b853723bcc66963970c67e56e71a2609dc4b5eaf"}, + {file = "cryptography-36.0.2-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7b2d54e787a884ffc6e187262823b6feb06c338084bbe80d45166a1cb1c6c5bf"}, + {file = "cryptography-36.0.2-cp36-abi3-manylinux_2_24_x86_64.whl", hash = "sha256:c2c5250ff0d36fd58550252f54915776940e4e866f38f3a7866d92b32a654b86"}, + {file = "cryptography-36.0.2-cp36-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:ec6597aa85ce03f3e507566b8bcdf9da2227ec86c4266bd5e6ab4d9e0cc8dab2"}, + {file = "cryptography-36.0.2-cp36-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:ca9f686517ec2c4a4ce930207f75c00bf03d94e5063cbc00a1dc42531511b7eb"}, + {file = "cryptography-36.0.2-cp36-abi3-win32.whl", hash = "sha256:f64b232348ee82f13aac22856515ce0195837f6968aeaa94a3d0353ea2ec06a6"}, + {file = "cryptography-36.0.2-cp36-abi3-win_amd64.whl", hash = "sha256:53e0285b49fd0ab6e604f4c5d9c5ddd98de77018542e88366923f152dbeb3c29"}, + {file = "cryptography-36.0.2-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:32db5cc49c73f39aac27574522cecd0a4bb7384e71198bc65a0d23f901e89bb7"}, + {file = "cryptography-36.0.2-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d2b3d199647468d410994dbeb8cec5816fb74feb9368aedf300af709ef507e3e"}, + {file = "cryptography-36.0.2-pp37-pypy37_pp73-manylinux_2_24_x86_64.whl", hash = "sha256:da73d095f8590ad437cd5e9faf6628a218aa7c387e1fdf67b888b47ba56a17f0"}, + {file = "cryptography-36.0.2-pp38-pypy38_pp73-macosx_10_10_x86_64.whl", hash = "sha256:0a3bf09bb0b7a2c93ce7b98cb107e9170a90c51a0162a20af1c61c765b90e60b"}, + {file = "cryptography-36.0.2-pp38-pypy38_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:8897b7b7ec077c819187a123174b645eb680c13df68354ed99f9b40a50898f77"}, + {file = "cryptography-36.0.2-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:82740818f2f240a5da8dfb8943b360e4f24022b093207160c77cadade47d7c85"}, + {file = "cryptography-36.0.2-pp38-pypy38_pp73-manylinux_2_24_x86_64.whl", hash = "sha256:1f64a62b3b75e4005df19d3b5235abd43fa6358d5516cfc43d87aeba8d08dd51"}, + {file = "cryptography-36.0.2-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:e167b6b710c7f7bc54e67ef593f8731e1f45aa35f8a8a7b72d6e42ec76afd4b3"}, + {file = "cryptography-36.0.2.tar.gz", hash = "sha256:70f8f4f7bb2ac9f340655cbac89d68c527af5bb4387522a8413e841e3e6628c9"}, ] distlib = [ {file = "distlib-0.3.4-py2.py3-none-any.whl", hash = "sha256:6564fe0a8f51e734df6333d08b8b94d4ea8ee6b99b5ed50613f731fd4089f34b"}, @@ -1351,8 +1362,8 @@ httpretty = [ {file = "httpretty-0.9.7.tar.gz", hash = "sha256:66216f26b9d2c52e81808f3e674a6fb65d4bf719721394a1a9be926177e55fbe"}, ] identify = [ - {file = "identify-2.4.0-py2.py3-none-any.whl", hash = "sha256:eba31ca80258de6bb51453084bff4a923187cd2193b9c13710f2516ab30732cc"}, - {file = "identify-2.4.0.tar.gz", hash = "sha256:a33ae873287e81651c7800ca309dc1f84679b763c9c8b30680e16fbfa82f0107"}, + {file = "identify-2.4.4-py2.py3-none-any.whl", hash = "sha256:aa68609c7454dbcaae60a01ff6b8df1de9b39fe6e50b1f6107ec81dcda624aa6"}, + {file = "identify-2.4.4.tar.gz", hash = "sha256:6b4b5031f69c48bf93a646b90de9b381c6b5f560df4cbe0ed3cf7650ae741e4d"}, ] idna = [ {file = "idna-2.10-py2.py3-none-any.whl", hash = "sha256:b97d804b1e9b523befed77c48dacec60e6dcb0b5391d57af6a65a312a90648c0"}, @@ -1366,6 +1377,10 @@ importlib-resources = [ {file = "importlib_resources-3.2.1-py2.py3-none-any.whl", hash = "sha256:e2860cf0c4bc999947228d18be154fa3779c5dde0b882bd2d7b3f4d25e698bd6"}, {file = "importlib_resources-3.2.1.tar.gz", hash = "sha256:a9fe213ab6452708ec1b3f4ec6f2881b8ab3645cb4e5efb7fea2bbf05a91db3b"}, ] +iniconfig = [ + {file = "iniconfig-1.1.1-py2.py3-none-any.whl", hash = "sha256:011e24c64b7f47f6ebd835bb12a743f2fbe9a26d4cecaa7f53bc4f35ee9da8b3"}, + {file = "iniconfig-1.1.1.tar.gz", hash = "sha256:bc3af051d7d14b2ee5ef9969666def0cd1a000e121eaea580d4a313df4b37f32"}, +] ipaddress = [ {file = "ipaddress-1.0.23-py2.py3-none-any.whl", hash = "sha256:6e0f4a39e66cb5bb9a137b00276a2eff74f93b71dcbdad6f10ff7df9d3557fcc"}, {file = "ipaddress-1.0.23.tar.gz", hash = "sha256:b7f8e0369580bb4a24d5ba1d7cc29660a4a6987763faf1d8a8046830e020e7e2"}, @@ -1381,8 +1396,8 @@ keyring = [ {file = "keyring-18.0.1.tar.gz", hash = "sha256:67d6cc0132bd77922725fae9f18366bb314fd8f95ff4d323a4df41890a96a838"}, {file = "keyring-20.0.1-py2.py3-none-any.whl", hash = "sha256:c674f032424b4bffc62abeac5523ec49cc84aed07a480c3233e0baf618efc15c"}, {file = "keyring-20.0.1.tar.gz", hash = "sha256:963bfa7f090269d30bdc5e25589e5fd9dad2cf2a7c6f176a7f2386910e5d0d8d"}, - {file = "keyring-21.8.0-py3-none-any.whl", hash = "sha256:4be9cbaaaf83e61d6399f733d113ede7d1c73bc75cb6aeb64eee0f6ac39b30ea"}, - {file = "keyring-21.8.0.tar.gz", hash = "sha256:1746d3ac913d449a090caf11e9e4af00e26c3f7f7e81027872192b2398b98675"}, + {file = "keyring-22.3.0-py3-none-any.whl", hash = "sha256:2bc8363ebdd63886126a012057a85c8cb6e143877afa02619ac7dbc9f38a207b"}, + {file = "keyring-22.3.0.tar.gz", hash = "sha256:16927a444b2c73f983520a48dec79ddab49fe76429ea05b8d528d778c8339522"}, ] lockfile = [ {file = "lockfile-0.12.2-py2.py3-none-any.whl", hash = "sha256:6c3cb24f344923d30b2785d5ad75182c8ea7ac1b6171b08657258ec7429d50fa"}, @@ -1450,8 +1465,8 @@ pastel = [ {file = "pastel-0.2.1.tar.gz", hash = "sha256:e6581ac04e973cac858828c6202c1e1e81fee1dc7de7683f3e1ffe0bfd8a573d"}, ] pathlib2 = [ - {file = "pathlib2-2.3.6-py2.py3-none-any.whl", hash = "sha256:3a130b266b3a36134dcc79c17b3c7ac9634f083825ca6ea9d8f557ee6195c9c8"}, - {file = "pathlib2-2.3.6.tar.gz", hash = "sha256:7d8bcb5555003cdf4a8d2872c538faa3a0f5d20630cb360e518ca3b981795e5f"}, + {file = "pathlib2-2.3.7.post1-py2.py3-none-any.whl", hash = "sha256:5266a0fd000452f1b3467d782f079a4343c63aaa119221fbdc4e39577489ca5b"}, + {file = "pathlib2-2.3.7.post1.tar.gz", hash = "sha256:9fe0edad898b83c0c3e199c842b27ed216645d2e177757b2dd67384d4113c641"}, ] pexpect = [ {file = "pexpect-4.8.0-py2.py3-none-any.whl", hash = "sha256:0b48a55dcb3c05f3329815901ea4fc1537514d6ba867a152b581d69ae3710937"}, @@ -1470,12 +1485,12 @@ pluggy = [ {file = "pluggy-0.13.1.tar.gz", hash = "sha256:15b2acde666561e1298d71b523007ed7364de07029219b604cf808bfa1c765b0"}, ] poetry-core = [ - {file = "poetry-core-1.0.7.tar.gz", hash = "sha256:98c11c755a16ef6c5673c22ca94a3802a7df4746a0853a70b6fae8b9f5cac206"}, - {file = "poetry_core-1.0.7-py2.py3-none-any.whl", hash = "sha256:4f8a7f5390d772f42c4c4c3f188e6424b802cb4b57466c6633a1b9ac36f18a43"}, + {file = "poetry-core-1.0.8.tar.gz", hash = "sha256:951fc7c1f8d710a94cb49019ee3742125039fc659675912ea614ac2aa405b118"}, + {file = "poetry_core-1.0.8-py2.py3-none-any.whl", hash = "sha256:54b0fab6f7b313886e547a52f8bf52b8cf43e65b2633c65117f8755289061924"}, ] pre-commit = [ - {file = "pre_commit-2.16.0-py2.py3-none-any.whl", hash = "sha256:758d1dc9b62c2ed8881585c254976d66eae0889919ab9b859064fc2fe3c7743e"}, - {file = "pre_commit-2.16.0.tar.gz", hash = "sha256:fe9897cac830aa7164dbd02a4e7b90cae49630451ce88464bca73db486ba9f65"}, + {file = "pre_commit-2.17.0-py2.py3-none-any.whl", hash = "sha256:725fa7459782d7bec5ead072810e47351de01709be838c2ce1726b9591dad616"}, + {file = "pre_commit-2.17.0.tar.gz", hash = "sha256:c1a8040ff15ad3d648c70cc3e55b93e4d2d5b687320955505587fd79bbaed06a"}, ] ptyprocess = [ {file = "ptyprocess-0.7.0-py2.py3-none-any.whl", hash = "sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35"}, @@ -1502,6 +1517,8 @@ pytest = [ {file = "pytest-4.6.11.tar.gz", hash = "sha256:50fa82392f2120cc3ec2ca0a75ee615be4c479e66669789771f1758332be4353"}, {file = "pytest-5.4.3-py3-none-any.whl", hash = "sha256:5c0db86b698e8f170ba4582a492248919255fcd4c79b1ee64ace34301fb589a1"}, {file = "pytest-5.4.3.tar.gz", hash = "sha256:7979331bfcba207414f5e1263b5a0f8f521d0f457318836a7355531ed1a4c7d8"}, + {file = "pytest-6.2.5-py3-none-any.whl", hash = "sha256:7310f8d27bc79ced999e760ca304d69f6ba6c6649c0b60fb0e04a4a77cacc134"}, + {file = "pytest-6.2.5.tar.gz", hash = "sha256:131b36680866a76e6781d13f101efb86cf674ebb9762eb70d3082b6f29889e89"}, ] pytest-cov = [ {file = "pytest-cov-2.12.1.tar.gz", hash = "sha256:261ceeb8c227b726249b376b8526b600f38667ee314f910353fa318caa01f4d7"}, @@ -1610,8 +1627,8 @@ tomlkit = [ {file = "tomlkit-0.7.2.tar.gz", hash = "sha256:d7a454f319a7e9bd2e249f239168729327e4dd2d27b17dc68be264ad1ce36754"}, ] tox = [ - {file = "tox-3.24.4-py2.py3-none-any.whl", hash = "sha256:5e274227a53dc9ef856767c21867377ba395992549f02ce55eb549f9fb9a8d10"}, - {file = "tox-3.24.4.tar.gz", hash = "sha256:c30b57fa2477f1fb7c36aa1d83292d5c2336cd0018119e1b1c17340e2c2708ca"}, + {file = "tox-3.24.5-py2.py3-none-any.whl", hash = "sha256:be3362472a33094bce26727f5f771ca0facf6dafa217f65875314e9a6600c95c"}, + {file = "tox-3.24.5.tar.gz", hash = "sha256:67e0e32c90e278251fea45b696d0fef3879089ccbe979b0c556d35d5a70e2993"}, ] typing = [ {file = "typing-3.10.0.0-py2-none-any.whl", hash = "sha256:c7219ef20c5fbf413b4567092adfc46fa6203cb8454eda33c3fc1afe1398a308"}, @@ -1628,8 +1645,8 @@ urllib3 = [ {file = "urllib3-1.25.11.tar.gz", hash = "sha256:8d7eaa5a82a1cac232164990f04874c594c9453ec55eef02eab885aa02fc17a2"}, ] virtualenv = [ - {file = "virtualenv-20.10.0-py2.py3-none-any.whl", hash = "sha256:4b02e52a624336eece99c96e3ab7111f469c24ba226a53ec474e8e787b365814"}, - {file = "virtualenv-20.10.0.tar.gz", hash = "sha256:576d05b46eace16a9c348085f7d0dc8ef28713a2cabaa1cf0aea41e8f12c9218"}, + {file = "virtualenv-20.14.0-py2.py3-none-any.whl", hash = "sha256:1e8588f35e8b42c6ec6841a13c5e88239de1e6e4e4cedfd3916b306dc826ec66"}, + {file = "virtualenv-20.14.0.tar.gz", hash = "sha256:8e5b402037287126e81ccde9432b95a8be5b19d36584f64957060a3488c11ca8"}, ] wcwidth = [ {file = "wcwidth-0.2.5-py2.py3-none-any.whl", hash = "sha256:beb4802a9cebb9144e99086eff703a642a13d6a0052920003a230f3294bbe784"}, diff --git a/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/pyproject.toml b/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/pyproject.toml index 5cf34372b050..4fff27d4e0eb 100644 --- a/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/pyproject.toml +++ b/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "poetry" -version = "1.1.12" +version = "1.1.13" description = "Python dependency management and packaging made easy." authors = [ "Sébastien Eustace " @@ -57,7 +57,7 @@ functools32 = { version = "^3.2.3", python = "~2.7" } keyring = [ { version = "^18.0.1", python = "~2.7" }, { version = "^20.0.1", python = "~3.5" }, - { version = "^21.2.0", python = "^3.6" } + { version = ">=21.2.0", python = "^3.6" } ] # Use subprocess32 for Python 2.7 subprocess32 = { version = "^3.5", python = "~2.7" } @@ -66,7 +66,8 @@ importlib-metadata = {version = "^1.6.0", python = "<3.8"} [tool.poetry.dev-dependencies] pytest = [ {version = "^4.1", python = "<3.5"}, - {version = "^5.4.3", python = ">=3.5"} + {version = "^5.4.3", python = "~3.5"}, + {version = "^6.2.5", python = ">=3.6"} ] pytest-cov = "^2.5" pytest-mock = "^1.9" diff --git a/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/src.json b/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/src.json index aeee3abb7d42..7b35dc31494e 100644 --- a/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/src.json +++ b/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/src.json @@ -1,7 +1,7 @@ { - "owner": "python-poetry", - "repo": "poetry", - "rev": "020fb336e6da11d3a9909f30bd908437a69f13b3", - "sha256": "1fm4yj6wxr24v7b77gmf63j7xsgszhbhzw2i9fvlfi0p9l0q34pm", - "fetchSubmodules": true + "owner": "python-poetry", + "repo": "poetry", + "rev": "1.1.13", + "sha256": "0zm73wcxjfad3841wl1xpx20drhynrqlxsjh1d1gsh618b7ldpib", + "fetchSubmodules": true } diff --git a/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/update b/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/update deleted file mode 100755 index 95b7f5bb3318..000000000000 --- a/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/update +++ /dev/null @@ -1,11 +0,0 @@ -#!/usr/bin/env nix-shell -#! nix-shell -i bash -p curl nix-prefetch-github jq - -rev=$(curl -s https://api.github.com/repos/python-poetry/poetry/releases/latest | jq -r '.name') -nix-prefetch-github --rev "$rev" python-poetry poetry > src.json -echo >> src.json - -src=$(nix-build --no-out-link --expr 'with import {}; fetchFromGitHub (lib.importJSON ./src.json)') -cp $src/pyproject.toml $src/poetry.lock . -nix-shell -p poetry --run 'poetry lock' -nix-build --expr '(import { overlays = [ (import ../../overlay.nix) ]; }).poetry' diff --git a/pkgs/development/tools/poetry2nix/update b/pkgs/development/tools/poetry2nix/update index ac8c98a33d9c..047f7a8fea65 100755 --- a/pkgs/development/tools/poetry2nix/update +++ b/pkgs/development/tools/poetry2nix/update @@ -1,4 +1,5 @@ #!/usr/bin/env bash +set -euo pipefail pwd=$(pwd) workdir=$(mktemp -d) @@ -15,8 +16,8 @@ mv poetry2nix-master/* . mkdir build cp *.* build/ -cp -r pkgs hooks bin build/ -rm build/shell.nix build/generate.py build/overlay.nix build/flake.* build/check-fmt.nix +cp -r overrides pkgs hooks bin build/ +rm build/shell.nix build/generate.py build/overlay.nix build/flake.* build/check-fmt.nix build/pkgs/poetry/update* cat > build/README.md << EOF Dont change these files here, they are maintained at https://github.com/nix-community/poetry2nix From ce8e9df4d7f98c6f35d38f6a6995148e1fcbe54a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Forsman?= Date: Thu, 31 Mar 2022 13:16:20 +0200 Subject: [PATCH 062/101] arcanist: add python3 to fix 'arc anoid' Patch out the requirement from 'arc' that it needs 'python3' in $PATH at runtime, because once built the python script will have a fixed absolute path shebang to python3. (The check makes sense outside of Nix though.) Not injecting python3 in PATH prevents leaking python3 into the environment in which arc runs linters etc. --- .../tools/misc/arcanist/default.nix | 5 +++- .../dont-require-python3-in-path.patch | 26 +++++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 pkgs/development/tools/misc/arcanist/dont-require-python3-in-path.patch diff --git a/pkgs/development/tools/misc/arcanist/default.nix b/pkgs/development/tools/misc/arcanist/default.nix index 9540f1e0a6c8..0fa34c7eefe8 100644 --- a/pkgs/development/tools/misc/arcanist/default.nix +++ b/pkgs/development/tools/misc/arcanist/default.nix @@ -6,6 +6,7 @@ , lib, stdenv , installShellFiles , which +, python3 }: # Make a custom wrapper. If `wrapProgram` is used, arcanist thinks .arc-wrapped is being @@ -33,7 +34,9 @@ stdenv.mkDerivation { sha256 = "0jiv4aj4m5750dqw9r8hizjkwiyxk4cg4grkr63sllsa2dpiibxw"; }; - buildInputs = [ php ]; + patches = [ ./dont-require-python3-in-path.patch ]; + + buildInputs = [ php python3 ]; nativeBuildInputs = [ bison flex installShellFiles ]; diff --git a/pkgs/development/tools/misc/arcanist/dont-require-python3-in-path.patch b/pkgs/development/tools/misc/arcanist/dont-require-python3-in-path.patch new file mode 100644 index 000000000000..5c127491bb84 --- /dev/null +++ b/pkgs/development/tools/misc/arcanist/dont-require-python3-in-path.patch @@ -0,0 +1,26 @@ +Don't require python3 in PATH + +Once packaged, the arcanoid.py script has an absolute path shebang to +python3, so there is no need to also require python3 in PATH. + +This prevents leaking in a python3 in PATH in the environment which arc +runs linters etc. + +Author: bjorn.forsman@gmail.com +diff -uNr arcanist.orig/src/workflow/ArcanistAnoidWorkflow.php arcanist.new/src/workflow/ArcanistAnoidWorkflow.php +--- arcanist.orig/src/workflow/ArcanistAnoidWorkflow.php 2022-03-31 13:23:30.865095192 +0200 ++++ arcanist.new/src/workflow/ArcanistAnoidWorkflow.php 2022-04-01 12:19:15.644159639 +0200 +@@ -24,13 +24,6 @@ + } + + public function runWorkflow() { +- if (!Filesystem::binaryExists('python3')) { +- throw new PhutilArgumentUsageException( +- pht( +- 'The "arc anoid" workflow requires "python3" to be available '. +- 'in your $PATH.')); +- } +- + $support_dir = phutil_get_library_root('arcanist'); + $support_dir = dirname($support_dir); + $support_dir = $support_dir.'/support/'; From 3f6e36987b513b553f6d8bf5b49cd9742a2347c0 Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Fri, 1 Apr 2022 18:59:17 +0800 Subject: [PATCH 063/101] pantheon.elementary-dock: run glib-compile-schemas --- pkgs/desktops/pantheon/apps/elementary-dock/default.nix | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/pkgs/desktops/pantheon/apps/elementary-dock/default.nix b/pkgs/desktops/pantheon/apps/elementary-dock/default.nix index 5aa61062a8f6..d9cd7f184943 100644 --- a/pkgs/desktops/pantheon/apps/elementary-dock/default.nix +++ b/pkgs/desktops/pantheon/apps/elementary-dock/default.nix @@ -68,6 +68,14 @@ stdenv.mkDerivation rec { pango ]; + postInstall = '' + # elementary/dock/master is missing a Meson post + # install script that does this. This has been + # resolved after the dock rewrite (the `main` branch). + # https://github.com/elementary/default-settings/issues/267 + glib-compile-schemas $out/share/glib-2.0/schemas + ''; + meta = with lib; { description = "Elegant, simple, clean dock"; homepage = "https://github.com/elementary/dock"; From 9511feef722fd1cba5fbfcfb1fdce85698942bf0 Mon Sep 17 00:00:00 2001 From: adisbladis Date: Fri, 1 Apr 2022 23:34:29 +1200 Subject: [PATCH 064/101] prometheus-dmarc-exporter: Add missing build-system dependencies with overrides I will add these upstream in poetry2nix and remove them from here once released. --- .../monitoring/prometheus/dmarc-exporter/default.nix | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/pkgs/servers/monitoring/prometheus/dmarc-exporter/default.nix b/pkgs/servers/monitoring/prometheus/dmarc-exporter/default.nix index 98848ee67022..e083df90b413 100644 --- a/pkgs/servers/monitoring/prometheus/dmarc-exporter/default.nix +++ b/pkgs/servers/monitoring/prometheus/dmarc-exporter/default.nix @@ -7,7 +7,8 @@ let poetry2nix.defaultPoetryOverrides (import ./poetry-git-overlay.nix { inherit pkgs; }) (self: super: { - dmarc-metrics-exporter = super.dmarc-metrics-exporter.overridePythonAttrs ({ meta ? {}, ... }: { + dmarc-metrics-exporter = super.dmarc-metrics-exporter.overridePythonAttrs ({ nativeBuildInputs ? [ ], meta ? {}, ... }: { + nativeBuildInputs = nativeBuildInputs ++ [ self.poetry ]; meta = with lib; meta // { license = licenses.mit; homepage = "https://github.com/jgosmann/dmarc-metrics-exporter/"; @@ -44,6 +45,9 @@ let ''; }); dataclasses = null; + bite-parser = super.bite-parser.overridePythonAttrs (old: { + nativeBuildInputs = old.nativeBuildInputs ++ [ self.poetry ]; + }); }) ]; }) python; From ebd9acc18aa85d10ff147462c6bc59da51306494 Mon Sep 17 00:00:00 2001 From: Luflosi Date: Fri, 1 Apr 2022 12:55:31 +0200 Subject: [PATCH 065/101] include-what-you-use: 0.17 -> 0.18 https://github.com/include-what-you-use/include-what-you-use/releases/tag/0.18 --- .../tools/analysis/include-what-you-use/default.nix | 4 ++-- pkgs/top-level/all-packages.nix | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/development/tools/analysis/include-what-you-use/default.nix b/pkgs/development/tools/analysis/include-what-you-use/default.nix index bc1be4e5ba5e..ccda1b7baba5 100644 --- a/pkgs/development/tools/analysis/include-what-you-use/default.nix +++ b/pkgs/development/tools/analysis/include-what-you-use/default.nix @@ -3,10 +3,10 @@ stdenv.mkDerivation rec { pname = "include-what-you-use"; # Also bump llvmPackages in all-packages.nix to the supported version! - version = "0.17"; + version = "0.18"; src = fetchurl { - sha256 = "sha256-7KfAT4tBa2OF7QDjNmmn+kaTzSbLcrUizeVYgo6wxmU="; + sha256 = "sha256-kQL8hBkpR1ffhqic5uwwX42QqBjR8lmKE50V6xiUuPM="; url = "${meta.homepage}/downloads/${pname}-${version}.src.tar.gz"; }; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index d6064543e4bc..e19ca53c4e5b 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -15349,7 +15349,7 @@ with pkgs; img = callPackage ../development/tools/img { }; include-what-you-use = callPackage ../development/tools/analysis/include-what-you-use { - llvmPackages = llvmPackages_13; + llvmPackages = llvmPackages_14; }; indent = callPackage ../development/tools/misc/indent { }; From e41e5e30f3ee663e47122d3759fb939b277b125c Mon Sep 17 00:00:00 2001 From: Michael Adler Date: Fri, 1 Apr 2022 13:50:32 +0200 Subject: [PATCH 066/101] ungoogled-chromium: 99.0.4844.84 -> 100.0.4896.60 --- .../browsers/chromium/upstream-info.json | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/pkgs/applications/networking/browsers/chromium/upstream-info.json b/pkgs/applications/networking/browsers/chromium/upstream-info.json index 33d8040afdee..35610f1537a7 100644 --- a/pkgs/applications/networking/browsers/chromium/upstream-info.json +++ b/pkgs/applications/networking/browsers/chromium/upstream-info.json @@ -45,19 +45,19 @@ } }, "ungoogled-chromium": { - "version": "99.0.4844.84", - "sha256": "05bma8lsm5lad58mlfiv8bg0fw5k5mxh0v6g1ik7xp2bsd71iv10", - "sha256bin64": "0sdnsnp7hnpip91hwbz3hiw2727g0a3ydf55ldqv9bgik3vn1wln", + "version": "100.0.4896.60", + "sha256": "1p7zggnhsz9gj3zil0nyas4ym5bd94vs0z6mdg7r1l0s0vrsaphf", + "sha256bin64": "07wavs9r6ilwx5rzyqvydcjskg6sml5b8m6mw7qzykvhs8bnvfh5", "deps": { "gn": { - "version": "2022-01-10", + "version": "2022-01-21", "url": "https://gn.googlesource.com/gn", - "rev": "80a40b07305373617eba2d5878d353532af77da3", - "sha256": "1103lf38h7412949j6nrk48m2vv2rrxacn42sjg33lg88nyv7skv" + "rev": "0725d7827575b239594fbc8fd5192873a1d62f44", + "sha256": "1dzdvcn2r5c9giknvasf3y5y4901kav7igivjvrpww66ywsj8fzr" }, "ungoogled-patches": { - "rev": "99.0.4844.84-1", - "sha256": "1j02zcam09mdw7wg30r1mx27b8bw0s9dvk4qjl6vrhp24rbmscs7" + "rev": "100.0.4896.60-1", + "sha256": "02q7ghxynkgkbilcb8bx8q26s80fvd4hbc58zq74pnzpmn7qi342" } } } From a5a62bdae12bb4a0a8754eefe5c03d86ac29409a Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 1 Apr 2022 12:21:02 +0000 Subject: [PATCH 067/101] buildah-unwrapped: 1.24.2 -> 1.25.1 --- pkgs/development/tools/buildah/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/tools/buildah/default.nix b/pkgs/development/tools/buildah/default.nix index ea6f866a48b1..1855ed966d51 100644 --- a/pkgs/development/tools/buildah/default.nix +++ b/pkgs/development/tools/buildah/default.nix @@ -14,13 +14,13 @@ buildGoModule rec { pname = "buildah"; - version = "1.24.2"; + version = "1.25.1"; src = fetchFromGitHub { owner = "containers"; repo = "buildah"; rev = "v${version}"; - sha256 = "sha256-gBO+H26YGmOtP3CUHZjynAaOb0h+MJbJnWqxOZdif6w="; + sha256 = "sha256-NQ+Tv3KUrvX+MWM1ZFmsJ4JKoSIpSBjGNiruJkRd6rE="; }; outputs = [ "out" "man" ]; From 88ea7932d5ddf49753d7eb5e3b222bc449b08750 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 1 Apr 2022 12:30:08 +0000 Subject: [PATCH 068/101] python310Packages.meilisearch: 0.18.1 -> 0.18.2 --- pkgs/development/python-modules/meilisearch/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/meilisearch/default.nix b/pkgs/development/python-modules/meilisearch/default.nix index 9671c43df081..73f1c75a5192 100644 --- a/pkgs/development/python-modules/meilisearch/default.nix +++ b/pkgs/development/python-modules/meilisearch/default.nix @@ -7,7 +7,7 @@ buildPythonPackage rec { pname = "meilisearch"; - version = "0.18.1"; + version = "0.18.2"; format = "setuptools"; disabled = pythonOlder "3.7"; @@ -16,7 +16,7 @@ buildPythonPackage rec { owner = "meilisearch"; repo = "meilisearch-python"; rev = "v${version}"; - hash = "sha256-Rd2GmomNzW0+oI2QEGcPY4g8H+4FN7eLKY1ljcibsLw="; + hash = "sha256-U9fdMcxPdtLiUStgTez99SPRh93WLZNVn8uIj4lNWh4="; }; propagatedBuildInputs = [ From 6febb906a84b3deb8311a7144a5598aff1b43691 Mon Sep 17 00:00:00 2001 From: Robert Hensing Date: Mon, 28 Mar 2022 08:51:25 +0200 Subject: [PATCH 069/101] tests: Add pkgs-lib Makes the following work ofborg build tests.pkgs-lib --- pkgs/test/default.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/test/default.nix b/pkgs/test/default.nix index 4110327946d9..0e1b9c2ac7a0 100644 --- a/pkgs/test/default.nix +++ b/pkgs/test/default.nix @@ -69,4 +69,6 @@ with pkgs; dhall = callPackage ./dhall { }; makeWrapper = callPackage ./make-wrapper {}; + + pkgs-lib = recurseIntoAttrs (import ../pkgs-lib/tests { inherit pkgs; }); } From 4f8e44394cb5afdef302618d3b2a75ad4291c71f Mon Sep 17 00:00:00 2001 From: Robert Hensing Date: Mon, 28 Mar 2022 08:51:09 +0200 Subject: [PATCH 070/101] formats.javaProperties: init --- pkgs/pkgs-lib/formats.nix | 3 + .../formats/java-properties/default.nix | 85 +++++++++++++++++++ .../formats/java-properties/test/Main.java | 27 ++++++ .../formats/java-properties/test/default.nix | 85 +++++++++++++++++++ pkgs/pkgs-lib/tests/default.nix | 48 +++++++++-- pkgs/pkgs-lib/tests/formats.nix | 17 ++++ 6 files changed, 260 insertions(+), 5 deletions(-) create mode 100644 pkgs/pkgs-lib/formats/java-properties/default.nix create mode 100644 pkgs/pkgs-lib/formats/java-properties/test/Main.java create mode 100644 pkgs/pkgs-lib/formats/java-properties/test/default.nix diff --git a/pkgs/pkgs-lib/formats.nix b/pkgs/pkgs-lib/formats.nix index 495a7094f9b4..6495b024b008 100644 --- a/pkgs/pkgs-lib/formats.nix +++ b/pkgs/pkgs-lib/formats.nix @@ -31,6 +31,9 @@ rec { */ + inherit (import ./formats/java-properties/default.nix { inherit lib pkgs; }) + javaProperties; + json = {}: { type = with lib.types; let diff --git a/pkgs/pkgs-lib/formats/java-properties/default.nix b/pkgs/pkgs-lib/formats/java-properties/default.nix new file mode 100644 index 000000000000..e4f42a61f5c8 --- /dev/null +++ b/pkgs/pkgs-lib/formats/java-properties/default.nix @@ -0,0 +1,85 @@ +{ lib, pkgs }: +{ + javaProperties = {}: { + type = lib.types.attrsOf lib.types.str; + + generate = name: value: + pkgs.runCommandLocal name + { + # Requirements + # ============ + # + # 1. Strings in Nix carry over to the same + # strings in Java => need proper escapes + # 2. Generate files quickly + # - A JVM would have to match the app's + # JVM to avoid build closure bloat + # - Even then, JVM startup would slow + # down config generation. + # + # + # Implementation + # ============== + # + # Escaping has two steps + # + # 1. jq + # Escape known separators, in order not + # to break up the keys and values. + # This handles typical whitespace correctly, + # but may produce garbage for other control + # characters. + # + # 2. iconv + # Escape >ascii code points to java escapes, + # as .properties files are supposed to be + # encoded in ISO 8859-1. It's an old format. + # UTF-8 behavior may exist in some apps and + # libraries, but we can't rely on this in + # general. + + passAsFile = [ "value" ]; + value = builtins.toJSON value; + nativeBuildInputs = [ + pkgs.jq + pkgs.libiconvReal + ]; + + jqCode = + let + main = '' + to_entries + | .[] + | "\( + .key + | ${commonEscapes} + | gsub(" "; "\\ ") + | gsub("="; "\\=") + ) = \( + .value + | ${commonEscapes} + | gsub("^ "; "\\ ") + | gsub("\\n "; "\n\\ ") + )" + ''; + # Most escapes are equal for both keys and values. + commonEscapes = '' + gsub("\\\\"; "\\\\") + | gsub("\\n"; "\\n\\\n") + | gsub("#"; "\\#") + | gsub("!"; "\\!") + | gsub("\\t"; "\\t") + | gsub("\r"; "\\r") + ''; + in + main; + + inputEncoding = "UTF-8"; + + } '' + jq -r --arg hash '#' "$jqCode" "$valuePath" \ + | iconv --from-code "$inputEncoding" --to-code JAVA \ + > "$out" + ''; + }; +} diff --git a/pkgs/pkgs-lib/formats/java-properties/test/Main.java b/pkgs/pkgs-lib/formats/java-properties/test/Main.java new file mode 100644 index 000000000000..dc83944f24b0 --- /dev/null +++ b/pkgs/pkgs-lib/formats/java-properties/test/Main.java @@ -0,0 +1,27 @@ +import java.io.FileInputStream; +import java.io.InputStream; +import java.util.Properties; +import java.util.SortedSet; +import java.util.TreeSet; + +class Main { + public static void main (String args[]) { + try { + InputStream input = new FileInputStream(args[0]); + Properties prop = new Properties(); + prop.load(input); + SortedSet keySet = new TreeSet(prop.keySet()); + for (String key : keySet) { + System.out.println("KEY"); + System.out.println(key); + System.out.println("VALUE"); + System.out.println(prop.get(key)); + System.out.println(""); + } + } catch (Exception e) { + e.printStackTrace(); + System.err.println(e.toString()); + System.exit(1); + } + } +} diff --git a/pkgs/pkgs-lib/formats/java-properties/test/default.nix b/pkgs/pkgs-lib/formats/java-properties/test/default.nix new file mode 100644 index 000000000000..4b3845c10296 --- /dev/null +++ b/pkgs/pkgs-lib/formats/java-properties/test/default.nix @@ -0,0 +1,85 @@ +{ fetchurl +, formats +, glibcLocales +, jdk +, lib +, stdenv +}: +let + inherit (lib) concatStrings attrValues mapAttrs; + + javaProperties = formats.javaProperties { }; + + input = { + foo = "bar"; + "empty value" = ""; + "typical.dot.syntax" = "com.sun.awt"; + "" = "empty key's value"; + "1" = "2 3"; + "#" = "not a comment # still not"; + "!" = "not a comment!"; + "!a" = "still not! a comment"; + "!b" = "still not ! a comment"; + "dos paths" = "C:\\Program Files\\Nix For Windows\\nix.exe"; + "a \t\nb" = " c"; + "angry \t\nkey" = '' + multi + ${"\tline\r"} + space- + indented + trailing-space${" "} + trailing-space${" "} + value + ''; + "this=not" = "bad"; + "nor = this" = "bad"; + "all stuff" = "foo = bar"; + "unicode big brain" = "e = mc□"; + "ütf-8" = "dûh"; + # NB: Some editors (vscode) show this _whole_ line in right-to-left order + "الجبر" = "أكثر من مجرد أرقام"; + }; + +in +stdenv.mkDerivation { + name = "pkgs.formats.javaProperties-test-${jdk.name}"; + nativeBuildInputs = [ + jdk + glibcLocales + ]; + + # technically should go through the type.merge first, but that's tested + # in tests/formats.nix. + properties = javaProperties.generate "example.properties" input; + + # Expected output as printed by Main.java + passAsFile = [ "expected" ]; + expected = concatStrings (attrValues ( + mapAttrs + (key: value: + '' + KEY + ${key} + VALUE + ${value} + + '' + ) + input + )); + + src = lib.sourceByRegex ./. [ + ".*\.java" + ]; + LANG = "C.UTF-8"; + buildPhase = '' + javac Main.java + ''; + doCheck = true; + checkPhase = '' + cat -v $properties + java Main $properties >actual + diff -U3 $expectedPath actual + ''; + installPhase = "touch $out"; +} diff --git a/pkgs/pkgs-lib/tests/default.nix b/pkgs/pkgs-lib/tests/default.nix index f3549ea9b0f2..ae91e15aa9ef 100644 --- a/pkgs/pkgs-lib/tests/default.nix +++ b/pkgs/pkgs-lib/tests/default.nix @@ -1,7 +1,45 @@ # Call nix-build on this file to run all tests in this directory -{ pkgs ? import ../../.. {} }: + +# This produces a link farm derivation with the original attrs +# merged on top of it. +# You can run parts of the "hierarchy" with for example: +# nix-build -A java-properties +# See `structured` below. + +{ pkgs ? import ../../.. { } }: let - formats = import ./formats.nix { inherit pkgs; }; -in pkgs.linkFarm "nixpkgs-pkgs-lib-tests" [ - { name = "formats"; path = import ./formats.nix { inherit pkgs; }; } -] + inherit (pkgs.lib) mapAttrs mapAttrsToList isDerivation mergeAttrs foldl' attrValues recurseIntoAttrs; + + structured = { + formats = import ./formats.nix { inherit pkgs; }; + java-properties = recurseIntoAttrs { + jdk8 = pkgs.callPackage ../formats/java-properties/test { jdk = pkgs.jdk8; }; + jdk11 = pkgs.callPackage ../formats/java-properties/test { jdk = pkgs.jdk11_headless; }; + jdk17 = pkgs.callPackage ../formats/java-properties/test { jdk = pkgs.jdk17_headless; }; + }; + }; + + flatten = prefix: as: + foldl' + mergeAttrs + { } + (attrValues + (mapAttrs + (k: v: + if isDerivation v + then { "${prefix}${k}" = v; } + else if v?recurseForDerivations + then flatten "${prefix}${k}-" (removeAttrs v [ "recurseForDerivations" ]) + else builtins.trace v throw "expected derivation or recurseIntoAttrs") + as + ) + ); +in + +# It has to be a link farm for inclusion in the hydra unstable jobset. +pkgs.linkFarm "pkgs-lib-formats-tests" + (mapAttrsToList + (k: v: { name = k; path = v; }) + (flatten "" structured) + ) +// structured diff --git a/pkgs/pkgs-lib/tests/formats.nix b/pkgs/pkgs-lib/tests/formats.nix index 2bc4e407fe75..71b4a3946a34 100644 --- a/pkgs/pkgs-lib/tests/formats.nix +++ b/pkgs/pkgs-lib/tests/formats.nix @@ -168,4 +168,21 @@ in runBuildTests { level4 = "deep" ''; }; + + # See also java-properties/default.nix for more complete tests + testJavaProperties = { + drv = evalFormat formats.javaProperties {} { + foo = "bar"; + "1" = "2"; + "ütf 8" = "dûh"; + # NB: Some editors (vscode) show this _whole_ line in right-to-left order + "الجبر" = "أكثر من مجرد أرقام"; + }; + expected = '' + 1 = 2 + foo = bar + \u00fctf\ 8 = d\u00fbh + \u0627\u0644\u062c\u0628\u0631 = \u0623\u0643\u062b\u0631 \u0645\u0646 \u0645\u062c\u0631\u062f \u0623\u0631\u0642\u0627\u0645 + ''; + }; } From 9a0739cbe2b3b56dbc923a36f4e204afba917641 Mon Sep 17 00:00:00 2001 From: Robert Hensing Date: Mon, 28 Mar 2022 09:23:25 +0200 Subject: [PATCH 071/101] formats.javaProperties: Add comment --- pkgs/pkgs-lib/formats/java-properties/default.nix | 13 +++++++++---- pkgs/pkgs-lib/tests/formats.nix | 2 ++ 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/pkgs/pkgs-lib/formats/java-properties/default.nix b/pkgs/pkgs-lib/formats/java-properties/default.nix index e4f42a61f5c8..b63b96d32769 100644 --- a/pkgs/pkgs-lib/formats/java-properties/default.nix +++ b/pkgs/pkgs-lib/formats/java-properties/default.nix @@ -1,6 +1,6 @@ { lib, pkgs }: { - javaProperties = {}: { + javaProperties = { comment ? "Generated with Nix" }: { type = lib.types.attrsOf lib.types.str; generate = name: value: @@ -76,10 +76,15 @@ inputEncoding = "UTF-8"; + inherit comment; + } '' - jq -r --arg hash '#' "$jqCode" "$valuePath" \ - | iconv --from-code "$inputEncoding" --to-code JAVA \ - > "$out" + ( + echo "$comment" | while read -r ln; do echo "# $ln"; done + echo + jq -r --arg hash '#' "$jqCode" "$valuePath" \ + | iconv --from-code "$inputEncoding" --to-code JAVA \ + ) > "$out" ''; }; } diff --git a/pkgs/pkgs-lib/tests/formats.nix b/pkgs/pkgs-lib/tests/formats.nix index 71b4a3946a34..1efe9d8686b1 100644 --- a/pkgs/pkgs-lib/tests/formats.nix +++ b/pkgs/pkgs-lib/tests/formats.nix @@ -179,6 +179,8 @@ in runBuildTests { "الجبر" = "أكثر من مجرد أرقام"; }; expected = '' + # Generated with Nix + 1 = 2 foo = bar \u00fctf\ 8 = d\u00fbh From 28a227a89093d425d93d9b7d373af0634e77a534 Mon Sep 17 00:00:00 2001 From: Robert Hensing Date: Thu, 31 Mar 2022 11:52:12 +0200 Subject: [PATCH 072/101] formats.javaProperties: Add documentation --- .../development/settings-options.section.md | 14 ++++++++ .../development/settings-options.section.xml | 32 +++++++++++++++++++ 2 files changed, 46 insertions(+) diff --git a/nixos/doc/manual/development/settings-options.section.md b/nixos/doc/manual/development/settings-options.section.md index f9bb6ff9cc41..d569e23adbdc 100644 --- a/nixos/doc/manual/development/settings-options.section.md +++ b/nixos/doc/manual/development/settings-options.section.md @@ -32,6 +32,20 @@ type of this option should represent the format. The most common formats have a predefined type and string generator already declared under `pkgs.formats`: +`pkgs.formats.javaProperties` { *`comment`* ? `"Generated with Nix"` } + +: A function taking an attribute set with values + + `comment` + + : A string to put at the start of the + file in a comment. It can have multiple + lines. + + It returns the `type`: `attrsOf str` and a function + `generate` to build a Java `.properties` file, taking + care of the correct escaping, etc. + `pkgs.formats.json` { } : A function taking an empty attribute set (for future extensibility) diff --git a/nixos/doc/manual/from_md/development/settings-options.section.xml b/nixos/doc/manual/from_md/development/settings-options.section.xml index 746011a2d075..d26dd96243db 100644 --- a/nixos/doc/manual/from_md/development/settings-options.section.xml +++ b/nixos/doc/manual/from_md/development/settings-options.section.xml @@ -53,6 +53,38 @@ pkgs.formats: + + + pkgs.formats.javaProperties { + comment ? + "Generated with Nix" } + + + + A function taking an attribute set with values + + + + + comment + + + + A string to put at the start of the file in a comment. + It can have multiple lines. + + + + + + It returns the type: + attrsOf str and a function + generate to build a Java + .properties file, taking care of the + correct escaping, etc. + + + pkgs.formats.json { } From cf6af1933b898c30d820b10c753ac6488a939e55 Mon Sep 17 00:00:00 2001 From: "P. R. d. O" Date: Fri, 1 Apr 2022 07:23:45 -0600 Subject: [PATCH 073/101] nixos/sslmate-agent: add to module-list --- nixos/modules/module-list.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index a9ed8f251283..c4958c36ea00 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -977,6 +977,7 @@ ./services/security/shibboleth-sp.nix ./services/security/sks.nix ./services/security/sshguard.nix + ./services/security/sslmate-agent.nix ./services/security/step-ca.nix ./services/security/tor.nix ./services/security/torify.nix From c565ea4bb01f11b69f531c42382ad8ecf0d049a8 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 1 Apr 2022 13:30:45 +0000 Subject: [PATCH 074/101] clojure-lsp: 2022.03.26-18.47.08 -> 2022.03.31-20.00.20 --- pkgs/development/tools/misc/clojure-lsp/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/development/tools/misc/clojure-lsp/default.nix b/pkgs/development/tools/misc/clojure-lsp/default.nix index 4d39387991b1..307bcd273a40 100644 --- a/pkgs/development/tools/misc/clojure-lsp/default.nix +++ b/pkgs/development/tools/misc/clojure-lsp/default.nix @@ -2,18 +2,18 @@ buildGraalvmNativeImage rec { pname = "clojure-lsp"; - version = "2022.03.26-18.47.08"; + version = "2022.03.31-20.00.20"; src = fetchFromGitHub { owner = pname; repo = pname; rev = version; - sha256 = "sha256-tlI4h9/DTc3JwqCM58YC5x4FDpuPm7Qeik3PJe64nVA="; + sha256 = "sha256-UQA/BXf6hTTxZ504e1faPdS8mKYS8WrY5L/zgaGCxpU="; }; jar = fetchurl { url = "https://github.com/clojure-lsp/clojure-lsp/releases/download/${version}/clojure-lsp-standalone.jar"; - sha256 = "4973f5cf45f0b8120206d057d88d6a7fca03e071c8ad1ecd7229db46a0604ed2"; + sha256 = "e66689326c39ae74f0e8d9f5a8229c7ebebe010849870a47faf88e81cbaa37e0"; }; extraNativeImageBuildArgs = [ From ae2990ca1b00bdaf2b1847ef286f6b3b9a4e6cd0 Mon Sep 17 00:00:00 2001 From: teutat3s <10206665+teutat3s@users.noreply.github.com> Date: Fri, 1 Apr 2022 16:03:21 +0200 Subject: [PATCH 075/101] electron: mark versions <= 14 as EOL --- pkgs/development/tools/electron/generic.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/development/tools/electron/generic.nix b/pkgs/development/tools/electron/generic.nix index 08edf8a30927..7fefe186c108 100644 --- a/pkgs/development/tools/electron/generic.nix +++ b/pkgs/development/tools/electron/generic.nix @@ -29,7 +29,7 @@ let maintainers = with maintainers; [ travisbhartwell manveru prusnak ]; platforms = [ "x86_64-darwin" "x86_64-linux" "i686-linux" "armv7l-linux" "aarch64-linux" ] ++ optionals (versionAtLeast version "11.0.0") [ "aarch64-darwin" ]; - knownVulnerabilities = optional (versionOlder version "14.0.0") "Electron version ${version} is EOL"; + knownVulnerabilities = optional (versionOlder version "15.0.0") "Electron version ${version} is EOL"; }; fetcher = vers: tag: hash: fetchurl { From 2fd61c2d0847928c3805dae11322c7426b56c6d6 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 1 Apr 2022 14:12:33 +0000 Subject: [PATCH 076/101] difftastic: 0.24.0 -> 0.25.0 --- pkgs/tools/text/difftastic/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/tools/text/difftastic/default.nix b/pkgs/tools/text/difftastic/default.nix index 18fd01165e83..17c1a33d8c89 100644 --- a/pkgs/tools/text/difftastic/default.nix +++ b/pkgs/tools/text/difftastic/default.nix @@ -2,16 +2,16 @@ rustPlatform.buildRustPackage rec { pname = "difftastic"; - version = "0.24.0"; + version = "0.25.0"; src = fetchFromGitHub { owner = "wilfred"; repo = pname; rev = version; - sha256 = "sha256-Yp0WwzGo8nuRZuiHdUPxPM1SYBeeVA3SMDfHnQmqUqY="; + sha256 = "sha256-TJMMy1fMwqUMVhztMOlN4yQhW5IF36yahOhDTJ9kadA="; }; - cargoSha256 = "sha256-m80PT2UQYhA5KEh7ax/fhh6vuse0DXhbFsh2x4pwkWY="; + cargoSha256 = "sha256-crH2SodT+Wy3auk3uli253rIrHyKsibQcYGtpxwbJJQ="; meta = with lib; { description = "A syntax-aware diff"; From d4b4878c212ac5e28c1e9f85950479d16c754e9a Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 1 Apr 2022 14:33:05 +0000 Subject: [PATCH 077/101] python310Packages.param: 1.12.0 -> 1.12.1 --- pkgs/development/python-modules/param/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/param/default.nix b/pkgs/development/python-modules/param/default.nix index 23c9bc9c3933..701c9db7962a 100644 --- a/pkgs/development/python-modules/param/default.nix +++ b/pkgs/development/python-modules/param/default.nix @@ -6,13 +6,13 @@ buildPythonPackage rec { pname = "param"; - version = "1.12.0"; + version = "1.12.1"; src = fetchFromGitHub { owner = "holoviz"; repo = pname; rev = "v${version}"; - sha256 = "02zmd4bwyn8b4q1l9jgddc70ii1i7bmynacanl1cvbr6la4v9b2c"; + sha256 = "sha256-MehTz0qCpWe/11PZ5jmFxHE54TA+QX2KfqvKB8L79V4="; }; checkInputs = [ From 2d53cad9d1457b02c71333ff0a3a364992c1404b Mon Sep 17 00:00:00 2001 From: Cole Helbling Date: Fri, 28 Jan 2022 08:44:01 -0800 Subject: [PATCH 078/101] mullvad: init at 2022.1 This package includes the CLI binaries for mullvad, but does not attempt to build the GUI. This allows it to be (more) cross-platform than the mullvad-vpn package, which depends on a tool that is unavailable for e.g. ARM platforms. --- .../networking/mullvad/default.nix | 7 ++ .../applications/networking/mullvad/libwg.nix | 35 +++++++ .../networking/mullvad/mullvad.nix | 97 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 3 + 4 files changed, 142 insertions(+) create mode 100644 pkgs/applications/networking/mullvad/default.nix create mode 100644 pkgs/applications/networking/mullvad/libwg.nix create mode 100644 pkgs/applications/networking/mullvad/mullvad.nix diff --git a/pkgs/applications/networking/mullvad/default.nix b/pkgs/applications/networking/mullvad/default.nix new file mode 100644 index 000000000000..81eedb0d597b --- /dev/null +++ b/pkgs/applications/networking/mullvad/default.nix @@ -0,0 +1,7 @@ +{ lib +, newScope +}: +lib.makeScope newScope (self: { + libwg = self.callPackage ./libwg.nix { }; + mullvad = self.callPackage ./mullvad.nix { }; +}) diff --git a/pkgs/applications/networking/mullvad/libwg.nix b/pkgs/applications/networking/mullvad/libwg.nix new file mode 100644 index 000000000000..d54a2cafe8c0 --- /dev/null +++ b/pkgs/applications/networking/mullvad/libwg.nix @@ -0,0 +1,35 @@ +{ lib +, buildGoModule +, fetchFromGitHub +, mullvad +}: +buildGoModule { + pname = "libwg"; + + inherit (mullvad) + version + src + ; + + sourceRoot = "source/wireguard/libwg"; + + vendorSha256 = "qvymWCdJ+GY90W/Fpdp+r1+mTq6O4LyN2Yw/PjKdFm0="; + + # XXX: hack to make the ar archive go to the correct place + # This is necessary because passing `-o ...` to `ldflags` does not work + # (this doesn't get communicated everywhere in the chain, apparently, so + # `go` complains that it can't find an `a.out` file). + GOBIN = "${placeholder "out"}/lib"; + ldflags = [ "-s" "-w" "-buildmode=c-archive" ]; + + postInstall = '' + mv $out/lib/libwg{,.a} + ''; + + meta = with lib; { + description = "A tiny wrapper around wireguard-go"; + homepage = "https://github.com/mullvad/mullvadvpn-app/tree/master/wireguard/libwg"; + license = licenses.gpl3Only; + maintainers = with maintainers; [ cole-h ]; + }; +} diff --git a/pkgs/applications/networking/mullvad/mullvad.nix b/pkgs/applications/networking/mullvad/mullvad.nix new file mode 100644 index 000000000000..526f39866457 --- /dev/null +++ b/pkgs/applications/networking/mullvad/mullvad.nix @@ -0,0 +1,97 @@ +{ lib +, stdenv +, writeText +, rustPlatform +, fetchFromGitHub +, pkg-config +, protobuf +, makeWrapper +, dbus +, libnftnl +, libmnl +, libwg +}: +let + # result of running address_cache as of 02 Mar 2022 + bootstrap-address-cache = writeText "api-ip-address.txt" '' + 193.138.218.78:443 + 193.138.218.71:444 + 185.65.134.66:444 + 185.65.135.117:444 + 217.138.254.130:444 + 91.90.44.10:444 + ''; +in +rustPlatform.buildRustPackage rec { + pname = "mullvad"; + version = "2022.1"; + + src = fetchFromGitHub { + owner = "mullvad"; + repo = "mullvadvpn-app"; + rev = version; + hash = "sha256-bLwuM3Qy2iStbXIvDEWp31vuiihSQThOej297XKo5Xc="; + }; + + cargoHash = "sha256-CBbm8cJHTjyvvzCFQfKmsE5d9N7azEm8nI6KeWLVaa8="; + + nativeBuildInputs = [ + pkg-config + protobuf + makeWrapper + ]; + + buildInputs = [ + dbus.dev + libnftnl + libmnl + ]; + + # talpid-core wants libwg.a in build/lib/{triple} + preBuild = '' + dest=build/lib/${stdenv.targetPlatform.config} + mkdir -p $dest + ln -s ${libwg}/lib/libwg.a $dest + ''; + + postFixup = + # Place all binaries in the 'mullvad-' namespace, even though these + # specific binaries aren't used in the lifetime of the program. + # `address_cache` is used to generate the `api-ip-address.txt` file, which + # contains list of Mullvad API servers -- though we provide a "backup" of + # the output of this command, it could change at any time, so we want + # users to be able to regenerate the list at any time. (The daemon will + # refuse to start without this file.) + '' + for bin in address_cache relay_list translations-converter; do + mv "$out/bin/$bin" "$out/bin/mullvad-$bin" + done + '' + + # Put distributed assets in-place -- specifically, the + # bootstrap-address-cache is necessary; otherwise, the user will have to run + # the `address_cache` binary and move the contents into place at + # `/var/cache/mullvad-vpn/api-ip-address.txt` manually. `ca.crt` is + # necessary for OpenVPN tunnels to work. + # XXX: Use of OpenVPN requires their fork of OpenVPN, which can be found at + # https://github.com/mullvad/openvpn/tree/mullvad-patches/ + '' + mkdir -p $out/share + ln -s ${bootstrap-address-cache} $out/share/api-ip-address.txt + cp dist-assets/ca.crt $out/share + '' + + # Set the directory where Mullvad will look for its resources by default to + # `$out/share`, so that we can avoid putting the files in `$out/bin` -- + # Mullvad defaults to looking inside the directory its binary is located in + # for its resources. + '' + wrapProgram $out/bin/mullvad-daemon \ + --set-default MULLVAD_RESOURCE_DIR "$out/share/mullvad" + ''; + + meta = with lib; { + description = "Mullvad VPN command-line client tools"; + homepage = "https://github.com/mullvad/mullvadvpn-app"; + license = licenses.gpl3Only; + maintainers = with maintainers; [ cole-h ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index d6064543e4bc..6e45c15b232d 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -21651,6 +21651,9 @@ with pkgs; morty = callPackage ../servers/web-apps/morty { }; + inherit (callPackage ../applications/networking/mullvad { }) + mullvad; + mullvad-vpn = callPackage ../applications/networking/mullvad-vpn { }; mycorrhiza = callPackage ../servers/mycorrhiza { From a9c901daadd2bccf5f5ede7e4106995ba2f2237c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sandro=20J=C3=A4ckel?= Date: Sat, 26 Mar 2022 13:55:54 +0100 Subject: [PATCH 079/101] mullvad.openvpn-wireguard: init at 2.5.3 --- .../networking/mullvad/default.nix | 1 + .../networking/mullvad/mullvad.nix | 3 + .../networking/mullvad/openvpn.nix | 87 +++++++++++++++++++ 3 files changed, 91 insertions(+) create mode 100644 pkgs/applications/networking/mullvad/openvpn.nix diff --git a/pkgs/applications/networking/mullvad/default.nix b/pkgs/applications/networking/mullvad/default.nix index 81eedb0d597b..7b4bcf9d61b2 100644 --- a/pkgs/applications/networking/mullvad/default.nix +++ b/pkgs/applications/networking/mullvad/default.nix @@ -4,4 +4,5 @@ lib.makeScope newScope (self: { libwg = self.callPackage ./libwg.nix { }; mullvad = self.callPackage ./mullvad.nix { }; + openvpn-mullvad = self.callPackage ./openvpn.nix { }; }) diff --git a/pkgs/applications/networking/mullvad/mullvad.nix b/pkgs/applications/networking/mullvad/mullvad.nix index 526f39866457..6fe37da270c7 100644 --- a/pkgs/applications/networking/mullvad/mullvad.nix +++ b/pkgs/applications/networking/mullvad/mullvad.nix @@ -10,6 +10,7 @@ , libnftnl , libmnl , libwg +, openvpn-mullvad }: let # result of running address_cache as of 02 Mar 2022 @@ -88,6 +89,8 @@ rustPlatform.buildRustPackage rec { --set-default MULLVAD_RESOURCE_DIR "$out/share/mullvad" ''; + passthru = { inherit openvpn-mullvad; }; + meta = with lib; { description = "Mullvad VPN command-line client tools"; homepage = "https://github.com/mullvad/mullvadvpn-app"; diff --git a/pkgs/applications/networking/mullvad/openvpn.nix b/pkgs/applications/networking/mullvad/openvpn.nix new file mode 100644 index 000000000000..b191c31d39ac --- /dev/null +++ b/pkgs/applications/networking/mullvad/openvpn.nix @@ -0,0 +1,87 @@ +{ lib +, openvpn +, fetchpatch +, fetchurl +, iproute2 +, autoconf +, automake +}: + +openvpn.overrideAttrs (oldAttrs: + let + fetchMullvadPatch = { commit, sha256 }: fetchpatch { + url = "https://github.com/mullvad/openvpn/commit/${commit}.patch"; + inherit sha256; + }; + in + rec { + pname = "openvpn-mullvad"; + version = "2.5.3"; + + src = fetchurl { + url = "https://swupdate.openvpn.net/community/releases/openvpn-${version}.tar.gz"; + sha256 = "sha256-dfAETfRJQwVVynuZWit3qyTylG/cNmgwG47cI5hqX34="; + }; + + buildInputs = oldAttrs.buildInputs or [ ] ++ [ + iproute2 + ]; + + configureFlags = oldAttrs.configureFlags or [ ] ++ [ + "--enable-iproute2" + "IPROUTE=${iproute2}/sbin/ip" + ]; + + nativeBuildInputs = oldAttrs.nativeBuildInputs or [ ] ++ [ + autoconf + automake + ]; + + patches = oldAttrs.patches or [ ] ++ [ + # look at compare to find the relevant commits + # https://github.com/OpenVPN/openvpn/compare/release/2.5...mullvad:mullvad-patches + # used openvpn version is the latest tag ending with -mullvad + # https://github.com/mullvad/openvpn/tags + (fetchMullvadPatch { + # "Reduce PUSH_REQUEST_INTERVAL to one second" + commit = "41e44158fc71bb6cc8cc6edb6ada3307765a12e8"; + sha256 = "sha256-UoH0V6gTPdEuybFkWxdaB4zomt7rZeEUyXs9hVPbLb4="; + }) + (fetchMullvadPatch { + # "Allow auth plugins to set a failure reason" + commit = "f51781c601e8c72ae107deaf25bf66f7c193e9cd"; + sha256 = "sha256-+kwG0YElL16T0e+avHlI8gNQdAxneRS6fylv7QXvC1s="; + }) + (fetchMullvadPatch { + # "Send an event to any plugins when authentication fails" + commit = "c2f810f966f2ffd68564d940b5b8946ea6007d5a"; + sha256 = "sha256-PsKIxYwpLD66YaIpntXJM8OGcObyWBSAJsQ60ojvj30="; + }) + (fetchMullvadPatch { + # "Shutdown when STDIN is closed" + commit = "879d6a3c0288b5443bbe1b94261655c329fc2e0e"; + sha256 = "sha256-pRFY4r+b91/xAKXx6u5GLzouQySXuO5gH0kMGm77a3c="; + }) + (fetchMullvadPatch { + # "Update TAP hardware ID" + commit = "7f71b37a3b25bec0b33a0e29780c222aef869e9d"; + sha256 = "sha256-RF/GvD/ZvhLdt34wDdUT/yxa+IVWx0eY6WRdNWXxXeQ="; + }) + (fetchMullvadPatch { + # "Undo dependency on Python docutils" + commit = "abd3c6214529d9f4143cc92dd874d8743abea17c"; + sha256 = "sha256-SC2RlpWHUDMAEKap1t60dC4hmalk3vok6xY+/xhC2U0="; + }) + (fetchMullvadPatch { + # "Prevent signal when stdin is closed from being cleared (#10)" + commit = "b45b090c81e7b4f2dc938642af7a1e12f699f5c5"; + sha256 = "sha256-KPTFmbuJhMI+AvaRuu30CPPLQAXiE/VApxlUCqbZFls="; + }) + ]; + + meta = oldAttrs.meta or { } // { + description = "OpenVPN with Mullvad-specific patches applied"; + homepage = "https://github.com/mullvad/openvpn"; + maintainers = with lib; [ maintainers.cole-h ]; + }; + }) From 1fc220f69cdcb252b4f0f39b123d59951dc823d4 Mon Sep 17 00:00:00 2001 From: Cole Helbling Date: Sat, 26 Mar 2022 12:05:21 -0700 Subject: [PATCH 080/101] mullvad: fix openvpn support Also expose `libwg` through `passthru` in the same way as `openvpn-wireguard`. --- .../networking/mullvad/mullvad.nix | 23 ++++++++++++------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/pkgs/applications/networking/mullvad/mullvad.nix b/pkgs/applications/networking/mullvad/mullvad.nix index 6fe37da270c7..801e8602cc95 100644 --- a/pkgs/applications/networking/mullvad/mullvad.nix +++ b/pkgs/applications/networking/mullvad/mullvad.nix @@ -11,6 +11,7 @@ , libmnl , libwg , openvpn-mullvad +, shadowsocks-rust }: let # result of running address_cache as of 02 Mar 2022 @@ -71,14 +72,17 @@ rustPlatform.buildRustPackage rec { # Put distributed assets in-place -- specifically, the # bootstrap-address-cache is necessary; otherwise, the user will have to run # the `address_cache` binary and move the contents into place at - # `/var/cache/mullvad-vpn/api-ip-address.txt` manually. `ca.crt` is - # necessary for OpenVPN tunnels to work. - # XXX: Use of OpenVPN requires their fork of OpenVPN, which can be found at - # https://github.com/mullvad/openvpn/tree/mullvad-patches/ + # `/var/cache/mullvad-vpn/api-ip-address.txt` manually. '' - mkdir -p $out/share - ln -s ${bootstrap-address-cache} $out/share/api-ip-address.txt - cp dist-assets/ca.crt $out/share + mkdir -p $out/share/mullvad + ln -s ${bootstrap-address-cache} $out/share/mullvad/api-ip-address.txt + '' + + # Files necessary for OpenVPN tunnels to work. + '' + cp dist-assets/ca.crt $out/share/mullvad + ln -s ${openvpn-mullvad}/bin/openvpn $out/share/mullvad + ln -s ${shadowsocks-rust}/bin/sslocal $out/share/mullvad + ln -s $out/lib/libtalpid_openvpn_plugin.so $out/share/mullvad '' + # Set the directory where Mullvad will look for its resources by default to # `$out/share`, so that we can avoid putting the files in `$out/bin` -- @@ -89,7 +93,10 @@ rustPlatform.buildRustPackage rec { --set-default MULLVAD_RESOURCE_DIR "$out/share/mullvad" ''; - passthru = { inherit openvpn-mullvad; }; + passthru = { + inherit libwg; + inherit openvpn-mullvad; + }; meta = with lib; { description = "Mullvad VPN command-line client tools"; From 8eaa45b887abf7b22d3be3c2dd0585322d2cdc43 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 1 Apr 2022 15:11:50 +0000 Subject: [PATCH 081/101] python310Packages.pontos: 22.2.4 -> 22.4.0 --- pkgs/development/python-modules/pontos/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/pontos/default.nix b/pkgs/development/python-modules/pontos/default.nix index d36c5d7e7ae3..0ea1be9c21f0 100644 --- a/pkgs/development/python-modules/pontos/default.nix +++ b/pkgs/development/python-modules/pontos/default.nix @@ -13,7 +13,7 @@ buildPythonPackage rec { pname = "pontos"; - version = "22.2.4"; + version = "22.4.0"; format = "pyproject"; disabled = pythonOlder "3.7"; @@ -22,7 +22,7 @@ buildPythonPackage rec { owner = "greenbone"; repo = pname; rev = "v${version}"; - hash = "sha256-RmMlwnAJlCTDnTyim0MdAeW3NA8r2IiqrE0YeWgxUk4="; + hash = "sha256-W+l5QIpum1uTsx/mxZGkRoJAZaC1viURVYg4Kvjv32Y="; }; nativeBuildInputs = [ From 251db5974fde60391671a43ece661464a35feb1d Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 1 Apr 2022 17:43:40 +0000 Subject: [PATCH 082/101] python310Packages.pyoverkiz: 1.3.13 -> 1.3.14 --- pkgs/development/python-modules/pyoverkiz/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/pyoverkiz/default.nix b/pkgs/development/python-modules/pyoverkiz/default.nix index c60b69836c8c..f39b17a67541 100644 --- a/pkgs/development/python-modules/pyoverkiz/default.nix +++ b/pkgs/development/python-modules/pyoverkiz/default.nix @@ -15,7 +15,7 @@ buildPythonPackage rec { pname = "pyoverkiz"; - version = "1.3.13"; + version = "1.3.14"; format = "pyproject"; disabled = pythonOlder "3.7"; @@ -24,7 +24,7 @@ buildPythonPackage rec { owner = "iMicknl"; repo = "python-overkiz-api"; rev = "v${version}"; - hash = "sha256-CkEo8H5S2/nf7jWU51sVN+GCqaL5Kgx77m6669Pr4dU="; + hash = "sha256-dyT2hrTQwYoKEZAVIed2N4259YlR2JmvOEpAuPLCur4="; }; nativeBuildInputs = [ From 5d7dbf1dd8e1706cab5a8377b9b33512a4d0add4 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Fri, 1 Apr 2022 19:52:45 +0200 Subject: [PATCH 083/101] tfsec: 1.15.2 -> 1.15.4 --- pkgs/development/tools/analysis/tfsec/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/tools/analysis/tfsec/default.nix b/pkgs/development/tools/analysis/tfsec/default.nix index bd04f4a2060e..bea9e0985525 100644 --- a/pkgs/development/tools/analysis/tfsec/default.nix +++ b/pkgs/development/tools/analysis/tfsec/default.nix @@ -5,13 +5,13 @@ buildGoModule rec { pname = "tfsec"; - version = "1.15.2"; + version = "1.15.4"; src = fetchFromGitHub { owner = "aquasecurity"; repo = pname; rev = "v${version}"; - sha256 = "sha256-nXrWKKHb64HGHttppBveLp45qKLnGvkElqxn8f/cWok="; + sha256 = "sha256-IYmS3Q2WWkOYISx0jI8yggArk0fhl3WQWrsc+Zfg8gU="; }; ldflags = [ From dd1e0890ad4a08779f54293c088b3d6524a4651d Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 1 Apr 2022 17:58:26 +0000 Subject: [PATCH 084/101] python310Packages.pypugjs: 5.9.10 -> 5.9.11 --- pkgs/development/python-modules/pypugjs/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/pypugjs/default.nix b/pkgs/development/python-modules/pypugjs/default.nix index 9b19c4c8a261..cfc7fbf2ded3 100644 --- a/pkgs/development/python-modules/pypugjs/default.nix +++ b/pkgs/development/python-modules/pypugjs/default.nix @@ -3,11 +3,11 @@ buildPythonPackage rec { pname = "pypugjs"; - version = "5.9.10"; + version = "5.9.11"; src = fetchPypi { inherit pname version; - sha256 = "082dae87d44e184030b66da9ea9bd1a0209f86c089d8f2bd61064b97a7511a28"; + sha256 = "sha256-kStaT1S8cPJF+iDFk/jLGKi3JVOMmtf7PzeYDKCdD0E="; }; propagatedBuildInputs = [ six chardet ]; From d5574652cecd6c460206df1ec3506b1688760672 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Fri, 1 Apr 2022 20:04:52 +0200 Subject: [PATCH 085/101] python3Packages.cdcs: 0.1.6 -> 0.1.8 --- pkgs/development/python-modules/cdcs/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/cdcs/default.nix b/pkgs/development/python-modules/cdcs/default.nix index ec11019cc9a7..748d0ff623fd 100644 --- a/pkgs/development/python-modules/cdcs/default.nix +++ b/pkgs/development/python-modules/cdcs/default.nix @@ -9,7 +9,7 @@ }: buildPythonPackage rec { - version = "0.1.6"; + version = "0.1.8"; pname = "cdcs"; format = "setuptools"; @@ -19,7 +19,7 @@ buildPythonPackage rec { owner = "usnistgov"; repo = "pycdcs"; rev = "v${version}"; - sha256 = "sha256-w9CBNOK9oXTIUa+SsnepRN0wAz7WPZGfUNDSbtVn1L8="; + sha256 = "sha256-s+COE7hus1J5I8PTdagl7KEK5QFoidjQ3ee46kOWmkE="; }; propagatedBuildInputs = [ From ff40604f1334a2a2d6dc468642463b20dd04468a Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Fri, 1 Apr 2022 20:19:39 +0200 Subject: [PATCH 086/101] python3Packages.pycfmodel: 0.17.1 -> 0.18.0 --- pkgs/development/python-modules/pycfmodel/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/pycfmodel/default.nix b/pkgs/development/python-modules/pycfmodel/default.nix index a6a2446da07b..c47362e339e5 100644 --- a/pkgs/development/python-modules/pycfmodel/default.nix +++ b/pkgs/development/python-modules/pycfmodel/default.nix @@ -9,7 +9,7 @@ buildPythonPackage rec { pname = "pycfmodel"; - version = "0.17.1"; + version = "0.18.0"; format = "setuptools"; disabled = pythonOlder "3.7"; @@ -18,7 +18,7 @@ buildPythonPackage rec { owner = "Skyscanner"; repo = pname; rev = version; - hash = "sha256-Rw0sZ2k+tXo04mvlL83hUgdHIND5NIsVH/CzrfmbKlE="; + hash = "sha256-g249Nq4u4pPQLbW9Kw5vLwVKCaZoots5LD6yk1NPv6s="; }; propagatedBuildInputs = [ From 48bb359967c416ff5e4dab96844e2af04ce3c05f Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Fri, 1 Apr 2022 20:19:59 +0200 Subject: [PATCH 087/101] cfripper: 1.7.0 -> 1.7.1 --- pkgs/tools/security/cfripper/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/tools/security/cfripper/default.nix b/pkgs/tools/security/cfripper/default.nix index 96848acd7c04..9d7a30fdc345 100644 --- a/pkgs/tools/security/cfripper/default.nix +++ b/pkgs/tools/security/cfripper/default.nix @@ -5,13 +5,13 @@ python3.pkgs.buildPythonApplication rec { pname = "cfripper"; - version = "1.7.0"; + version = "1.7.1"; src = fetchFromGitHub { owner = "Skyscanner"; repo = pname; rev = version; - hash = "sha256-bYKusyEItnhj1mU6Tucsdi5pdMoWrUK4Y91SK8dNGE4="; + hash = "sha256-Q1J5M6RyYjVi2rkOCThFQdBCxVKkza+wytO67vLlVQg="; }; propagatedBuildInputs = with python3.pkgs; [ From 760289211540c20171ed704e3f7888870ace638f Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 1 Apr 2022 19:32:20 +0000 Subject: [PATCH 088/101] go-ethereum: 1.10.16 -> 1.10.17 --- pkgs/applications/blockchains/go-ethereum/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/blockchains/go-ethereum/default.nix b/pkgs/applications/blockchains/go-ethereum/default.nix index 842ebcc69ec8..661a25c8314b 100644 --- a/pkgs/applications/blockchains/go-ethereum/default.nix +++ b/pkgs/applications/blockchains/go-ethereum/default.nix @@ -9,16 +9,16 @@ let in buildGoModule rec { pname = "go-ethereum"; - version = "1.10.16"; + version = "1.10.17"; src = fetchFromGitHub { owner = "ethereum"; repo = pname; rev = "v${version}"; - sha256 = "sha256-l+hxAUw55d9MYLIUdF6qSEIelJQYRCvHyw1yuossmyA="; + sha256 = "sha256-GBlrg4wOiqEQTZC3CtfAZbIvS16/pSjEedEDrPGNUtY="; }; - vendorSha256 = "sha256-keeox2d2WEzY9ynEcovPaU95YzVQlbTu1i7PLpjkjZU="; + vendorSha256 = "sha256-D4odWuGFipSvbKbNlA6PkTo3rWGTCptJcn/7V7ZA7qs="; doCheck = false; From ebfb266f31046b5725a626beced278e67a33a7c3 Mon Sep 17 00:00:00 2001 From: Andrew Marshall Date: Fri, 1 Apr 2022 15:38:49 -0400 Subject: [PATCH 089/101] linode-cli: Remove update check Upon every API call, this program will check the API version and make a request to PyPi to check the latest version and, if not latest, will show a warning like > The API responded with version 1.2.4, which is newer than the CLI's > version of 1.2.3. Please update the CLI to get access to the newest > features. You can update with a simple `pip install --upgrade > linode-cli` This is not really useful with Nix, as the update message is wrong. And connecting to a third-party on each usage is not desired, either. --- pkgs/tools/virtualization/linode-cli/default.nix | 4 ++++ .../linode-cli/remove-update-check.patch | 11 +++++++++++ 2 files changed, 15 insertions(+) create mode 100644 pkgs/tools/virtualization/linode-cli/remove-update-check.patch diff --git a/pkgs/tools/virtualization/linode-cli/default.nix b/pkgs/tools/virtualization/linode-cli/default.nix index 6ba947fb2f5b..8484762e3896 100644 --- a/pkgs/tools/virtualization/linode-cli/default.nix +++ b/pkgs/tools/virtualization/linode-cli/default.nix @@ -33,6 +33,10 @@ buildPythonApplication rec { inherit sha256; }; + patches = [ + ./remove-update-check.patch + ]; + # remove need for git history prePatch = '' substituteInPlace setup.py \ diff --git a/pkgs/tools/virtualization/linode-cli/remove-update-check.patch b/pkgs/tools/virtualization/linode-cli/remove-update-check.patch new file mode 100644 index 000000000000..316d2855b1f4 --- /dev/null +++ b/pkgs/tools/virtualization/linode-cli/remove-update-check.patch @@ -0,0 +1,11 @@ +--- a/linodecli/cli.py ++++ b/linodecli/cli.py +@@ -555,7 +555,7 @@ + if self.debug_request: + self.print_response_debug_info(result) + +- if not self.suppress_warnings: ++ if False: + # check the major/minor version API reported against what we were built + # with to see if an upgrade should be available + api_version_higher = False From 975a1ae33904a48b92d84de5b7f8a0441024e34d Mon Sep 17 00:00:00 2001 From: Silvan Mosberger Date: Sat, 25 Jul 2020 19:53:15 +0200 Subject: [PATCH 090/101] lib/strings: Add levenshtein distance functions Adds some functions related to string similarity: - lib.strings.commonPrefixLength - lib.strings.commonSuffixLength - lib.strings.levenshtein - lib.strings.levenshteinAtMost --- lib/strings.nix | 127 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 127 insertions(+) diff --git a/lib/strings.nix b/lib/strings.nix index b2fd495e4c84..d34263c99494 100644 --- a/lib/strings.nix +++ b/lib/strings.nix @@ -774,4 +774,131 @@ rec { (x: if stringLength x == 0 then "unknown" else x) ]; + /* Computes the Levenshtein distance between two strings. + Complexity O(n*m) where n and m are the lengths of the strings. + Algorithm adjusted from https://stackoverflow.com/a/9750974/6605742 + + Type: levenshtein :: string -> string -> int + + Example: + levenshtein "foo" "foo" + => 0 + levenshtein "book" "hook" + => 1 + levenshtein "hello" "Heyo" + => 3 + */ + levenshtein = a: b: let + # Two dimensional array with dimensions (stringLength a + 1, stringLength b + 1) + arr = lib.genList (i: + lib.genList (j: + dist i j + ) (stringLength b + 1) + ) (stringLength a + 1); + d = x: y: lib.elemAt (lib.elemAt arr x) y; + dist = i: j: + let c = if substring (i - 1) 1 a == substring (j - 1) 1 b + then 0 else 1; + in + if j == 0 then i + else if i == 0 then j + else lib.min + ( lib.min (d (i - 1) j + 1) (d i (j - 1) + 1)) + ( d (i - 1) (j - 1) + c ); + in d (stringLength a) (stringLength b); + + /* Returns the length of the prefix common to both strings. + */ + commonPrefixLength = a: b: + let + m = lib.min (stringLength a) (stringLength b); + go = i: if i >= m then m else if substring i 1 a == substring i 1 b then go (i + 1) else i; + in go 0; + + /* Returns the length of the suffix common to both strings. + */ + commonSuffixLength = a: b: + let + m = lib.min (stringLength a) (stringLength b); + go = i: if i >= m then m else if substring (stringLength a - i - 1) 1 a == substring (stringLength b - i - 1) 1 b then go (i + 1) else i; + in go 0; + + /* Returns whether the levenshtein distance between two strings is at most some value + Complexity is O(min(n,m)) for k <= 2 and O(n*m) otherwise + + Type: levenshteinAtMost :: int -> string -> string -> bool + + Example: + levenshteinAtMost 0 "foo" "foo" + => true + levenshteinAtMost 1 "foo" "boa" + => false + levenshteinAtMost 2 "foo" "boa" + => true + levenshteinAtMost 2 "This is a sentence" "this is a sentense." + => false + levenshteinAtMost 3 "This is a sentence" "this is a sentense." + => true + + */ + levenshteinAtMost = let + infixDifferAtMost1 = x: y: stringLength x <= 1 && stringLength y <= 1; + + # This function takes two strings stripped by their common pre and suffix, + # and returns whether they differ by at most two by Levenshtein distance. + # Because of this stripping, if they do indeed differ by at most two edits, + # we know that those edits were (if at all) done at the start or the end, + # while the middle has to have stayed the same. This fact is used in the + # implementation. + infixDifferAtMost2 = x: y: + let + xlen = stringLength x; + ylen = stringLength y; + # This function is only called with |x| >= |y| and |x| - |y| <= 2, so + # diff is one of 0, 1 or 2 + diff = xlen - ylen; + + # Infix of x and y, stripped by the left and right most character + xinfix = substring 1 (xlen - 2) x; + yinfix = substring 1 (ylen - 2) y; + + # x and y but a character deleted at the left or right + xdelr = substring 0 (xlen - 1) x; + xdell = substring 1 (xlen - 1) x; + ydelr = substring 0 (ylen - 1) y; + ydell = substring 1 (ylen - 1) y; + in + # A length difference of 2 can only be gotten with 2 delete edits, + # which have to have happened at the start and end of x + # Example: "abcdef" -> "bcde" + if diff == 2 then xinfix == y + # A length difference of 1 can only be gotten with a deletion on the + # right and a replacement on the left or vice versa. + # Example: "abcdef" -> "bcdez" or "zbcde" + else if diff == 1 then xinfix == ydelr || xinfix == ydell + # No length difference can either happen through replacements on both + # sides, or a deletion on the left and an insertion on the right or + # vice versa + # Example: "abcdef" -> "zbcdez" or "bcdefz" or "zabcde" + else xinfix == yinfix || xdelr == ydell || xdell == ydelr; + + in k: if k <= 0 then a: b: a == b else + let f = a: b: + let + alen = stringLength a; + blen = stringLength b; + prelen = commonPrefixLength a b; + suflen = commonSuffixLength a b; + presuflen = prelen + suflen; + ainfix = substring prelen (alen - presuflen) a; + binfix = substring prelen (blen - presuflen) b; + in + # Make a be the bigger string + if alen < blen then f b a + # If a has over k more characters than b, even with k deletes on a, b can't be reached + else if alen - blen > k then false + else if k == 1 then infixDifferAtMost1 ainfix binfix + else if k == 2 then infixDifferAtMost2 ainfix binfix + else levenshtein ainfix binfix <= k; + in f; } From f8c1aee5dac656dac5bab6de54b06ea2ccf3242a Mon Sep 17 00:00:00 2001 From: Silvan Mosberger Date: Sat, 25 Jul 2020 19:54:19 +0200 Subject: [PATCH 091/101] lib/tests: Add tests for levenshtein functions --- lib/tests/misc.nix | 152 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 152 insertions(+) diff --git a/lib/tests/misc.nix b/lib/tests/misc.nix index 271119031395..1eb2d953ebbe 100644 --- a/lib/tests/misc.nix +++ b/lib/tests/misc.nix @@ -913,4 +913,156 @@ runTests { }; }; + ## Levenshtein distance functions and co. + testCommonPrefixLengthEmpty = { + expr = strings.commonPrefixLength "" "hello"; + expected = 0; + }; + + testCommonPrefixLengthSame = { + expr = strings.commonPrefixLength "hello" "hello"; + expected = 5; + }; + + testCommonPrefixLengthDiffering = { + expr = strings.commonPrefixLength "hello" "hey"; + expected = 2; + }; + + testCommonSuffixLengthEmpty = { + expr = strings.commonSuffixLength "" "hello"; + expected = 0; + }; + + testCommonSuffixLengthSame = { + expr = strings.commonSuffixLength "hello" "hello"; + expected = 5; + }; + + testCommonSuffixLengthDiffering = { + expr = strings.commonSuffixLength "test" "rest"; + expected = 3; + }; + + testLevenshteinEmpty = { + expr = strings.levenshtein "" ""; + expected = 0; + }; + + testLevenshteinOnlyAdd = { + expr = strings.levenshtein "" "hello there"; + expected = 11; + }; + + testLevenshteinOnlyRemove = { + expr = strings.levenshtein "hello there" ""; + expected = 11; + }; + + testLevenshteinOnlyTransform = { + expr = strings.levenshtein "abcdef" "ghijkl"; + expected = 6; + }; + + testLevenshteinMixed = { + expr = strings.levenshtein "kitchen" "sitting"; + expected = 5; + }; + + testLevenshteinAtMostZeroFalse = { + expr = strings.levenshteinAtMost 0 "foo" "boo"; + expected = false; + }; + + testLevenshteinAtMostZeroTrue = { + expr = strings.levenshteinAtMost 0 "foo" "foo"; + expected = true; + }; + + testLevenshteinAtMostOneFalse = { + expr = strings.levenshteinAtMost 1 "car" "ct"; + expected = false; + }; + + testLevenshteinAtMostOneTrue = { + expr = strings.levenshteinAtMost 1 "car" "cr"; + expected = true; + }; + + # We test levenshteinAtMost 2 particularly well because it uses a complicated + # implementation + testLevenshteinAtMostTwoIsEmpty = { + expr = strings.levenshteinAtMost 2 "" ""; + expected = true; + }; + + testLevenshteinAtMostTwoIsZero = { + expr = strings.levenshteinAtMost 2 "abcdef" "abcdef"; + expected = true; + }; + + testLevenshteinAtMostTwoIsOne = { + expr = strings.levenshteinAtMost 2 "abcdef" "abddef"; + expected = true; + }; + + testLevenshteinAtMostTwoDiff0False = { + expr = strings.levenshteinAtMost 2 "abcdef" "aczyef"; + expected = false; + }; + + testLevenshteinAtMostTwoDiff0Outer = { + expr = strings.levenshteinAtMost 2 "abcdef" "zbcdez"; + expected = true; + }; + + testLevenshteinAtMostTwoDiff0DelLeft = { + expr = strings.levenshteinAtMost 2 "abcdef" "bcdefz"; + expected = true; + }; + + testLevenshteinAtMostTwoDiff0DelRight = { + expr = strings.levenshteinAtMost 2 "abcdef" "zabcde"; + expected = true; + }; + + testLevenshteinAtMostTwoDiff1False = { + expr = strings.levenshteinAtMost 2 "abcdef" "bddez"; + expected = false; + }; + + testLevenshteinAtMostTwoDiff1DelLeft = { + expr = strings.levenshteinAtMost 2 "abcdef" "bcdez"; + expected = true; + }; + + testLevenshteinAtMostTwoDiff1DelRight = { + expr = strings.levenshteinAtMost 2 "abcdef" "zbcde"; + expected = true; + }; + + testLevenshteinAtMostTwoDiff2False = { + expr = strings.levenshteinAtMost 2 "hello" "hxo"; + expected = false; + }; + + testLevenshteinAtMostTwoDiff2True = { + expr = strings.levenshteinAtMost 2 "hello" "heo"; + expected = true; + }; + + testLevenshteinAtMostTwoDiff3 = { + expr = strings.levenshteinAtMost 2 "hello" "ho"; + expected = false; + }; + + testLevenshteinAtMostThreeFalse = { + expr = strings.levenshteinAtMost 3 "hello" "Holla!"; + expected = false; + }; + + testLevenshteinAtMostThreeTrue = { + expr = strings.levenshteinAtMost 3 "hello" "Holla"; + expected = true; + }; } From 1c00bf394867b07ed7a908408d8bc1d0afd9fa49 Mon Sep 17 00:00:00 2001 From: Silvan Mosberger Date: Sat, 25 Jul 2020 19:54:37 +0200 Subject: [PATCH 092/101] lib/customization: Improve callPackage error message for missing args This uses the levenshtein distance to look through all possible arguments to find ones that are close to what was requested: error: Function in /home/infinisil/src/nixpkgs/pkgs/tools/text/ripgrep/default.nix called without required argument "fetchFromGithub", did you mean "fetchFromGitHub" or "fetchFromGitLab"? With https://github.com/NixOS/nix/pull/3468 (in current nixUnstable) the error message becomes even better, adding line location info --- lib/customisation.nix | 51 +++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 49 insertions(+), 2 deletions(-) diff --git a/lib/customisation.nix b/lib/customisation.nix index 234a528527d3..cc9a9b1c55d0 100644 --- a/lib/customisation.nix +++ b/lib/customisation.nix @@ -117,8 +117,55 @@ rec { callPackageWith = autoArgs: fn: args: let f = if lib.isFunction fn then fn else import fn; - auto = builtins.intersectAttrs (lib.functionArgs f) autoArgs; - in makeOverridable f (auto // args); + fargs = lib.functionArgs f; + + # All arguments that will be passed to the function + # This includes automatic ones and ones passed explicitly + allArgs = builtins.intersectAttrs fargs autoArgs // args; + + # A list of argument names that the function requires, but + # wouldn't be passed to it + missingArgs = lib.attrNames + # Filter out arguments that have a default value + (lib.filterAttrs (name: value: ! value) + # Filter out arguments that would be passed + (removeAttrs fargs (lib.attrNames allArgs))); + + # Get a list of suggested argument names for a given missing one + getSuggestions = arg: lib.pipe (autoArgs // args) [ + lib.attrNames + # Only use ones that are at most 2 edits away. While mork would work, + # levenshteinAtMost is only fast for 2 or less. + (lib.filter (lib.strings.levenshteinAtMost 2 arg)) + # Put strings with shorter distance first + (lib.sort (x: y: lib.strings.levenshtein x arg < lib.strings.levenshtein y arg)) + # Only take the first couple results + (lib.take 3) + # Quote all entries + (map (x: "\"" + x + "\"")) + ]; + + prettySuggestions = suggestions: + if suggestions == [] then "" + else if lib.length suggestions == 1 then ", did you mean ${lib.elemAt suggestions 0}?" + else ", did you mean ${lib.concatStringsSep ", " (lib.init suggestions)} or ${lib.last suggestions}?"; + + errorForArg = arg: + let + loc = builtins.unsafeGetAttrPos arg fargs; + # loc' can be removed once lib/minver.nix is >2.3.4, since that includes + # https://github.com/NixOS/nix/pull/3468 which makes loc be non-null + loc' = if loc != null then loc.file + ":" + toString loc.line + else if ! lib.isFunction fn then + toString fn + lib.optionalString (lib.sources.pathIsDirectory fn) "/default.nix" + else ""; + in "Function called without required argument \"${arg}\" at " + + "${loc'}${prettySuggestions (getSuggestions arg)}"; + + # Only show the error for the first missing argument + error = errorForArg (lib.head missingArgs); + + in if missingArgs == [] then makeOverridable f allArgs else throw error; /* Like callPackage, but for a function that returns an attribute From 63f0c334f0f3c6a584422454c90465101327d03e Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Fri, 1 Apr 2022 19:43:55 +0200 Subject: [PATCH 093/101] wireshark: 3.6.2 -> 3.6.3 ChangeLog: https://www.wireshark.org/docs/relnotes/wireshark-3.6.3.html --- pkgs/applications/networking/sniffers/wireshark/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/networking/sniffers/wireshark/default.nix b/pkgs/applications/networking/sniffers/wireshark/default.nix index b667c7671bdc..931606f32489 100644 --- a/pkgs/applications/networking/sniffers/wireshark/default.nix +++ b/pkgs/applications/networking/sniffers/wireshark/default.nix @@ -11,7 +11,7 @@ assert withQt -> qt5 != null; with lib; let - version = "3.6.2"; + version = "3.6.3"; variant = if withQt then "qt" else "cli"; in stdenv.mkDerivation { @@ -21,7 +21,7 @@ in stdenv.mkDerivation { src = fetchurl { url = "https://www.wireshark.org/download/src/all-versions/wireshark-${version}.tar.xz"; - sha256 = "sha256-XZAaVXKu+VPwStwlPtKgaZ1MYnedMkkCHh6FQaAkww4="; + sha256 = "sha256-tgNkpMAGihCBGrP9B1ymwesOddRGACcbiKIO2Tou9jE="; }; cmakeFlags = [ From eeb3206a29560a6b9ad141b27fa4eec51058e4d7 Mon Sep 17 00:00:00 2001 From: "P. R. d. O" Date: Fri, 1 Apr 2022 12:03:29 -0600 Subject: [PATCH 094/101] nixos/jenkinsSlave: install java Installs Java into the Jenkins agent and allows specifying the JDK/JRE package to use. This is necessary as Jenkins verifies if the agent contains Java installed through the java -fullversion command, which if not, the connection will fail. --- .../continuous-integration/jenkins/slave.nix | 16 +++++++++++++++- nixos/tests/jenkins.nix | 2 ++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/nixos/modules/services/continuous-integration/jenkins/slave.nix b/nixos/modules/services/continuous-integration/jenkins/slave.nix index 3c0e6f78e74c..871b9914fb27 100644 --- a/nixos/modules/services/continuous-integration/jenkins/slave.nix +++ b/nixos/modules/services/continuous-integration/jenkins/slave.nix @@ -1,4 +1,4 @@ -{ config, lib, ... }: +{ config, lib, pkgs, ... }: with lib; let cfg = config.services.jenkinsSlave; @@ -46,6 +46,15 @@ in { this is the home of the "jenkins" user. ''; }; + + javaPackage = mkOption { + default = pkgs.jdk; + defaultText = literalExpression "pkgs.jdk"; + description = '' + Java package to install. + ''; + type = types.package; + }; }; }; @@ -64,5 +73,10 @@ in { uid = config.ids.uids.jenkins; }; }; + + programs.java = { + enable = true; + package = cfg.javaPackage; + }; }; } diff --git a/nixos/tests/jenkins.nix b/nixos/tests/jenkins.nix index cb4207c6e773..265d1a330cd9 100644 --- a/nixos/tests/jenkins.nix +++ b/nixos/tests/jenkins.nix @@ -90,6 +90,8 @@ import ./make-test-python.nix ({ pkgs, ...} : { slave.fail("systemctl is-enabled jenkins.service") + slave.succeed("java -fullversion") + with subtest("jobs are declarative"): # Check that jobs are created on disk. master.wait_for_unit("jenkins-job-builder") From b5f36e84d14a8ac695e306611340435ac448b7ed Mon Sep 17 00:00:00 2001 From: Jeppe Fihl-Pearson Date: Wed, 30 Mar 2022 21:07:20 +0100 Subject: [PATCH 095/101] Add block size to dd command Without configuring the block size a default of 512 bytes is used, which can slow down the transfer speed massively. In a test I've done with a semi-decent USB stick, I only get a transfer speed of around 180 KB/sec when not specifying the block size but see 27 MB/sec when setting the block size to 1 MB. This makes the transfer of the minimal installation ISO take half a minute instead of an hour. --- .../doc/manual/from_md/installation/installing-usb.section.xml | 2 +- nixos/doc/manual/installation/installing-usb.section.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/nixos/doc/manual/from_md/installation/installing-usb.section.xml b/nixos/doc/manual/from_md/installation/installing-usb.section.xml index b46a1d565557..df266eb16800 100644 --- a/nixos/doc/manual/from_md/installation/installing-usb.section.xml +++ b/nixos/doc/manual/from_md/installation/installing-usb.section.xml @@ -17,7 +17,7 @@ $ diskutil list [..] $ diskutil unmountDisk diskN Unmount of all volumes on diskN was successful -$ sudo dd if=nix.iso of=/dev/rdiskN +$ sudo dd if=nix.iso of=/dev/rdiskN bs=1M Using the 'raw' rdiskN device instead of diff --git a/nixos/doc/manual/installation/installing-usb.section.md b/nixos/doc/manual/installation/installing-usb.section.md index ae58c08e5237..d893e22e6381 100644 --- a/nixos/doc/manual/installation/installing-usb.section.md +++ b/nixos/doc/manual/installation/installing-usb.section.md @@ -18,7 +18,7 @@ $ diskutil list [..] $ diskutil unmountDisk diskN Unmount of all volumes on diskN was successful -$ sudo dd if=nix.iso of=/dev/rdiskN +$ sudo dd if=nix.iso of=/dev/rdiskN bs=1M ``` Using the \'raw\' `rdiskN` device instead of `diskN` completes in From 5b6e4187adf84069612e2d6ade9edbdad6aa1df1 Mon Sep 17 00:00:00 2001 From: zowoq <59103226+zowoq@users.noreply.github.com> Date: Fri, 1 Apr 2022 07:35:45 +1000 Subject: [PATCH 096/101] stylua: 0.12.5 -> 0.13.0 https://github.com/JohnnyMorganz/StyLua/releases/tag/v0.13.0 --- pkgs/development/tools/stylua/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/development/tools/stylua/default.nix b/pkgs/development/tools/stylua/default.nix index e21f058b8a06..729c0c191885 100644 --- a/pkgs/development/tools/stylua/default.nix +++ b/pkgs/development/tools/stylua/default.nix @@ -7,16 +7,16 @@ rustPlatform.buildRustPackage rec { pname = "stylua"; - version = "0.12.5"; + version = "0.13.0"; src = fetchFromGitHub { owner = "johnnymorganz"; repo = pname; rev = "v${version}"; - sha256 = "sha256-4tQQTTAdIAhlkBJevwwwGXOKd6bJJOyG4nlbCv7909Y="; + sha256 = "sha256-Ecv6am4JT4cJKAApieOWQZG3XZkeCpmLrs6K7+4c8xA="; }; - cargoSha256 = "sha256-DGe2lB8xZgY9ikTsIHDOdHzTyHfDaSlmy8FU/S9FDCI="; + cargoSha256 = "sha256-r09fTZTmOZQCI3qIWcnQnhUXYLVK8pF5y0y/dQl88CI="; buildFeatures = lib.optional lua52Support "lua52" ++ lib.optional luauSupport "luau"; From 3b2051594bc60b1515f8c41e661a59fd80d1092e Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Fri, 1 Apr 2022 22:37:07 +0200 Subject: [PATCH 097/101] gitlab: 14.9.1 -> 14.9.2 https://about.gitlab.com/releases/2022/03/31/critical-security-release-gitlab-14-9-2-released/ Fixes: CVE-2022-1162, CVE-2022-1175, CVE-2022-1190, CVE-2022-1185, CVE-2022-1148, CVE-2022-1121, CVE-2022-1120, CVE-2022-1100, CVE-2022-1193, CVE-2022-1105, CVE-2022-1099, CVE-2022-1174, CVE-2022-1188, CVE-2022-0740, CVE-2022-1189, CVE-2022-1157, CVE-2022-1111 --- .../version-management/gitlab/data.json | 14 +++++++------- .../version-management/gitlab/gitaly/default.nix | 4 ++-- .../gitlab/gitlab-workhorse/default.nix | 2 +- .../version-management/gitlab/rubyEnv/Gemfile | 2 +- .../version-management/gitlab/rubyEnv/Gemfile.lock | 8 ++++---- .../version-management/gitlab/rubyEnv/gemset.nix | 4 ++-- 6 files changed, 17 insertions(+), 17 deletions(-) diff --git a/pkgs/applications/version-management/gitlab/data.json b/pkgs/applications/version-management/gitlab/data.json index bd524c622d6f..dbae269aab8c 100644 --- a/pkgs/applications/version-management/gitlab/data.json +++ b/pkgs/applications/version-management/gitlab/data.json @@ -1,14 +1,14 @@ { - "version": "14.9.1", - "repo_hash": "0jkhvglisaj3h9ls8q8wrxnnp4xp3zggc8vmwg6jqqjsmbpi332h", - "yarn_hash": "1bq1ka0nlb2nkjx70qpwpm8x6crbkfj0c8m39pwwc42j8wn10r9g", + "version": "14.9.2", + "repo_hash": "sha256-+tZN6isOb7LtUVwGshx9TP+P42sftJmQGVk1L9UJqcY=", + "yarn_hash": "1mya6y0cb9x8491gpf7f1i7qi2rb0l7d9g5yzj44vvy3mb4rcqaj", "owner": "gitlab-org", "repo": "gitlab", - "rev": "v14.9.1-ee", + "rev": "v14.9.2-ee", "passthru": { - "GITALY_SERVER_VERSION": "14.9.1", - "GITLAB_PAGES_VERSION": "1.56.0", + "GITALY_SERVER_VERSION": "14.9.2", + "GITLAB_PAGES_VERSION": "1.56.1", "GITLAB_SHELL_VERSION": "13.24.0", - "GITLAB_WORKHORSE_VERSION": "14.9.1" + "GITLAB_WORKHORSE_VERSION": "14.9.2" } } diff --git a/pkgs/applications/version-management/gitlab/gitaly/default.nix b/pkgs/applications/version-management/gitlab/gitaly/default.nix index d8ab7f36b39c..cd76768aee49 100644 --- a/pkgs/applications/version-management/gitlab/gitaly/default.nix +++ b/pkgs/applications/version-management/gitlab/gitaly/default.nix @@ -11,7 +11,7 @@ let gemdir = ./.; }; - version = "14.9.1"; + version = "14.9.2"; gitaly_package = "gitlab.com/gitlab-org/gitaly/v${lib.versions.major version}"; in @@ -23,7 +23,7 @@ buildGoModule { owner = "gitlab-org"; repo = "gitaly"; rev = "v${version}"; - sha256 = "sha256-mk6JZuu6b2r/OqRI4ZUf8AV/ObRKhTIQT9bQE8sH894="; + sha256 = "sha256-eEo+WZ2N/5bLfvwJCNf9qt+h/V5dIVqCjVJeomzw/Ps="; }; vendorSha256 = "sha256-kEjgWA/Task23PScPYrqdDu3vdVR/FJl7OilUug/Bds="; diff --git a/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix b/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix index e16d7f75bf69..9fcecc53a070 100644 --- a/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix +++ b/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix @@ -5,7 +5,7 @@ in buildGoModule rec { pname = "gitlab-workhorse"; - version = "14.9.1"; + version = "14.9.2"; src = fetchFromGitLab { owner = data.owner; diff --git a/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile b/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile index fd469fd8bcc7..ae8a8e012414 100644 --- a/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile +++ b/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile @@ -67,7 +67,7 @@ gem 'akismet', '~> 3.0' gem 'invisible_captcha', '~> 1.1.0' # Two-factor authentication -gem 'devise-two-factor', '~> 4.0.0' +gem 'devise-two-factor', '~> 4.0.2' gem 'rqrcode-rails3', '~> 0.1.7' gem 'attr_encrypted', '~> 3.1.0' gem 'u2f', '~> 0.2.1' diff --git a/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock b/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock index da4987d35dcd..658d79dfcc66 100644 --- a/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock +++ b/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock @@ -263,11 +263,11 @@ GEM railties (>= 4.1.0) responders warden (~> 1.2.3) - devise-two-factor (4.0.0) - activesupport (< 6.2) + devise-two-factor (4.0.2) + activesupport (< 7.1) attr_encrypted (>= 1.3, < 4, != 2) devise (~> 4.0) - railties (< 6.2) + railties (< 7.1) rotp (~> 6.0) diff-lcs (1.4.4) diff_match_patch (0.1.0) @@ -1450,7 +1450,7 @@ DEPENDENCIES derailed_benchmarks device_detector devise (~> 4.7.2) - devise-two-factor (~> 4.0.0) + devise-two-factor (~> 4.0.2) diff_match_patch (~> 0.1.0) diffy (~> 3.3) discordrb-webhooks (~> 3.4) diff --git a/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix b/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix index 5fc9a183a8b9..cc88cbbbab5b 100644 --- a/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix +++ b/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix @@ -1088,10 +1088,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "148pfr6g8dwikdq3994gsid2a3n6p5h4z1a1dzh1898shr5f9znc"; + sha256 = "04f5rb8fg4cvzm32v413z3h53wc0fgxg927q8rqd546hdrlx4j35"; type = "gem"; }; - version = "4.0.0"; + version = "4.0.2"; }; diff-lcs = { groups = ["default" "development" "test"]; From e42f06f93fa5ffda66250d2a3a2d993ba78b32c2 Mon Sep 17 00:00:00 2001 From: Zhaofeng Li Date: Thu, 24 Mar 2022 20:09:36 -0700 Subject: [PATCH 098/101] nixos/podman: Add zfs to wrapper if enabled --- nixos/modules/virtualisation/podman/default.nix | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nixos/modules/virtualisation/podman/default.nix b/nixos/modules/virtualisation/podman/default.nix index 94fd727a4b56..b7e7f78ded78 100644 --- a/nixos/modules/virtualisation/podman/default.nix +++ b/nixos/modules/virtualisation/podman/default.nix @@ -6,7 +6,10 @@ let inherit (lib) mkOption types; - podmanPackage = (pkgs.podman.override { inherit (cfg) extraPackages; }); + podmanPackage = (pkgs.podman.override { + extraPackages = cfg.extraPackages + ++ lib.optional (builtins.elem "zfs" config.boot.supportedFilesystems) config.boot.zfs.package; + }); # Provides a fake "docker" binary mapping to podman dockerCompat = pkgs.runCommand "${podmanPackage.pname}-docker-compat-${podmanPackage.version}" { From 01fd7a284ebc2d0add25ef5932c4ed42621ae634 Mon Sep 17 00:00:00 2001 From: zowoq <59103226+zowoq@users.noreply.github.com> Date: Sat, 2 Apr 2022 06:42:52 +1000 Subject: [PATCH 099/101] podman: 4.0.2 -> 4.0.3 https://github.com/containers/podman/releases/tag/v4.0.3 --- pkgs/applications/virtualization/podman/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/virtualization/podman/default.nix b/pkgs/applications/virtualization/podman/default.nix index 7d783b211bbd..1f596c609062 100644 --- a/pkgs/applications/virtualization/podman/default.nix +++ b/pkgs/applications/virtualization/podman/default.nix @@ -17,13 +17,13 @@ buildGoModule rec { pname = "podman"; - version = "4.0.2"; + version = "4.0.3"; src = fetchFromGitHub { owner = "containers"; repo = "podman"; rev = "v${version}"; - sha256 = "sha256-uLpvTnn2EWEI8+5gC3ofMjsZ9O7nLOaaUGGuvSE1gdE="; + sha256 = "sha256-o/CIs+3LnbaUUpOQI1hijrxH7f1qBnrQw56TJ18jKQw="; }; vendorSha256 = null; From 2ea0c4c2304c9032873cfa86d5e2241bfedcf10c Mon Sep 17 00:00:00 2001 From: Artturin Date: Sat, 2 Apr 2022 00:21:43 +0300 Subject: [PATCH 100/101] maintainer-list.nix: fix msfjarvis githubId --- maintainers/maintainer-list.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index af379f48cb2b..7cae29a1eefe 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -8549,7 +8549,7 @@ }; msfjarvis = { github = "msfjarvis"; - githubId = 3348378; + githubId = 13348378; name = "Harsh Shandilya"; email = "nixos@msfjarvis.dev"; keys = [{ From 666a90e29d6261fd17fab0481ac21c64cd857834 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Samuel=20Gr=C3=A4fenstein?= Date: Fri, 1 Apr 2022 14:05:22 +0200 Subject: [PATCH 101/101] gnupg{,1}: add meta.mainProgram --- pkgs/tools/security/gnupg/1.nix | 1 + pkgs/tools/security/gnupg/23.nix | 1 + 2 files changed, 2 insertions(+) diff --git a/pkgs/tools/security/gnupg/1.nix b/pkgs/tools/security/gnupg/1.nix index 8fc5dce7ba04..b7bc395cc0a7 100644 --- a/pkgs/tools/security/gnupg/1.nix +++ b/pkgs/tools/security/gnupg/1.nix @@ -29,5 +29,6 @@ stdenv.mkDerivation rec { available. ''; platforms = platforms.all; + mainProgram = "gpg"; }; } diff --git a/pkgs/tools/security/gnupg/23.nix b/pkgs/tools/security/gnupg/23.nix index e80804cd002f..d9ad2d0a276f 100644 --- a/pkgs/tools/security/gnupg/23.nix +++ b/pkgs/tools/security/gnupg/23.nix @@ -93,5 +93,6 @@ stdenv.mkDerivation rec { ''; maintainers = with maintainers; [ fpletz vrthra ]; platforms = platforms.all; + mainProgram = "gpg"; }; }