From 068372ee6f0146af5e7e01aa10252dbd85fdf826 Mon Sep 17 00:00:00 2001 From: h7x4 Date: Tue, 12 Dec 2023 17:58:34 +0100 Subject: [PATCH 01/59] heimdal: 7.8.0 -> 7.8.0-unstable-2023-11-29 --- pkgs/development/libraries/kerberos/heimdal.nix | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/pkgs/development/libraries/kerberos/heimdal.nix b/pkgs/development/libraries/kerberos/heimdal.nix index e4a61a3c0731..29fd897c7fee 100644 --- a/pkgs/development/libraries/kerberos/heimdal.nix +++ b/pkgs/development/libraries/kerberos/heimdal.nix @@ -4,21 +4,19 @@ , CoreFoundation, Security, SystemConfiguration }: -stdenv.mkDerivation rec { +stdenv.mkDerivation { pname = "heimdal"; - version = "7.8.0"; + version = "7.8.0-unstable-2023-11-29"; src = fetchFromGitHub { owner = "heimdal"; repo = "heimdal"; - rev = "heimdal-${version}"; - sha256 = "sha256-iXOaar1S3y0xHdL0S+vS0uxoFQjy43kABxqE+KEhxjU="; + rev = "3253c49544eacb33d5ad2f6f919b0696e5aab794"; + sha256 = "sha256-uljzQBzXrZCZjcIWfioqHN8YsbUUNy14Vo+A3vZIXzM="; }; outputs = [ "out" "dev" "man" "info" ]; - patches = [ ./heimdal-make-missing-headers.patch ]; - nativeBuildInputs = [ autoreconfHook pkg-config python3 perl bison flex texinfo ] ++ (with perlPackages; [ JSON ]); buildInputs = lib.optionals (stdenv.isLinux) [ libcap_ng ] @@ -71,9 +69,6 @@ stdenv.mkDerivation rec { (cd include/hcrypto; make -j $NIX_BUILD_CORES install) (cd lib/hcrypto; make -j $NIX_BUILD_CORES install) - # Do we need it? - rm $out/bin/su - mkdir -p $dev/bin mv $out/bin/krb5-config $dev/bin/ From b4d847ed27ed10e19de6984e35faaaff8eda555c Mon Sep 17 00:00:00 2001 From: Colin Date: Wed, 24 May 2023 21:30:36 +0000 Subject: [PATCH 02/59] bonsai: init at 1.0.2 --- pkgs/tools/misc/bonsai/default.nix | 66 ++++++++++++++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + 2 files changed, 68 insertions(+) create mode 100644 pkgs/tools/misc/bonsai/default.nix diff --git a/pkgs/tools/misc/bonsai/default.nix b/pkgs/tools/misc/bonsai/default.nix new file mode 100644 index 000000000000..1148eb6e98d3 --- /dev/null +++ b/pkgs/tools/misc/bonsai/default.nix @@ -0,0 +1,66 @@ +{ stdenv +, lib +, fetchFromSourcehut +, gitUpdater +, hare +, hareThirdParty +}: + +stdenv.mkDerivation rec { + pname = "bonsai"; + version = "1.0.2"; + + src = fetchFromSourcehut { + owner = "~stacyharper"; + repo = "bonsai"; + rev = "v${version}"; + hash = "sha256-Yosf07KUOQv4O5111tLGgI270g0KVGwzdTPtPOsTcP8="; + }; + + postPatch = '' + substituteInPlace Makefile \ + --replace 'hare build' 'hare build $(HARE_TARGET_FLAGS)' + ''; + + nativeBuildInputs = [ + hare + ]; + + buildInputs = with hareThirdParty; [ + hare-ev + hare-json + ]; + + env.HARE_TARGET_FLAGS = + if stdenv.hostPlatform.isAarch64 then + "-a aarch64" + else if stdenv.hostPlatform.isRiscV64 then + "-a riscv64" + else if stdenv.hostPlatform.isx86_64 then + "-a x86_64" + else + ""; + # TODO: hare setup-hook is supposed to do this for us. + # It does it correctly for native compilation, but not cross compilation: wrong offset? + env.HAREPATH = with hareThirdParty; "${hare-json}/src/hare/third-party:${hare-ev}/src/hare/third-party"; + + preConfigure = '' + export HARECACHE=$(mktemp -d) + ''; + + installFlags = [ "PREFIX=$(out)" ]; + + doCheck = true; + + passthru.updateScript = gitUpdater { + rev-prefix = "v"; + }; + + meta = with lib; { + description = "Finite State Machine structured as a tree"; + homepage = "https://git.sr.ht/~stacyharper/bonsai"; + license = licenses.agpl3; + maintainers = with maintainers; [ colinsane ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 60b5802a02a5..8c52d897f950 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -1770,6 +1770,8 @@ with pkgs; bikeshed = python3Packages.callPackage ../applications/misc/bikeshed { }; + bonsai = callPackage ../tools/misc/bonsai { }; + cie-middleware-linux = callPackage ../tools/security/cie-middleware-linux { }; cidrgrep = callPackage ../tools/text/cidrgrep { }; From 44e54cf37cb4af643ba37bd146217647874383d9 Mon Sep 17 00:00:00 2001 From: Peder Bergebakken Sundt Date: Fri, 15 Dec 2023 20:24:59 +0100 Subject: [PATCH 03/59] python3Packages.pdoc-pyo3-sample-library: init at 1.0.11 --- .../pdoc-pyo3-sample-library/default.nix | 43 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 45 insertions(+) create mode 100644 pkgs/development/python-modules/pdoc-pyo3-sample-library/default.nix diff --git a/pkgs/development/python-modules/pdoc-pyo3-sample-library/default.nix b/pkgs/development/python-modules/pdoc-pyo3-sample-library/default.nix new file mode 100644 index 000000000000..f02507574b9a --- /dev/null +++ b/pkgs/development/python-modules/pdoc-pyo3-sample-library/default.nix @@ -0,0 +1,43 @@ +{ lib +, buildPythonPackage +, fetchPypi +, rustPlatform +, cargo +, rustc +}: + +buildPythonPackage rec { + pname = "pdoc-pyo3-sample-library"; + version = "1.0.11"; + pyproject = true; + + src = fetchPypi { + pname = "pdoc_pyo3_sample_library"; + inherit version; + hash = "sha256-ZGMo7WgymkSDQu8tc4rTfWNsIWO0AlDPG0OzpKRq3oA="; + }; + + cargoDeps = rustPlatform.fetchCargoTarball { + inherit pname version src; + hash = "sha256-KrEBr998AV/bKcIoq0tX72/QwPD9bQplrS0Zw+JiSMQ="; + }; + + nativeBuildInputs = [ + rustPlatform.cargoSetupHook + rustPlatform.maturinBuildHook + cargo + rustc + ]; + + pythonImportsCheck = [ "pdoc_pyo3_sample_library" ]; + + # no tests + doCheck = false; + + meta = { + description = "A sample PyO3 library used in pdoc tests"; + homepage = "https://github.com/mitmproxy/pdoc-pyo3-sample-library"; + license = lib.licenses.mit; + maintainers = [ lib.maintainers.pbsds ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 3c40cdc0b7c9..39151046d10e 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -9028,6 +9028,8 @@ self: super: with self; { pdoc = callPackage ../development/python-modules/pdoc { }; + pdoc-pyo3-sample-library = callPackage ../development/python-modules/pdoc-pyo3-sample-library { }; + pdoc3 = callPackage ../development/python-modules/pdoc3 { }; peaqevcore = callPackage ../development/python-modules/peaqevcore { }; From 43f1e317aaf8ff4ea2b3cd3a7e1807d4ac765d42 Mon Sep 17 00:00:00 2001 From: Peder Bergebakken Sundt Date: Fri, 15 Dec 2023 20:05:33 +0100 Subject: [PATCH 04/59] python3Packages.pdoc: 14.1.0 -> 14.2.0 Diff: https://github.com/mitmproxy/pdoc/compare/v14.1.0...v14.2.0 Changelog: https://github.com/mitmproxy/pdoc/blob/v14.2.0/CHANGELOG.md --- pkgs/development/python-modules/pdoc/default.nix | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/pkgs/development/python-modules/pdoc/default.nix b/pkgs/development/python-modules/pdoc/default.nix index 621c2842e70c..0c570aa6165c 100644 --- a/pkgs/development/python-modules/pdoc/default.nix +++ b/pkgs/development/python-modules/pdoc/default.nix @@ -4,6 +4,7 @@ , fetchFromGitHub , setuptools , jinja2 +, pdoc-pyo3-sample-library , pygments , markupsafe , astunparse @@ -13,16 +14,16 @@ buildPythonPackage rec { pname = "pdoc"; - version = "14.1.0"; + version = "14.2.0"; disabled = pythonOlder "3.8"; - format = "pyproject"; + pyproject = true; src = fetchFromGitHub { owner = "mitmproxy"; repo = "pdoc"; rev = "v${version}"; - hash = "sha256-LQXhdzocw01URrmpDayK9rpsArvM/E44AE8Eok9DBwk="; + hash = "sha256-Mmmq4jqRQow+1jn5ZDVMtP1uxrYgHJK/IQrwFWNw8ag="; }; nativeBuildInputs = [ @@ -38,6 +39,7 @@ buildPythonPackage rec { nativeCheckInputs = [ pytestCheckHook hypothesis + pdoc-pyo3-sample-library ]; disabledTestPaths = [ # "test_snapshots" tries to match generated output against stored snapshots, From b88dcacafdae994a8be1504dd5493488682fa13d Mon Sep 17 00:00:00 2001 From: Sergei Trofimovich Date: Tue, 26 Dec 2023 10:47:29 +0000 Subject: [PATCH 05/59] nix: point `nix edit` and `ofborf` at the original `version` attribute This way `nix edit` will just at the location close to the attribute definition and not the common code. --- pkgs/tools/package-management/nix/common.nix | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pkgs/tools/package-management/nix/common.nix b/pkgs/tools/package-management/nix/common.nix index 0ea47dd7e17c..e57b04246aa5 100644 --- a/pkgs/tools/package-management/nix/common.nix +++ b/pkgs/tools/package-management/nix/common.nix @@ -6,7 +6,7 @@ , src ? fetchFromGitHub { owner = "NixOS"; repo = "nix"; rev = version; inherit hash; } , patches ? [ ] , maintainers ? with lib.maintainers; [ eelco lovesegfault artturin ] -}: +}@args: assert (hash == null) -> (src != null); let atLeast24 = lib.versionAtLeast version "2.4pre"; @@ -232,6 +232,9 @@ self = stdenv.mkDerivation { }; }; + # point 'nix edit' and ofborg at the file that defines the attribute, + # not this common file. + pos = builtins.unsafeGetAttrPos "version" args; meta = with lib; { description = "Powerful package manager that makes package management reliable and reproducible"; longDescription = '' From f4cdad8aabe3ca7a73ed4929a529b7d2e6e63566 Mon Sep 17 00:00:00 2001 From: Chris McDonough Date: Fri, 29 Dec 2023 07:52:10 -0500 Subject: [PATCH 06/59] doc: improve documentation for trivial text writing functions --- .../trivial-build-helpers.chapter.md | 290 ++++++++++++++++-- 1 file changed, 268 insertions(+), 22 deletions(-) diff --git a/doc/build-helpers/trivial-build-helpers.chapter.md b/doc/build-helpers/trivial-build-helpers.chapter.md index a0cda86a6607..4f19f57626c2 100644 --- a/doc/build-helpers/trivial-build-helpers.chapter.md +++ b/doc/build-helpers/trivial-build-helpers.chapter.md @@ -1,6 +1,6 @@ # Trivial build helpers {#chap-trivial-builders} -Nixpkgs provides a couple of functions that help with building derivations. The most important one, `stdenv.mkDerivation`, has already been documented above. The following functions wrap `stdenv.mkDerivation`, making it easier to use in certain cases. +`nixpkgs` provides a variety of wrapper functions that help build very simple derivations. Like [`stdenv.mkDerivation`](#sec-using-stdenv), each of these builders creates and returns a derivation, but the composition of the arguments passed to each are different (usually simpler) than the arguments that must be passed to `stdenv.mkDerivation`. ## `runCommand` {#trivial-builder-runCommand} @@ -58,24 +58,101 @@ Variant of `runCommand` that forces the derivation to be built locally, it is no This sets [`allowSubstitutes` to `false`](https://nixos.org/nix/manual/#adv-attr-allowSubstitutes), so only use `runCommandLocal` if you are certain the user will always have a builder for the `system` of the derivation. This should be true for most trivial use cases (e.g., just copying some files to a different location or adding symlinks) because there the `system` is usually the same as `builtins.currentSystem`. ::: -## `writeTextFile`, `writeText`, `writeTextDir`, `writeScript`, `writeScriptBin` {#trivial-builder-writeText} +## `writeTextFile`, `writeText`, `writeTextDir`, `writeScript`, `writeScriptBin`, `writeShellScript`, `writeShellScriptBin` {#trivial-builder-textwriting} -These functions write `text` to the Nix store. This is useful for creating scripts from Nix expressions. `writeTextFile` takes an attribute set and expects two arguments, `name` and `text`. `name` corresponds to the name used in the Nix store path. `text` will be the contents of the file. You can also set `executable` to true to make this file have the executable bit set. +`nixpkgs` provides a number of functions that produce derivations which write text into the Nix store. These include `writeTextFile`, `writeText`, `writeTextDir`, `writeScript`, `writeScriptBin`, `writeShellScript`, and `writeShellScriptBin`, each of which is documented below. -Many more commands wrap `writeTextFile` including `writeText`, `writeTextDir`, `writeScript`, and `writeScriptBin`. These are convenience functions over `writeTextFile`. +These are useful for creating files from Nix expressions, which may be scripts or non-executable text files, depending on which of the functions is used and the arguments it takes. + +The result of each of these functions will be a derivation. When you coerce the resulting derivation to text, it will evaluate to the *store path*. Importantly, it will not include the destination subpath produced by the particular function. So, for example, given the following expression: -Here are a few examples: ```nix + +my-file = writeTextFile { + name = "my-file"; + text = '' + Contents of File + ''; + destination = "/share/my-file"; +} +``` + +If `my-file` is coerced to text, it will resolve to `/nix/store/`, like any other derivation. It will *not* evaluate to `/nix/store//share/my-file`. So to use it elsewhere, as an example (in this case, within a shell script you're writing in a Nix expression via `writeShellScript`), you might do: + +```nix +writeShellScript "evaluate-my-file.sh" '' + cat ${my-file}/share/my-file +''; +``` + +This will produce the desired result. However, the following will not, it will fail because the store path is a directory, and is not the `my-file` file. + +```nix +writeShellScript "evaluate-my-file.sh" '' + cat ${my-file} +''; +``` + +### `writeTextFile` {#trivial-builder-writeTextFile} + +`writeTextFile` takes an attribute set and expects it to contain at least two attributes: `name` and `text`. + +`name` corresponds to the name used in the Nix store path identifier. + +`text` will be the contents of the file. + +The resulting store path will include some variation of the name, and it will be a file unless `destination` (see below) is used, in which case it will be a directory. + +Common optional attributes in the attribute set are: + +`executable`: make this file have the executable bit set. Defaults to `false` + +`destination`: supplies a subpath under the derivation's Nix store ouput path into which to create the file. It may contain directory path elements, these are created automatically when the derivation is realized. Defaults to `""`, which indicates that the store path itself will be a file containing the text contents. + +Other less-frequently used optional attributes are: + +`checkPhase`: commands to run after generating the file, e.g. lints. It defaults to `""` (no checking). + +`meta`: Additional metadata for the derivation. It defaults to `{}`. + +`allowSubstitutes`: whether to allow substituting from a binary cache. It fefaults to `false`, as the operation is assumed to be faster performed locally. You may want to set this to true if the `checkPhase` step is expensive. + +`preferLocalBuild`: whether to prefer building locally, even if faster remote builders are available. It defaults to `true` for the same reason `allowSubstitutes` defaults to `false`. + +::: {.example #ex-writeTextFile} +# Usages of `writeTextFile` +```nix +# Writes my-file to /nix/store//some/subpath/my-cool-script, +# making it executable and also supplies values for the less-used options +writeTextFile rec { + name = "my-cool-script"; + text = '' + #!/bin/sh + echo "This is my cool script!" + ''; + executable = true; + destination = "some/subpath/my-cool-script"; + checkPhase = '' + ${pkgs.shellcheck}/bin/shellcheck $out/${destination} + ''; + meta = { + license = pkgs.lib.licenses.cc0; + }; + allowSubstitutes = true; + preferLocalBuild = false; +} + # Writes my-file to /nix/store/ +# See also the `writeText` helper function below. writeTextFile { name = "my-file"; text = '' Contents of File ''; } -# See also the `writeText` helper function below. # Writes executable my-file to /nix/store//bin/my-file +# see also the `writeScriptBin` helper function below. writeTextFile { name = "my-file"; text = '' @@ -84,37 +161,206 @@ writeTextFile { executable = true; destination = "/bin/my-file"; } -# Writes contents of file to /nix/store/ +``` +::: + +::: {.note} +The commands `writeText`, `writeTextDir`, `writeScript`, `writeScriptBin`, `writeShellScript`, and `writeShellScriptBin` documented below are convenience functions that wrap `writeTextFile`. +::: + +### `writeText` {#trivial-builder-writeText} + +`writeText` takes two arguments: `name` and `text`. + +`name` is the name used in the Nix store path. `text` will be the contents of the file. + +The store path will include the the name, and it will be a file. Any path separators and shell-reserved elements in the name are escaped to create the store path identifier. + +Here is an example. + +::: {.example #ex-writeText} +# Usage of `writeText` +```nix +# Writes my-file to /nix/store/ writeText "my-file" '' Contents of File ''; +``` +::: + +This example is a simpler way to spell: + +```nix +writeTextFile { + name = "my-file"; + text = '' + Contents of File + ''; +} +``` + +### `writeTextDir` {#trivial-builder-writeTextDir} + +`writeTextDir` takes two arguments: `path` and `text`. + +`path` is the destination within the Nix store path under which to create the file. `text` will be the contents of the file. + +The store path will be a directory. The Nix store identifier will be generated based on various elements of the path. + +::: {.example #ex-writeTextDir} +# Usage of `writeTextDir` +```nix # Writes contents of file to /nix/store//share/my-file writeTextDir "share/my-file" '' Contents of File ''; +``` +::: + +The example is a simpler way to spell: + +```nix +writeTextFile { + name = "my-file"; + text = '' + Contents of File + ''; + destination = "share/my-file"; +} +``` + +### `writeScript` {#trivial-builder-writeScript} + +`writeScript` takes two arguments: `name` and `text`. + +`name` is the name used in the Nix store path. `text` will be the contents of the file. The created file is marked as executable. + +The store path will include the the name, and it will be a file. Any path separators and shell-reserved elements in the name are escaped to create the store path identifier. + +Here is an example. + +::: {.example #ex-writeScript} +# Usage of `writeScript` +```nix # Writes my-file to /nix/store/ and makes executable writeScript "my-file" '' Contents of File ''; -# Writes my-file to /nix/store//bin/my-file and makes executable. -writeScriptBin "my-file" - '' - Contents of File - ''; -# Writes my-file to /nix/store/ and makes executable. -writeShellScript "my-file" - '' - Contents of File - ''; -# Writes my-file to /nix/store//bin/my-file and makes executable. -writeShellScriptBin "my-file" - '' - Contents of File - ''; +``` +::: +The example is a simpler way to spell: + +```nix +writeTextFile { + name = "my-file"; + text = '' + Contents of File + ''; + executable = true; +} +``` + +### `writeScriptBin` {#trivial-builder-writeScriptBin} + +`writeScriptBin` takes two arguments: `name` and `text`. + +`name` is the name used in the Nix store path and within the file generated under the store path. `text` will be the contents of the file. The created file is marked as executable. + +The file's contents will be put into `/nix/store//bin/`. + +The store path will include the the name, and it will be a directory. Any path separators and shell-reserved elements in the name are escaped to create the store path identifier. + +::: {.example #ex-writeScriptBin} +# Usage of `writeScriptBin` +```nix +writeScriptBin "my-script" + '' + echo "hi" + ''; +``` +::: + +The example is a simpler way to spell: + +```nix +writeTextFile { + name = "my-script"; + text = '' + echo "hi" + ''; + executable = true; + destination = "bin/my-script" +} +``` + +### `writeShellScript` {#trivial-builder-writeShellScript} + +`writeShellScript` takes two arguments: `name` and `text`. + +`name` is the name used in the Nix store path. `text` will be the contents of the file. The created file is marked as executable. This function is almost exactly like `writeScript`, but it prepends a shebang line that points to the runtime shell (usually bash) at the top of the file contents. + +The store path will include the the name, and it will be a file. Any path separators and shell-reserved elements in the name are escaped to create the store path identifier. + +Here is an example. + +::: {.example #ex-writeShellScript} +# Usage of `writeShellScript` +```nix +writeShellScript "my-script" + '' + echo "hi" + ''; +``` +::: + +The example is a simpler way to spell: + +```nix +writeTextFile { + name = "my-script"; + text = '' + #! ${pkgs.runtimeShell} + echo "hi" + ''; + executable = true; +} +``` +### `writeShellScriptBin` {#trivial-builder-writeShellScriptBin} + +`writeShellScriptBin` takes two arguments: `name` and `text`. + +`name` is the name used in the Nix store path and within the file generated under the store path. `text` will be the contents of the file. This function is almost exactly like `writeScriptBin`, but it prepends a shebang line that points to the runtime shell (usually bash) at the top of the file contents. + +The file's contents will be put into `/nix/store//bin/`. + +The store path will include the the name, and it will be a directory. Any path separators and shell-reserved elements in the name are escaped to create the store path identifier. + +::: {.example #ex-writeShellScriptBin} +# Usage of `writeShellScriptBin` +```nix +writeShellScriptBin "my-script" + '' + echo "hi" + ''; +``` +::: + +The example is a simpler way to spell: + +```nix +writeTextFile { + name = "my-script"; + text = '' + #! ${pkgs.runtimeShell} + echo "hi" + ''; + executable = true; + destination = "bin/my-script" +} ``` ## `concatTextFile`, `concatText`, `concatScript` {#trivial-builder-concatText} From 5897b36528399c53aa4d8aafd57e7356c9120565 Mon Sep 17 00:00:00 2001 From: Anderson Torres Date: Sat, 30 Dec 2023 11:34:05 -0300 Subject: [PATCH 07/59] disk-filltest: migrate to by-name --- .../default.nix => by-name/di/disk-filltest/package.nix} | 0 pkgs/top-level/all-packages.nix | 2 -- 2 files changed, 2 deletions(-) rename pkgs/{tools/system/disk-filltest/default.nix => by-name/di/disk-filltest/package.nix} (100%) diff --git a/pkgs/tools/system/disk-filltest/default.nix b/pkgs/by-name/di/disk-filltest/package.nix similarity index 100% rename from pkgs/tools/system/disk-filltest/default.nix rename to pkgs/by-name/di/disk-filltest/package.nix diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 056bada2b343..0ead6bc38d0b 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -5136,8 +5136,6 @@ with pkgs; disfetch = callPackage ../tools/misc/disfetch { }; - disk-filltest = callPackage ../tools/system/disk-filltest { }; - disk-inventory-x = callPackage ../tools/filesystems/disk-inventory-x { }; diskscan = callPackage ../tools/misc/diskscan { }; From 2aca1fc81d8e85c9d5a7136edd4afb66eed42aad Mon Sep 17 00:00:00 2001 From: Anderson Torres Date: Sat, 30 Dec 2023 11:35:11 -0300 Subject: [PATCH 08/59] disk-filltest: adopt - finalAttrs design pattern - split outputs - makeFlags instead of patches and fixups --- pkgs/by-name/di/disk-filltest/package.nix | 46 ++++++++++++----------- 1 file changed, 25 insertions(+), 21 deletions(-) diff --git a/pkgs/by-name/di/disk-filltest/package.nix b/pkgs/by-name/di/disk-filltest/package.nix index aeef6732236f..5d97977aab01 100644 --- a/pkgs/by-name/di/disk-filltest/package.nix +++ b/pkgs/by-name/di/disk-filltest/package.nix @@ -1,39 +1,43 @@ -{ lib, stdenv, fetchFromGitHub }: +{ lib +, stdenv +, fetchFromGitHub +}: -stdenv.mkDerivation rec { +stdenv.mkDerivation (finalAttrs: { pname = "disk-filltest"; version = "0.8.2"; src = fetchFromGitHub { owner = "bingmann"; repo = "disk-filltest"; - rev = "v${version}"; - sha256 = "0qmcf5k5j7946wsbxrw4rqfj48mwl3r6kb4l3gppl97k7iyni6kj"; + rev = "v${finalAttrs.version}"; + hash = "sha256-cppofTzzJHrvG5SsafKgvCIiHc6E5740NyQdWWZxrGI="; }; - preBuild = '' - substituteInPlace Makefile --replace 'prefix = /usr/local' 'prefix = $(out)' - ''; + outputs = [ "out" "doc" "man" ]; + + makeFlags = [ + "CC=${stdenv.cc.targetPrefix}cc" + "prefix=${placeholder "out"}" + "man1dir=${placeholder "man"}/share/man/man1" + ]; postInstall = '' - install -D -m0644 -t $out/share/doc COPYING README - mkdir -p $out/share/man; mv $out/man1 $out/share/man + install -D -m0644 -t $doc/share/doc/disk-filltest README ''; - meta = with lib; { + meta = { + homepage = "https://panthema.net/2013/disk-filltest"; description = "Simple program to detect bad disks by filling them with random data"; longDescription = '' - disk-filltest is a tool to check storage disks for coming - failures by write files with pseudo-random data to the current - directory until the disk is full, read the files again - and verify the sequence written. It also can measure - read/write speed while filling the disk. + disk-filltest is a tool to check storage disks for coming failures by + write files with pseudo-random data to the current directory until the + disk is full, read the files again and verify the sequence written. It + also can measure read/write speed while filling the disk. ''; - homepage = "https://panthema.net/2013/disk-filltest"; - license = licenses.gpl3; - maintainers = with maintainers; [ caadar ]; - platforms = platforms.all; + license = lib.licenses.gpl3Plus; mainProgram = "disk-filltest"; + maintainers = with lib.maintainers; [ AndersonTorres ]; + platforms = lib.platforms.all; }; - -} +}) From d76236da522f95e8728151a54b7371b77b7dbdb3 Mon Sep 17 00:00:00 2001 From: Anderson Torres Date: Sat, 30 Dec 2023 12:00:08 -0300 Subject: [PATCH 09/59] gtklp: migrate to by-name --- .../misc/gtklp/default.nix => by-name/gt/gtklp/package.nix} | 0 pkgs/{tools/misc => by-name/gt}/gtklp/patches/autoconf.patch | 0 .../misc => by-name/gt}/gtklp/patches/mdv-fix-str-fmt.patch | 0 pkgs/top-level/all-packages.nix | 2 -- 4 files changed, 2 deletions(-) rename pkgs/{tools/misc/gtklp/default.nix => by-name/gt/gtklp/package.nix} (100%) rename pkgs/{tools/misc => by-name/gt}/gtklp/patches/autoconf.patch (100%) rename pkgs/{tools/misc => by-name/gt}/gtklp/patches/mdv-fix-str-fmt.patch (100%) diff --git a/pkgs/tools/misc/gtklp/default.nix b/pkgs/by-name/gt/gtklp/package.nix similarity index 100% rename from pkgs/tools/misc/gtklp/default.nix rename to pkgs/by-name/gt/gtklp/package.nix diff --git a/pkgs/tools/misc/gtklp/patches/autoconf.patch b/pkgs/by-name/gt/gtklp/patches/autoconf.patch similarity index 100% rename from pkgs/tools/misc/gtklp/patches/autoconf.patch rename to pkgs/by-name/gt/gtklp/patches/autoconf.patch diff --git a/pkgs/tools/misc/gtklp/patches/mdv-fix-str-fmt.patch b/pkgs/by-name/gt/gtklp/patches/mdv-fix-str-fmt.patch similarity index 100% rename from pkgs/tools/misc/gtklp/patches/mdv-fix-str-fmt.patch rename to pkgs/by-name/gt/gtklp/patches/mdv-fix-str-fmt.patch diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 0ead6bc38d0b..c4337dee1a40 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -3977,8 +3977,6 @@ with pkgs; glyr = callPackage ../tools/audio/glyr { }; - gtklp = callPackage ../tools/misc/gtklp { }; - google-amber = callPackage ../tools/graphics/amber { inherit (darwin) cctools; }; From 61031595bdf49cbb7b95b5e5bbe73f3561127659 Mon Sep 17 00:00:00 2001 From: Anderson Torres Date: Sat, 30 Dec 2023 12:01:30 -0300 Subject: [PATCH 10/59] gtklp: adopt - finalAttrs design pattern - split outputs - strictDeps - remove nested with - set meta.mainProgram --- .../autoconf.patch => 000-autoconf.patch} | 0 ...r-fmt.patch => 001-format-parameter.patch} | 0 pkgs/by-name/gt/gtklp/package.nix | 56 ++++++++++++------- 3 files changed, 35 insertions(+), 21 deletions(-) rename pkgs/by-name/gt/gtklp/{patches/autoconf.patch => 000-autoconf.patch} (100%) rename pkgs/by-name/gt/gtklp/{patches/mdv-fix-str-fmt.patch => 001-format-parameter.patch} (100%) diff --git a/pkgs/by-name/gt/gtklp/patches/autoconf.patch b/pkgs/by-name/gt/gtklp/000-autoconf.patch similarity index 100% rename from pkgs/by-name/gt/gtklp/patches/autoconf.patch rename to pkgs/by-name/gt/gtklp/000-autoconf.patch diff --git a/pkgs/by-name/gt/gtklp/patches/mdv-fix-str-fmt.patch b/pkgs/by-name/gt/gtklp/001-format-parameter.patch similarity index 100% rename from pkgs/by-name/gt/gtklp/patches/mdv-fix-str-fmt.patch rename to pkgs/by-name/gt/gtklp/001-format-parameter.patch diff --git a/pkgs/by-name/gt/gtklp/package.nix b/pkgs/by-name/gt/gtklp/package.nix index af98ed1ae1b7..c74b9f59644a 100644 --- a/pkgs/by-name/gt/gtklp/package.nix +++ b/pkgs/by-name/gt/gtklp/package.nix @@ -1,20 +1,29 @@ -{ stdenv, lib, fetchurl -, autoreconfHook, libtool, pkg-config -, gtk2, glib, cups, gettext, openssl +{ lib +, stdenv +, autoreconfHook +, cups +, fetchurl +, gettext +, glib +, gtk2 +, libtool +, openssl +, pkg-config }: -stdenv.mkDerivation rec { +stdenv.mkDerivation (finalAttrs: { pname = "gtklp"; version = "1.3.4"; src = fetchurl { - url = "mirror://sourceforge/${pname}/${pname}-${version}.src.tar.gz"; - sha256 = "1arvnnvar22ipgnzqqq8xh0kkwyf71q2sfsf0crajpsr8a8601xy"; + url = "mirror://sourceforge/gtklp/gtklp-${finalAttrs.version}.src.tar.gz"; + hash = "sha256-vgdgkEJZX6kyA047LXA4zvM5AewIY/ztu1GIrLa1O6s="; }; nativeBuildInputs = [ - pkg-config autoreconfHook + pkg-config + cups ]; buildInputs = [ @@ -26,9 +35,13 @@ stdenv.mkDerivation rec { openssl ]; + outputs = [ "out" "doc" "man" ]; + + strictDeps = true; + patches = [ - ./patches/mdv-fix-str-fmt.patch - ./patches/autoconf.patch + ./000-autoconf.patch + ./001-format-parameter.patch ]; # Workaround build failure on -fno-common toolchains: @@ -36,22 +49,23 @@ stdenv.mkDerivation rec { # file.o:libgtklp/libgtklp.h:83: first defined here env.NIX_CFLAGS_COMPILE = "-fcommon"; - preConfigure = '' - substituteInPlace include/defaults.h --replace "netscape" "firefox" - substituteInPlace include/defaults.h --replace "http://localhost:631/sum.html#STANDARD_OPTIONS" \ - "http://localhost:631/help/" + postPatch = '' + substituteInPlace include/defaults.h \ + --replace "netscape" "firefox" \ + --replace "http://localhost:631/sum.html#STANDARD_OPTIONS" \ + "http://localhost:631/help/" ''; preInstall = '' - install -D -m0644 -t $out/share/doc AUTHORS BUGS ChangeLog README USAGE + install -D -m0644 -t $doc/share/doc AUTHORS BUGS ChangeLog README USAGE ''; - meta = with lib; { - description = "A graphical frontend for CUPS"; + meta = { homepage = "https://gtklp.sirtobi.com"; - license = licenses.gpl2Only; - maintainers = with maintainers; [ caadar ]; - platforms = platforms.unix; + description = "A GTK-based graphical frontend for CUPS"; + license = with lib.licenses; [ gpl2Only ]; + mainProgram = "gtklp"; + maintainers = with lib.maintainers; [ AndersonTorres ]; + platforms = lib.platforms.unix; }; - -} +}) From ca389f7ae12edc103d7e164115e9138e2f77c42d Mon Sep 17 00:00:00 2001 From: Anderson Torres Date: Sat, 30 Dec 2023 12:17:05 -0300 Subject: [PATCH 11/59] ssh-askpass-fullscreen: migrate to by-name --- .../ss/ssh-askpass-fullscreen/package.nix} | 0 pkgs/top-level/all-packages.nix | 2 -- 2 files changed, 2 deletions(-) rename pkgs/{tools/networking/ssh-askpass-fullscreen/default.nix => by-name/ss/ssh-askpass-fullscreen/package.nix} (100%) diff --git a/pkgs/tools/networking/ssh-askpass-fullscreen/default.nix b/pkgs/by-name/ss/ssh-askpass-fullscreen/package.nix similarity index 100% rename from pkgs/tools/networking/ssh-askpass-fullscreen/default.nix rename to pkgs/by-name/ss/ssh-askpass-fullscreen/package.nix diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index c4337dee1a40..ab75ea86b94b 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -13399,8 +13399,6 @@ with pkgs; sqlboiler = callPackage ../development/tools/sqlboiler { }; - ssh-askpass-fullscreen = callPackage ../tools/networking/ssh-askpass-fullscreen { }; - sshed = callPackage ../tools/networking/sshed { }; sshguard = callPackage ../tools/security/sshguard { }; From 7d8e65b9b2f0fb1eed5f873390b6923e6ed45151 Mon Sep 17 00:00:00 2001 From: Anderson Torres Date: Sat, 30 Dec 2023 12:17:48 -0300 Subject: [PATCH 12/59] ssh-askpass-fullscreen: adopt - finalAttrs design pattern - strictDeps - remove nested with - set meta.mainProgram --- .../ss/ssh-askpass-fullscreen/package.nix | 34 ++++++++++++------- 1 file changed, 22 insertions(+), 12 deletions(-) diff --git a/pkgs/by-name/ss/ssh-askpass-fullscreen/package.nix b/pkgs/by-name/ss/ssh-askpass-fullscreen/package.nix index 3faff612aadc..c3b8b129d03e 100644 --- a/pkgs/by-name/ss/ssh-askpass-fullscreen/package.nix +++ b/pkgs/by-name/ss/ssh-askpass-fullscreen/package.nix @@ -1,14 +1,21 @@ -{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config, gtk2, openssh }: +{ lib +, stdenv +, autoreconfHook +, fetchFromGitHub +, gtk2 +, openssh +, pkg-config +}: -stdenv.mkDerivation rec { +stdenv.mkDerivation (finalAttrs: { pname = "ssh-askpass-fullscreen"; version = "1.3"; src = fetchFromGitHub { owner = "atj"; - repo = pname; - rev = "v${version}"; - sha256 = "sha256-1GER+SxTpbMiYLwFCwLX/hLvzCIqutyvQc9DNJ7d1C0="; + repo = "ssh-askpass-fullscreen"; + rev = "v${finalAttrs.version}"; + hash = "sha256-1GER+SxTpbMiYLwFCwLX/hLvzCIqutyvQc9DNJ7d1C0="; }; nativeBuildInputs = [ @@ -21,12 +28,15 @@ stdenv.mkDerivation rec { openssh ]; - meta = with lib; { - broken = stdenv.isDarwin; - description = "A small SSH askpass GUI using GTK+2"; + strictDeps = true; + + meta = { homepage = "https://github.com/atj/ssh-askpass-fullscreen"; - license = licenses.gpl2; - maintainers = with maintainers; [ caadar ]; - platforms = platforms.unix; + broken = stdenv.isDarwin; + description = "A small, fullscreen SSH askpass GUI using GTK+2"; + license = with lib.licenses; [ gpl2Plus ]; + mainProgram = "ssh-askpass-fullscreen"; + maintainers = with lib.maintainers; [ AndersonTorres ]; + platforms = lib.platforms.unix; }; -} +}) From 7f9b9936881f25c67aad7cf45948928ac72fc72d Mon Sep 17 00:00:00 2001 From: Anderson Torres Date: Thu, 28 Dec 2023 22:37:54 -0300 Subject: [PATCH 13/59] maintainers: remove caadar Its personal fork of Nixpkgs is untouched since 2019-06-24. --- maintainers/maintainer-list.nix | 6 ------ 1 file changed, 6 deletions(-) diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index d274e79238f1..ff1a65eb59d4 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -2836,12 +2836,6 @@ githubId = 382011; name = "c4605"; }; - caadar = { - email = "v88m@posteo.net"; - github = "caadar"; - githubId = 15320726; - name = "Car Cdr"; - }; caarlos0 = { name = "Carlos A Becker"; email = "carlos@becker.software"; From 54e606bda04d292787745c5047f32572d5cfecfc Mon Sep 17 00:00:00 2001 From: amalgame21 Date: Wed, 10 Jan 2024 05:34:26 +0800 Subject: [PATCH 14/59] openai-whisper-cpp: 1.5.2 -> 1.5.4 --- .../audio/openai-whisper-cpp/default.nix | 4 ++-- .../openai-whisper-cpp/download-models.patch | 19 ++++++++++++++----- 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/pkgs/tools/audio/openai-whisper-cpp/default.nix b/pkgs/tools/audio/openai-whisper-cpp/default.nix index 53e609d9d07a..7a6a0baa82de 100644 --- a/pkgs/tools/audio/openai-whisper-cpp/default.nix +++ b/pkgs/tools/audio/openai-whisper-cpp/default.nix @@ -13,13 +13,13 @@ stdenv.mkDerivation rec { pname = "whisper-cpp"; - version = "1.5.2"; + version = "1.5.4"; src = fetchFromGitHub { owner = "ggerganov"; repo = "whisper.cpp"; rev = "refs/tags/v${version}" ; - hash = "sha256-7pJbROifDajBJUE07Nz8tARB901fWCB+TS4okcnEsvc="; + hash = "sha256-9H2Mlua5zx2WNXbz2C5foxIteuBgeCNALdq5bWyhQCk="; }; # The upstream download script tries to download the models to the diff --git a/pkgs/tools/audio/openai-whisper-cpp/download-models.patch b/pkgs/tools/audio/openai-whisper-cpp/download-models.patch index c470231b59e8..7183c38b5166 100644 --- a/pkgs/tools/audio/openai-whisper-cpp/download-models.patch +++ b/pkgs/tools/audio/openai-whisper-cpp/download-models.patch @@ -1,5 +1,3 @@ -diff --git a/models/download-ggml-model.sh b/models/download-ggml-model.sh -index 749b409..831f4c0 100755 --- a/models/download-ggml-model.sh +++ b/models/download-ggml-model.sh @@ -9,18 +9,6 @@ @@ -16,11 +14,22 @@ index 749b409..831f4c0 100755 - fi -} - --models_path="$(get_script_path)" +-models_path="${2:-$(get_script_path)}" - # Whisper models models=( "tiny.en" +@@ -56,8 +44,8 @@ function list_models { + printf "\n\n" + } + +-if [ "$#" -lt 1 ] || [ "$#" -gt 2 ]; then +- printf "Usage: $0 [models_path]\n" ++if [ "$#" -ne 1 ]; then ++ printf "Usage: $0 \n" + list_models + + exit 1 @@ -82,8 +70,6 @@ fi printf "Downloading ggml model $model from '$src' ...\n" @@ -34,9 +43,9 @@ index 749b409..831f4c0 100755 exit 1 fi --printf "Done! Model '$model' saved in 'models/ggml-$model.bin'\n" +-printf "Done! Model '$model' saved in '$models_path/ggml-$model.bin'\n" +printf "Done! Model '$model' saved in 'ggml-$model.bin'\n" printf "You can now use it like this:\n\n" --printf " $ ./main -m models/ggml-$model.bin -f samples/jfk.wav\n" +-printf " $ ./main -m $models_path/ggml-$model.bin -f samples/jfk.wav\n" +printf " $ whisper-cpp -m ggml-$model.bin -f samples/jfk.wav\n" printf "\n" From 69fc71a82c0e3acba5045666b48cdaf5adc8d4c3 Mon Sep 17 00:00:00 2001 From: Silvan Mosberger Date: Wed, 3 Jan 2024 19:34:45 +0100 Subject: [PATCH 15/59] tests.nixpkgs-check-by-name: Basic info for non-by-name attributes In a future commit this will be extended --- pkgs/test/nixpkgs-check-by-name/src/eval.nix | 27 +++++++++++++------ pkgs/test/nixpkgs-check-by-name/src/eval.rs | 26 +++++++++++++----- .../test/nixpkgs-check-by-name/src/ratchet.rs | 6 ++--- 3 files changed, 41 insertions(+), 18 deletions(-) diff --git a/pkgs/test/nixpkgs-check-by-name/src/eval.nix b/pkgs/test/nixpkgs-check-by-name/src/eval.nix index 7707dc732b70..9c0248486c66 100644 --- a/pkgs/test/nixpkgs-check-by-name/src/eval.nix +++ b/pkgs/test/nixpkgs-check-by-name/src/eval.nix @@ -79,15 +79,26 @@ let }; }; - attrInfos = map (name: [ + byNameAttrs = map (name: [ name - ( - if ! pkgs ? ${name} then - { Missing = null; } - else - { Existing = attrInfo name pkgs.${name}; } - ) + { + ByName = + if ! pkgs ? ${name} then + { Missing = null; } + else + { Existing = attrInfo name pkgs.${name}; }; + } ]) attrs; + # Information on all attributes that exist but are not in pkgs/by-name. + # We need this to enforce pkgs/by-name for new packages + nonByNameAttrs = map (name: + [ + name + { + NonByName = null; + } + ] + ) (builtins.attrNames (builtins.removeAttrs pkgs attrs)); in -attrInfos +byNameAttrs ++ nonByNameAttrs diff --git a/pkgs/test/nixpkgs-check-by-name/src/eval.rs b/pkgs/test/nixpkgs-check-by-name/src/eval.rs index 65f71ccafc6f..fdf74eba2cb5 100644 --- a/pkgs/test/nixpkgs-check-by-name/src/eval.rs +++ b/pkgs/test/nixpkgs-check-by-name/src/eval.rs @@ -11,6 +11,14 @@ use std::process; use tempfile::NamedTempFile; /// Attribute set of this structure is returned by eval.nix +#[derive(Deserialize)] +enum Attribute { + /// An attribute that should be defined via pkgs/by-name + ByName(ByNameAttribute), + /// An attribute not defined via pkgs/by-name + NonByName, +} + #[derive(Deserialize)] enum ByNameAttribute { /// The attribute doesn't exist at all @@ -120,7 +128,7 @@ pub fn check_values( anyhow::bail!("Failed to run command {command:?}"); } // Parse the resulting JSON value - let attributes: Vec<(String, ByNameAttribute)> = serde_json::from_slice(&result.stdout) + let attributes: Vec<(String, Attribute)> = serde_json::from_slice(&result.stdout) .with_context(|| { format!( "Failed to deserialise {}", @@ -133,30 +141,34 @@ pub fn check_values( let relative_package_file = structure::relative_file_for_package(&attribute_name); use ratchet::RatchetState::*; + use Attribute::*; use AttributeInfo::*; use ByNameAttribute::*; use CallPackageVariant::*; let check_result = match attribute_value { - Missing => NixpkgsProblem::UndefinedAttr { + NonByName => Success(ratchet::Package { + empty_non_auto_called: Tight, + }), + ByName(Missing) => NixpkgsProblem::UndefinedAttr { relative_package_file: relative_package_file.clone(), package_name: attribute_name.clone(), } .into(), - Existing(NonAttributeSet) => NixpkgsProblem::NonDerivation { + ByName(Existing(NonAttributeSet)) => NixpkgsProblem::NonDerivation { relative_package_file: relative_package_file.clone(), package_name: attribute_name.clone(), } .into(), - Existing(NonCallPackage) => NixpkgsProblem::WrongCallPackage { + ByName(Existing(NonCallPackage)) => NixpkgsProblem::WrongCallPackage { relative_package_file: relative_package_file.clone(), package_name: attribute_name.clone(), } .into(), - Existing(CallPackage(CallPackageInfo { + ByName(Existing(CallPackage(CallPackageInfo { is_derivation, call_package_variant, - })) => { + }))) => { let check_result = if !is_derivation { NixpkgsProblem::NonDerivation { relative_package_file: relative_package_file.clone(), @@ -203,7 +215,7 @@ pub fn check_values( )); Ok(check_result.map(|elems| ratchet::Nixpkgs { - package_names, + package_names: elems.iter().map(|(name, _)| name.to_owned()).collect(), package_map: elems.into_iter().collect(), })) } diff --git a/pkgs/test/nixpkgs-check-by-name/src/ratchet.rs b/pkgs/test/nixpkgs-check-by-name/src/ratchet.rs index 85feb0eee62f..46d71baae1b5 100644 --- a/pkgs/test/nixpkgs-check-by-name/src/ratchet.rs +++ b/pkgs/test/nixpkgs-check-by-name/src/ratchet.rs @@ -10,7 +10,7 @@ use std::collections::HashMap; /// The ratchet value for the entirety of Nixpkgs. #[derive(Default)] pub struct Nixpkgs { - /// Sorted list of attributes in package_map + /// Sorted list of packages in package_map pub package_names: Vec, /// The ratchet values for all packages pub package_map: HashMap, @@ -29,14 +29,14 @@ impl Nixpkgs { } } -/// The ratchet value for a single package in `pkgs/by-name` +/// The ratchet value for a top-level package pub struct Package { /// The ratchet value for the check for non-auto-called empty arguments pub empty_non_auto_called: RatchetState, } impl Package { - /// Validates the ratchet checks for a single package defined in `pkgs/by-name` + /// Validates the ratchet checks for a top-level package pub fn compare(name: &str, optional_from: Option<&Self>, to: &Self) -> Validation<()> { RatchetState::::compare( name, From 57afdc545bdc9894754c51265ab993da556915e4 Mon Sep 17 00:00:00 2001 From: Silvan Mosberger Date: Fri, 5 Jan 2024 01:03:37 +0100 Subject: [PATCH 16/59] tests.nixpkgs-check-by-name: Enforce pkgs/by-name for new packages --- pkgs/by-name/README.md | 6 +- pkgs/test/nixpkgs-check-by-name/README.md | 2 + pkgs/test/nixpkgs-check-by-name/src/eval.nix | 10 ++- pkgs/test/nixpkgs-check-by-name/src/eval.rs | 69 +++++++++++++++++-- .../src/nixpkgs_problem.rs | 61 ++++++++++++++++ .../test/nixpkgs-check-by-name/src/ratchet.rs | 52 ++++++++++++-- .../internalCallPackage/all-packages.nix | 3 + .../tests/internalCallPackage/default.nix | 1 + .../tests/internalCallPackage/expected | 1 + .../tests/internalCallPackage/foo.nix | 1 + .../pkgs/by-name/README.md | 0 .../move-to-non-by-name/all-packages.nix | 10 +++ .../move-to-non-by-name/base/default.nix | 1 + .../base/pkgs/by-name/fo/foo1/package.nix | 1 + .../base/pkgs/by-name/fo/foo2/package.nix | 1 + .../base/pkgs/by-name/fo/foo3/package.nix | 1 + .../base/pkgs/by-name/fo/foo4/package.nix | 1 + .../tests/move-to-non-by-name/default.nix | 1 + .../tests/move-to-non-by-name/expected | 4 ++ .../pkgs/by-name/README.md | 0 .../tests/move-to-non-by-name/with-config.nix | 1 + .../move-to-non-by-name/without-config.nix | 1 + .../new-package-non-by-name/all-packages.nix | 11 +++ .../base/all-packages.nix | 5 ++ .../new-package-non-by-name/base/default.nix | 1 + .../base/pkgs/by-name/README.md | 0 .../tests/new-package-non-by-name/default.nix | 1 + .../tests/new-package-non-by-name/expected | 4 ++ .../pkgs/by-name/README.md | 0 .../new-package-non-by-name/with-config.nix | 1 + .../without-config.nix | 1 + .../tests/no-eval/all-packages.nix | 3 + .../tests/no-eval/default.nix | 1 + .../no-eval/pkgs/by-name/fo/foo/package.nix | 1 + 34 files changed, 243 insertions(+), 14 deletions(-) create mode 100644 pkgs/test/nixpkgs-check-by-name/tests/internalCallPackage/all-packages.nix create mode 100644 pkgs/test/nixpkgs-check-by-name/tests/internalCallPackage/default.nix create mode 100644 pkgs/test/nixpkgs-check-by-name/tests/internalCallPackage/expected create mode 100644 pkgs/test/nixpkgs-check-by-name/tests/internalCallPackage/foo.nix create mode 100644 pkgs/test/nixpkgs-check-by-name/tests/internalCallPackage/pkgs/by-name/README.md create mode 100644 pkgs/test/nixpkgs-check-by-name/tests/move-to-non-by-name/all-packages.nix create mode 100644 pkgs/test/nixpkgs-check-by-name/tests/move-to-non-by-name/base/default.nix create mode 100644 pkgs/test/nixpkgs-check-by-name/tests/move-to-non-by-name/base/pkgs/by-name/fo/foo1/package.nix create mode 100644 pkgs/test/nixpkgs-check-by-name/tests/move-to-non-by-name/base/pkgs/by-name/fo/foo2/package.nix create mode 100644 pkgs/test/nixpkgs-check-by-name/tests/move-to-non-by-name/base/pkgs/by-name/fo/foo3/package.nix create mode 100644 pkgs/test/nixpkgs-check-by-name/tests/move-to-non-by-name/base/pkgs/by-name/fo/foo4/package.nix create mode 100644 pkgs/test/nixpkgs-check-by-name/tests/move-to-non-by-name/default.nix create mode 100644 pkgs/test/nixpkgs-check-by-name/tests/move-to-non-by-name/expected create mode 100644 pkgs/test/nixpkgs-check-by-name/tests/move-to-non-by-name/pkgs/by-name/README.md create mode 100644 pkgs/test/nixpkgs-check-by-name/tests/move-to-non-by-name/with-config.nix create mode 100644 pkgs/test/nixpkgs-check-by-name/tests/move-to-non-by-name/without-config.nix create mode 100644 pkgs/test/nixpkgs-check-by-name/tests/new-package-non-by-name/all-packages.nix create mode 100644 pkgs/test/nixpkgs-check-by-name/tests/new-package-non-by-name/base/all-packages.nix create mode 100644 pkgs/test/nixpkgs-check-by-name/tests/new-package-non-by-name/base/default.nix create mode 100644 pkgs/test/nixpkgs-check-by-name/tests/new-package-non-by-name/base/pkgs/by-name/README.md create mode 100644 pkgs/test/nixpkgs-check-by-name/tests/new-package-non-by-name/default.nix create mode 100644 pkgs/test/nixpkgs-check-by-name/tests/new-package-non-by-name/expected create mode 100644 pkgs/test/nixpkgs-check-by-name/tests/new-package-non-by-name/pkgs/by-name/README.md create mode 100644 pkgs/test/nixpkgs-check-by-name/tests/new-package-non-by-name/with-config.nix create mode 100644 pkgs/test/nixpkgs-check-by-name/tests/new-package-non-by-name/without-config.nix create mode 100644 pkgs/test/nixpkgs-check-by-name/tests/no-eval/all-packages.nix create mode 100644 pkgs/test/nixpkgs-check-by-name/tests/no-eval/default.nix create mode 100644 pkgs/test/nixpkgs-check-by-name/tests/no-eval/pkgs/by-name/fo/foo/package.nix diff --git a/pkgs/by-name/README.md b/pkgs/by-name/README.md index 948003bb5573..990882aec837 100644 --- a/pkgs/by-name/README.md +++ b/pkgs/by-name/README.md @@ -1,11 +1,9 @@ # Name-based package directories The structure of this directory maps almost directly to top-level package attributes. -This is the recommended way to add new top-level packages to Nixpkgs [when possible](#limitations). +Add new top-level packages to Nixpkgs using this mechanism [whenever possible](#limitations). -Packages found in the named-based structure do not need to be explicitly added to the -`top-level/all-packages.nix` file unless they require overriding the default value -of an implicit attribute (see below). +Packages found in the name-based structure are automatically included, without needing to be added to `all-packages.nix`. However if the implicit attribute defaults need to be changed for a package, this [must still be declared in `all-packages.nix`](#changing-implicit-attribute-defaults). ## Example diff --git a/pkgs/test/nixpkgs-check-by-name/README.md b/pkgs/test/nixpkgs-check-by-name/README.md index 871847bd74cc..d779529c7baf 100644 --- a/pkgs/test/nixpkgs-check-by-name/README.md +++ b/pkgs/test/nixpkgs-check-by-name/README.md @@ -45,6 +45,8 @@ The current ratchets are: - New manual definitions of `pkgs.${name}` (e.g. in `pkgs/top-level/all-packages.nix`) with `args = { }` (see [nix evaluation checks](#nix-evaluation-checks)) must not be introduced. +- New top-level packages defined using `pkgs.callPackage` must be defined with a package directory. + - Once a top-level package uses `pkgs/by-name`, it also can't be moved back out of it. ## Development diff --git a/pkgs/test/nixpkgs-check-by-name/src/eval.nix b/pkgs/test/nixpkgs-check-by-name/src/eval.nix index 9c0248486c66..f13dbd167a00 100644 --- a/pkgs/test/nixpkgs-check-by-name/src/eval.nix +++ b/pkgs/test/nixpkgs-check-by-name/src/eval.nix @@ -93,10 +93,18 @@ let # Information on all attributes that exist but are not in pkgs/by-name. # We need this to enforce pkgs/by-name for new packages nonByNameAttrs = map (name: + let + output = attrInfo name pkgs.${name}; + result = builtins.tryEval (builtins.deepSeq output null); + in [ name { - NonByName = null; + NonByName = + if result.success then + { EvalSuccess = output; } + else + { EvalFailure = null; }; } ] ) (builtins.attrNames (builtins.removeAttrs pkgs attrs)); diff --git a/pkgs/test/nixpkgs-check-by-name/src/eval.rs b/pkgs/test/nixpkgs-check-by-name/src/eval.rs index fdf74eba2cb5..39653a871604 100644 --- a/pkgs/test/nixpkgs-check-by-name/src/eval.rs +++ b/pkgs/test/nixpkgs-check-by-name/src/eval.rs @@ -16,7 +16,14 @@ enum Attribute { /// An attribute that should be defined via pkgs/by-name ByName(ByNameAttribute), /// An attribute not defined via pkgs/by-name - NonByName, + NonByName(NonByNameAttribute), +} + +#[derive(Deserialize)] +enum NonByNameAttribute { + /// The attribute doesn't evaluate + EvalFailure, + EvalSuccess(AttributeInfo), } #[derive(Deserialize)] @@ -145,11 +152,63 @@ pub fn check_values( use AttributeInfo::*; use ByNameAttribute::*; use CallPackageVariant::*; + use NonByNameAttribute::*; let check_result = match attribute_value { - NonByName => Success(ratchet::Package { - empty_non_auto_called: Tight, - }), + // The attribute succeeds evaluation and is NOT defined in pkgs/by-name + NonByName(EvalSuccess(attribute_info)) => { + let uses_by_name = match attribute_info { + // In these cases the package doesn't qualify for being in pkgs/by-name, + // so the UsesByName ratchet is already as tight as it can be + NonAttributeSet => Success(Tight), + NonCallPackage => Success(Tight), + // This is an odd case when _internalCallByNamePackageFile is used to define a package. + CallPackage(CallPackageInfo { + call_package_variant: Auto, + .. + }) => NixpkgsProblem::InternalCallPackageUsed { + attr_name: attribute_name.clone(), + } + .into(), + // Only derivations can be in pkgs/by-name, + // so this attribute doesn't qualify + CallPackage(CallPackageInfo { + is_derivation: false, + .. + }) => Success(Tight), + + // The case of an attribute that qualifies: + // - Uses callPackage + // - Is a derivation + CallPackage(CallPackageInfo { + is_derivation: true, + call_package_variant: Manual { path, empty_arg }, + }) => Success(Loose(ratchet::UsesByName { + call_package_path: path, + empty_arg, + })), + }; + uses_by_name.map(|x| ratchet::Package { + empty_non_auto_called: Tight, + uses_by_name: x, + }) + } + NonByName(EvalFailure) => { + // This is a bit of an odd case: We don't even _know_ whether this attribute + // would qualify for using pkgs/by-name. We can either: + // - Assume it's not using pkgs/by-name, which has the problem that if a + // package evaluation gets broken temporarily, the fix can remove it from + // pkgs/by-name again + // - Assume it's using pkgs/by-name already, which has the problem that if a + // package evaluation gets broken temporarily, fixing it requires a move to + // pkgs/by-name + // We choose the latter, since we want to move towards pkgs/by-name, not away + // from it + Success(ratchet::Package { + empty_non_auto_called: Tight, + uses_by_name: Tight, + }) + } ByName(Missing) => NixpkgsProblem::UndefinedAttr { relative_package_file: relative_package_file.clone(), package_name: attribute_name.clone(), @@ -182,6 +241,7 @@ pub fn check_values( check_result.and(match &call_package_variant { Auto => Success(ratchet::Package { empty_non_auto_called: Tight, + uses_by_name: Tight, }), Manual { path, empty_arg } => { let correct_file = if let Some(call_package_path) = path { @@ -198,6 +258,7 @@ pub fn check_values( } else { Tight }, + uses_by_name: Tight, }) } else { NixpkgsProblem::WrongCallPackage { diff --git a/pkgs/test/nixpkgs-check-by-name/src/nixpkgs_problem.rs b/pkgs/test/nixpkgs-check-by-name/src/nixpkgs_problem.rs index 2344a8cc1325..127583078074 100644 --- a/pkgs/test/nixpkgs-check-by-name/src/nixpkgs_problem.rs +++ b/pkgs/test/nixpkgs-check-by-name/src/nixpkgs_problem.rs @@ -1,3 +1,4 @@ +use crate::structure; use crate::utils::PACKAGE_NIX_FILENAME; use rnix::parser::ParseError; use std::ffi::OsString; @@ -87,6 +88,19 @@ pub enum NixpkgsProblem { text: String, io_error: io::Error, }, + InternalCallPackageUsed { + attr_name: String, + }, + MovedOutOfByName { + package_name: String, + call_package_path: Option, + empty_arg: bool, + }, + NewPackageNotUsingByName { + package_name: String, + call_package_path: Option, + empty_arg: bool, + }, } impl fmt::Display for NixpkgsProblem { @@ -213,6 +227,53 @@ impl fmt::Display for NixpkgsProblem { subpath.display(), text, ), + NixpkgsProblem::InternalCallPackageUsed { attr_name } => + write!( + f, + "pkgs.{attr_name}: This attribute is defined using `_internalCallByNamePackageFile`, which is an internal function not intended for manual use.", + ), + NixpkgsProblem::MovedOutOfByName { package_name, call_package_path, empty_arg } => { + let call_package_arg = + if let Some(path) = &call_package_path { + format!("./{}", path.display()) + } else { + "...".into() + }; + if *empty_arg { + write!( + f, + "pkgs.{package_name}: This top-level package was previously defined in {}, but is now manually defined as `callPackage {call_package_arg} {{ }}` (e.g. in `pkgs/top-level/all-packages.nix`). Please move the package back and remove the manual `callPackage`.", + structure::relative_file_for_package(package_name).display(), + ) + } else { + // This can happen if users mistakenly assume that for custom arguments, + // pkgs/by-name can't be used. + write!( + f, + "pkgs.{package_name}: This top-level package was previously defined in {}, but is now manually defined as `callPackage {call_package_arg} {{ ... }}` (e.g. in `pkgs/top-level/all-packages.nix`). While the manual `callPackage` is still needed, it's not necessary to move the package files.", + structure::relative_file_for_package(package_name).display(), + ) + } + }, + NixpkgsProblem::NewPackageNotUsingByName { package_name, call_package_path, empty_arg } => { + let call_package_arg = + if let Some(path) = &call_package_path { + format!("./{}", path.display()) + } else { + "...".into() + }; + let extra = + if *empty_arg { + "Since the second `callPackage` argument is `{ }`, no manual `callPackage` (e.g. in `pkgs/top-level/all-packages.nix`) is needed anymore." + } else { + "Since the second `callPackage` argument is not `{ }`, the manual `callPackage` (e.g. in `pkgs/top-level/all-packages.nix`) is still needed." + }; + write!( + f, + "pkgs.{package_name}: This is a new top-level package of the form `callPackage {call_package_arg} {{ }}`. Please define it in {} instead. See `pkgs/by-name/README.md` for more details. {extra}", + structure::relative_file_for_package(package_name).display(), + ) + }, } } } diff --git a/pkgs/test/nixpkgs-check-by-name/src/ratchet.rs b/pkgs/test/nixpkgs-check-by-name/src/ratchet.rs index 46d71baae1b5..f8c129626cc0 100644 --- a/pkgs/test/nixpkgs-check-by-name/src/ratchet.rs +++ b/pkgs/test/nixpkgs-check-by-name/src/ratchet.rs @@ -6,6 +6,7 @@ use crate::nixpkgs_problem::NixpkgsProblem; use crate::structure; use crate::validation::{self, Validation, Validation::Success}; use std::collections::HashMap; +use std::path::PathBuf; /// The ratchet value for the entirety of Nixpkgs. #[derive(Default)] @@ -33,16 +34,26 @@ impl Nixpkgs { pub struct Package { /// The ratchet value for the check for non-auto-called empty arguments pub empty_non_auto_called: RatchetState, + + /// The ratchet value for the check for new packages using pkgs/by-name + pub uses_by_name: RatchetState, } impl Package { /// Validates the ratchet checks for a top-level package pub fn compare(name: &str, optional_from: Option<&Self>, to: &Self) -> Validation<()> { - RatchetState::::compare( - name, - optional_from.map(|x| &x.empty_non_auto_called), - &to.empty_non_auto_called, - ) + validation::sequence_([ + RatchetState::::compare( + name, + optional_from.map(|x| &x.empty_non_auto_called), + &to.empty_non_auto_called, + ), + RatchetState::::compare( + name, + optional_from.map(|x| &x.uses_by_name), + &to.uses_by_name, + ), + ]) } } @@ -102,3 +113,34 @@ impl ToNixpkgsProblem for EmptyNonAutoCalled { } } } + +/// The ratchet value of an attribute +/// for the check that new packages use pkgs/by-name +/// +/// This checks that all new package defined using callPackage must be defined via pkgs/by-name +/// It also checks that once a package uses pkgs/by-name, it can't switch back to all-packages.nix +#[derive(Clone)] +pub struct UsesByName { + /// The first callPackage argument, used for better errors + pub call_package_path: Option, + /// Whether the second callPackage argument is empty, used for better errors + pub empty_arg: bool, +} + +impl ToNixpkgsProblem for UsesByName { + fn to_nixpkgs_problem(name: &str, a: &Self, existed_before: bool) -> NixpkgsProblem { + if existed_before { + NixpkgsProblem::MovedOutOfByName { + package_name: name.to_owned(), + call_package_path: a.call_package_path.clone(), + empty_arg: a.empty_arg, + } + } else { + NixpkgsProblem::NewPackageNotUsingByName { + package_name: name.to_owned(), + call_package_path: a.call_package_path.clone(), + empty_arg: a.empty_arg, + } + } + } +} diff --git a/pkgs/test/nixpkgs-check-by-name/tests/internalCallPackage/all-packages.nix b/pkgs/test/nixpkgs-check-by-name/tests/internalCallPackage/all-packages.nix new file mode 100644 index 000000000000..95478a87fb32 --- /dev/null +++ b/pkgs/test/nixpkgs-check-by-name/tests/internalCallPackage/all-packages.nix @@ -0,0 +1,3 @@ +self: super: { + foo = self._internalCallByNamePackageFile ./foo.nix; +} diff --git a/pkgs/test/nixpkgs-check-by-name/tests/internalCallPackage/default.nix b/pkgs/test/nixpkgs-check-by-name/tests/internalCallPackage/default.nix new file mode 100644 index 000000000000..af25d1450122 --- /dev/null +++ b/pkgs/test/nixpkgs-check-by-name/tests/internalCallPackage/default.nix @@ -0,0 +1 @@ +import ../mock-nixpkgs.nix { root = ./.; } diff --git a/pkgs/test/nixpkgs-check-by-name/tests/internalCallPackage/expected b/pkgs/test/nixpkgs-check-by-name/tests/internalCallPackage/expected new file mode 100644 index 000000000000..404795ee5c79 --- /dev/null +++ b/pkgs/test/nixpkgs-check-by-name/tests/internalCallPackage/expected @@ -0,0 +1 @@ +pkgs.foo: This attribute is defined using `_internalCallByNamePackageFile`, which is an internal function not intended for manual use. diff --git a/pkgs/test/nixpkgs-check-by-name/tests/internalCallPackage/foo.nix b/pkgs/test/nixpkgs-check-by-name/tests/internalCallPackage/foo.nix new file mode 100644 index 000000000000..a1b92efbbadb --- /dev/null +++ b/pkgs/test/nixpkgs-check-by-name/tests/internalCallPackage/foo.nix @@ -0,0 +1 @@ +{ someDrv }: someDrv diff --git a/pkgs/test/nixpkgs-check-by-name/tests/internalCallPackage/pkgs/by-name/README.md b/pkgs/test/nixpkgs-check-by-name/tests/internalCallPackage/pkgs/by-name/README.md new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/pkgs/test/nixpkgs-check-by-name/tests/move-to-non-by-name/all-packages.nix b/pkgs/test/nixpkgs-check-by-name/tests/move-to-non-by-name/all-packages.nix new file mode 100644 index 000000000000..16834c4f7856 --- /dev/null +++ b/pkgs/test/nixpkgs-check-by-name/tests/move-to-non-by-name/all-packages.nix @@ -0,0 +1,10 @@ +self: super: { + foo1 = self.callPackage ({ someDrv }: someDrv) { }; + foo2 = self.callPackage ./without-config.nix { }; + foo3 = self.callPackage ({ someDrv, enableFoo }: someDrv) { + enableFoo = null; + }; + foo4 = self.callPackage ./with-config.nix { + enableFoo = null; + }; +} diff --git a/pkgs/test/nixpkgs-check-by-name/tests/move-to-non-by-name/base/default.nix b/pkgs/test/nixpkgs-check-by-name/tests/move-to-non-by-name/base/default.nix new file mode 100644 index 000000000000..2875ea6327ef --- /dev/null +++ b/pkgs/test/nixpkgs-check-by-name/tests/move-to-non-by-name/base/default.nix @@ -0,0 +1 @@ +import ../../mock-nixpkgs.nix { root = ./.; } diff --git a/pkgs/test/nixpkgs-check-by-name/tests/move-to-non-by-name/base/pkgs/by-name/fo/foo1/package.nix b/pkgs/test/nixpkgs-check-by-name/tests/move-to-non-by-name/base/pkgs/by-name/fo/foo1/package.nix new file mode 100644 index 000000000000..a1b92efbbadb --- /dev/null +++ b/pkgs/test/nixpkgs-check-by-name/tests/move-to-non-by-name/base/pkgs/by-name/fo/foo1/package.nix @@ -0,0 +1 @@ +{ someDrv }: someDrv diff --git a/pkgs/test/nixpkgs-check-by-name/tests/move-to-non-by-name/base/pkgs/by-name/fo/foo2/package.nix b/pkgs/test/nixpkgs-check-by-name/tests/move-to-non-by-name/base/pkgs/by-name/fo/foo2/package.nix new file mode 100644 index 000000000000..a1b92efbbadb --- /dev/null +++ b/pkgs/test/nixpkgs-check-by-name/tests/move-to-non-by-name/base/pkgs/by-name/fo/foo2/package.nix @@ -0,0 +1 @@ +{ someDrv }: someDrv diff --git a/pkgs/test/nixpkgs-check-by-name/tests/move-to-non-by-name/base/pkgs/by-name/fo/foo3/package.nix b/pkgs/test/nixpkgs-check-by-name/tests/move-to-non-by-name/base/pkgs/by-name/fo/foo3/package.nix new file mode 100644 index 000000000000..a1b92efbbadb --- /dev/null +++ b/pkgs/test/nixpkgs-check-by-name/tests/move-to-non-by-name/base/pkgs/by-name/fo/foo3/package.nix @@ -0,0 +1 @@ +{ someDrv }: someDrv diff --git a/pkgs/test/nixpkgs-check-by-name/tests/move-to-non-by-name/base/pkgs/by-name/fo/foo4/package.nix b/pkgs/test/nixpkgs-check-by-name/tests/move-to-non-by-name/base/pkgs/by-name/fo/foo4/package.nix new file mode 100644 index 000000000000..a1b92efbbadb --- /dev/null +++ b/pkgs/test/nixpkgs-check-by-name/tests/move-to-non-by-name/base/pkgs/by-name/fo/foo4/package.nix @@ -0,0 +1 @@ +{ someDrv }: someDrv diff --git a/pkgs/test/nixpkgs-check-by-name/tests/move-to-non-by-name/default.nix b/pkgs/test/nixpkgs-check-by-name/tests/move-to-non-by-name/default.nix new file mode 100644 index 000000000000..af25d1450122 --- /dev/null +++ b/pkgs/test/nixpkgs-check-by-name/tests/move-to-non-by-name/default.nix @@ -0,0 +1 @@ +import ../mock-nixpkgs.nix { root = ./.; } diff --git a/pkgs/test/nixpkgs-check-by-name/tests/move-to-non-by-name/expected b/pkgs/test/nixpkgs-check-by-name/tests/move-to-non-by-name/expected new file mode 100644 index 000000000000..96da50b52491 --- /dev/null +++ b/pkgs/test/nixpkgs-check-by-name/tests/move-to-non-by-name/expected @@ -0,0 +1,4 @@ +pkgs.foo1: This top-level package was previously defined in pkgs/by-name/fo/foo1/package.nix, but is now manually defined as `callPackage ... { }` (e.g. in `pkgs/top-level/all-packages.nix`). Please move the package back and remove the manual `callPackage`. +pkgs.foo2: This top-level package was previously defined in pkgs/by-name/fo/foo2/package.nix, but is now manually defined as `callPackage ./without-config.nix { }` (e.g. in `pkgs/top-level/all-packages.nix`). Please move the package back and remove the manual `callPackage`. +pkgs.foo3: This top-level package was previously defined in pkgs/by-name/fo/foo3/package.nix, but is now manually defined as `callPackage ... { ... }` (e.g. in `pkgs/top-level/all-packages.nix`). While the manual `callPackage` is still needed, it's not necessary to move the package files. +pkgs.foo4: This top-level package was previously defined in pkgs/by-name/fo/foo4/package.nix, but is now manually defined as `callPackage ./with-config.nix { ... }` (e.g. in `pkgs/top-level/all-packages.nix`). While the manual `callPackage` is still needed, it's not necessary to move the package files. diff --git a/pkgs/test/nixpkgs-check-by-name/tests/move-to-non-by-name/pkgs/by-name/README.md b/pkgs/test/nixpkgs-check-by-name/tests/move-to-non-by-name/pkgs/by-name/README.md new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/pkgs/test/nixpkgs-check-by-name/tests/move-to-non-by-name/with-config.nix b/pkgs/test/nixpkgs-check-by-name/tests/move-to-non-by-name/with-config.nix new file mode 100644 index 000000000000..7cca53882ea5 --- /dev/null +++ b/pkgs/test/nixpkgs-check-by-name/tests/move-to-non-by-name/with-config.nix @@ -0,0 +1 @@ +{ someDrv, enableFoo }: someDrv diff --git a/pkgs/test/nixpkgs-check-by-name/tests/move-to-non-by-name/without-config.nix b/pkgs/test/nixpkgs-check-by-name/tests/move-to-non-by-name/without-config.nix new file mode 100644 index 000000000000..a1b92efbbadb --- /dev/null +++ b/pkgs/test/nixpkgs-check-by-name/tests/move-to-non-by-name/without-config.nix @@ -0,0 +1 @@ +{ someDrv }: someDrv diff --git a/pkgs/test/nixpkgs-check-by-name/tests/new-package-non-by-name/all-packages.nix b/pkgs/test/nixpkgs-check-by-name/tests/new-package-non-by-name/all-packages.nix new file mode 100644 index 000000000000..069119ad4c7b --- /dev/null +++ b/pkgs/test/nixpkgs-check-by-name/tests/new-package-non-by-name/all-packages.nix @@ -0,0 +1,11 @@ +self: super: { + before = self.callPackage ({ someDrv }: someDrv) { }; + new1 = self.callPackage ({ someDrv }: someDrv) { }; + new2 = self.callPackage ./without-config.nix { }; + new3 = self.callPackage ({ someDrv, enableNew }: someDrv) { + enableNew = null; + }; + new4 = self.callPackage ./with-config.nix { + enableNew = null; + }; +} diff --git a/pkgs/test/nixpkgs-check-by-name/tests/new-package-non-by-name/base/all-packages.nix b/pkgs/test/nixpkgs-check-by-name/tests/new-package-non-by-name/base/all-packages.nix new file mode 100644 index 000000000000..c2665d04d5f2 --- /dev/null +++ b/pkgs/test/nixpkgs-check-by-name/tests/new-package-non-by-name/base/all-packages.nix @@ -0,0 +1,5 @@ +self: super: { + + before = self.callPackage ({ someDrv }: someDrv) { }; + +} diff --git a/pkgs/test/nixpkgs-check-by-name/tests/new-package-non-by-name/base/default.nix b/pkgs/test/nixpkgs-check-by-name/tests/new-package-non-by-name/base/default.nix new file mode 100644 index 000000000000..2875ea6327ef --- /dev/null +++ b/pkgs/test/nixpkgs-check-by-name/tests/new-package-non-by-name/base/default.nix @@ -0,0 +1 @@ +import ../../mock-nixpkgs.nix { root = ./.; } diff --git a/pkgs/test/nixpkgs-check-by-name/tests/new-package-non-by-name/base/pkgs/by-name/README.md b/pkgs/test/nixpkgs-check-by-name/tests/new-package-non-by-name/base/pkgs/by-name/README.md new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/pkgs/test/nixpkgs-check-by-name/tests/new-package-non-by-name/default.nix b/pkgs/test/nixpkgs-check-by-name/tests/new-package-non-by-name/default.nix new file mode 100644 index 000000000000..af25d1450122 --- /dev/null +++ b/pkgs/test/nixpkgs-check-by-name/tests/new-package-non-by-name/default.nix @@ -0,0 +1 @@ +import ../mock-nixpkgs.nix { root = ./.; } diff --git a/pkgs/test/nixpkgs-check-by-name/tests/new-package-non-by-name/expected b/pkgs/test/nixpkgs-check-by-name/tests/new-package-non-by-name/expected new file mode 100644 index 000000000000..3f294f26dfd8 --- /dev/null +++ b/pkgs/test/nixpkgs-check-by-name/tests/new-package-non-by-name/expected @@ -0,0 +1,4 @@ +pkgs.new1: This is a new top-level package of the form `callPackage ... { }`. Please define it in pkgs/by-name/ne/new1/package.nix instead. See `pkgs/by-name/README.md` for more details. Since the second `callPackage` argument is `{ }`, no manual `callPackage` (e.g. in `pkgs/top-level/all-packages.nix`) is needed anymore. +pkgs.new2: This is a new top-level package of the form `callPackage ./without-config.nix { }`. Please define it in pkgs/by-name/ne/new2/package.nix instead. See `pkgs/by-name/README.md` for more details. Since the second `callPackage` argument is `{ }`, no manual `callPackage` (e.g. in `pkgs/top-level/all-packages.nix`) is needed anymore. +pkgs.new3: This is a new top-level package of the form `callPackage ... { }`. Please define it in pkgs/by-name/ne/new3/package.nix instead. See `pkgs/by-name/README.md` for more details. Since the second `callPackage` argument is not `{ }`, the manual `callPackage` (e.g. in `pkgs/top-level/all-packages.nix`) is still needed. +pkgs.new4: This is a new top-level package of the form `callPackage ./with-config.nix { }`. Please define it in pkgs/by-name/ne/new4/package.nix instead. See `pkgs/by-name/README.md` for more details. Since the second `callPackage` argument is not `{ }`, the manual `callPackage` (e.g. in `pkgs/top-level/all-packages.nix`) is still needed. diff --git a/pkgs/test/nixpkgs-check-by-name/tests/new-package-non-by-name/pkgs/by-name/README.md b/pkgs/test/nixpkgs-check-by-name/tests/new-package-non-by-name/pkgs/by-name/README.md new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/pkgs/test/nixpkgs-check-by-name/tests/new-package-non-by-name/with-config.nix b/pkgs/test/nixpkgs-check-by-name/tests/new-package-non-by-name/with-config.nix new file mode 100644 index 000000000000..65bcbf9928a2 --- /dev/null +++ b/pkgs/test/nixpkgs-check-by-name/tests/new-package-non-by-name/with-config.nix @@ -0,0 +1 @@ +{ someDrv, enableNew }: someDrv diff --git a/pkgs/test/nixpkgs-check-by-name/tests/new-package-non-by-name/without-config.nix b/pkgs/test/nixpkgs-check-by-name/tests/new-package-non-by-name/without-config.nix new file mode 100644 index 000000000000..a1b92efbbadb --- /dev/null +++ b/pkgs/test/nixpkgs-check-by-name/tests/new-package-non-by-name/without-config.nix @@ -0,0 +1 @@ +{ someDrv }: someDrv diff --git a/pkgs/test/nixpkgs-check-by-name/tests/no-eval/all-packages.nix b/pkgs/test/nixpkgs-check-by-name/tests/no-eval/all-packages.nix new file mode 100644 index 000000000000..e2831c2d542e --- /dev/null +++ b/pkgs/test/nixpkgs-check-by-name/tests/no-eval/all-packages.nix @@ -0,0 +1,3 @@ +self: super: { + iDontEval = throw "I don't eval"; +} diff --git a/pkgs/test/nixpkgs-check-by-name/tests/no-eval/default.nix b/pkgs/test/nixpkgs-check-by-name/tests/no-eval/default.nix new file mode 100644 index 000000000000..af25d1450122 --- /dev/null +++ b/pkgs/test/nixpkgs-check-by-name/tests/no-eval/default.nix @@ -0,0 +1 @@ +import ../mock-nixpkgs.nix { root = ./.; } diff --git a/pkgs/test/nixpkgs-check-by-name/tests/no-eval/pkgs/by-name/fo/foo/package.nix b/pkgs/test/nixpkgs-check-by-name/tests/no-eval/pkgs/by-name/fo/foo/package.nix new file mode 100644 index 000000000000..a1b92efbbadb --- /dev/null +++ b/pkgs/test/nixpkgs-check-by-name/tests/no-eval/pkgs/by-name/fo/foo/package.nix @@ -0,0 +1 @@ +{ someDrv }: someDrv From cbff02834f3c0a1daa3502566fcf19433f9ca214 Mon Sep 17 00:00:00 2001 From: Silvan Mosberger Date: Wed, 10 Jan 2024 19:21:07 +0100 Subject: [PATCH 17/59] tests.nixpkgs-check-by-name: Sort the eval validation results Not that important, but nice. Also adds a nice test case show-casing the two current ratchet checks at once. --- pkgs/test/nixpkgs-check-by-name/src/eval.nix | 51 ++++++++++--------- .../tests/sorted-order/all-packages.nix | 6 +++ .../tests/sorted-order/default.nix | 1 + .../tests/sorted-order/expected | 4 ++ .../sorted-order/pkgs/by-name/a/a/package.nix | 1 + .../sorted-order/pkgs/by-name/c/c/package.nix | 1 + 6 files changed, 40 insertions(+), 24 deletions(-) create mode 100644 pkgs/test/nixpkgs-check-by-name/tests/sorted-order/all-packages.nix create mode 100644 pkgs/test/nixpkgs-check-by-name/tests/sorted-order/default.nix create mode 100644 pkgs/test/nixpkgs-check-by-name/tests/sorted-order/expected create mode 100644 pkgs/test/nixpkgs-check-by-name/tests/sorted-order/pkgs/by-name/a/a/package.nix create mode 100644 pkgs/test/nixpkgs-check-by-name/tests/sorted-order/pkgs/by-name/c/c/package.nix diff --git a/pkgs/test/nixpkgs-check-by-name/src/eval.nix b/pkgs/test/nixpkgs-check-by-name/src/eval.nix index f13dbd167a00..87c54b6444ee 100644 --- a/pkgs/test/nixpkgs-check-by-name/src/eval.nix +++ b/pkgs/test/nixpkgs-check-by-name/src/eval.nix @@ -79,34 +79,37 @@ let }; }; - byNameAttrs = map (name: [ - name - { - ByName = - if ! pkgs ? ${name} then - { Missing = null; } - else - { Existing = attrInfo name pkgs.${name}; }; - } - ]) attrs; + byNameAttrs = builtins.listToAttrs (map (name: { + inherit name; + value.ByName = + if ! pkgs ? ${name} then + { Missing = null; } + else + { Existing = attrInfo name pkgs.${name}; }; + }) attrs); # Information on all attributes that exist but are not in pkgs/by-name. # We need this to enforce pkgs/by-name for new packages - nonByNameAttrs = map (name: + nonByNameAttrs = builtins.mapAttrs (name: value: let - output = attrInfo name pkgs.${name}; + output = attrInfo name value; result = builtins.tryEval (builtins.deepSeq output null); in - [ - name - { - NonByName = - if result.success then - { EvalSuccess = output; } - else - { EvalFailure = null; }; - } - ] - ) (builtins.attrNames (builtins.removeAttrs pkgs attrs)); + { + NonByName = + if result.success then + { EvalSuccess = output; } + else + { EvalFailure = null; }; + } + ) (builtins.removeAttrs pkgs attrs); + + # All attributes + attributes = byNameAttrs // nonByNameAttrs; in -byNameAttrs ++ nonByNameAttrs +# We output them in the form [ [ ] ]` such that the Rust side +# doesn't need to sort them again to get deterministic behavior (good for testing) +map (name: [ + name + attributes.${name} +]) (builtins.attrNames attributes) diff --git a/pkgs/test/nixpkgs-check-by-name/tests/sorted-order/all-packages.nix b/pkgs/test/nixpkgs-check-by-name/tests/sorted-order/all-packages.nix new file mode 100644 index 000000000000..688f52b9358f --- /dev/null +++ b/pkgs/test/nixpkgs-check-by-name/tests/sorted-order/all-packages.nix @@ -0,0 +1,6 @@ +self: super: { + a = self.callPackage ./pkgs/by-name/a/a/package.nix { }; + b = self.callPackage ({ someDrv }: someDrv) { }; + c = self.callPackage ./pkgs/by-name/c/c/package.nix { }; + d = self.callPackage ({ someDrv }: someDrv) { }; +} diff --git a/pkgs/test/nixpkgs-check-by-name/tests/sorted-order/default.nix b/pkgs/test/nixpkgs-check-by-name/tests/sorted-order/default.nix new file mode 100644 index 000000000000..af25d1450122 --- /dev/null +++ b/pkgs/test/nixpkgs-check-by-name/tests/sorted-order/default.nix @@ -0,0 +1 @@ +import ../mock-nixpkgs.nix { root = ./.; } diff --git a/pkgs/test/nixpkgs-check-by-name/tests/sorted-order/expected b/pkgs/test/nixpkgs-check-by-name/tests/sorted-order/expected new file mode 100644 index 000000000000..349e9ad47c41 --- /dev/null +++ b/pkgs/test/nixpkgs-check-by-name/tests/sorted-order/expected @@ -0,0 +1,4 @@ +pkgs.a: This attribute is manually defined (most likely in pkgs/top-level/all-packages.nix), which is only allowed if the definition is of the form `pkgs.callPackage pkgs/by-name/a/a/package.nix { ... }` with a non-empty second argument. +pkgs.b: This is a new top-level package of the form `callPackage ... { }`. Please define it in pkgs/by-name/b/b/package.nix instead. See `pkgs/by-name/README.md` for more details. Since the second `callPackage` argument is `{ }`, no manual `callPackage` (e.g. in `pkgs/top-level/all-packages.nix`) is needed anymore. +pkgs.c: This attribute is manually defined (most likely in pkgs/top-level/all-packages.nix), which is only allowed if the definition is of the form `pkgs.callPackage pkgs/by-name/c/c/package.nix { ... }` with a non-empty second argument. +pkgs.d: This is a new top-level package of the form `callPackage ... { }`. Please define it in pkgs/by-name/d/d/package.nix instead. See `pkgs/by-name/README.md` for more details. Since the second `callPackage` argument is `{ }`, no manual `callPackage` (e.g. in `pkgs/top-level/all-packages.nix`) is needed anymore. diff --git a/pkgs/test/nixpkgs-check-by-name/tests/sorted-order/pkgs/by-name/a/a/package.nix b/pkgs/test/nixpkgs-check-by-name/tests/sorted-order/pkgs/by-name/a/a/package.nix new file mode 100644 index 000000000000..a1b92efbbadb --- /dev/null +++ b/pkgs/test/nixpkgs-check-by-name/tests/sorted-order/pkgs/by-name/a/a/package.nix @@ -0,0 +1 @@ +{ someDrv }: someDrv diff --git a/pkgs/test/nixpkgs-check-by-name/tests/sorted-order/pkgs/by-name/c/c/package.nix b/pkgs/test/nixpkgs-check-by-name/tests/sorted-order/pkgs/by-name/c/c/package.nix new file mode 100644 index 000000000000..a1b92efbbadb --- /dev/null +++ b/pkgs/test/nixpkgs-check-by-name/tests/sorted-order/pkgs/by-name/c/c/package.nix @@ -0,0 +1 @@ +{ someDrv }: someDrv From d659d5f8acb06ada213dac7c7d87ac20cba15c22 Mon Sep 17 00:00:00 2001 From: Silvan Mosberger Date: Wed, 10 Jan 2024 19:42:02 +0100 Subject: [PATCH 18/59] tests.nixpkgs-check-by-name: Use real lib for tests This way we can also detect regressions caused by lib --- pkgs/test/nixpkgs-check-by-name/src/main.rs | 6 ++++-- .../tests/mock-nixpkgs.nix | 20 +------------------ 2 files changed, 5 insertions(+), 21 deletions(-) diff --git a/pkgs/test/nixpkgs-check-by-name/src/main.rs b/pkgs/test/nixpkgs-check-by-name/src/main.rs index d7627acb5fee..62ae159df35c 100644 --- a/pkgs/test/nixpkgs-check-by-name/src/main.rs +++ b/pkgs/test/nixpkgs-check-by-name/src/main.rs @@ -226,7 +226,9 @@ mod tests { } fn test_nixpkgs(name: &str, path: &Path, expected_errors: &str) -> anyhow::Result<()> { - let extra_nix_path = Path::new("tests/mock-nixpkgs.nix"); + let mock_nixpkgs_path = Path::new("tests/mock-nixpkgs.nix"); + let real_lib_path = Path::new("../../../lib"); + let extra_nix_path = [mock_nixpkgs_path, real_lib_path]; let base_path = path.join("base"); let base_nixpkgs = if base_path.exists() { @@ -238,7 +240,7 @@ mod tests { // We don't want coloring to mess up the tests let writer = temp_env::with_var("NO_COLOR", Some("1"), || -> anyhow::Result<_> { let mut writer = vec![]; - process(base_nixpkgs, &path, &[&extra_nix_path], &mut writer) + process(base_nixpkgs, &path, &extra_nix_path, &mut writer) .with_context(|| format!("Failed test case {name}"))?; Ok(writer) })?; diff --git a/pkgs/test/nixpkgs-check-by-name/tests/mock-nixpkgs.nix b/pkgs/test/nixpkgs-check-by-name/tests/mock-nixpkgs.nix index cb8066062cc6..2f4657bafe52 100644 --- a/pkgs/test/nixpkgs-check-by-name/tests/mock-nixpkgs.nix +++ b/pkgs/test/nixpkgs-check-by-name/tests/mock-nixpkgs.nix @@ -25,25 +25,7 @@ It returns a Nixpkgs-like function that can be auto-called and evaluates to an a let # Simplified versions of lib functions - lib = { - fix = f: let x = f x; in x; - - extends = overlay: f: final: - let - prev = f final; - in - prev // overlay final prev; - - callPackageWith = autoArgs: fn: args: - let - f = if builtins.isFunction fn then fn else import fn; - fargs = builtins.functionArgs f; - allArgs = builtins.intersectAttrs fargs autoArgs // args; - in - f allArgs; - - isDerivation = value: value.type or null == "derivation"; - }; + lib = import ../../../../lib; # The base fixed-point function to populate the resulting attribute set pkgsFun = self: { From be26d74840eb86f7e7dfb11dce0f5d329e775257 Mon Sep 17 00:00:00 2001 From: Silvan Mosberger Date: Wed, 10 Jan 2024 19:55:24 +0100 Subject: [PATCH 19/59] tests.nixpkgs-check-by-name: Add test for alternate callPackage's Tests that alternate callPackage's don't give an error, so pkgs/by-name is only required for pkgs.callPackage itself --- .../nixpkgs-check-by-name/tests/mock-nixpkgs.nix | 4 +++- .../all-packages.nix | 16 ++++++++++++++++ .../only-callPackage-derivations/default.nix | 1 + .../pkgs/by-name/README.md | 0 4 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 pkgs/test/nixpkgs-check-by-name/tests/only-callPackage-derivations/all-packages.nix create mode 100644 pkgs/test/nixpkgs-check-by-name/tests/only-callPackage-derivations/default.nix create mode 100644 pkgs/test/nixpkgs-check-by-name/tests/only-callPackage-derivations/pkgs/by-name/README.md diff --git a/pkgs/test/nixpkgs-check-by-name/tests/mock-nixpkgs.nix b/pkgs/test/nixpkgs-check-by-name/tests/mock-nixpkgs.nix index 2f4657bafe52..f35fe051562b 100644 --- a/pkgs/test/nixpkgs-check-by-name/tests/mock-nixpkgs.nix +++ b/pkgs/test/nixpkgs-check-by-name/tests/mock-nixpkgs.nix @@ -30,7 +30,9 @@ let # The base fixed-point function to populate the resulting attribute set pkgsFun = self: { inherit lib; - callPackage = lib.callPackageWith self; + newScope = extra: lib.callPackageWith (self // extra); + callPackage = self.newScope { }; + callPackages = lib.callPackagesWith self; someDrv = { type = "derivation"; }; }; diff --git a/pkgs/test/nixpkgs-check-by-name/tests/only-callPackage-derivations/all-packages.nix b/pkgs/test/nixpkgs-check-by-name/tests/only-callPackage-derivations/all-packages.nix new file mode 100644 index 000000000000..5b1ed9d2ccda --- /dev/null +++ b/pkgs/test/nixpkgs-check-by-name/tests/only-callPackage-derivations/all-packages.nix @@ -0,0 +1,16 @@ +self: super: { + alternateCallPackage = self.myScope.callPackage ({ myScopeValue, someDrv }: + assert myScopeValue; + someDrv + ) { }; + + myScope = self.lib.makeScope self.newScope (self: { + myScopeValue = true; + }); + + myPackages = self.callPackages ({ someDrv }: { + a = someDrv; + b = someDrv; + }) { }; + inherit (self.myPackages) a b; +} diff --git a/pkgs/test/nixpkgs-check-by-name/tests/only-callPackage-derivations/default.nix b/pkgs/test/nixpkgs-check-by-name/tests/only-callPackage-derivations/default.nix new file mode 100644 index 000000000000..af25d1450122 --- /dev/null +++ b/pkgs/test/nixpkgs-check-by-name/tests/only-callPackage-derivations/default.nix @@ -0,0 +1 @@ +import ../mock-nixpkgs.nix { root = ./.; } diff --git a/pkgs/test/nixpkgs-check-by-name/tests/only-callPackage-derivations/pkgs/by-name/README.md b/pkgs/test/nixpkgs-check-by-name/tests/only-callPackage-derivations/pkgs/by-name/README.md new file mode 100644 index 000000000000..e69de29bb2d1 From 628e3e2921e41e95b5e21ad86832e200039ff7f1 Mon Sep 17 00:00:00 2001 From: Peder Bergebakken Sundt Date: Tue, 9 Jan 2024 23:44:27 +0100 Subject: [PATCH 20/59] python3Packages.pdoc: fix darwin --- .../python-modules/pdoc-pyo3-sample-library/default.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/pkgs/development/python-modules/pdoc-pyo3-sample-library/default.nix b/pkgs/development/python-modules/pdoc-pyo3-sample-library/default.nix index f02507574b9a..37fd1d1378dc 100644 --- a/pkgs/development/python-modules/pdoc-pyo3-sample-library/default.nix +++ b/pkgs/development/python-modules/pdoc-pyo3-sample-library/default.nix @@ -1,9 +1,11 @@ { lib +, stdenv , buildPythonPackage , fetchPypi , rustPlatform , cargo , rustc +, libiconv }: buildPythonPackage rec { @@ -29,6 +31,10 @@ buildPythonPackage rec { rustc ]; + buildInputs = lib.optionals stdenv.isDarwin [ + libiconv + ]; + pythonImportsCheck = [ "pdoc_pyo3_sample_library" ]; # no tests From 50656be095258080366a9238cbfa4b134ab52117 Mon Sep 17 00:00:00 2001 From: Felix Buehler Date: Sun, 7 Jan 2024 12:11:52 +0100 Subject: [PATCH 21/59] python311Packages.nose-warnings-filters: rename from nose_warnings_filters --- .../default.nix | 5 +++-- pkgs/top-level/python-aliases.nix | 1 + pkgs/top-level/python-packages.nix | 2 +- 3 files changed, 5 insertions(+), 3 deletions(-) rename pkgs/development/python-modules/{nose_warnings_filters => nose-warnings-filters}/default.nix (85%) diff --git a/pkgs/development/python-modules/nose_warnings_filters/default.nix b/pkgs/development/python-modules/nose-warnings-filters/default.nix similarity index 85% rename from pkgs/development/python-modules/nose_warnings_filters/default.nix rename to pkgs/development/python-modules/nose-warnings-filters/default.nix index a10302559cb0..4de67b60c468 100644 --- a/pkgs/development/python-modules/nose_warnings_filters/default.nix +++ b/pkgs/development/python-modules/nose-warnings-filters/default.nix @@ -6,12 +6,13 @@ }: buildPythonPackage rec { - pname = "nose_warnings_filters"; + pname = "nose-warnings-filters"; version = "0.1.5"; format = "setuptools"; src = fetchPypi { - inherit pname version; + pname = "nose_warnings_filters"; + inherit version; sha256 = "17dvfqfy2fm7a5cmiffw2dc3064kpx72fn5mlw01skm2rhn5nv25"; }; diff --git a/pkgs/top-level/python-aliases.nix b/pkgs/top-level/python-aliases.nix index fcc3497480b0..6e85007669d0 100644 --- a/pkgs/top-level/python-aliases.nix +++ b/pkgs/top-level/python-aliases.nix @@ -279,6 +279,7 @@ mapAliases ({ ninja-python = ninja; # add 2022-08-03 nose-cover3 = throw "nose-cover3 has been removed, it was using setuptools 2to3 translation feature, which has been removed in setuptools 58"; # added 2022-02-16 nose_progressive = throw "nose_progressive has been removed, it was using setuptools 2to3 translation feature, which has been removed in setuptools 58"; #added 2023-02-21 + nose_warnings_filters = nose-warnings-filters; # added 2024-01-07 notifymuch = throw "notifymuch has been promoted to a top-level attribute"; # added 2022-10-02 Nuitka = nuitka; # added 2023-02-19 ntlm-auth = throw "ntlm-auth has been removed, because it relies on the md4 implementation provided by openssl. Use pyspnego instead."; diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 35c07c5c5a50..e46c106460c5 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -8392,7 +8392,7 @@ self: super: with self; { nose-randomly = callPackage ../development/python-modules/nose-randomly { }; - nose_warnings_filters = callPackage ../development/python-modules/nose_warnings_filters { }; + nose-warnings-filters = callPackage ../development/python-modules/nose-warnings-filters { }; nosexcover = callPackage ../development/python-modules/nosexcover { }; From 4db309fbea46fd99aa9d520b83e582323bfe1bf7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sandro=20J=C3=A4ckel?= Date: Thu, 11 Jan 2024 10:58:46 +0100 Subject: [PATCH 22/59] vaultwarden.webvault: 2023.12.0 -> 2024.1.0 Diff: https://github.com/dani-garcia/bw_web_builds/compare/v2023.12.0...v2024.1.0 --- pkgs/tools/security/vaultwarden/webvault.nix | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/pkgs/tools/security/vaultwarden/webvault.nix b/pkgs/tools/security/vaultwarden/webvault.nix index 3981366448be..81709fd2511d 100644 --- a/pkgs/tools/security/vaultwarden/webvault.nix +++ b/pkgs/tools/security/vaultwarden/webvault.nix @@ -7,13 +7,13 @@ }: let - version = "2023.12.0"; + version = "2024.1.0"; bw_web_builds = fetchFromGitHub { owner = "dani-garcia"; repo = "bw_web_builds"; rev = "v${version}"; - hash = "sha256-S98Yqi0PEpMF+enP/J3x/kPEe0VhErY8BNphOXmsijg="; + hash = "sha256-pR5fgpLcxnqURouandGIHRIfc3sn3QcfpU6mF6AxpeA="; }; in buildNpmPackage rec { pname = "vaultwarden-webvault"; @@ -23,10 +23,10 @@ in buildNpmPackage rec { owner = "bitwarden"; repo = "clients"; rev = "web-v${lib.removeSuffix "b" version}"; - hash = "sha256-eAwj7cWR/ojAMAvYg2/vtNWYTwVBCOnBJPy9mC5Td40="; + hash = "sha256-lDDy1b1yfw3nZrwEEkpvh6xYucgn20XHsGACc45eb2w="; }; - npmDepsHash = "sha256-VW1pGG/pc2tdSs5+HfypZv9fnQu04qkoFBTJxaYvBZo="; + npmDepsHash = "sha256-RR8Ua41D9SXymiPuabOnIab3byu8DR63rOfdeTaQpy4="; postPatch = '' ln -s ${bw_web_builds}/{patches,resources} .. @@ -48,6 +48,8 @@ in buildNpmPackage rec { "--workspace" "apps/web" ]; + npmFlags = [ "--legacy-peer-deps" ]; + installPhase = '' runHook preInstall mkdir -p $out/share/vaultwarden From 6815a0077d291a35a2f7c3eb715ece3da7035419 Mon Sep 17 00:00:00 2001 From: Michael Raskin <7c6f434c@mail.ru> Date: Fri, 12 Jan 2024 00:41:25 +0100 Subject: [PATCH 23/59] nix-cl: provide the original pname as an attribute Overrides often inherit pname from the overriden package, and if they get the already-prefixed version, defaulting the systems list to [pname] produces wrong (and unintuitive) results. So we keep the prefix in the store paths for clarity, and nix-env sees disambiguated names with -i/-u (which should not be used anyway); but overrides won't be broken. --- pkgs/development/lisp-modules/nix-cl.nix | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/pkgs/development/lisp-modules/nix-cl.nix b/pkgs/development/lisp-modules/nix-cl.nix index 327f4aa65aff..6c52e9254f37 100644 --- a/pkgs/development/lisp-modules/nix-cl.nix +++ b/pkgs/development/lisp-modules/nix-cl.nix @@ -145,7 +145,7 @@ let ... } @ args: - stdenv.mkDerivation (rec { + (stdenv.mkDerivation (rec { inherit version nativeLibs javaLibs lispLibs systems asds pkg program flags faslExt @@ -226,7 +226,14 @@ let meta = (args.meta or {}) // { maintainers = args.meta.maintainers or lib.teams.lisp.members; }; - }))); + })) // { + # Useful for overriding + # Overriding code would prefer to use pname from the attribute set + # However, pname is extended with the implementation name + # Moreover, it is used in the default list of systems to load + # So we pass the original pname + pname = args.pname; + })); # Build the set of lisp packages using `lisp` # These packages are defined manually for one reason or another: From 41c3d2d96cebd7d623a2d2d6b951c2f26c34d0d1 Mon Sep 17 00:00:00 2001 From: Chris McDonough Date: Fri, 12 Jan 2024 11:24:26 -0500 Subject: [PATCH 24/59] update arguments to definition lists as per docs team meeeting / @danielsidhion --- .../trivial-build-helpers.chapter.md | 135 ++++++++++++++---- 1 file changed, 104 insertions(+), 31 deletions(-) diff --git a/doc/build-helpers/trivial-build-helpers.chapter.md b/doc/build-helpers/trivial-build-helpers.chapter.md index 4f19f57626c2..650f8aa4067a 100644 --- a/doc/build-helpers/trivial-build-helpers.chapter.md +++ b/doc/build-helpers/trivial-build-helpers.chapter.md @@ -95,30 +95,44 @@ writeShellScript "evaluate-my-file.sh" '' ### `writeTextFile` {#trivial-builder-writeTextFile} -`writeTextFile` takes an attribute set and expects it to contain at least two attributes: `name` and `text`. +Writes a text file to the store -`name` corresponds to the name used in the Nix store path identifier. +`writeTextFile` takes an attribute set with the following possible attributes: -`text` will be the contents of the file. +`name` + +: Corresponds to the name used in the Nix store path identifier. + +`text` + +: The contents of the file. + +`executable` _optional_ + +: Make this file have the executable bit set. Defaults to `false` + +`destination` _optional_ + +: Supplies a subpath under the derivation's Nix store ouput path into which to create the file. It may contain directory path elements, these are created automatically when the derivation is realized. Defaults to `""`, which indicates that the store path itself will be a file containing the text contents. + +`checkPhase` _optional_ + +: Commands to run after generating the file, e.g. lints. It defaults to `""` (no checking). + +`meta` _optional_ + +: Additional metadata for the derivation. It defaults to `{}`. + +`allowSubstitutes` _optional_ + +: Whether to allow substituting from a binary cache. It defaults to `false`, as the operation is assumed to be faster performed locally. You may want to set this to true if the `checkPhase` step is expensive. + +`preferLocalBuild` _optional_ + +: Whether to prefer building locally, even if faster remote builders are available. It defaults to `true` for the same reason `allowSubstitutes` defaults to `false`. The resulting store path will include some variation of the name, and it will be a file unless `destination` (see below) is used, in which case it will be a directory. -Common optional attributes in the attribute set are: - -`executable`: make this file have the executable bit set. Defaults to `false` - -`destination`: supplies a subpath under the derivation's Nix store ouput path into which to create the file. It may contain directory path elements, these are created automatically when the derivation is realized. Defaults to `""`, which indicates that the store path itself will be a file containing the text contents. - -Other less-frequently used optional attributes are: - -`checkPhase`: commands to run after generating the file, e.g. lints. It defaults to `""` (no checking). - -`meta`: Additional metadata for the derivation. It defaults to `{}`. - -`allowSubstitutes`: whether to allow substituting from a binary cache. It fefaults to `false`, as the operation is assumed to be faster performed locally. You may want to set this to true if the `checkPhase` step is expensive. - -`preferLocalBuild`: whether to prefer building locally, even if faster remote builders are available. It defaults to `true` for the same reason `allowSubstitutes` defaults to `false`. - ::: {.example #ex-writeTextFile} # Usages of `writeTextFile` ```nix @@ -170,9 +184,18 @@ The commands `writeText`, `writeTextDir`, `writeScript`, `writeScriptBin`, `writ ### `writeText` {#trivial-builder-writeText} -`writeText` takes two arguments: `name` and `text`. +Writes a text file to the store -`name` is the name used in the Nix store path. `text` will be the contents of the file. +`writeText` takes two arguments: `name` and `text`, each of which should be +a string. + +`name` + +: the name used in the Nix store path. + +`text` + +: will be the contents of the file. The store path will include the the name, and it will be a file. Any path separators and shell-reserved elements in the name are escaped to create the store path identifier. @@ -202,9 +225,17 @@ writeTextFile { ### `writeTextDir` {#trivial-builder-writeTextDir} -`writeTextDir` takes two arguments: `path` and `text`. +Writes a text file within a subdirectory of the store. -`path` is the destination within the Nix store path under which to create the file. `text` will be the contents of the file. +`writeTextDir` takes two arguments: `path` and `text`, each of which should be a string. + +`path` + +: the destination within the Nix store path under which to create the file. + +`text` + +: the contents of the file. The store path will be a directory. The Nix store identifier will be generated based on various elements of the path. @@ -233,9 +264,19 @@ writeTextFile { ### `writeScript` {#trivial-builder-writeScript} -`writeScript` takes two arguments: `name` and `text`. +Writes a script within the store. -`name` is the name used in the Nix store path. `text` will be the contents of the file. The created file is marked as executable. +`writeScript` takes two arguments: `name` and `text`, each of which should be a string. + +`name` + +: the name used in the Nix store path. + +`text` + +: the contents of the file. + +The created file is marked as executable. The store path will include the the name, and it will be a file. Any path separators and shell-reserved elements in the name are escaped to create the store path identifier. @@ -266,9 +307,19 @@ writeTextFile { ### `writeScriptBin` {#trivial-builder-writeScriptBin} -`writeScriptBin` takes two arguments: `name` and `text`. +Writes a script within a "bin" subirectory of a subdirectory of the store. -`name` is the name used in the Nix store path and within the file generated under the store path. `text` will be the contents of the file. The created file is marked as executable. +`writeScriptBin` takes two arguments: `name` and `text`, each of which should be a string. + +`name` + +: the name used in the Nix store path and within the file generated under the store path. + +`text` + +: the contents of the file. + +The created file is marked as executable. The file's contents will be put into `/nix/store//bin/`. @@ -299,9 +350,21 @@ writeTextFile { ### `writeShellScript` {#trivial-builder-writeShellScript} -`writeShellScript` takes two arguments: `name` and `text`. +Writes a shell script to the store. -`name` is the name used in the Nix store path. `text` will be the contents of the file. The created file is marked as executable. This function is almost exactly like `writeScript`, but it prepends a shebang line that points to the runtime shell (usually bash) at the top of the file contents. +`writeShellScript` takes two arguments: `name` and `text`, each of which should be a string. + +`name` + +: the name used in the Nix store path. + +`text` + +: the contents of the file. + +The created file is marked as executable. + +This function is almost exactly like `writeScript`, but it prepends a shebang line that points to the runtime shell (usually bash) at the top of the file contents. The store path will include the the name, and it will be a file. Any path separators and shell-reserved elements in the name are escaped to create the store path identifier. @@ -331,9 +394,19 @@ writeTextFile { ``` ### `writeShellScriptBin` {#trivial-builder-writeShellScriptBin} -`writeShellScriptBin` takes two arguments: `name` and `text`. +Writes a shell script to a "bin" subdirectory of subdirectory of the store. -`name` is the name used in the Nix store path and within the file generated under the store path. `text` will be the contents of the file. This function is almost exactly like `writeScriptBin`, but it prepends a shebang line that points to the runtime shell (usually bash) at the top of the file contents. +`writeShellScriptBin` takes two arguments: `name` and `text`, each of which should be a string. + +`name` + +: the name used in the Nix store path and within the file generated under the store path. + +`text` + +: the contents of the file. + +This function is almost exactly like `writeScriptBin`, but it prepends a shebang line that points to the runtime shell (usually bash) at the top of the file contents. The file's contents will be put into `/nix/store//bin/`. From 1e9fc75c6ee179872a0a9e0560fa638425a06fc7 Mon Sep 17 00:00:00 2001 From: Chris McDonough Date: Fri, 12 Jan 2024 12:17:24 -0500 Subject: [PATCH 25/59] whitespace cleanup --- doc/build-helpers/trivial-build-helpers.chapter.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/build-helpers/trivial-build-helpers.chapter.md b/doc/build-helpers/trivial-build-helpers.chapter.md index 650f8aa4067a..4e15be0ba539 100644 --- a/doc/build-helpers/trivial-build-helpers.chapter.md +++ b/doc/build-helpers/trivial-build-helpers.chapter.md @@ -191,7 +191,7 @@ a string. `name` -: the name used in the Nix store path. +: the name used in the Nix store path. `text` From 32638686d1913cc867cb8ab4ab0115e312c65113 Mon Sep 17 00:00:00 2001 From: Chris McDonough Date: Fri, 12 Jan 2024 21:58:13 -0500 Subject: [PATCH 26/59] Apply @bzm3r suggestions from code review Co-authored-by: Brian Merchant --- .../trivial-build-helpers.chapter.md | 20 ++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/doc/build-helpers/trivial-build-helpers.chapter.md b/doc/build-helpers/trivial-build-helpers.chapter.md index 4e15be0ba539..5cf60b7a0783 100644 --- a/doc/build-helpers/trivial-build-helpers.chapter.md +++ b/doc/build-helpers/trivial-build-helpers.chapter.md @@ -1,6 +1,6 @@ # Trivial build helpers {#chap-trivial-builders} -`nixpkgs` provides a variety of wrapper functions that help build very simple derivations. Like [`stdenv.mkDerivation`](#sec-using-stdenv), each of these builders creates and returns a derivation, but the composition of the arguments passed to each are different (usually simpler) than the arguments that must be passed to `stdenv.mkDerivation`. +Nixpkgs provides a variety of wrapper functions that help build commonly useful derivations. Like [`stdenv.mkDerivation`](#sec-using-stdenv), each of these builders creates a derivation, but the arguments passed are different (usually simpler) from those required by `stdenv.mkDerivation`. ## `runCommand` {#trivial-builder-runCommand} @@ -60,9 +60,11 @@ This sets [`allowSubstitutes` to `false`](https://nixos.org/nix/manual/#adv-attr ## `writeTextFile`, `writeText`, `writeTextDir`, `writeScript`, `writeScriptBin`, `writeShellScript`, `writeShellScriptBin` {#trivial-builder-textwriting} -`nixpkgs` provides a number of functions that produce derivations which write text into the Nix store. These include `writeTextFile`, `writeText`, `writeTextDir`, `writeScript`, `writeScriptBin`, `writeShellScript`, and `writeShellScriptBin`, each of which is documented below. +Nixpkgs provides the following functions for producing derivations which write text into the Nix store: `writeTextFile`, `writeText`, `writeTextDir`, `writeScript`, `writeScriptBin`, `writeShellScript`, and `writeShellScriptBin`. -These are useful for creating files from Nix expressions, which may be scripts or non-executable text files, depending on which of the functions is used and the arguments it takes. +`writeText`, `writeTextDir`, `writeScript`, and `writeScriptBin` are convenience functions over `writeTextFile`. + +These are useful for creating files from Nix expressions, which may be scripts or non-executable text files. The result of each of these functions will be a derivation. When you coerce the resulting derivation to text, it will evaluate to the *store path*. Importantly, it will not include the destination subpath produced by the particular function. So, for example, given the following expression: @@ -212,7 +214,7 @@ writeText "my-file" ``` ::: -This example is a simpler way to spell: +This example is equivalent to: ```nix writeTextFile { @@ -250,7 +252,7 @@ writeTextDir "share/my-file" ``` ::: -The example is a simpler way to spell: +This example is equivalent to: ```nix writeTextFile { @@ -293,7 +295,7 @@ writeScript "my-file" ``` ::: -The example is a simpler way to spell: +This example is equivalent to: ```nix writeTextFile { @@ -335,7 +337,7 @@ writeScriptBin "my-script" ``` ::: -The example is a simpler way to spell: +This example is equivalent to: ```nix writeTextFile { @@ -380,7 +382,7 @@ writeShellScript "my-script" ``` ::: -The example is a simpler way to spell: +This example is equivalent to: ```nix writeTextFile { @@ -422,7 +424,7 @@ writeShellScriptBin "my-script" ``` ::: -The example is a simpler way to spell: +This example is equivalent to: ```nix writeTextFile { From 25b2c3a0cc480ee4f01c82df717f26f984a490d4 Mon Sep 17 00:00:00 2001 From: Chris McDonough Date: Fri, 12 Jan 2024 22:15:43 -0500 Subject: [PATCH 27/59] incorporate the spirit of change proposed by @DanielSidhion at https://github.com/NixOS/nixpkgs/pull/277534#discussion_r1450778530 --- .../trivial-build-helpers.chapter.md | 25 +++++-------------- 1 file changed, 6 insertions(+), 19 deletions(-) diff --git a/doc/build-helpers/trivial-build-helpers.chapter.md b/doc/build-helpers/trivial-build-helpers.chapter.md index 5cf60b7a0783..a33d499ceb15 100644 --- a/doc/build-helpers/trivial-build-helpers.chapter.md +++ b/doc/build-helpers/trivial-build-helpers.chapter.md @@ -62,14 +62,16 @@ This sets [`allowSubstitutes` to `false`](https://nixos.org/nix/manual/#adv-attr Nixpkgs provides the following functions for producing derivations which write text into the Nix store: `writeTextFile`, `writeText`, `writeTextDir`, `writeScript`, `writeScriptBin`, `writeShellScript`, and `writeShellScriptBin`. -`writeText`, `writeTextDir`, `writeScript`, and `writeScriptBin` are convenience functions over `writeTextFile`. +`writeText`, `writeTextDir`, `writeScript`, `writeScriptBin`, `writeShellScript`, and `writeShellScriptBin` are convenience functions over `writeTextFile`. These are useful for creating files from Nix expressions, which may be scripts or non-executable text files. -The result of each of these functions will be a derivation. When you coerce the resulting derivation to text, it will evaluate to the *store path*. Importantly, it will not include the destination subpath produced by the particular function. So, for example, given the following expression: +Each of these functions will cause a derivation to be realized. When you coerce the result of each of these functions to a string, it will evaluate to the *store path* of this derivation. + +:::: {.warning} +Some of these functions will put the resulting files within a directory inside the derivation output. If you need to refer to the resulting files somewhere else in Nix code, remember to append the path to the file For example: ```nix - my-file = writeTextFile { name = "my-file"; text = '' @@ -77,23 +79,12 @@ my-file = writeTextFile { ''; destination = "/share/my-file"; } -``` -If `my-file` is coerced to text, it will resolve to `/nix/store/`, like any other derivation. It will *not* evaluate to `/nix/store//share/my-file`. So to use it elsewhere, as an example (in this case, within a shell script you're writing in a Nix expression via `writeShellScript`), you might do: - -```nix writeShellScript "evaluate-my-file.sh" '' cat ${my-file}/share/my-file ''; ``` - -This will produce the desired result. However, the following will not, it will fail because the store path is a directory, and is not the `my-file` file. - -```nix -writeShellScript "evaluate-my-file.sh" '' - cat ${my-file} -''; -``` +:::: ### `writeTextFile` {#trivial-builder-writeTextFile} @@ -180,10 +171,6 @@ writeTextFile { ``` ::: -::: {.note} -The commands `writeText`, `writeTextDir`, `writeScript`, `writeScriptBin`, `writeShellScript`, and `writeShellScriptBin` documented below are convenience functions that wrap `writeTextFile`. -::: - ### `writeText` {#trivial-builder-writeText} Writes a text file to the store From 7aa84efba2600d1c2446c2dee95cf8d36ba437bc Mon Sep 17 00:00:00 2001 From: Chris McDonough Date: Fri, 12 Jan 2024 22:17:39 -0500 Subject: [PATCH 28/59] incorporate the suggestion at https://github.com/NixOS/nixpkgs/pull/277534/files#r1450959283 --- doc/build-helpers/trivial-build-helpers.chapter.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/build-helpers/trivial-build-helpers.chapter.md b/doc/build-helpers/trivial-build-helpers.chapter.md index a33d499ceb15..315d0c68d257 100644 --- a/doc/build-helpers/trivial-build-helpers.chapter.md +++ b/doc/build-helpers/trivial-build-helpers.chapter.md @@ -226,7 +226,7 @@ Writes a text file within a subdirectory of the store. : the contents of the file. -The store path will be a directory. The Nix store identifier will be generated based on various elements of the path. +The store path will be a directory. ::: {.example #ex-writeTextDir} # Usage of `writeTextDir` From 56108dd5ab70b012c7ffd885b84bb44a7367e4f0 Mon Sep 17 00:00:00 2001 From: Chris McDonough Date: Fri, 12 Jan 2024 22:49:04 -0500 Subject: [PATCH 29/59] not realized; produced --- doc/build-helpers/trivial-build-helpers.chapter.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/build-helpers/trivial-build-helpers.chapter.md b/doc/build-helpers/trivial-build-helpers.chapter.md index 315d0c68d257..1da9e3b4c955 100644 --- a/doc/build-helpers/trivial-build-helpers.chapter.md +++ b/doc/build-helpers/trivial-build-helpers.chapter.md @@ -66,7 +66,7 @@ Nixpkgs provides the following functions for producing derivations which write t These are useful for creating files from Nix expressions, which may be scripts or non-executable text files. -Each of these functions will cause a derivation to be realized. When you coerce the result of each of these functions to a string, it will evaluate to the *store path* of this derivation. +Each of these functions will cause a derivation to be produced. When you coerce the result of each of these functions to a string, it will evaluate to the *store path* of this derivation. :::: {.warning} Some of these functions will put the resulting files within a directory inside the derivation output. If you need to refer to the resulting files somewhere else in Nix code, remember to append the path to the file For example: From 39227d5ce39c9004972ca3b15e89268ceaeca7db Mon Sep 17 00:00:00 2001 From: Chris McDonough Date: Fri, 12 Jan 2024 22:53:50 -0500 Subject: [PATCH 30/59] describing the composiion of the store path elements is not really that useful --- doc/build-helpers/trivial-build-helpers.chapter.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/doc/build-helpers/trivial-build-helpers.chapter.md b/doc/build-helpers/trivial-build-helpers.chapter.md index 1da9e3b4c955..c8c141cc83e5 100644 --- a/doc/build-helpers/trivial-build-helpers.chapter.md +++ b/doc/build-helpers/trivial-build-helpers.chapter.md @@ -186,7 +186,7 @@ a string. : will be the contents of the file. -The store path will include the the name, and it will be a file. Any path separators and shell-reserved elements in the name are escaped to create the store path identifier. +The store path will include the the name, and it will be a file. Here is an example. @@ -267,7 +267,7 @@ Writes a script within the store. The created file is marked as executable. -The store path will include the the name, and it will be a file. Any path separators and shell-reserved elements in the name are escaped to create the store path identifier. +The store path will include the the name, and it will be a file. Here is an example. @@ -312,7 +312,7 @@ The created file is marked as executable. The file's contents will be put into `/nix/store//bin/`. -The store path will include the the name, and it will be a directory. Any path separators and shell-reserved elements in the name are escaped to create the store path identifier. +The store path will include the the name, and it will be a directory. ::: {.example #ex-writeScriptBin} # Usage of `writeScriptBin` @@ -355,7 +355,7 @@ The created file is marked as executable. This function is almost exactly like `writeScript`, but it prepends a shebang line that points to the runtime shell (usually bash) at the top of the file contents. -The store path will include the the name, and it will be a file. Any path separators and shell-reserved elements in the name are escaped to create the store path identifier. +The store path will include the the name, and it will be a file. Here is an example. @@ -399,7 +399,7 @@ This function is almost exactly like `writeScriptBin`, but it prepends a shebang The file's contents will be put into `/nix/store//bin/`. -The store path will include the the name, and it will be a directory. Any path separators and shell-reserved elements in the name are escaped to create the store path identifier. +The store path will include the the name, and it will be a directory. ::: {.example #ex-writeShellScriptBin} # Usage of `writeShellScriptBin` From b0f542304df44f97abe8c497dce917c53d7cd972 Mon Sep 17 00:00:00 2001 From: Chris McDonough Date: Fri, 12 Jan 2024 22:59:49 -0500 Subject: [PATCH 31/59] add to example --- doc/build-helpers/trivial-build-helpers.chapter.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/doc/build-helpers/trivial-build-helpers.chapter.md b/doc/build-helpers/trivial-build-helpers.chapter.md index c8c141cc83e5..d21b311516d9 100644 --- a/doc/build-helpers/trivial-build-helpers.chapter.md +++ b/doc/build-helpers/trivial-build-helpers.chapter.md @@ -72,6 +72,9 @@ Each of these functions will cause a derivation to be produced. When you coerce Some of these functions will put the resulting files within a directory inside the derivation output. If you need to refer to the resulting files somewhere else in Nix code, remember to append the path to the file For example: ```nix + +# if the derivation destination is a directory.... + my-file = writeTextFile { name = "my-file"; text = '' @@ -80,6 +83,9 @@ my-file = writeTextFile { destination = "/share/my-file"; } +# remember to tack on "/share/my-file" to the derivation path when +# using it elsewhere. + writeShellScript "evaluate-my-file.sh" '' cat ${my-file}/share/my-file ''; From 18bb8a070536b35fcd3e87b9296c46bf2ffeec81 Mon Sep 17 00:00:00 2001 From: Chuang Zhu Date: Sat, 13 Jan 2024 11:29:24 +0800 Subject: [PATCH 32/59] python3Packages.pure-protobuf: 3.0.0 -> 2.3.0 --- pkgs/development/python-modules/pure-protobuf/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/pure-protobuf/default.nix b/pkgs/development/python-modules/pure-protobuf/default.nix index ba8b1836ba62..29cdf21cf3dc 100644 --- a/pkgs/development/python-modules/pure-protobuf/default.nix +++ b/pkgs/development/python-modules/pure-protobuf/default.nix @@ -12,7 +12,7 @@ buildPythonPackage rec { pname = "pure-protobuf"; - version = "3.0.0"; + version = "2.3.0"; # Komikku not launching w/ 3.0.0, #280551 format = "pyproject"; disabled = pythonOlder "3.7"; @@ -21,7 +21,7 @@ buildPythonPackage rec { owner = "eigenein"; repo = "protobuf"; rev = "refs/tags/${version}"; - hash = "sha256-MjxJTX672LSEqZkH39vTD/+IhCTp6FL2z15S7Lxj6Dc="; + hash = "sha256-nJ3F8dUrqMeWqTV9ErGqrMvofJwBKwNUDfxWIqFh4nY="; }; nativeBuildInputs = [ From c71fa4be0ca5f8d43b2630fa314f266dbc0cffac Mon Sep 17 00:00:00 2001 From: h7x4 Date: Tue, 12 Dec 2023 18:01:59 +0100 Subject: [PATCH 33/59] heimdal: clean up package - Make inputs more diff friendly - Add flags for enabling certain libraries - Disable LDAP support as HDB module by default - Add support for CJSON - Flatten contents of `$out/libexec`, which earlier had an `heimdal/heimdal` directory - Use SRI hash - Enable package tests - Add `passthru.tests.nixos` - Add `meta.homepage` and `meta.changelog` Co-authored-by: Felix Albrigtsen --- .../services/system/kerberos/heimdal.nix | 6 +- .../heimdal-make-missing-headers.patch | 10 -- .../libraries/kerberos/heimdal.nix | 166 +++++++++++++----- 3 files changed, 127 insertions(+), 55 deletions(-) delete mode 100644 pkgs/development/libraries/kerberos/heimdal-make-missing-headers.patch diff --git a/nixos/modules/services/system/kerberos/heimdal.nix b/nixos/modules/services/system/kerberos/heimdal.nix index 837c59caa562..816a2a8db061 100644 --- a/nixos/modules/services/system/kerberos/heimdal.nix +++ b/nixos/modules/services/system/kerberos/heimdal.nix @@ -35,7 +35,7 @@ in mkdir -m 0755 -p ${stateDir} ''; serviceConfig.ExecStart = - "${kerberos}/libexec/heimdal/kadmind --config-file=/etc/heimdal-kdc/kdc.conf"; + "${kerberos}/libexec/kadmind --config-file=/etc/heimdal-kdc/kdc.conf"; restartTriggers = [ kdcConfFile ]; }; @@ -46,7 +46,7 @@ in mkdir -m 0755 -p ${stateDir} ''; serviceConfig.ExecStart = - "${kerberos}/libexec/heimdal/kdc --config-file=/etc/heimdal-kdc/kdc.conf"; + "${kerberos}/libexec/kdc --config-file=/etc/heimdal-kdc/kdc.conf"; restartTriggers = [ kdcConfFile ]; }; @@ -56,7 +56,7 @@ in preStart = '' mkdir -m 0755 -p ${stateDir} ''; - serviceConfig.ExecStart = "${kerberos}/libexec/heimdal/kpasswdd"; + serviceConfig.ExecStart = "${kerberos}/libexec/kpasswdd"; restartTriggers = [ kdcConfFile ]; }; diff --git a/pkgs/development/libraries/kerberos/heimdal-make-missing-headers.patch b/pkgs/development/libraries/kerberos/heimdal-make-missing-headers.patch deleted file mode 100644 index a0fa625538b7..000000000000 --- a/pkgs/development/libraries/kerberos/heimdal-make-missing-headers.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- a/lib/hx509/Makefile.am 2018-03-21 15:41:38.622968809 +0100 -+++ b/lib/hx509/Makefile.am 2018-03-21 15:41:32.655162197 +0100 -@@ -9,6 +9,8 @@ - sel-gram.h \ - $(gen_files_ocsp:.x=.c) \ - $(gen_files_pkcs10:.x=.c) \ -+ ocsp_asn1.h \ -+ pkcs10_asn1.h \ - hx509_err.c \ - hx509_err.h diff --git a/pkgs/development/libraries/kerberos/heimdal.nix b/pkgs/development/libraries/kerberos/heimdal.nix index 29fd897c7fee..8a3cc0b25a1d 100644 --- a/pkgs/development/libraries/kerberos/heimdal.nix +++ b/pkgs/development/libraries/kerberos/heimdal.nix @@ -1,9 +1,52 @@ -{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config, python3, perl, bison, flex -, texinfo, perlPackages -, openldap, libcap_ng, sqlite, openssl, db, libedit, pam -, CoreFoundation, Security, SystemConfiguration +{ lib +, stdenv +, fetchFromGitHub +, autoreconfHook +, pkg-config +, python3 +, perl +, bison +, flex +, texinfo +, perlPackages + +, openldap +, libcap_ng +, sqlite +, openssl +, db +, libedit +, pam +, krb5 +, libmicrohttpd +, cjson + +, CoreFoundation +, Security +, SystemConfiguration + +, curl +, jdk +, unzip +, which + +, nixosTests + +, withCJSON ? true +, withCapNG ? stdenv.isLinux +# libmicrohttpd should theoretically work for darwin as well, but something is broken. +# It affects tests check-bx509d and check-httpkadmind. +, withMicroHTTPD ? stdenv.isLinux +, withOpenLDAP ? true +, withOpenLDAPAsHDBModule ? false +, withOpenSSL ? true +, withSQLite3 ? true }: +assert lib.assertMsg (withOpenLDAPAsHDBModule -> withOpenLDAP) '' + OpenLDAP needs to be enabled in order to build the OpenLDAP HDB Module. +''; + stdenv.mkDerivation { pname = "heimdal"; version = "7.8.0-unstable-2023-11-29"; @@ -12,50 +55,84 @@ stdenv.mkDerivation { owner = "heimdal"; repo = "heimdal"; rev = "3253c49544eacb33d5ad2f6f919b0696e5aab794"; - sha256 = "sha256-uljzQBzXrZCZjcIWfioqHN8YsbUUNy14Vo+A3vZIXzM="; + hash = "sha256-uljzQBzXrZCZjcIWfioqHN8YsbUUNy14Vo+A3vZIXzM="; }; outputs = [ "out" "dev" "man" "info" ]; - nativeBuildInputs = [ autoreconfHook pkg-config python3 perl bison flex texinfo ] - ++ (with perlPackages; [ JSON ]); - buildInputs = lib.optionals (stdenv.isLinux) [ libcap_ng ] - ++ [ db sqlite openssl libedit openldap pam] - ++ lib.optionals (stdenv.isDarwin) [ CoreFoundation Security SystemConfiguration ]; + nativeBuildInputs = [ + autoreconfHook + pkg-config + python3 + perl + bison + flex + texinfo + ] + ++ (with perlPackages; [ JSON ]); - ## ugly, X should be made an option - configureFlags = [ - "--sysconfdir=/etc" - "--localstatedir=/var" - "--infodir=$info/share/info" - "--enable-hdb-openldap-module" - "--with-sqlite3=${sqlite.dev}" + buildInputs = [ db libedit pam ] + ++ lib.optionals (stdenv.isDarwin) [ CoreFoundation Security SystemConfiguration ] + ++ lib.optionals (withCJSON) [ cjson ] + ++ lib.optionals (withCapNG) [ libcap_ng ] + ++ lib.optionals (withMicroHTTPD) [ libmicrohttpd ] + ++ lib.optionals (withOpenLDAP) [ openldap ] + ++ lib.optionals (withOpenSSL) [ openssl ] + ++ lib.optionals (withSQLite3) [ sqlite ]; - # ugly, --with-libedit is not enought, it fall back to bundled libedit - "--with-libedit-include=${libedit.dev}/include" - "--with-libedit-lib=${libedit}/lib" - "--with-openssl=${openssl.dev}" - "--without-x" - "--with-berkeley-db" - "--with-berkeley-db-include=${db.dev}/include" - "--with-openldap=${openldap.dev}" - ] ++ lib.optionals (stdenv.isLinux) [ - "--with-capng" + doCheck = true; + nativeCheckInputs = [ + curl + jdk + unzip + which ]; - postUnpack = '' - sed -i '/^DEFAULT_INCLUDES/ s,$, -I..,' source/cf/Makefile.am.common - sed -i -e 's/date/date --date="@$SOURCE_DATE_EPOCH"/' source/configure.ac + configureFlags = [ + "--with-libedit-include=${libedit.dev}/include" + "--with-libedit-lib=${libedit}/lib" + "--with-berkeley-db-include=${db.dev}/include" + "--with-berkeley-db" + + "--without-x" + "--disable-afs-string-to-key" + ] ++ lib.optionals (withCapNG) [ + "--with-capng" + ] ++ lib.optionals (withCJSON) [ + "--with-cjson=${cjson}" + ] ++ lib.optionals (withOpenLDAP) [ + "--with-openldap=${openldap.dev}" + ] ++ lib.optionals (withOpenLDAPAsHDBModule) [ + "--enable-hdb-openldap-module" + ] ++ lib.optionals (withSQLite3) [ + "--with-sqlite3=${sqlite.dev}" + ]; + + # (check-ldap) slapd resides within ${openldap}/libexec, + # which is not part of $PATH by default. + # (check-ldap) prepending ${openldap}/bin to the path to avoid + # using the default installation of openldap on unsandboxed darwin systems, + # which does not support the new mdb backend at the moment (2024-01-13). + # (check-ldap) the bdb backend got deprecated in favour of mdb in openldap 2.5.0, + # but the heimdal tests still seem to expect bdb as the openldap backend. + # This might be fixed upstream in a future update. + patchPhase = '' + runHook prePatch + + substituteInPlace tests/ldap/slapd-init.in \ + --replace 'SCHEMA_PATHS="' 'SCHEMA_PATHS="${openldap}/etc/schema ' + substituteInPlace tests/ldap/check-ldap.in \ + --replace 'PATH=' 'PATH=${openldap}/libexec:${openldap}/bin:' + substituteInPlace tests/ldap/slapd.conf \ + --replace 'database bdb' 'database mdb' + + runHook postPatch ''; - preConfigure = '' - configureFlagsArray+=( - "--bindir=$out/bin" - "--sbindir=$out/sbin" - "--libexecdir=$out/libexec/heimdal" - "--mandir=$man/share/man" - "--infodir=$man/share/info" - "--includedir=$dev/include") + # (test_cc) heimdal uses librokens implementation of `secure_getenv` on darwin, + # which expects either USER or LOGNAME to be set. + preCheck = lib.optionalString (stdenv.isDarwin) '' + export USER=nix-builder ''; # We need to build hcrypt for applications like samba @@ -73,8 +150,8 @@ stdenv.mkDerivation { mv $out/bin/krb5-config $dev/bin/ # asn1 compilers, move them to $dev - mv $out/libexec/heimdal/heimdal/* $dev/bin - rmdir $out/libexec/heimdal/heimdal + mv $out/libexec/heimdal/* $dev/bin + rmdir $out/libexec/heimdal # compile_et is needed for cross-compiling this package and samba mv lib/com_err/.libs/compile_et $dev/bin @@ -85,11 +162,16 @@ stdenv.mkDerivation { # hx_locl.h:67:25: fatal error: pkcs10_asn1.h: No such file or directory #enableParallelBuilding = true; + passthru = { + implementation = "heimdal"; + tests.nixos = nixosTests.kerberos.heimdal; + }; + meta = with lib; { + homepage = "https://www.heimdal.software"; + changelog = "https://github.com/heimdal/heimdal/releases"; description = "An implementation of Kerberos 5 (and some more stuff)"; license = licenses.bsd3; platforms = platforms.unix; }; - - passthru.implementation = "heimdal"; } From fe2a639aa74baff686663831b72e5b89f3595825 Mon Sep 17 00:00:00 2001 From: h7x4 Date: Tue, 12 Dec 2023 18:05:22 +0100 Subject: [PATCH 34/59] heimdal: add h7x4 as maintainer --- pkgs/development/libraries/kerberos/heimdal.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/development/libraries/kerberos/heimdal.nix b/pkgs/development/libraries/kerberos/heimdal.nix index 8a3cc0b25a1d..ff211b6b9c34 100644 --- a/pkgs/development/libraries/kerberos/heimdal.nix +++ b/pkgs/development/libraries/kerberos/heimdal.nix @@ -173,5 +173,6 @@ stdenv.mkDerivation { description = "An implementation of Kerberos 5 (and some more stuff)"; license = licenses.bsd3; platforms = platforms.unix; + maintainers = with maintainers; [ h7x4 ]; }; } From 5a0bebf0fd577eec40b560053d8aa7f28ff72227 Mon Sep 17 00:00:00 2001 From: slam-bert Date: Wed, 10 Jan 2024 18:51:26 -0600 Subject: [PATCH 35/59] rmg: init at 0.5.4 rmg: append to init at 0.5.4 rmg: further add to init at 0.5.4 rmg: (hopefully) finally finish init at 0.5.4 rmg: fix qt imports for init at 0.5.4 rmg: move 'which' to nativeBuildInputs for init at 0.5.4 rmg: try only importing 'which' in init at 0.5.4 rmg: fix a whitespace error in init at 0.5.4 rmg: remove 'dash' for init at 0.5.4 rmg: fix up qt packages for init at 0.5.4 rmg: remove seperate 'wrapQtAppsHook' from imports for init at 0.5.4 rmg: add myself to 'maintainer-list.nix' for init at 0.5.4 --- maintainers/maintainer-list.nix | 5 ++ pkgs/by-name/rm/rmg/package.nix | 87 +++++++++++++++++++++++++++++++++ 2 files changed, 92 insertions(+) create mode 100644 pkgs/by-name/rm/rmg/package.nix diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index fe4e8bdf24b5..c15014dab1a5 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -17162,6 +17162,11 @@ githubId = 3789764; name = "skykanin"; }; + slam-bert = { + github = "slam-bert"; + githubId = 106779009; + name = "Slambert"; + }; slbtty = { email = "shenlebantongying@gmail.com"; github = "shenlebantongying"; diff --git a/pkgs/by-name/rm/rmg/package.nix b/pkgs/by-name/rm/rmg/package.nix new file mode 100644 index 000000000000..06e94306c04c --- /dev/null +++ b/pkgs/by-name/rm/rmg/package.nix @@ -0,0 +1,87 @@ +{ lib +, stdenv +, fetchFromGitHub +, boost +, cmake +, discord-rpc +, freetype +, hidapi +, libpng +, libsamplerate +, minizip +, nasm +, pkg-config +, qt6Packages +, SDL2 +, speexdsp +, vulkan-headers +, vulkan-loader +, which +, xdg-user-dirs +, zlib +}: + +let + inherit (qt6Packages) qtbase qtsvg wrapQtAppsHook; +in +stdenv.mkDerivation rec { + pname = "rmg"; + version = "0.5.4"; + + src = fetchFromGitHub { + owner = "Rosalie241"; + repo = "RMG"; + rev = "v${version}"; + hash = "sha256-SAQJKfYoouJ2DLVks6oXiyiOI2/kgmyaHqt/FRfqKjI="; + }; + + nativeBuildInputs = [ + cmake + nasm + pkg-config + wrapQtAppsHook + which + ]; + + buildInputs = [ + boost + discord-rpc + freetype + hidapi + libpng + libsamplerate + minizip + qtbase + qtsvg + SDL2 + speexdsp + vulkan-headers + vulkan-loader + xdg-user-dirs + zlib + ]; + + cmakeFlags = [ + "-DPORTABLE_INSTALL=OFF" + # mupen64plus-input-gca is written in Rust, so we can't build it with + # everything else. + "-DNO_RUST=ON" + ]; + + qtWrapperArgs = lib.optionals stdenv.isLinux [ + "--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ vulkan-loader ]}" + ]; + + meta = with lib; { + homepage = "https://github.com/Rosalie241/RMG"; + description = "Rosalie's Mupen GUI"; + longDescription = '' + Rosalie's Mupen GUI is a free and open-source mupen64plus front-end + written in C++. It offers a simple-to-use user interface. + ''; + license = licenses.gpl3; + platforms = platforms.linux; + mainProgram = "RMG"; + maintainers = with maintainers; [ slam-bert ]; + }; +} From c30db09f018a50a25809abc3412824270eb069d6 Mon Sep 17 00:00:00 2001 From: Benedikt Broich Date: Sat, 17 Jun 2023 16:47:40 +0200 Subject: [PATCH 36/59] audio-sharing: init at 0.2.2 --- pkgs/by-name/au/audio-sharing/package.nix | 75 +++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 pkgs/by-name/au/audio-sharing/package.nix diff --git a/pkgs/by-name/au/audio-sharing/package.nix b/pkgs/by-name/au/audio-sharing/package.nix new file mode 100644 index 000000000000..f65ffbc434de --- /dev/null +++ b/pkgs/by-name/au/audio-sharing/package.nix @@ -0,0 +1,75 @@ +{ appstream-glib +, cargo +, desktop-file-utils +, fetchFromGitLab +, git +, glib +, gst_all_1 +, gtk4 +, lib +, libadwaita +, meson +, ninja +, nix-update-script +, pkg-config +, python3 +, rustPlatform +, rustc +, stdenv +, wrapGAppsHook +}: +stdenv.mkDerivation (finalAttrs: { + pname = "audio-sharing"; + version = "0.2.2"; + + src = fetchFromGitLab { + domain = "gitlab.gnome.org"; + owner = "World"; + repo = "AudioSharing"; + rev = finalAttrs.version; + hash = "sha256-ejNktgN9tfi4TzWDQJnESGcBkpvLVH34sukTFCBfo3U="; + }; + + cargoDeps = rustPlatform.fetchCargoTarball { + inherit (finalAttrs) src; + name = "${finalAttrs.pname}-${finalAttrs.version}"; + hash = "sha256-c19DxHF4HFN0qTqC2CNzwko79uVeLeyrrXAvuyxeiOQ="; + }; + + nativeBuildInputs = [ + appstream-glib + cargo + desktop-file-utils + git + meson + ninja + pkg-config + python3 + rustc + wrapGAppsHook + ] ++ (with rustPlatform; [ + cargoSetupHook + ]); + + buildInputs = [ + glib + gst_all_1.gst-plugins-base + gst_all_1.gst-plugins-good # pulsesrc + gst_all_1.gst-rtsp-server + gst_all_1.gstreamer + gtk4 + libadwaita + ]; + + passthru = { + updateScript = nix-update-script { }; + }; + + meta = with lib; { + homepage = "https://gitlab.gnome.org/World/AudioSharing"; + description = "Automatically share the current audio playback in the form of an RTSP stream"; + maintainers = with maintainers; [ benediktbroich ]; + license = licenses.gpl3Plus; + platforms = platforms.linux; + }; +}) From 8111d4ca8e5c0973bd8e4a2b9ed176b9896cc648 Mon Sep 17 00:00:00 2001 From: Peder Bergebakken Sundt Date: Sun, 14 Jan 2024 22:01:52 +0100 Subject: [PATCH 37/59] python3Packages.pyopengl: fix substituteInPlace --- .../python-modules/pyopengl/default.nix | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/pkgs/development/python-modules/pyopengl/default.nix b/pkgs/development/python-modules/pyopengl/default.nix index 10333862bb8d..ddffa534ab85 100644 --- a/pkgs/development/python-modules/pyopengl/default.nix +++ b/pkgs/development/python-modules/pyopengl/default.nix @@ -23,22 +23,26 @@ buildPythonPackage rec { # Theses lines are patching the name of dynamic libraries # so pyopengl can find them at runtime. substituteInPlace OpenGL/platform/glx.py \ - --replace "'GL'" "'${pkgs.libGL}/lib/libGL${ext}'" \ - --replace "'GLU'" "'${pkgs.libGLU}/lib/libGLU${ext}'" \ - --replace "'glut'" "'${pkgs.freeglut}/lib/libglut${ext}'" \ - --replace "'GLESv1_CM'," "'${pkgs.libGL}/lib/libGLESv1_CM${ext}'," \ - --replace "'GLESv2'," "'${pkgs.libGL}/lib/libGLESv2${ext}'," + --replace '"OpenGL",' '"${pkgs.libGL}/lib/libOpenGL${ext}",' \ + --replace '"GL",' '"${pkgs.libGL}/lib/libGL${ext}",' \ + --replace '"GLU",' '"${pkgs.libGLU}/lib/libGLU${ext}",' \ + --replace '"GLX",' '"${pkgs.libglvnd}/lib/libGLX${ext}",' \ + --replace '"glut",' '"${pkgs.freeglut}/lib/libglut${ext}",' \ + --replace '"GLESv1_CM",' '"${pkgs.libGL}/lib/libGLESv1_CM${ext}",' \ + --replace '"GLESv2",' '"${pkgs.libGL}/lib/libGLESv2${ext}",' \ + --replace '"gle",' '"${pkgs.gle}/lib/libgle${ext}",' \ + --replace "'EGL'" "'${pkgs.libGL}/lib/libEGL${ext}'" substituteInPlace OpenGL/platform/egl.py \ --replace "('OpenGL','GL')" "('${pkgs.libGL}/lib/libOpenGL${ext}', '${pkgs.libGL}/lib/libGL${ext}')" \ --replace "'GLU'," "'${pkgs.libGLU}/lib/libGLU${ext}'," \ --replace "'glut'," "'${pkgs.freeglut}/lib/libglut${ext}'," \ --replace "'GLESv1_CM'," "'${pkgs.libGL}/lib/libGLESv1_CM${ext}'," \ --replace "'GLESv2'," "'${pkgs.libGL}/lib/libGLESv2${ext}'," \ + --replace "'gle'," '"${pkgs.gle}/lib/libgle${ext}",' \ --replace "'EGL'," "'${pkgs.libGL}/lib/libEGL${ext}'," substituteInPlace OpenGL/platform/darwin.py \ --replace "'OpenGL'," "'${pkgs.libGL}/lib/libGL${ext}'," \ --replace "'GLUT'," "'${pkgs.freeglut}/lib/libglut${ext}'," - # TODO: patch 'gle' in OpenGL/platform/egl.py '' + '' # https://github.com/NixOS/nixpkgs/issues/76822 # pyopengl introduced a new "robust" way of loading libraries in 3.1.4. @@ -48,7 +52,7 @@ buildPythonPackage rec { # The following patch put back the "name" (i.e. the path) in the # list of possible files. substituteInPlace OpenGL/platform/ctypesloader.py \ - --replace "filenames_to_try = []" "filenames_to_try = [name]" + --replace "filenames_to_try = [base_name]" "filenames_to_try = [name]" ''; # Need to fix test runner @@ -61,7 +65,7 @@ buildPythonPackage rec { pythonImportsCheck = "OpenGL"; meta = with lib; { - homepage = "https://pyopengl.sourceforge.net/"; + homepage = "https://mcfletch.github.io/pyopengl/"; description = "PyOpenGL, the Python OpenGL bindings"; longDescription = '' PyOpenGL is the cross platform Python binding to OpenGL and From 559d06bbb2c1db2a322c1508dccc241e1f95a56f Mon Sep 17 00:00:00 2001 From: Robert Hensing Date: Mon, 15 Jan 2024 09:02:45 +0100 Subject: [PATCH 38/59] trivial-builders: Remove redundant docs - link instead --- .../trivial-build-helpers.chapter.md | 2 +- .../trivial-builders/default.nix | 107 ++---------------- 2 files changed, 13 insertions(+), 96 deletions(-) diff --git a/doc/build-helpers/trivial-build-helpers.chapter.md b/doc/build-helpers/trivial-build-helpers.chapter.md index d21b311516d9..398fb60fc880 100644 --- a/doc/build-helpers/trivial-build-helpers.chapter.md +++ b/doc/build-helpers/trivial-build-helpers.chapter.md @@ -58,7 +58,7 @@ Variant of `runCommand` that forces the derivation to be built locally, it is no This sets [`allowSubstitutes` to `false`](https://nixos.org/nix/manual/#adv-attr-allowSubstitutes), so only use `runCommandLocal` if you are certain the user will always have a builder for the `system` of the derivation. This should be true for most trivial use cases (e.g., just copying some files to a different location or adding symlinks) because there the `system` is usually the same as `builtins.currentSystem`. ::: -## `writeTextFile`, `writeText`, `writeTextDir`, `writeScript`, `writeScriptBin`, `writeShellScript`, `writeShellScriptBin` {#trivial-builder-textwriting} +## `writeTextFile`, `writeText`, `writeTextDir`, `writeScript`, `writeScriptBin`, `writeShellScript`, `writeShellScriptBin` {#trivial-builder-text-writing} Nixpkgs provides the following functions for producing derivations which write text into the Nix store: `writeTextFile`, `writeText`, `writeTextDir`, `writeScript`, `writeScriptBin`, `writeShellScript`, and `writeShellScriptBin`. diff --git a/pkgs/build-support/trivial-builders/default.nix b/pkgs/build-support/trivial-builders/default.nix index bdb79d9bf463..93ae83a8ebd1 100644 --- a/pkgs/build-support/trivial-builders/default.nix +++ b/pkgs/build-support/trivial-builders/default.nix @@ -182,101 +182,32 @@ rec { eval "$checkPhase" ''; - /* - Writes a text file to nix store with no optional parameters available. - - Example: - - - # Writes contents of file to /nix/store/ - writeText "my-file" - '' - Contents of File - ''; - - - */ + # See doc/build-helpers/trivial-build-helpers.chapter.md + # or https://nixos.org/manual/nixpkgs/unstable/#trivial-builder-text-writing writeText = name: text: writeTextFile { inherit name text; }; - /* - Writes a text file to nix store in a specific directory with no - optional parameters available. - - Example: - - - # Writes contents of file to /nix/store//share/my-file - writeTextDir "share/my-file" - '' - Contents of File - ''; - - - */ + # See doc/build-helpers/trivial-build-helpers.chapter.md + # or https://nixos.org/manual/nixpkgs/unstable/#trivial-builder-text-writing writeTextDir = path: text: writeTextFile { inherit text; name = builtins.baseNameOf path; destination = "/${path}"; }; - /* - Writes a text file to /nix/store/ and marks the file as - executable. - - If passed as a build input, will be used as a setup hook. This makes setup - hooks more efficient to create: you don't need a derivation that copies - them to $out/nix-support/setup-hook, instead you can use the file as is. - - Example: - - - # Writes my-file to /nix/store/ and makes executable - writeScript "my-file" - '' - Contents of File - ''; - - - */ + # See doc/build-helpers/trivial-build-helpers.chapter.md + # or https://nixos.org/manual/nixpkgs/unstable/#trivial-builder-text-writing writeScript = name: text: writeTextFile { inherit name text; executable = true; }; - /* - Writes a text file to /nix/store//bin/ and - marks the file as executable. - - Example: - - - - # Writes my-file to /nix/store//bin/my-file and makes executable. - writeScriptBin "my-file" - '' - Contents of File - ''; - - - */ + # See doc/build-helpers/trivial-build-helpers.chapter.md + # or https://nixos.org/manual/nixpkgs/unstable/#trivial-builder-text-writing writeScriptBin = name: text: writeTextFile { inherit name text; executable = true; destination = "/bin/${name}"; }; - /* - Similar to writeScript. Writes a Shell script and checks its syntax. - Automatically includes interpreter above the contents passed. - - Example: - - - # Writes my-file to /nix/store/ and makes executable. - writeShellScript "my-file" - '' - Contents of File - ''; - - - */ + # See doc/build-helpers/trivial-build-helpers.chapter.md + # or https://nixos.org/manual/nixpkgs/unstable/#trivial-builder-text-writing writeShellScript = name: text: writeTextFile { inherit name; @@ -290,22 +221,8 @@ rec { ''; }; - /* - Similar to writeShellScript and writeScriptBin. - Writes an executable Shell script to /nix/store//bin/ and checks its syntax. - Automatically includes interpreter above the contents passed. - - Example: - - - # Writes my-file to /nix/store//bin/my-file and makes executable. - writeShellScriptBin "my-file" - '' - Contents of File - ''; - - - */ + # See doc/build-helpers/trivial-build-helpers.chapter.md + # or https://nixos.org/manual/nixpkgs/unstable/#trivial-builder-text-writing writeShellScriptBin = name: text: writeTextFile { inherit name; From 7a2dce123927fca365357f2d837a645502afee83 Mon Sep 17 00:00:00 2001 From: Victor Engmark Date: Sun, 10 Dec 2023 16:32:25 +1300 Subject: [PATCH 39/59] aws-azure-login: Take maintainership The original maintainer no longer uses this software . --- pkgs/by-name/aw/aws-azure-login/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/aw/aws-azure-login/package.nix b/pkgs/by-name/aw/aws-azure-login/package.nix index a32648fa321c..a98eb443107f 100644 --- a/pkgs/by-name/aw/aws-azure-login/package.nix +++ b/pkgs/by-name/aw/aws-azure-login/package.nix @@ -70,7 +70,7 @@ stdenv.mkDerivation rec { homepage = "https://github.com/aws-azure-login/aws-azure-login"; license = lib.licenses.mit; mainProgram = "aws-azure-login"; - maintainers = with lib.maintainers; [ yurrriq ]; + maintainers = with lib.maintainers; [ l0b0 ]; platforms = lib.platforms.all; }; } From 44896b15cb8c355c701681c67ae7701648500a82 Mon Sep 17 00:00:00 2001 From: Victor Engmark Date: Thu, 7 Dec 2023 15:45:29 +1300 Subject: [PATCH 40/59] aws-azure-login: Link Puppeteer to Chromium Closes #272544. The test verifies that the command fails for the *right* reason, rather than the original issue: > Error: Could not find expected browser (chrome) locally. Run `npm > install` to download the correct Chromium revision (982053). --- pkgs/by-name/aw/aws-azure-login/package.nix | 20 +++++++++++------ pkgs/by-name/aw/aws-azure-login/tests.nix | 24 +++++++++++++++++++++ 2 files changed, 37 insertions(+), 7 deletions(-) create mode 100644 pkgs/by-name/aw/aws-azure-login/tests.nix diff --git a/pkgs/by-name/aw/aws-azure-login/package.nix b/pkgs/by-name/aw/aws-azure-login/package.nix index a98eb443107f..099726ba9e8d 100644 --- a/pkgs/by-name/aw/aws-azure-login/package.nix +++ b/pkgs/by-name/aw/aws-azure-login/package.nix @@ -1,5 +1,7 @@ { lib +, callPackage , stdenv +, chromium , fetchFromGitHub , fetchYarnDeps , makeWrapper @@ -7,24 +9,23 @@ , prefetch-yarn-deps , yarn }: - -stdenv.mkDerivation rec { +stdenv.mkDerivation (finalAttrs: { pname = "aws-azure-login"; version = "3.6.1"; src = fetchFromGitHub { owner = "aws-azure-login"; repo = "aws-azure-login"; - rev = "v${version}"; + rev = "v${finalAttrs.version}"; hash = "sha256-PvPnqaKD98h3dCjEOwF+Uc86xCJzn2b9XNHHn13h/2Y="; }; offlineCache = fetchYarnDeps { - yarnLock = "${src}/yarn.lock"; + yarnLock = "${finalAttrs.src}/yarn.lock"; hash = "sha256-SXQPRzF6b1FJl5HkyXNm3kGoNSDXux+0RYXBX93mOts="; }; - nativeBuildInputs = [ + nativeBuildInputs = [ makeWrapper nodejs prefetch-yarn-deps @@ -60,11 +61,16 @@ stdenv.mkDerivation rec { cp -r . "$out/lib/node_modules/aws-azure-login" makeWrapper "${nodejs}/bin/node" "$out/bin/aws-azure-login" \ - --add-flags "$out/lib/node_modules/aws-azure-login/lib/index.js" + --add-flags "$out/lib/node_modules/aws-azure-login/lib/index.js" \ + --set PUPPETEER_EXECUTABLE_PATH "${lib.getExe chromium}" runHook postInstall ''; + passthru.tests.aws-azure-login = callPackage ./tests.nix { + package = finalAttrs.finalPackage; + }; + meta = { description = "Use Azure AD SSO to log into the AWS via CLI"; homepage = "https://github.com/aws-azure-login/aws-azure-login"; @@ -73,4 +79,4 @@ stdenv.mkDerivation rec { maintainers = with lib.maintainers; [ l0b0 ]; platforms = lib.platforms.all; }; -} +}) diff --git a/pkgs/by-name/aw/aws-azure-login/tests.nix b/pkgs/by-name/aw/aws-azure-login/tests.nix new file mode 100644 index 000000000000..694492322c86 --- /dev/null +++ b/pkgs/by-name/aw/aws-azure-login/tests.nix @@ -0,0 +1,24 @@ +{ lib +, runCommand +, package +}: + runCommand "${package.pname}-tests" + { + HOME = "/tmp/home"; + } '' + mkdir -p "''${HOME}/.aws" + cat > "''${HOME}/.aws/config" <<'EOF' + [profile my-profile] + azure_tenant_id=3f03e308-ada1-45f7-9cc3-ab777eaba2d3 + azure_app_id_uri=4fbf61f5-7302-42e5-9585-b18ad0e4649d + azure_default_username=user@example.org + azure_default_role_arn= + azure_default_duration_hours=1 + azure_default_remember_me=false + EOF + + ! ${lib.getExe package} --profile=my-profile 2> stderr + [[ "$(cat stderr)" == 'Unable to recognize page state! A screenshot has been dumped to aws-azure-login-unrecognized-state.png. If this problem persists, try running with --mode=gui or --mode=debug' ]] + + touch $out + '' From 25f6ddf60104cfede4842b0462b473a90dd07c23 Mon Sep 17 00:00:00 2001 From: Ches Martin Date: Mon, 15 Jan 2024 17:15:18 +0700 Subject: [PATCH 41/59] poetry: Relax dep requirement check for xattr Following from #280522, the xattr dependency still failed the pythonRuntimeDepsCheck hook, likely overlooked because it is a Darwin-only dep: > Checking runtime dependencies for poetry-1.7.1-py3-none-any.whl > - xattr<0.11.0,>=0.10.0 not satisfied by version 1.0.0 From 0.10.0 to 1.0.0 there are no functional changes with compatibility implications, only dropped support for Python 2. --- pkgs/tools/package-management/poetry/unwrapped.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/tools/package-management/poetry/unwrapped.nix b/pkgs/tools/package-management/poetry/unwrapped.nix index 009dec1a6c25..53e61354deed 100644 --- a/pkgs/tools/package-management/poetry/unwrapped.nix +++ b/pkgs/tools/package-management/poetry/unwrapped.nix @@ -61,6 +61,8 @@ buildPythonPackage rec { pythonRelaxDeps = [ # platformdirs 4.x is backwards compatible; https://github.com/python-poetry/poetry/commit/eb80d10846f7336b0b2a66ce2964e72dffee9a1c "platformdirs" + # xattr 1.0 is backwards compatible modulo dropping Python 2 support: https://github.com/xattr/xattr/compare/v0.10.0...v1.0.0 + "xattr" ]; propagatedBuildInputs = [ From 0cc5d8ad91526d310e0484f214a08c3a9f21e423 Mon Sep 17 00:00:00 2001 From: Jonathan Davies Date: Wed, 10 Jan 2024 12:31:03 +0000 Subject: [PATCH 42/59] =?UTF-8?q?vector:=200.34.2=20=E2=86=92=200.35.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkgs/tools/misc/vector/Cargo.lock | 1569 ++++++++++--------- pkgs/tools/misc/vector/default.nix | 12 +- pkgs/tools/misc/vector/vector-pr19075.patch | 23 - 3 files changed, 872 insertions(+), 732 deletions(-) delete mode 100644 pkgs/tools/misc/vector/vector-pr19075.patch diff --git a/pkgs/tools/misc/vector/Cargo.lock b/pkgs/tools/misc/vector/Cargo.lock index adbac39dd892..193099d1733d 100644 --- a/pkgs/tools/misc/vector/Cargo.lock +++ b/pkgs/tools/misc/vector/Cargo.lock @@ -66,7 +66,7 @@ version = "0.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a824f2aa7e75a0c98c5a504fceb80649e9c35265d44525b5f94de4771a395cd" dependencies = [ - "getrandom 0.2.10", + "getrandom 0.2.11", "once_cell", "version_check", ] @@ -78,7 +78,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "91429305e9f0a25f6205c5b8e0d2db09e0708a7a6df0f42212bb56c32c8ac97a" dependencies = [ "cfg-if", - "getrandom 0.2.10", + "getrandom 0.2.11", "once_cell", "version_check", "zerocopy", @@ -227,15 +227,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.75" +version = "1.0.76" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6" - -[[package]] -name = "anymap" -version = "1.0.0-beta.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f1f8f5a6f3d50d89e3797d7593a50f96bb2aaa20ca0cc7be1fb673232c91d72" +checksum = "59d2a3357dde987206219e78ecfbbb6e8dad06cbb65292758d3270e6254f7355" [[package]] name = "apache-avro" @@ -302,7 +296,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c6368f9ae5c6ec403ca910327ae0c9437b0a85255b6950c90d497e6177f6e5e" dependencies = [ "proc-macro-hack", - "quote 1.0.33", + "quote 1.0.35", "syn 1.0.109", ] @@ -355,7 +349,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "88903cb14723e4d4003335bb7f8a14f27691649105346a0f0957466c096adfe6" dependencies = [ "anstyle", - "bstr 1.7.0", + "bstr 1.9.0", "doc-comment", "predicates", "predicates-core", @@ -389,9 +383,9 @@ dependencies = [ [[package]] name = "async-compression" -version = "0.4.4" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f658e2baef915ba0f26f1f7c42bfb8e12f532a01f449a090ded75ae7a07e9ba2" +checksum = "bc2d0cfb2a7388d34f590e76686704c494ed7aaceed62ee1ba35cbf363abc2a5" dependencies = [ "flate2", "futures-core", @@ -456,9 +450,9 @@ dependencies = [ [[package]] name = "async-graphql" -version = "6.0.9" +version = "6.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "117113a7ff4a98f2a864fa7a5274033b0907fce65dc8464993c75033f8074f90" +checksum = "298a5d587d6e6fdb271bf56af2dc325a80eb291fd0fc979146584b9a05494a8c" dependencies = [ "async-graphql-derive", "async-graphql-parser", @@ -470,7 +464,7 @@ dependencies = [ "chrono", "fnv", "futures-util", - "http", + "http 0.2.9", "indexmap 2.1.0", "mime", "multer", @@ -487,26 +481,26 @@ dependencies = [ [[package]] name = "async-graphql-derive" -version = "6.0.9" +version = "6.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e4bb7b7b2344d24af860776b7fe4e4ee4a67cd965f076048d023f555703b854" +checksum = "c7f329c7eb9b646a72f70c9c4b516c70867d356ec46cb00dcac8ad343fd006b0" dependencies = [ "Inflector", "async-graphql-parser", "darling 0.20.3", "proc-macro-crate 1.3.1", - "proc-macro2 1.0.69", - "quote 1.0.33", + "proc-macro2 1.0.74", + "quote 1.0.35", "strum", - "syn 2.0.39", + "syn 2.0.46", "thiserror", ] [[package]] name = "async-graphql-parser" -version = "6.0.9" +version = "6.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c47e1c1ff6cb7cae62c9cd768d76475cc68f156d8234b024fd2499ad0e91da21" +checksum = "6139181845757fd6a73fbb8839f3d036d7150b798db0e9bb3c6e83cdd65bd53b" dependencies = [ "async-graphql-value", "pest", @@ -516,9 +510,9 @@ dependencies = [ [[package]] name = "async-graphql-value" -version = "6.0.9" +version = "6.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2270df3a642efce860ed06fbcf61fc6db10f83c2ecb5613127fb453c82e012a4" +checksum = "323a5143f5bdd2030f45e3f2e0c821c9b1d36e79cf382129c64299c50a7f3750" dependencies = [ "bytes 1.5.0", "indexmap 2.1.0", @@ -528,9 +522,9 @@ dependencies = [ [[package]] name = "async-graphql-warp" -version = "6.0.9" +version = "6.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d54ac2c41da8f2bc2b5976227d585e787b55f696660d26fd6e1bee50e740f98" +checksum = "fa68237ec9f2190cae295122ba45612b992658fbc372d142c6c6981cc70a9eac" dependencies = [ "async-graphql", "futures-util", @@ -571,7 +565,7 @@ dependencies = [ "futures-lite", "parking", "polling 3.3.0", - "rustix 0.38.21", + "rustix 0.38.28", "slab", "tracing 0.1.40", "waker-fn", @@ -600,21 +594,21 @@ dependencies = [ [[package]] name = "async-nats" -version = "0.32.1" +version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e45b67ea596bb94741ef15ba1d90b72c92bdc07553d8033734cb620a2b39f1c" +checksum = "dbc1f1a75fd07f0f517322d103211f12d757658e91676def9a2e688774656c60" dependencies = [ "base64 0.21.5", "bytes 1.5.0", - "futures 0.3.29", - "http", + "futures 0.3.30", + "http 0.2.9", "memchr", - "nkeys", + "nkeys 0.3.2", "nuid", "once_cell", "rand 0.8.5", "regex", - "ring 0.16.20", + "ring 0.17.5", "rustls 0.21.8", "rustls-native-certs", "rustls-pemfile", @@ -656,7 +650,7 @@ dependencies = [ "cfg-if", "event-listener 3.0.1", "futures-lite", - "rustix 0.38.21", + "rustix 0.38.28", "windows-sys 0.48.0", ] @@ -678,9 +672,9 @@ version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5fd55a5ba1179988837d24ab4c7cc8ed6efdeff578ede0416b4225a5fca35bd0" dependencies = [ - "proc-macro2 1.0.69", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.74", + "quote 1.0.35", + "syn 2.0.46", ] [[package]] @@ -695,7 +689,7 @@ dependencies = [ "cfg-if", "futures-core", "futures-io", - "rustix 0.38.21", + "rustix 0.38.28", "signal-hook-registry", "slab", "windows-sys 0.48.0", @@ -718,9 +712,9 @@ version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" dependencies = [ - "proc-macro2 1.0.69", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.74", + "quote 1.0.35", + "syn 2.0.46", ] [[package]] @@ -731,13 +725,13 @@ checksum = "b4eb2cdb97421e01129ccb49169d8279ed21e829929144f4a22a6e54ac549ca1" [[package]] name = "async-trait" -version = "0.1.74" +version = "0.1.75" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9" +checksum = "fdf6721fb0140e4f897002dd086c06f6c27775df19cfe1fccb21181a48fd2c98" dependencies = [ - "proc-macro2 1.0.69", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.74", + "quote 1.0.35", + "syn 2.0.46", ] [[package]] @@ -781,7 +775,7 @@ dependencies = [ "aws-types", "bytes 1.5.0", "hex", - "http", + "http 0.2.9", "hyper", "ring 0.16.20", "time", @@ -811,7 +805,7 @@ dependencies = [ "aws-smithy-http", "aws-smithy-types", "aws-types", - "http", + "http 0.2.9", "regex", "tracing 0.1.40", ] @@ -826,7 +820,7 @@ dependencies = [ "aws-smithy-types", "aws-types", "bytes 1.5.0", - "http", + "http 0.2.9", "http-body", "lazy_static", "percent-encoding", @@ -853,7 +847,7 @@ dependencies = [ "aws-smithy-xml", "aws-types", "bytes 1.5.0", - "http", + "http 0.2.9", "regex", "tokio-stream", "tower", @@ -876,7 +870,7 @@ dependencies = [ "aws-smithy-types", "aws-types", "bytes 1.5.0", - "http", + "http 0.2.9", "regex", "tokio-stream", "tower", @@ -899,7 +893,7 @@ dependencies = [ "aws-smithy-types", "aws-types", "bytes 1.5.0", - "http", + "http 0.2.9", "regex", "tokio-stream", "tower", @@ -922,7 +916,7 @@ dependencies = [ "aws-smithy-types", "aws-types", "bytes 1.5.0", - "http", + "http 0.2.9", "regex", "tower", ] @@ -944,7 +938,7 @@ dependencies = [ "aws-smithy-types", "aws-types", "bytes 1.5.0", - "http", + "http 0.2.9", "regex", "tokio-stream", "tower", @@ -973,7 +967,7 @@ dependencies = [ "bytes 1.5.0", "bytes-utils", "fastrand 1.9.0", - "http", + "http 0.2.9", "http-body", "once_cell", "percent-encoding", @@ -1003,7 +997,7 @@ dependencies = [ "aws-smithy-xml", "aws-types", "bytes 1.5.0", - "http", + "http 0.2.9", "regex", "tokio-stream", "tower", @@ -1028,7 +1022,7 @@ dependencies = [ "aws-smithy-xml", "aws-types", "bytes 1.5.0", - "http", + "http 0.2.9", "regex", "tokio-stream", "tower", @@ -1051,7 +1045,7 @@ dependencies = [ "aws-smithy-types", "aws-types", "bytes 1.5.0", - "http", + "http 0.2.9", "regex", "tokio-stream", "tower", @@ -1076,7 +1070,7 @@ dependencies = [ "aws-smithy-xml", "aws-types", "bytes 1.5.0", - "http", + "http 0.2.9", "regex", "tower", "tracing 0.1.40", @@ -1092,7 +1086,7 @@ dependencies = [ "aws-smithy-eventstream", "aws-smithy-http", "aws-types", - "http", + "http 0.2.9", "tracing 0.1.40", ] @@ -1107,7 +1101,7 @@ dependencies = [ "form_urlencoded", "hex", "hmac", - "http", + "http 0.2.9", "once_cell", "percent-encoding", "regex", @@ -1138,7 +1132,7 @@ dependencies = [ "crc32c", "crc32fast", "hex", - "http", + "http 0.2.9", "http-body", "md-5", "pin-project-lite", @@ -1159,7 +1153,7 @@ dependencies = [ "aws-smithy-types", "bytes 1.5.0", "fastrand 1.9.0", - "http", + "http 0.2.9", "http-body", "hyper", "hyper-rustls 0.23.2", @@ -1192,7 +1186,7 @@ dependencies = [ "bytes 1.5.0", "bytes-utils", "futures-core", - "http", + "http 0.2.9", "http-body", "hyper", "once_cell", @@ -1210,7 +1204,7 @@ dependencies = [ "aws-smithy-http", "aws-smithy-types", "bytes 1.5.0", - "http", + "http 0.2.9", "http-body", "pin-project-lite", "tower", @@ -1231,7 +1225,7 @@ version = "0.54.1" source = "git+https://github.com/vectordotdev/aws-sdk-rust?rev=3d6aefb7fcfced5fc2a7e761a87e4ddbda1ee670#3d6aefb7fcfced5fc2a7e761a87e4ddbda1ee670" dependencies = [ "assert-json-diff 1.1.0", - "http", + "http 0.2.9", "pretty_assertions", "regex", "roxmltree 0.14.1", @@ -1278,7 +1272,7 @@ dependencies = [ "aws-smithy-client", "aws-smithy-http", "aws-smithy-types", - "http", + "http 0.2.9", "rustc_version 0.4.0", "tracing 0.1.40", ] @@ -1294,7 +1288,7 @@ dependencies = [ "bitflags 1.3.2", "bytes 1.5.0", "futures-util", - "http", + "http 0.2.9", "http-body", "hyper", "itoa", @@ -1321,7 +1315,7 @@ dependencies = [ "async-trait", "bytes 1.5.0", "futures-util", - "http", + "http 0.2.9", "http-body", "mime", "rustversion", @@ -1339,8 +1333,8 @@ dependencies = [ "base64 0.21.5", "bytes 1.5.0", "dyn-clone", - "futures 0.3.29", - "getrandom 0.2.10", + "futures 0.3.30", + "getrandom 0.2.11", "http-types", "log", "paste", @@ -1365,7 +1359,7 @@ dependencies = [ "async-lock 3.0.0", "async-trait", "azure_core", - "futures 0.3.29", + "futures 0.3.30", "log", "oauth2", "pin-project", @@ -1387,7 +1381,7 @@ dependencies = [ "async-trait", "azure_core", "bytes 1.5.0", - "futures 0.3.29", + "futures 0.3.30", "hmac", "log", "serde", @@ -1409,7 +1403,7 @@ dependencies = [ "azure_core", "azure_storage", "bytes 1.5.0", - "futures 0.3.29", + "futures 0.3.30", "log", "serde", "serde_derive", @@ -1425,7 +1419,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b62ddb9cb1ec0a098ad4bbf9344d0713fa193ae1a80af55febcff2627b6a00c1" dependencies = [ - "getrandom 0.2.10", + "getrandom 0.2.11", "instant", "rand 0.8.5", ] @@ -1535,8 +1529,8 @@ version = "2.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9990737a6d5740ff51cdbbc0f0503015cb30c390f6623968281eb214a520cfc0" dependencies = [ - "quote 1.0.33", - "syn 2.0.39", + "quote 1.0.35", + "syn 2.0.46", ] [[package]] @@ -1608,7 +1602,7 @@ dependencies = [ "futures-util", "hex", "home", - "http", + "http 0.2.9", "hyper", "hyper-rustls 0.24.2", "hyperlocal", @@ -1645,54 +1639,33 @@ dependencies = [ [[package]] name = "borsh" -version = "0.10.3" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4114279215a005bc675e386011e594e1d9b800918cea18fcadadcce864a2046b" +checksum = "bf617fabf5cdbdc92f774bfe5062d870f228b80056d41180797abf48bed4056e" dependencies = [ "borsh-derive", - "hashbrown 0.13.1", + "cfg_aliases", ] [[package]] name = "borsh-derive" -version = "0.10.3" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0754613691538d51f329cce9af41d7b7ca150bc973056f1156611489475f54f7" +checksum = "f404657a7ea7b5249e36808dff544bc88a28f26e0ac40009f674b7a009d14be3" dependencies = [ - "borsh-derive-internal", - "borsh-schema-derive-internal", - "proc-macro-crate 0.1.5", - "proc-macro2 1.0.69", - "syn 1.0.109", -] - -[[package]] -name = "borsh-derive-internal" -version = "0.10.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afb438156919598d2c7bad7e1c0adf3d26ed3840dbc010db1a882a65583ca2fb" -dependencies = [ - "proc-macro2 1.0.69", - "quote 1.0.33", - "syn 1.0.109", -] - -[[package]] -name = "borsh-schema-derive-internal" -version = "0.10.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "634205cc43f74a1b9046ef87c4540ebda95696ec0f315024860cad7c5b0f5ccd" -dependencies = [ - "proc-macro2 1.0.69", - "quote 1.0.33", - "syn 1.0.109", + "once_cell", + "proc-macro-crate 2.0.0", + "proc-macro2 1.0.74", + "quote 1.0.35", + "syn 2.0.46", + "syn_derive", ] [[package]] name = "bson" -version = "2.7.0" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58da0ae1e701ea752cc46c1bb9f39d5ecefc7395c3ecd526261a566d4f16e0c2" +checksum = "61570f4de0cc9c03b481c96057b3ae7c6ff7b5b35da8b0832c44f0131987a718" dependencies = [ "ahash 0.8.6", "base64 0.13.1", @@ -1722,9 +1695,9 @@ dependencies = [ [[package]] name = "bstr" -version = "1.7.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c79ad7fb2dd38f3dabd76b09c6a5a20c038fc0213ef1e9afd30eb777f120f019" +checksum = "c48f0051a4b4c5e0b6d365cd04af53aeaa209e3cc15ec2cdb69e73cc87fbd0dc" dependencies = [ "memchr", "regex-automata 0.4.3", @@ -1754,8 +1727,8 @@ version = "0.6.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a7ec4c6f261935ad534c0c22dbef2201b45918860eb1c574b972bd213a76af61" dependencies = [ - "proc-macro2 1.0.69", - "quote 1.0.33", + "proc-macro2 1.0.74", + "quote 1.0.35", "syn 1.0.109", ] @@ -1815,7 +1788,7 @@ dependencies = [ "ahash 0.8.6", "cached_proc_macro", "cached_proc_macro_types", - "hashbrown 0.14.2", + "hashbrown 0.14.3", "instant", "once_cell", "thiserror", @@ -1828,8 +1801,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c878c71c2821aa2058722038a59a67583a4240524687c6028571c9b395ded61f" dependencies = [ "darling 0.14.4", - "proc-macro2 1.0.69", - "quote 1.0.33", + "proc-macro2 1.0.74", + "quote 1.0.35", "syn 1.0.109", ] @@ -1841,12 +1814,12 @@ checksum = "3a4f925191b4367301851c6d99b09890311d74b0d43f274c0b34c86d308a3663" [[package]] name = "cargo_toml" -version = "0.17.0" +version = "0.17.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ca592ad99e6a0fd4b95153406138b997cc26ccd3cd0aecdfd4fbdbf1519bd77" +checksum = "8a969e13a7589e9e3e4207e153bae624ade2b5622fb4684a4923b23ec3d57719" dependencies = [ "serde", - "toml 0.8.6", + "toml 0.8.8", ] [[package]] @@ -1901,6 +1874,12 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +[[package]] +name = "cfg_aliases" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" + [[package]] name = "chacha20" version = "0.9.1" @@ -1952,9 +1931,9 @@ dependencies = [ [[package]] name = "chrono-tz" -version = "0.8.4" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e23185c0e21df6ed832a12e2bda87c7d1def6842881fb634a8511ced741b0d76" +checksum = "91d7b79e99bfaa0d47da0687c43aa3b7381938a62ad3a6498599039321f660b7" dependencies = [ "chrono", "chrono-tz-build", @@ -2000,6 +1979,12 @@ dependencies = [ "half", ] +[[package]] +name = "cidr" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d18b093eba54c9aaa1e3784d4361eb2ba944cf7d0a932a830132238f483e8d8" + [[package]] name = "cidr-utils" version = "0.5.11" @@ -2013,6 +1998,17 @@ dependencies = [ "regex", ] +[[package]] +name = "cidr-utils" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25c0a9fb70c2c2cc2a520aa259b1d1345650046a07df1b6da1d3cefcd327f43e" +dependencies = [ + "cidr", + "num-bigint", + "num-traits", +] + [[package]] name = "cipher" version = "0.4.4" @@ -2041,9 +2037,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.4.7" +version = "4.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac495e00dcec98c83465d5ad66c5c4fabd652fd6686e7c6269b117e729a6f17b" +checksum = "dcfab8ba68f3668e89f6ff60f5b205cea56aa7b769451a59f34b8682f51c056d" dependencies = [ "clap_builder", "clap_derive", @@ -2051,19 +2047,19 @@ dependencies = [ [[package]] name = "clap-verbosity-flag" -version = "2.1.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5fdbb015d790cfb378aca82caf9cc52a38be96a7eecdb92f31b4366a8afc019" +checksum = "3c90e95e5bd4e8ac34fa6f37c774b0c6f8ed06ea90c79931fd448fcf941a9767" dependencies = [ - "clap 4.4.7", + "clap 4.4.12", "log", ] [[package]] name = "clap_builder" -version = "4.4.7" +version = "4.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c77ed9a32a62e6ca27175d00d29d05ca32e396ea1eb5fb01d8256b669cec7663" +checksum = "fb7fb5e4e979aec3be7791562fcba452f94ad85e954da024396433e0e25a79e9" dependencies = [ "anstream", "anstyle", @@ -2074,11 +2070,11 @@ dependencies = [ [[package]] name = "clap_complete" -version = "4.4.4" +version = "4.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bffe91f06a11b4b9420f62103854e90867812cd5d01557f853c5ee8e791b12ae" +checksum = "97aeaa95557bd02f23fbb662f981670c3d20c5a26e69f7354b28f57092437fcd" dependencies = [ - "clap 4.4.7", + "clap 4.4.12", ] [[package]] @@ -2088,9 +2084,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cf9804afaaf59a91e75b022a30fb7229a7901f60c755489cc61c9b423b836442" dependencies = [ "heck 0.4.1", - "proc-macro2 1.0.69", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.74", + "quote 1.0.35", + "syn 2.0.46", ] [[package]] @@ -2101,13 +2097,11 @@ checksum = "702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1" [[package]] name = "clipboard-win" -version = "4.5.0" +version = "5.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7191c27c2357d9b7ef96baac1773290d4ca63b24205b82a3fd8a0637afcf0362" +checksum = "c57002a5d9be777c1ef967e33674dac9ebd310d8893e4e3437b14d5f0f6372cc" dependencies = [ "error-code", - "str-buf", - "winapi", ] [[package]] @@ -2129,14 +2123,15 @@ dependencies = [ "csv-core", "derivative", "dyn-clone", - "futures 0.3.29", + "futures 0.3.30", "indoc", "memchr", "once_cell", - "ordered-float 4.1.1", - "prost 0.12.1", + "ordered-float 4.2.0", + "prost 0.12.3", "prost-reflect", "regex", + "rstest", "serde", "serde_json", "similar-asserts", @@ -2146,6 +2141,7 @@ dependencies = [ "tokio", "tokio-util", "tracing 0.1.40", + "uuid", "vector-common", "vector-config", "vector-config-common", @@ -2173,11 +2169,10 @@ checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" [[package]] name = "colored" -version = "2.0.4" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2674ec482fbc38012cf31e6c42ba0177b431a0cb6f15fe40efa5aab1bda516f6" +checksum = "cbf2150cce219b664a8a70df7a1f933836724b503f8a413af9365b4dcc4d90b8" dependencies = [ - "is-terminal", "lazy_static", "windows-sys 0.48.0", ] @@ -2264,8 +2259,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fd326812b3fd01da5bb1af7d340d0d555fd3d4b641e7f1dfcf5962a902952787" dependencies = [ "futures-core", - "prost 0.12.1", - "prost-types 0.12.1", + "prost 0.12.3", + "prost-types 0.12.3", "tonic 0.10.2", "tracing-core 0.1.32", ] @@ -2282,7 +2277,7 @@ dependencies = [ "futures-task", "hdrhistogram", "humantime", - "prost-types 0.12.1", + "prost-types 0.12.3", "serde", "serde_json", "thread_local", @@ -2403,9 +2398,9 @@ dependencies = [ "anes", "cast", "ciborium", - "clap 4.4.7", + "clap 4.4.12", "criterion-plot", - "futures 0.3.29", + "futures 0.3.30", "is-terminal", "itertools 0.10.5", "num-traits", @@ -2478,9 +2473,9 @@ dependencies = [ [[package]] name = "crossbeam-utils" -version = "0.8.16" +version = "0.8.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294" +checksum = "c3a430a770ebd84726f584a90ee7f020d28db52c6d02138900f22341f866d39c" dependencies = [ "cfg-if", ] @@ -2519,9 +2514,9 @@ checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" [[package]] name = "crypto-bigint" -version = "0.5.3" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "740fe28e594155f10cfc383984cbefd529d7396050557148f79cb0f621204124" +checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" dependencies = [ "generic-array", "rand_core 0.6.4", @@ -2608,9 +2603,9 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ - "proc-macro2 1.0.69", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.74", + "quote 1.0.35", + "syn 2.0.46", ] [[package]] @@ -2651,8 +2646,8 @@ checksum = "859d65a907b6852c9361e3185c862aae7fafd2887876799fa55f5f99dc40d610" dependencies = [ "fnv", "ident_case", - "proc-macro2 1.0.69", - "quote 1.0.33", + "proc-macro2 1.0.74", + "quote 1.0.35", "strsim 0.10.0", "syn 1.0.109", ] @@ -2665,8 +2660,8 @@ checksum = "109c1ca6e6b7f82cc233a97004ea8ed7ca123a9af07a8230878fcfda9b158bf0" dependencies = [ "fnv", "ident_case", - "proc-macro2 1.0.69", - "quote 1.0.33", + "proc-macro2 1.0.74", + "quote 1.0.35", "strsim 0.10.0", "syn 1.0.109", ] @@ -2679,10 +2674,10 @@ checksum = "177e3443818124b357d8e76f53be906d60937f0d3a90773a664fa63fa253e621" dependencies = [ "fnv", "ident_case", - "proc-macro2 1.0.69", - "quote 1.0.33", + "proc-macro2 1.0.74", + "quote 1.0.35", "strsim 0.10.0", - "syn 2.0.39", + "syn 2.0.46", ] [[package]] @@ -2692,7 +2687,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c972679f83bdf9c42bd905396b6c3588a843a17f0f16dfcfa3e2c5d57441835" dependencies = [ "darling_core 0.13.4", - "quote 1.0.33", + "quote 1.0.35", "syn 1.0.109", ] @@ -2703,7 +2698,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a4aab4dbc9f7611d8b55048a3a16d2d010c2c8334e46304b40ac1cc14bf3b48e" dependencies = [ "darling_core 0.14.4", - "quote 1.0.33", + "quote 1.0.35", "syn 1.0.109", ] @@ -2714,8 +2709,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "836a9bbc7ad63342d6d6e7b815ccab164bc77a2d95d84bc3117a8c0d5c98e2d5" dependencies = [ "darling_core 0.20.3", - "quote 1.0.33", - "syn 2.0.39", + "quote 1.0.35", + "syn 2.0.46", ] [[package]] @@ -2731,7 +2726,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856" dependencies = [ "cfg-if", - "hashbrown 0.14.2", + "hashbrown 0.14.3", "lock_api", "once_cell", "parking_lot_core", @@ -2739,15 +2734,15 @@ dependencies = [ [[package]] name = "data-encoding" -version = "2.4.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2e66c9d817f1720209181c316d28635c050fa304f9c79e47a520882661b7308" +checksum = "7e962a19be5cfc3f3bf6dd8f61eb50107f356ad6270fbb3ed41476571db78be5" [[package]] name = "data-url" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41b319d1b62ffbd002e057f36bebd1f42b9f97927c9577461d855f3513c4289f" +checksum = "5c297a1c74b71ae29df00c3e22dd9534821d60eb9af5a0192823fa2acea70c2a" [[package]] name = "db-key" @@ -2807,8 +2802,8 @@ version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" dependencies = [ - "proc-macro2 1.0.69", - "quote 1.0.33", + "proc-macro2 1.0.74", + "quote 1.0.35", "syn 1.0.109", ] @@ -2818,9 +2813,9 @@ version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "67e77553c4162a157adbf834ebae5b415acbecbeafc7a74b0e886657506a7611" dependencies = [ - "proc-macro2 1.0.69", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.74", + "quote 1.0.35", + "syn 2.0.46", ] [[package]] @@ -2830,8 +2825,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" dependencies = [ "convert_case 0.4.0", - "proc-macro2 1.0.69", - "quote 1.0.33", + "proc-macro2 1.0.74", + "quote 1.0.35", "rustc_version 0.4.0", "syn 1.0.109", ] @@ -2940,8 +2935,8 @@ version = "0.1.0" dependencies = [ "criterion", "data-encoding", + "hickory-proto", "thiserror", - "trust-dns-proto 0.23.2", ] [[package]] @@ -2990,9 +2985,9 @@ checksum = "545b22097d44f8a9581187cdf93de7a71e4722bf51200cfaba810865b49a495d" [[package]] name = "ecdsa" -version = "0.16.8" +version = "0.16.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4b1e0c257a9e9f25f90ff76d7a68360ed497ee519c8e428d1825ef0000799d4" +checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" dependencies = [ "der", "digest", @@ -3034,9 +3029,9 @@ checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" [[package]] name = "elliptic-curve" -version = "0.13.6" +version = "0.13.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d97ca172ae9dc9f9b779a6e3a65d308f2af74e5b8c921299075bdb4a0370e914" +checksum = "e9775b22bc152ad86a0cf23f0f348b884b26add12bf741e7ffc4d4ab2ab4d205" dependencies = [ "base16ct", "crypto-bigint", @@ -3107,8 +3102,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "21cdad81446a7f7dc43f6a77409efeb9733d2fa65553efef6018ef257c959b73" dependencies = [ "heck 0.4.1", - "proc-macro2 1.0.69", - "quote 1.0.33", + "proc-macro2 1.0.74", + "quote 1.0.35", "syn 1.0.109", ] @@ -3119,9 +3114,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5ffccbb6966c05b32ef8fbac435df276c4ae4d3dc55a8cd0eb9745e6c12f546a" dependencies = [ "heck 0.4.1", - "proc-macro2 1.0.69", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.74", + "quote 1.0.35", + "syn 2.0.46", ] [[package]] @@ -3131,9 +3126,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f33313078bb8d4d05a2733a94ac4c2d8a0df9a2b84424ebf4f33bfc224a890e" dependencies = [ "once_cell", - "proc-macro2 1.0.69", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.74", + "quote 1.0.35", + "syn 2.0.46", ] [[package]] @@ -3151,9 +3146,9 @@ version = "0.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f95e2801cd355d4a1a3e3953ce6ee5ae9603a5c833455343a8bfe3f44d418246" dependencies = [ - "proc-macro2 1.0.69", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.74", + "quote 1.0.35", + "syn 2.0.46", ] [[package]] @@ -3174,9 +3169,9 @@ dependencies = [ [[package]] name = "env_logger" -version = "0.10.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85cdab6a89accf66733ad5a1693a4dcced6aeff64602b634530dd73c1f3ee9f0" +checksum = "95b3f3e67048839cb0d0781f445682a35113da7121f7c949db0e2be96a4fbece" dependencies = [ "humantime", "is-terminal", @@ -3193,21 +3188,21 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" [[package]] name = "erased-serde" -version = "0.3.31" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c138974f9d5e7fe373eb04df7cae98833802ae4b11c24ac7039a21d5af4b26c" +checksum = "a3286168faae03a0e583f6fde17c02c8b8bba2dcc2061d0f7817066e5b0af706" dependencies = [ "serde", ] [[package]] name = "errno" -version = "0.3.5" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3e13f66a2f95e32a39eaa81f6b95d42878ca0e1db0c7543723dfe12557e860" +checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245" dependencies = [ "libc", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -3221,13 +3216,9 @@ dependencies = [ [[package]] name = "error-code" -version = "2.3.1" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64f18991e7bf11e7ffee451b5318b5c1a73c52d0d0ada6e5a3017c8c1ced6a21" -dependencies = [ - "libc", - "str-buf", -] +checksum = "281e452d3bad4005426416cdba5ccfd4f5c1280e10099e21db27f7c1c28347fc" [[package]] name = "event-listener" @@ -3278,8 +3269,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f47da3a72ec598d9c8937a7ebca8962a5c7a1f28444e38c2b33c771ba3f55f05" dependencies = [ "proc-macro-error", - "proc-macro2 1.0.69", - "quote 1.0.33", + "proc-macro2 1.0.74", + "quote 1.0.35", "syn 1.0.109", ] @@ -3345,14 +3336,14 @@ checksum = "a481586acf778f1b1455424c343f71124b048ffa5f4fc3f8f6ae9dc432dcb3c7" name = "file-source" version = "0.1.0" dependencies = [ - "bstr 1.7.0", + "bstr 1.9.0", "bytes 1.5.0", "chrono", "crc", "criterion", "dashmap", "flate2", - "futures 0.3.29", + "futures 0.3.30", "glob", "indexmap 2.1.0", "libc", @@ -3451,9 +3442,9 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" [[package]] name = "form_urlencoded" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652" +checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" dependencies = [ "percent-encoding", ] @@ -3491,9 +3482,9 @@ checksum = "3a471a38ef8ed83cd6e40aa59c1ffe17db6855c18e3604d9c4ed8c08ebc28678" [[package]] name = "futures" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da0290714b38af9b4a7b094b8a37086d1b4e61f2df9122c3cad2577669145335" +checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0" dependencies = [ "futures-channel", "futures-core", @@ -3506,9 +3497,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff4dd66668b557604244583e3e1e1eada8c5c2e96a6d0d6653ede395b78bbacb" +checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" dependencies = [ "futures-core", "futures-sink", @@ -3516,15 +3507,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb1d22c66e66d9d72e1758f0bd7d4fd0bee04cad842ee34587d68c07e45d088c" +checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" [[package]] name = "futures-executor" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f4fb8693db0cf099eadcca0efe2a5a22e4550f98ed16aba6c48700da29597bc" +checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" dependencies = [ "futures-core", "futures-task", @@ -3533,9 +3524,9 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bf34a163b5c4c52d0478a4d757da8fb65cabef42ba90515efee0f6f9fa45aaa" +checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" [[package]] name = "futures-lite" @@ -3554,26 +3545,26 @@ dependencies = [ [[package]] name = "futures-macro" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53b153fd91e4b0147f4aced87be237c98248656bb01050b96bf3ee89220a8ddb" +checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ - "proc-macro2 1.0.69", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.74", + "quote 1.0.35", + "syn 2.0.46", ] [[package]] name = "futures-sink" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e36d3378ee38c2a36ad710c5d30c2911d752cb941c00c72dbabfb786a7970817" +checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" [[package]] name = "futures-task" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efd193069b0ddadc69c46389b740bbccdd97203899b48d09c5f7969591d6bae2" +checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" [[package]] name = "futures-timer" @@ -3583,9 +3574,9 @@ checksum = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c" [[package]] name = "futures-util" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a19526d624e703a3179b3d322efec918b6246ea0fa51d41124525f00f1cc8104" +checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" dependencies = [ "futures 0.1.31", "futures-channel", @@ -3625,9 +3616,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.10" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427" +checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f" dependencies = [ "cfg-if", "js-sys", @@ -3668,7 +3659,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d351469a584f3b3565e2e740d4da60839bddc4320dadd7d61da8bdd77ffb373b" dependencies = [ "arc-swap", - "futures 0.3.29", + "futures 0.3.30", "log", "reqwest", "serde", @@ -3688,7 +3679,7 @@ checksum = "821239e5672ff23e2a7060901fa622950bbd80b649cdaadd78d1c1767ed14eb4" dependencies = [ "cfg-if", "dashmap", - "futures 0.3.29", + "futures 0.3.30", "futures-timer", "no-std-compat", "nonzero_ext", @@ -3737,8 +3728,8 @@ dependencies = [ "graphql-parser", "heck 0.4.1", "lazy_static", - "proc-macro2 1.0.69", - "quote 1.0.33", + "proc-macro2 1.0.74", + "quote 1.0.35", "serde", "serde_json", "syn 1.0.109", @@ -3751,7 +3742,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "00bda454f3d313f909298f626115092d348bc231025699f557b27e248475f48c" dependencies = [ "graphql_client_codegen", - "proc-macro2 1.0.69", + "proc-macro2 1.0.74", "syn 1.0.109", ] @@ -3774,7 +3765,7 @@ source = "git+https://github.com/GreptimeTeam/greptimedb-client-rust.git?rev=bc3 dependencies = [ "dashmap", "enum_dispatch", - "futures 0.3.29", + "futures 0.3.30", "futures-util", "greptime-proto", "parking_lot", @@ -3811,17 +3802,36 @@ dependencies = [ [[package]] name = "h2" -version = "0.3.21" +version = "0.3.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91fc23aa11be92976ef4729127f1a74adf36d8436f7816b185d18df956790833" +checksum = "4d6250322ef6e60f93f9a2162799302cd6f68f79f6e5d85c8c16f14d1d958178" dependencies = [ "bytes 1.5.0", "fnv", "futures-core", "futures-sink", "futures-util", - "http", - "indexmap 1.9.3", + "http 0.2.9", + "indexmap 2.1.0", + "slab", + "tokio", + "tokio-util", + "tracing 0.1.40", +] + +[[package]] +name = "h2" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1d308f63daf4181410c242d34c11f928dcb3aa105852019e043c9d1f4e4368a" +dependencies = [ + "bytes 1.5.0", + "fnv", + "futures-core", + "futures-sink", + "futures-util", + "http 1.0.0", + "indexmap 2.1.0", "slab", "tokio", "tokio-util", @@ -3860,9 +3870,9 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.14.2" +version = "0.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f93e7192158dbcda357bdec5fb5788eebf8bbac027f3f33e719d29135ae84156" +checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" dependencies = [ "ahash 0.8.6", "allocator-api2", @@ -3870,11 +3880,11 @@ dependencies = [ [[package]] name = "hdrhistogram" -version = "7.5.2" +version = "7.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f19b9f54f7c7f55e31401bb647626ce0cf0f67b0004982ce815b3ee72a02aa8" +checksum = "765c9198f173dd59ce26ff9f95ef0aafd0a0fe01fb9d72841bc5066a4c06511d" dependencies = [ - "base64 0.13.1", + "base64 0.21.5", "byteorder", "crossbeam-channel", "flate2", @@ -3891,7 +3901,7 @@ dependencies = [ "base64 0.21.5", "bytes 1.5.0", "headers-core", - "http", + "http 0.2.9", "httpdate", "mime", "sha1", @@ -3903,7 +3913,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e7f66481bfee273957b1f20485a4ff3362987f85b2c236580d81b4eb7a326429" dependencies = [ - "http", + "http 0.2.9", ] [[package]] @@ -3959,7 +3969,7 @@ version = "0.1.0-rc.1" source = "git+https://github.com/vectordotdev/heim.git?branch=update-nix#76fa765c7ed7fbe43d1465bf52da6b8d19f2d2a9" dependencies = [ "cfg-if", - "futures 0.3.29", + "futures 0.3.30", "glob", "heim-common", "heim-runtime", @@ -4039,7 +4049,7 @@ name = "heim-runtime" version = "0.1.0-rc.1" source = "git+https://github.com/vectordotdev/heim.git?branch=update-nix#76fa765c7ed7fbe43d1465bf52da6b8d19f2d2a9" dependencies = [ - "futures 0.3.29", + "futures 0.3.30", "futures-timer", "once_cell", "smol", @@ -4066,6 +4076,30 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" +[[package]] +name = "hickory-proto" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "091a6fbccf4860009355e3efc52ff4acf37a63489aad7435372d44ceeb6fbbcf" +dependencies = [ + "async-trait", + "cfg-if", + "data-encoding", + "enum-as-inner 0.6.0", + "futures-channel", + "futures-io", + "futures-util", + "idna 0.4.0", + "ipnet", + "once_cell", + "rand 0.8.5", + "thiserror", + "tinyvec", + "tokio", + "tracing 0.1.40", + "url", +] + [[package]] name = "hkdf" version = "0.12.3" @@ -4115,6 +4149,17 @@ dependencies = [ "itoa", ] +[[package]] +name = "http" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b32afd38673a8016f7c9ae69e5af41a58f81b1d31689040f2f1959594ce194ea" +dependencies = [ + "bytes 1.5.0", + "fnv", + "itoa", +] + [[package]] name = "http-body" version = "0.4.5" @@ -4122,7 +4167,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" dependencies = [ "bytes 1.5.0", - "http", + "http 0.2.9", "pin-project-lite", ] @@ -4138,7 +4183,7 @@ version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6f560b665ad9f1572cfcaf034f7fb84338a7ce945216d64a90fd81f046a3caee" dependencies = [ - "http", + "http 0.2.9", "serde", ] @@ -4152,7 +4197,7 @@ dependencies = [ "async-channel", "base64 0.13.1", "futures-lite", - "http", + "http 0.2.9", "infer 0.2.3", "pin-project-lite", "rand 0.7.3", @@ -4183,22 +4228,22 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "hyper" -version = "0.14.27" +version = "0.14.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffb1cfd654a8219eaef89881fdb3bb3b1cdc5fa75ded05d6933b2b382e395468" +checksum = "bf96e135eb83a2a8ddf766e426a841d8ddd7449d5f00d34ea02b41d2f19eef80" dependencies = [ "bytes 1.5.0", "futures-channel", "futures-core", "futures-util", - "h2", - "http", + "h2 0.3.22", + "http 0.2.9", "http-body", "httparse", "httpdate", "itoa", "pin-project-lite", - "socket2 0.4.10", + "socket2 0.5.5", "tokio", "tower-service", "tracing 0.1.40", @@ -4211,7 +4256,7 @@ version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d6ee5d7a8f718585d1c3c61dfde28ef5b0bb14734b4db13f5ada856cdc6c612b" dependencies = [ - "http", + "http 0.2.9", "hyper", "linked_hash_set", "once_cell", @@ -4230,9 +4275,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ca815a891b24fdfb243fa3239c86154392b0953ee584aa1a2a1f66d20cbe75cc" dependencies = [ "bytes 1.5.0", - "futures 0.3.29", + "futures 0.3.30", "headers", - "http", + "http 0.2.9", "hyper", "openssl", "tokio", @@ -4246,7 +4291,7 @@ version = "0.23.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1788965e61b367cd03a62950836d5cd41560c3577d90e40e0819373194d1661c" dependencies = [ - "http", + "http 0.2.9", "hyper", "log", "rustls 0.20.9", @@ -4262,7 +4307,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" dependencies = [ "futures-util", - "http", + "http 0.2.9", "hyper", "log", "rustls 0.21.8", @@ -4359,6 +4404,16 @@ dependencies = [ "unicode-normalization", ] +[[package]] +name = "idna" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" +dependencies = [ + "unicode-bidi", + "unicode-normalization", +] + [[package]] name = "indexmap" version = "1.9.3" @@ -4377,7 +4432,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f" dependencies = [ "equivalent", - "hashbrown 0.14.2", + "hashbrown 0.14.3", "serde", ] @@ -4454,9 +4509,9 @@ dependencies = [ [[package]] name = "inventory" -version = "0.3.13" +version = "0.3.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0508c56cfe9bfd5dfeb0c22ab9a6abfda2f27bdca422132e494266351ed8d83c" +checksum = "c8573b2b1fb643a372c73b23f4da5f888677feef3305146d68a539250a9bccc7" [[package]] name = "io-lifetimes" @@ -4512,7 +4567,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b" dependencies = [ "hermit-abi 0.3.3", - "rustix 0.38.21", + "rustix 0.38.28", "windows-sys 0.48.0", ] @@ -4540,6 +4595,15 @@ dependencies = [ "either", ] +[[package]] +name = "itertools" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25db6b064527c5d482d0423354fcd07a89a2dfe07b67892e62411946db7f07b0" +dependencies = [ + "either", +] + [[package]] name = "itoa" version = "1.0.9" @@ -4613,8 +4677,8 @@ dependencies = [ name = "k8s-e2e-tests" version = "0.1.0" dependencies = [ - "env_logger 0.10.0", - "futures 0.3.29", + "env_logger 0.10.1", + "futures 0.3.30", "indoc", "k8s-openapi 0.16.0", "k8s-test-framework", @@ -4649,7 +4713,7 @@ dependencies = [ "base64 0.21.5", "bytes 1.5.0", "chrono", - "http", + "http 0.2.9", "percent-encoding", "serde", "serde-value", @@ -4729,8 +4793,8 @@ dependencies = [ "chrono", "dirs-next", "either", - "futures 0.3.29", - "http", + "futures 0.3.30", + "http 0.2.9", "http-body", "hyper", "hyper-openssl", @@ -4744,7 +4808,7 @@ dependencies = [ "secrecy", "serde", "serde_json", - "serde_yaml 0.9.27", + "serde_yaml 0.9.29", "thiserror", "tokio", "tokio-util", @@ -4761,7 +4825,7 @@ checksum = "25983d07f414dfffba08c5951fe110f649113416b1d8e22f7c89c750eb2555a7" dependencies = [ "chrono", "form_urlencoded", - "http", + "http 0.2.9", "json-patch", "k8s-openapi 0.18.0", "once_cell", @@ -4780,7 +4844,7 @@ dependencies = [ "async-trait", "backoff", "derivative", - "futures 0.3.29", + "futures 0.3.30", "json-patch", "k8s-openapi 0.18.0", "kube-client", @@ -4856,9 +4920,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.150" +version = "0.2.151" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c" +checksum = "302d7ab3130588088d277783b1e2d2e10c9e9e4a16dd9050e6ec93fb3e7048f4" [[package]] name = "libflate" @@ -4925,9 +4989,9 @@ checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" [[package]] name = "linux-raw-sys" -version = "0.4.10" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da2479e8c062e40bf0066ffa0bc823de0a9368974af99c9f6df941d2c231e03f" +checksum = "c4cd1a83af159aa67994778be9070f0ae1bd732942279cabb14f86f986a21456" [[package]] name = "listenfd" @@ -4974,19 +5038,19 @@ version = "0.1.0" dependencies = [ "bytes 1.5.0", "chrono", - "prost 0.12.1", - "prost-build 0.12.1", - "prost-types 0.12.1", + "prost 0.12.3", + "prost-build 0.12.3", + "prost-types 0.12.3", "snap", ] [[package]] name = "lru" -version = "0.12.0" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1efa59af2ddfad1854ae27d75009d538d0998b4b2fd47083e743ac1a10e46c60" +checksum = "2994eeba8ed550fd9b47a0b38f0242bc3344e496483c6180b69139cc2fa5d1d7" dependencies = [ - "hashbrown 0.14.2", + "hashbrown 0.14.3", ] [[package]] @@ -5009,12 +5073,12 @@ dependencies = [ [[package]] name = "luajit-src" -version = "210.4.8+resty107baaf" +version = "210.5.2+113a168" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e05167e8b2a2185758d83ed23541e5bd8bce37072e4204e0ef2c9b322bc87c4e" +checksum = "823ec7bedb1819b11633bd583ae981b0082db08492b0c3396412b85dd329ffee" dependencies = [ "cc", - "which", + "which 5.0.0", ] [[package]] @@ -5131,15 +5195,15 @@ dependencies = [ [[package]] name = "memchr" -version = "2.6.4" +version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" +checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149" [[package]] name = "memmap2" -version = "0.9.0" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "deaba38d7abf1d4cca21cc89e932e542ba2b9258664d2a9ef0e61512039c9375" +checksum = "45fd3a57831bf88bc63f8cebc0cf956116276e97fef3966103e96416209f7c92" dependencies = [ "libc", ] @@ -5188,9 +5252,9 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ddece26afd34c31585c74a4db0630c376df271c285d682d1e55012197830b6df" dependencies = [ - "proc-macro2 1.0.69", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.74", + "quote 1.0.35", + "syn 2.0.46", ] [[package]] @@ -5273,11 +5337,11 @@ dependencies = [ [[package]] name = "mlua" -version = "0.9.1" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c3a7a7ff4481ec91b951a733390211a8ace1caba57266ccb5f4d4966704e560" +checksum = "7c81f8ac20188feb5461a73eabb22a34dd09d6d58513535eb587e46bff6ba250" dependencies = [ - "bstr 1.7.0", + "bstr 1.9.0", "mlua-sys", "mlua_derive", "num-traits", @@ -5287,9 +5351,9 @@ dependencies = [ [[package]] name = "mlua-sys" -version = "0.3.2" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ec8b54eddb76093069cce9eeffb4c7b3a1a0fe66962d7bd44c4867928149ca3" +checksum = "fc29228347d6bdc9e613dc95c69df2817f755434ee0f7f3b27b57755fe238b7f" dependencies = [ "cc", "cfg-if", @@ -5307,10 +5371,10 @@ dependencies = [ "itertools 0.11.0", "once_cell", "proc-macro-error", - "proc-macro2 1.0.69", - "quote 1.0.33", + "proc-macro2 1.0.74", + "quote 1.0.35", "regex", - "syn 2.0.39", + "syn 2.0.46", ] [[package]] @@ -5321,9 +5385,9 @@ checksum = "6c1a54de846c4006b88b1516731cc1f6026eb5dc4bcb186aa071ef66d40524ec" [[package]] name = "mongodb" -version = "2.7.1" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7c926772050c3a3f87c837626bf6135c8ca688d91d31dd39a3da547fc2bc9fe" +checksum = "46c30763a5c6c52079602be44fa360ca3bfacee55fca73f4734aecd23706a7f2" dependencies = [ "async-trait", "base64 0.13.1", @@ -5359,7 +5423,7 @@ dependencies = [ "tokio", "tokio-rustls 0.24.1", "tokio-util", - "trust-dns-proto 0.21.2", + "trust-dns-proto", "trust-dns-resolver", "typed-builder 0.10.0", "uuid", @@ -5375,7 +5439,7 @@ dependencies = [ "bytes 1.5.0", "encoding_rs", "futures-util", - "http", + "http 0.2.9", "httparse", "log", "memchr", @@ -5482,6 +5546,17 @@ dependencies = [ "static_assertions", ] +[[package]] +name = "nix" +version = "0.27.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053" +dependencies = [ + "bitflags 2.4.1", + "cfg-if", + "libc", +] + [[package]] name = "nkeys" version = "0.3.2" @@ -5492,7 +5567,23 @@ dependencies = [ "data-encoding", "ed25519", "ed25519-dalek", - "getrandom 0.2.10", + "getrandom 0.2.11", + "log", + "rand 0.8.5", + "signatory", +] + +[[package]] +name = "nkeys" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6eafe79aeb8066a6f1f84dc44c03ae97403013e946bf0b13626468e0d5e26c6f" +dependencies = [ + "byteorder", + "data-encoding", + "ed25519", + "ed25519-dalek", + "getrandom 0.2.11", "log", "rand 0.8.5", "signatory", @@ -5504,7 +5595,7 @@ version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b41e7479dc3678ea792431e04bafd62a31879035f4a5fa707602df062f58c77" dependencies = [ - "cidr-utils", + "cidr-utils 0.5.11", "serde", ] @@ -5718,8 +5809,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dcbff9bc912032c62bf65ef1d5aea88983b420f4f839db1e9b0c281a25c9c799" dependencies = [ "proc-macro-crate 1.3.1", - "proc-macro2 1.0.69", - "quote 1.0.33", + "proc-macro2 1.0.74", + "quote 1.0.35", "syn 1.0.109", ] @@ -5730,9 +5821,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "96667db765a921f7b295ffee8b60472b686a51d4f21c2ee4ffdb94c7013b65a6" dependencies = [ "proc-macro-crate 1.3.1", - "proc-macro2 1.0.69", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.74", + "quote 1.0.35", + "syn 2.0.46", ] [[package]] @@ -5742,9 +5833,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6c11e44798ad209ccdd91fc192f0526a369a01234f7373e1b141c96d7cee4f0e" dependencies = [ "proc-macro-crate 2.0.0", - "proc-macro2 1.0.69", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.74", + "quote 1.0.35", + "syn 2.0.46", ] [[package]] @@ -5770,8 +5861,8 @@ checksum = "c38841cdd844847e3e7c8d29cef9dcfed8877f8f56f9071f77843ecf3baf937f" dependencies = [ "base64 0.13.1", "chrono", - "getrandom 0.2.10", - "http", + "getrandom 0.2.11", + "http 0.2.9", "rand 0.8.5", "reqwest", "serde", @@ -5811,9 +5902,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.18.0" +version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" +checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" [[package]] name = "onig" @@ -5851,9 +5942,9 @@ checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" [[package]] name = "opendal" -version = "0.41.0" +version = "0.44.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e31b48f0af6de5b3b344c1acc1e06c4581dca3e13cd5ba05269927fc2abf953a" +checksum = "c32736a48ef08a5d2212864e2295c8e54f4d6b352b7f49aa0c29a12fc410ff66" dependencies = [ "anyhow", "async-compat", @@ -5863,9 +5954,9 @@ dependencies = [ "bytes 1.5.0", "chrono", "flagset", - "futures 0.3.29", - "http", - "hyper", + "futures 0.3.30", + "getrandom 0.2.11", + "http 0.2.9", "log", "md-5", "once_cell", @@ -5891,7 +5982,7 @@ dependencies = [ "dyn-clone", "ed25519-dalek", "hmac", - "http", + "http 0.2.9", "itertools 0.10.5", "log", "oauth2", @@ -5914,9 +6005,9 @@ dependencies = [ [[package]] name = "openssl" -version = "0.10.59" +version = "0.10.62" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a257ad03cd8fb16ad4172fedf8094451e1af1c4b70097636ef2eac9a5f0cc33" +checksum = "8cde4d2d9200ad5909f8dac647e29482e07c3a35de8a13fce7c9c7747ad9f671" dependencies = [ "bitflags 2.4.1", "cfg-if", @@ -5933,9 +6024,9 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ - "proc-macro2 1.0.69", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.74", + "quote 1.0.35", + "syn 2.0.46", ] [[package]] @@ -5946,18 +6037,18 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "openssl-src" -version = "300.1.6+3.1.4" +version = "300.2.1+3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "439fac53e092cd7442a3660c85dde4643ab3b5bd39040912388dcdabf6b88085" +checksum = "3fe476c29791a5ca0d1273c697e96085bbabbbea2ef7afd5617e78a4b40332d3" dependencies = [ "cc", ] [[package]] name = "openssl-sys" -version = "0.9.95" +version = "0.9.98" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40a4130519a360279579c2053038317e40eff64d13fd3f004f9e1b72b8a6aaf9" +checksum = "c1665caf8ab2dc9aef43d1c0023bd904633a6a05cb30b0ad59bec2ae986e57a7" dependencies = [ "cc", "libc", @@ -5973,9 +6064,9 @@ dependencies = [ "bytes 1.5.0", "chrono", "hex", - "ordered-float 4.1.1", - "prost 0.12.1", - "prost-build 0.12.1", + "ordered-float 4.2.0", + "prost 0.12.3", + "prost-build 0.12.3", "tonic 0.10.2", "tonic-build 0.10.2", "vector-core", @@ -6009,9 +6100,9 @@ dependencies = [ [[package]] name = "ordered-float" -version = "4.1.1" +version = "4.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "536900a8093134cf9ccf00a27deb3532421099e958d9dd431135d0c7543ca1e8" +checksum = "a76df7075c7d4d01fdcb46c912dd17fba5b60c78ea480b475f2b6ab6f666584e" dependencies = [ "num-traits", ] @@ -6050,9 +6141,9 @@ checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" [[package]] name = "owo-colors" -version = "3.5.0" +version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1b04fb49957986fdce4d6ee7a65027d55d4b6d2265e5848bbb507b58ccfdb6f" +checksum = "caff54706df99d2a78a5a4e3455ff45448d81ef1bb63c22cd14052ca0e993a3f" dependencies = [ "supports-color", ] @@ -6185,9 +6276,9 @@ dependencies = [ [[package]] name = "percent-encoding" -version = "2.3.0" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pest" @@ -6218,9 +6309,9 @@ checksum = "68bd1206e71118b5356dae5ddc61c8b11e28b09ef6a31acbd15ea48a28e0c227" dependencies = [ "pest", "pest_meta", - "proc-macro2 1.0.69", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.74", + "quote 1.0.35", + "syn 2.0.46", ] [[package]] @@ -6306,9 +6397,9 @@ version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405" dependencies = [ - "proc-macro2 1.0.69", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.74", + "quote 1.0.35", + "syn 2.0.46", ] [[package]] @@ -6438,7 +6529,7 @@ dependencies = [ "cfg-if", "concurrent-queue", "pin-project-lite", - "rustix 0.38.21", + "rustix 0.38.28", "tracing 0.1.40", "windows-sys 0.48.0", ] @@ -6473,7 +6564,7 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1de0ea6504e07ca78355a6fb88ad0f36cafe9e696cbc6717f16a207f3a60be72" dependencies = [ - "futures 0.3.29", + "futures 0.3.30", "openssl", "tokio", "tokio-openssl", @@ -6584,7 +6675,7 @@ version = "0.1.25" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6c8646e95016a7a6c4adea95bafa8a16baab64b583356217f2c85db4a39d9a86" dependencies = [ - "proc-macro2 1.0.69", + "proc-macro2 1.0.74", "syn 1.0.109", ] @@ -6594,8 +6685,8 @@ version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ae005bd773ab59b4725093fd7df83fd7892f7d8eafb48dbd7de6e024e4215f9d" dependencies = [ - "proc-macro2 1.0.69", - "syn 2.0.39", + "proc-macro2 1.0.74", + "syn 2.0.46", ] [[package]] @@ -6614,22 +6705,13 @@ dependencies = [ [[package]] name = "primeorder" -version = "0.13.2" +version = "0.13.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c2fcef82c0ec6eefcc179b978446c399b3cdf73c392c35604e399eee6df1ee3" +checksum = "353e1ca18966c16d9deb1c69278edbc5f194139612772bd9537af60ac231e1e6" dependencies = [ "elliptic-curve", ] -[[package]] -name = "proc-macro-crate" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d6ea3c4595b96363c13943497db34af4460fb474a95c43f4446ad341b8c9785" -dependencies = [ - "toml 0.5.11", -] - [[package]] name = "proc-macro-crate" version = "1.3.1" @@ -6656,8 +6738,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" dependencies = [ "proc-macro-error-attr", - "proc-macro2 1.0.69", - "quote 1.0.33", + "proc-macro2 1.0.74", + "quote 1.0.35", "syn 1.0.109", "version_check", ] @@ -6668,8 +6750,8 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" dependencies = [ - "proc-macro2 1.0.69", - "quote 1.0.33", + "proc-macro2 1.0.74", + "quote 1.0.35", "version_check", ] @@ -6696,9 +6778,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.69" +version = "1.0.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da" +checksum = "2de98502f212cfcea8d0bb305bd0f49d7ebdd75b64ba0a68f937d888f4e0d6db" dependencies = [ "unicode-ident", ] @@ -6710,18 +6792,18 @@ dependencies = [ "indexmap 2.1.0", "nom", "num_enum 0.7.1", - "prost 0.12.1", - "prost-build 0.12.1", - "prost-types 0.12.1", + "prost 0.12.3", + "prost-build 0.12.3", + "prost-types 0.12.3", "snafu", "vector-common", ] [[package]] name = "proptest" -version = "1.3.1" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c003ac8c77cb07bb74f5f198bce836a689bcd5a42574612bf14d17bfd08c20e" +checksum = "31b476131c3c86cb68032fdc5cb6d5a1045e3e42d96b69fa599fd77701e1f5bf" dependencies = [ "bit-set", "bit-vec", @@ -6731,7 +6813,7 @@ dependencies = [ "rand 0.8.5", "rand_chacha 0.3.1", "rand_xorshift", - "regex-syntax 0.7.5", + "regex-syntax 0.8.2", "rusty-fork", "tempfile", "unarray", @@ -6749,12 +6831,12 @@ dependencies = [ [[package]] name = "prost" -version = "0.12.1" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4fdd22f3b9c31b53c060df4a0613a1c7f062d4115a2b984dd15b1858f7e340d" +checksum = "146c289cda302b98a28d40c8b3b90498d6e526dd24ac2ecea73e4e491685b94a" dependencies = [ "bytes 1.5.0", - "prost-derive 0.12.1", + "prost-derive 0.12.3", ] [[package]] @@ -6776,14 +6858,14 @@ dependencies = [ "regex", "syn 1.0.109", "tempfile", - "which", + "which 4.4.2", ] [[package]] name = "prost-build" -version = "0.12.1" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bdf592881d821b83d471f8af290226c8d51402259e9bb5be7f9f8bdebbb11ac" +checksum = "c55e02e35260070b6f716a2423c2ff1c3bb1642ddca6f99e1f26d06268a0e2d2" dependencies = [ "bytes 1.5.0", "heck 0.4.1", @@ -6793,12 +6875,12 @@ dependencies = [ "once_cell", "petgraph", "prettyplease 0.2.15", - "prost 0.12.1", - "prost-types 0.12.1", + "prost 0.12.3", + "prost-types 0.12.3", "regex", - "syn 2.0.39", + "syn 2.0.46", "tempfile", - "which", + "which 4.4.2", ] [[package]] @@ -6809,22 +6891,22 @@ checksum = "e5d2d8d10f3c6ded6da8b05b5fb3b8a5082514344d56c9f871412d29b4e075b4" dependencies = [ "anyhow", "itertools 0.10.5", - "proc-macro2 1.0.69", - "quote 1.0.33", + "proc-macro2 1.0.74", + "quote 1.0.35", "syn 1.0.109", ] [[package]] name = "prost-derive" -version = "0.12.1" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "265baba7fabd416cf5078179f7d2cbeca4ce7a9041111900675ea7c4cb8a4c32" +checksum = "efb6c9a1dd1def8e2124d17e83a20af56f1570d6c2d2bd9e266ccb768df3840e" dependencies = [ "anyhow", "itertools 0.11.0", - "proc-macro2 1.0.69", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.74", + "quote 1.0.35", + "syn 2.0.46", ] [[package]] @@ -6835,8 +6917,8 @@ checksum = "057237efdb71cf4b3f9396302a3d6599a92fa94063ba537b66130980ea9909f3" dependencies = [ "base64 0.21.5", "once_cell", - "prost 0.12.1", - "prost-types 0.12.1", + "prost 0.12.3", + "prost-types 0.12.3", "serde", "serde-value", ] @@ -6852,11 +6934,11 @@ dependencies = [ [[package]] name = "prost-types" -version = "0.12.1" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e081b29f63d83a4bc75cfc9f3fe424f9156cf92d8a4f0c9407cce9a1b67327cf" +checksum = "193898f59edcf43c26227dcd4c8427f00d99d61e95dcde58dabd49fa291d470e" dependencies = [ - "prost 0.12.1", + "prost 0.12.3", ] [[package]] @@ -6874,8 +6956,8 @@ version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "16b845dbfca988fa33db069c0e230574d15a3088f147a87b64c7589eb662c9ac" dependencies = [ - "proc-macro2 1.0.69", - "quote 1.0.33", + "proc-macro2 1.0.74", + "quote 1.0.35", "syn 1.0.109", ] @@ -6892,7 +6974,7 @@ dependencies = [ "crc", "data-url", "flate2", - "futures 0.3.29", + "futures 0.3.30", "futures-io", "futures-timer", "log", @@ -6942,13 +7024,12 @@ dependencies = [ [[package]] name = "quanta" -version = "0.12.1" +version = "0.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "577c55a090a94ed7da0e6580cc38a553558e2d736398b5d8ebf81bc9880f8acd" +checksum = "9ca0b7bac0b97248c40bb77288fc52029cf1459c0461ea1b05ee32ccf011de2c" dependencies = [ "crossbeam-utils", "libc", - "mach2", "once_cell", "raw-cpuid 11.0.1", "wasi 0.11.0+wasi-snapshot-preview1", @@ -6999,8 +7080,8 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b22a693222d716a9587786f37ac3f6b4faedb5b80c23914e7303ff5a1d8016e9" dependencies = [ - "proc-macro2 1.0.69", - "quote 1.0.33", + "proc-macro2 1.0.74", + "quote 1.0.35", "syn 1.0.109", ] @@ -7015,11 +7096,11 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.33" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" +checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" dependencies = [ - "proc-macro2 1.0.69", + "proc-macro2 1.0.74", ] [[package]] @@ -7103,7 +7184,7 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "getrandom 0.2.10", + "getrandom 0.2.11", ] [[package]] @@ -7136,17 +7217,18 @@ dependencies = [ [[package]] name = "ratatui" -version = "0.24.0" +version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ebc917cfb527a566c37ecb94c7e3fd098353516fb4eb6bea17015ade0182425" +checksum = "a5659e52e4ba6e07b2dad9f1158f578ef84a73762625ddb51536019f34d180eb" dependencies = [ "bitflags 2.4.1", "cassowary", "crossterm", "indoc", - "itertools 0.11.0", + "itertools 0.12.0", "lru", "paste", + "stability", "strum", "unicode-segmentation", "unicode-width", @@ -7204,9 +7286,9 @@ dependencies = [ [[package]] name = "rdkafka" -version = "0.34.0" +version = "0.35.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "053adfa02fab06e86c01d586cc68aa47ee0ff4489a59469081dc12cbcde578bf" +checksum = "f16c17f411935214a5870e40aff9291f8b40a73e97bf8de29e5959c473d5ef33" dependencies = [ "futures-channel", "futures-util", @@ -7222,9 +7304,9 @@ dependencies = [ [[package]] name = "rdkafka-sys" -version = "4.6.0+2.2.0" +version = "4.7.0+2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad63c279fca41a27c231c450a2d2ad18288032e9cbb159ad16c9d96eba35aaaf" +checksum = "55e0d2f9ba6253f6ec72385e453294f8618e9e15c2c6aba2a5c01ccf9622d615" dependencies = [ "cmake", "libc", @@ -7249,15 +7331,15 @@ dependencies = [ [[package]] name = "redis" -version = "0.23.3" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f49cdc0bb3f412bf8e7d1bd90fe1d9eb10bc5c399ba90973c14662a27b3f8ba" +checksum = "c580d9cbbe1d1b479e8d67cf9daf6a62c957e6846048408b80b43ac3f6af84cd" dependencies = [ "arc-swap", "async-trait", "bytes 1.5.0", "combine 4.6.6", - "futures 0.3.29", + "futures 0.3.30", "futures-util", "itoa", "native-tls", @@ -7304,7 +7386,7 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b" dependencies = [ - "getrandom 0.2.10", + "getrandom 0.2.11", "redox_syscall 0.2.16", "thiserror", ] @@ -7382,17 +7464,17 @@ dependencies = [ [[package]] name = "reqwest" -version = "0.11.22" +version = "0.11.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "046cd98826c46c2ac8ddecae268eb5c2e58628688a5fc7a2643704a73faba95b" +checksum = "37b1ae8d9ac08420c66222fb9096fc5de435c3c48542bc5336c51892cffafb41" dependencies = [ "base64 0.21.5", "bytes 1.5.0", "encoding_rs", "futures-core", "futures-util", - "h2", - "http", + "h2 0.3.22", + "http 0.2.9", "http-body", "hyper", "hyper-rustls 0.24.2", @@ -7473,7 +7555,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fb0205304757e5d899b9c2e448b867ffd03ae7f988002e47cd24954391394d0b" dependencies = [ "cc", - "getrandom 0.2.10", + "getrandom 0.2.11", "libc", "spin 0.9.8", "untrusted 0.9.0", @@ -7482,12 +7564,13 @@ dependencies = [ [[package]] name = "rkyv" -version = "0.7.42" +version = "0.7.43" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0200c8230b013893c0b2d6213d6ec64ed2b9be2e0e016682b7224ff82cff5c58" +checksum = "527a97cdfef66f65998b5f3b637c26f5a5ec09cc52a3f9932313ac645f4190f5" dependencies = [ "bitvec", "bytecheck", + "bytes 1.5.0", "hashbrown 0.12.3", "ptr_meta", "rend", @@ -7499,12 +7582,12 @@ dependencies = [ [[package]] name = "rkyv_derive" -version = "0.7.42" +version = "0.7.43" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2e06b915b5c230a17d7a736d1e2e63ee753c256a8614ef3f5147b13a4f5541d" +checksum = "b5c462a1328c8e67e4d6dbad1eb0355dd43e8ab432c6e227a43657f16ade5033" dependencies = [ - "proc-macro2 1.0.69", - "quote 1.0.33", + "proc-macro2 1.0.74", + "quote 1.0.35", "syn 1.0.109", ] @@ -7570,12 +7653,9 @@ dependencies = [ [[package]] name = "roxmltree" -version = "0.18.1" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "862340e351ce1b271a378ec53f304a5558f7db87f3769dc655a8f6ecbb68b302" -dependencies = [ - "xmlparser", -] +checksum = "3cd14fd5e3b777a7422cca79358c57a8f6e3a703d9ac187448d0daf220c2407f" [[package]] name = "rsa" @@ -7603,7 +7683,7 @@ version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "97eeab2f3c0a199bc4be135c36c924b6590b88c377d416494288c14f2db30199" dependencies = [ - "futures 0.3.29", + "futures 0.3.30", "futures-timer", "rstest_macros", "rustc_version 0.4.0", @@ -7617,20 +7697,20 @@ checksum = "d428f8247852f894ee1be110b375111b586d4fa431f6c46e64ba5a0dcccbe605" dependencies = [ "cfg-if", "glob", - "proc-macro2 1.0.69", - "quote 1.0.33", + "proc-macro2 1.0.74", + "quote 1.0.35", "regex", "relative-path", "rustc_version 0.4.0", - "syn 2.0.39", + "syn 2.0.46", "unicode-ident", ] [[package]] name = "rust_decimal" -version = "1.32.0" +version = "1.33.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4c4216490d5a413bc6d10fa4742bd7d4955941d062c0ef873141d6b0e7b30fd" +checksum = "06676aec5ccb8fc1da723cc8c0f9a46549f21ebb8753d3915c6c41db1e7f1dc4" dependencies = [ "arrayvec", "borsh", @@ -7698,15 +7778,15 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.21" +version = "0.38.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b426b0506e5d50a7d8dafcf2e81471400deb602392c7dd110815afb4eaf02a3" +checksum = "72e572a5e8ca657d7366229cdde4bd14c4eb5499a9573d4d366fe1b599daa316" dependencies = [ "bitflags 2.4.1", "errno", "libc", - "linux-raw-sys 0.4.10", - "windows-sys 0.48.0", + "linux-raw-sys 0.4.12", + "windows-sys 0.52.0", ] [[package]] @@ -7784,9 +7864,9 @@ dependencies = [ [[package]] name = "rustyline" -version = "12.0.0" +version = "13.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "994eca4bca05c87e86e15d90fc7a91d1be64b4482b38cb2d27474568fe7c9db9" +checksum = "02a2d683a4ac90aeef5b1013933f6d977bd37d51ff3f4dad829d4931a7e6be86" dependencies = [ "bitflags 2.4.1", "cfg-if", @@ -7794,8 +7874,7 @@ dependencies = [ "libc", "log", "memchr", - "nix 0.26.2", - "scopeguard", + "nix 0.27.1", "unicode-segmentation", "unicode-width", "utf8parse", @@ -7804,9 +7883,9 @@ dependencies = [ [[package]] name = "ryu" -version = "1.0.15" +version = "1.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" +checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c" [[package]] name = "salsa20" @@ -7850,11 +7929,11 @@ dependencies = [ [[package]] name = "schannel" -version = "0.1.22" +version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c3733bf4cf7ea0880754e19cb5a462007c4a8c1914bff372ccc95b464f1df88" +checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534" dependencies = [ - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -7958,9 +8037,9 @@ checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" [[package]] name = "serde" -version = "1.0.190" +version = "1.0.194" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91d3c334ca1ee894a2c6f6ad698fe8c435b76d504b13d436f0685d648d6d96f7" +checksum = "0b114498256798c94a0689e1a15fec6005dee8ac1f41de56404b67afc2a4b773" dependencies = [ "serde_derive", ] @@ -7971,7 +8050,7 @@ version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "af5ae5f42c16d60b098ae5d4afd75c1d3b6512e6ca5d0b9b916e2ced30df264c" dependencies = [ - "toml 0.8.6", + "toml 0.8.8", ] [[package]] @@ -7986,9 +8065,9 @@ dependencies = [ [[package]] name = "serde-wasm-bindgen" -version = "0.6.1" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17ba92964781421b6cef36bf0d7da26d201e96d84e1b10e7ae6ed416e516906d" +checksum = "b9b713f70513ae1f8d92665bbbbda5c295c2cf1da5542881ae5eefe20c9af132" dependencies = [ "js-sys", "serde", @@ -8006,13 +8085,13 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.190" +version = "1.0.194" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67c5609f394e5c2bd7fc51efda478004ea80ef42fee983d5c67a65e34f32c0e3" +checksum = "a3385e45322e8f9931410f01b3031ec534c3947d0e94c18049af4d9f9907d4e0" dependencies = [ - "proc-macro2 1.0.69", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.74", + "quote 1.0.35", + "syn 2.0.46", ] [[package]] @@ -8021,16 +8100,16 @@ version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "330f01ce65a3a5fe59a60c82f3c9a024b573b8a6e875bd233fe5f934e71d54e3" dependencies = [ - "proc-macro2 1.0.69", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.74", + "quote 1.0.35", + "syn 2.0.46", ] [[package]] name = "serde_json" -version = "1.0.108" +version = "1.0.109" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b" +checksum = "cb0652c533506ad7a2e353cce269330d6afd8bdfb6d75e0ace5b35aacbd7b9e9" dependencies = [ "indexmap 2.1.0", "itoa", @@ -8083,9 +8162,9 @@ version = "0.1.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3081f5ffbb02284dda55132aa26daecedd7372a42417bbbab6f14ab7d6bb9145" dependencies = [ - "proc-macro2 1.0.69", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.74", + "quote 1.0.35", + "syn 2.0.46", ] [[package]] @@ -8143,8 +8222,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e182d6ec6f05393cc0e5ed1bf81ad6db3a8feedf8ee515ecdd369809bcce8082" dependencies = [ "darling 0.13.4", - "proc-macro2 1.0.69", - "quote 1.0.33", + "proc-macro2 1.0.74", + "quote 1.0.35", "syn 1.0.109", ] @@ -8155,9 +8234,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "93634eb5f75a2323b16de4748022ac4297f9e76b6dced2be287a099f41b5e788" dependencies = [ "darling 0.20.3", - "proc-macro2 1.0.69", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.74", + "quote 1.0.35", + "syn 2.0.46", ] [[package]] @@ -8174,9 +8253,9 @@ dependencies = [ [[package]] name = "serde_yaml" -version = "0.9.27" +version = "0.9.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3cc7a1570e38322cfe4154732e5110f887ea57e22b76f4bfd32b5bdd3368666c" +checksum = "a15e0ef66bf939a7c890a0bf6d5a733c70202225f9888a89ed5c62298b019129" dependencies = [ "indexmap 2.1.0", "itoa", @@ -8363,9 +8442,9 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.11.1" +version = "1.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "942b4a808e05215192e39f4ab80813e599068285906cc91aa64f923db842bd5a" +checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970" dependencies = [ "serde", ] @@ -8422,16 +8501,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "990079665f075b699031e9c08fd3ab99be5029b96f3b78dc0709e8f77e4efebf" dependencies = [ "heck 0.4.1", - "proc-macro2 1.0.69", - "quote 1.0.33", + "proc-macro2 1.0.74", + "quote 1.0.35", "syn 1.0.109", ] [[package]] name = "snap" -version = "1.1.0" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e9f0ab6ef7eb7353d9119c170a436d1bf248eea575ac42d19d12f4e34130831" +checksum = "1b6b67fb9a61334225b5b790716f609cd58395f895b3fe8b328786812a40bc3b" [[package]] name = "socket2" @@ -8478,23 +8557,27 @@ dependencies = [ "der", ] +[[package]] +name = "stability" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebd1b177894da2a2d9120208c3386066af06a488255caabc5de8ddca22dbc3ce" +dependencies = [ + "quote 1.0.35", + "syn 1.0.109", +] + [[package]] name = "static_assertions" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" -[[package]] -name = "str-buf" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e08d8363704e6c71fc928674353e6b7c23dcea9d82d7012c8faf2a3a025f8d0" - [[package]] name = "stream-cancel" -version = "0.8.1" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b0a9eb2715209fb8cc0d942fcdff45674bfc9f0090a0d897e85a22955ad159b" +checksum = "5f9fbf9bd71e4cf18d68a8a0951c0e5b7255920c0cd992c4ff51cddd6ef514a3" dependencies = [ "futures-core", "pin-project", @@ -8565,8 +8648,8 @@ checksum = "dcb5ae327f9cc13b68763b5749770cb9e048a99bd9dfdfa58d0cf05d5f64afe0" dependencies = [ "heck 0.3.3", "proc-macro-error", - "proc-macro2 1.0.69", - "quote 1.0.33", + "proc-macro2 1.0.74", + "quote 1.0.35", "syn 1.0.109", ] @@ -8586,10 +8669,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "23dc1fa9ac9c169a78ba62f0b841814b7abae11bdd047b9c58f893439e309ea0" dependencies = [ "heck 0.4.1", - "proc-macro2 1.0.69", - "quote 1.0.33", + "proc-macro2 1.0.74", + "quote 1.0.35", "rustversion", - "syn 2.0.39", + "syn 2.0.46", ] [[package]] @@ -8600,11 +8683,11 @@ checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" [[package]] name = "supports-color" -version = "1.3.1" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ba6faf2ca7ee42fdd458f4347ae0a9bd6bcc445ad7cb57ad82b383f18870d6f" +checksum = "d6398cde53adc3c4557306a96ce67b302968513830a77a95b2b17305d9719a89" dependencies = [ - "atty", + "is-terminal", "is_ci", ] @@ -8625,22 +8708,34 @@ version = "1.0.109" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" dependencies = [ - "proc-macro2 1.0.69", - "quote 1.0.33", + "proc-macro2 1.0.74", + "quote 1.0.35", "unicode-ident", ] [[package]] name = "syn" -version = "2.0.39" +version = "2.0.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a" +checksum = "89456b690ff72fddcecf231caedbe615c59480c93358a93dfae7fc29e3ebbf0e" dependencies = [ - "proc-macro2 1.0.69", - "quote 1.0.33", + "proc-macro2 1.0.74", + "quote 1.0.35", "unicode-ident", ] +[[package]] +name = "syn_derive" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1329189c02ff984e9736652b1631330da25eaa6bc639089ed4915d25446cbe7b" +dependencies = [ + "proc-macro-error", + "proc-macro2 1.0.74", + "quote 1.0.35", + "syn 2.0.46", +] + [[package]] name = "sync_wrapper" version = "0.1.2" @@ -8662,9 +8757,9 @@ dependencies = [ [[package]] name = "syslog_loose" -version = "0.19.0" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acf5252d1adec0a489a0225f867c1a7fd445e41674530a396d0629cff0c4b211" +checksum = "161028c00842709450114c39db3b29f44c898055ed8833bb9b535aba7facf30e" dependencies = [ "chrono", "nom", @@ -8716,21 +8811,21 @@ dependencies = [ [[package]] name = "temp-dir" -version = "0.1.11" +version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af547b166dd1ea4b472165569fc456cfb6818116f854690b0ff205e636523dab" +checksum = "dd16aa9ffe15fe021c6ee3766772132c6e98dfa395a167e16864f61a9cfb71d6" [[package]] name = "tempfile" -version = "3.8.1" +version = "3.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5" +checksum = "01ce4141aa927a6d1bd34a041795abd0db1cccba5d5f24b009f694bdf3a1f3fa" dependencies = [ "cfg-if", "fastrand 2.0.1", "redox_syscall 0.4.1", - "rustix 0.38.21", - "windows-sys 0.48.0", + "rustix 0.38.28", + "windows-sys 0.52.0", ] [[package]] @@ -8759,7 +8854,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "21bebf2b7c9e0a515f6e0f8c51dc0f8e4696391e6f1ff30379559f8365fb0df7" dependencies = [ - "rustix 0.38.21", + "rustix 0.38.28", "windows-sys 0.48.0", ] @@ -8792,22 +8887,22 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.50" +version = "1.0.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2" +checksum = "f11c217e1416d6f036b870f14e0413d480dbf28edbee1f877abaf0206af43bb7" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.50" +version = "1.0.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8" +checksum = "01742297787513b79cf8e29d1056ede1313e2420b7b3b15d0a768b4921f549df" dependencies = [ - "proc-macro2 1.0.69", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.74", + "quote 1.0.35", + "syn 2.0.46", ] [[package]] @@ -8908,9 +9003,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.33.0" +version = "1.35.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f38200e3ef7995e5ef13baec2f432a6da0aa9ac495b2c0e8f3b7eec2c92d653" +checksum = "c89b4efa943be685f629b149f53829423f8f5531ea21249408e8e2f8671ec104" dependencies = [ "backtrace", "bytes 1.5.0", @@ -8949,13 +9044,13 @@ dependencies = [ [[package]] name = "tokio-macros" -version = "2.1.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e" +checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" dependencies = [ - "proc-macro2 1.0.69", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.74", + "quote 1.0.35", + "syn 2.0.46", ] [[package]] @@ -8970,9 +9065,9 @@ dependencies = [ [[package]] name = "tokio-openssl" -version = "0.6.3" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08f9ffb7809f1b20c1b398d92acf4cc719874b3b2b2d9ea2f09b4a80350878a" +checksum = "6ffab79df67727f6acf57f1ff743091873c24c579b1e2ce4d8f53e47ded4d63d" dependencies = [ "futures-util", "openssl", @@ -9102,14 +9197,14 @@ dependencies = [ [[package]] name = "toml" -version = "0.8.6" +version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ff9e3abce27ee2c9a37f9ad37238c1bdd4e789c84ba37df76aa4d528f5072cc" +checksum = "a1a195ec8c9da26928f773888e0742ca3ca1040c6cd859c919c9f59c1954ab35" dependencies = [ "serde", "serde_spanned", "toml_datetime", - "toml_edit 0.20.7", + "toml_edit 0.21.0", ] [[package]] @@ -9137,6 +9232,17 @@ name = "toml_edit" version = "0.20.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "70f427fce4d84c72b5b732388bf4a9f4531b53f74e2887e3ecb2481f68f66d81" +dependencies = [ + "indexmap 2.1.0", + "toml_datetime", + "winnow", +] + +[[package]] +name = "toml_edit" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d34d383cd00a163b4a5b85053df514d45bc330f6de7737edfe0a93311d1eaa03" dependencies = [ "indexmap 2.1.0", "serde", @@ -9158,8 +9264,8 @@ dependencies = [ "bytes 1.5.0", "futures-core", "futures-util", - "h2", - "http", + "h2 0.3.22", + "http 0.2.9", "http-body", "hyper", "hyper-timeout", @@ -9188,14 +9294,14 @@ dependencies = [ "base64 0.21.5", "bytes 1.5.0", "flate2", - "h2", - "http", + "h2 0.3.22", + "http 0.2.9", "http-body", "hyper", "hyper-timeout", "percent-encoding", "pin-project", - "prost 0.12.1", + "prost 0.12.3", "rustls 0.21.8", "rustls-native-certs", "rustls-pemfile", @@ -9215,9 +9321,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a6fdaae4c2c638bb70fe42803a26fbd6fc6ac8c72f5c59f67ecc2a2dcabf4b07" dependencies = [ "prettyplease 0.1.25", - "proc-macro2 1.0.69", + "proc-macro2 1.0.74", "prost-build 0.11.9", - "quote 1.0.33", + "quote 1.0.35", "syn 1.0.109", ] @@ -9228,10 +9334,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d021fc044c18582b9a2408cd0dd05b1596e3ecdb5c4df822bb0183545683889" dependencies = [ "prettyplease 0.2.15", - "proc-macro2 1.0.69", - "prost-build 0.12.1", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.74", + "prost-build 0.12.3", + "quote 1.0.35", + "syn 2.0.46", ] [[package]] @@ -9266,7 +9372,7 @@ dependencies = [ "bytes 1.5.0", "futures-core", "futures-util", - "http", + "http 0.2.9", "http-body", "http-range-header", "mime", @@ -9332,9 +9438,9 @@ version = "0.1.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ - "proc-macro2 1.0.69", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.74", + "quote 1.0.35", + "syn 2.0.46", ] [[package]] @@ -9372,7 +9478,7 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" dependencies = [ - "futures 0.3.29", + "futures 0.3.30", "futures-task", "pin-project", "tracing 0.1.40", @@ -9401,9 +9507,9 @@ dependencies = [ [[package]] name = "tracing-log" -version = "0.1.4" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f751112709b4e791d8ce53e32c4ed2d353565a795ce84da2285393f41557bdf2" +checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" dependencies = [ "log", "once_cell", @@ -9422,9 +9528,9 @@ dependencies = [ [[package]] name = "tracing-subscriber" -version = "0.3.17" +version = "0.3.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30a651bc37f915e81f087d86e62a18eec5f79550c7faff886f7090b4ea757c77" +checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" dependencies = [ "matchers", "nu-ansi-term", @@ -9445,7 +9551,7 @@ name = "tracing-tower" version = "0.1.0" source = "git+https://github.com/tokio-rs/tracing?rev=e0642d949891546a3bb7e47080365ee7274f05cd#e0642d949891546a3bb7e47080365ee7274f05cd" dependencies = [ - "futures 0.3.29", + "futures 0.3.30", "tower-service", "tracing 0.2.0", "tracing-futures 0.3.0", @@ -9485,31 +9591,6 @@ dependencies = [ "url", ] -[[package]] -name = "trust-dns-proto" -version = "0.23.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3119112651c157f4488931a01e586aa459736e9d6046d3bd9105ffb69352d374" -dependencies = [ - "async-trait", - "cfg-if", - "data-encoding", - "enum-as-inner 0.6.0", - "futures-channel", - "futures-io", - "futures-util", - "idna 0.4.0", - "ipnet", - "once_cell", - "rand 0.8.5", - "smallvec", - "thiserror", - "tinyvec", - "tokio", - "tracing 0.1.40", - "url", -] - [[package]] name = "trust-dns-resolver" version = "0.21.2" @@ -9527,7 +9608,7 @@ dependencies = [ "smallvec", "thiserror", "tokio", - "trust-dns-proto 0.21.2", + "trust-dns-proto", ] [[package]] @@ -9545,7 +9626,7 @@ dependencies = [ "byteorder", "bytes 1.5.0", "data-encoding", - "http", + "http 0.2.9", "httparse", "log", "rand 0.8.5", @@ -9571,8 +9652,8 @@ version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "89851716b67b937e393b3daa8423e67ddfc4bbbf1654bcf05488e95e0828db0c" dependencies = [ - "proc-macro2 1.0.69", - "quote 1.0.33", + "proc-macro2 1.0.74", + "quote 1.0.35", "syn 1.0.109", ] @@ -9591,9 +9672,9 @@ version = "0.16.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f03ca4cb38206e2bef0700092660bb74d696f808514dae47fa1467cbfe26e96e" dependencies = [ - "proc-macro2 1.0.69", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.74", + "quote 1.0.35", + "syn 2.0.46", ] [[package]] @@ -9604,9 +9685,9 @@ checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" [[package]] name = "typetag" -version = "0.2.13" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80960fd143d4c96275c0e60b08f14b81fbb468e79bc0ef8fbda69fb0afafae43" +checksum = "c43148481c7b66502c48f35b8eef38b6ccdc7a9f04bd4cc294226d901ccc9bc7" dependencies = [ "erased-serde", "inventory", @@ -9617,13 +9698,13 @@ dependencies = [ [[package]] name = "typetag-impl" -version = "0.2.13" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfc13d450dc4a695200da3074dacf43d449b968baee95e341920e47f61a3b40f" +checksum = "291db8a81af4840c10d636e047cac67664e343be44e24dfdbd1492df9a5d3390" dependencies = [ - "proc-macro2 1.0.69", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.74", + "quote 1.0.35", + "syn 2.0.46", ] [[package]] @@ -9736,9 +9817,9 @@ dependencies = [ [[package]] name = "unsafe-libyaml" -version = "0.2.9" +version = "0.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f28467d3e1d3c6586d8f25fa243f544f5800fec42d97032474e17222c2b75cfa" +checksum = "ab4c90930b95a82d00dc9e9ac071b4991924390d46cbd0dfe566148667605e4b" [[package]] name = "untrusted" @@ -9765,12 +9846,12 @@ dependencies = [ [[package]] name = "url" -version = "2.4.1" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "143b538f18257fac9cad154828a57c6bf5157e1aa604d4816b5995bf6de87ae5" +checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633" dependencies = [ "form_urlencoded", - "idna 0.4.0", + "idna 0.5.0", "percent-encoding", "serde", ] @@ -9789,9 +9870,9 @@ checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" [[package]] name = "utf8-width" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5190c9442dcdaf0ddd50f37420417d219ae5261bbf5db120d0f9bab996c9cba1" +checksum = "86bd8d4e895da8537e5315b8254664e6b769c4ff3db18321b297a1e7004392e3" [[package]] name = "utf8parse" @@ -9801,11 +9882,11 @@ checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" [[package]] name = "uuid" -version = "1.5.0" +version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88ad59a7560b41a70d191093a945f0b87bc1deeda46fb237479708a1d6b6cdfc" +checksum = "5e395fcf16a7a3d8127ec99782007af141946b4795001f876d54fb0d55978560" dependencies = [ - "getrandom 0.2.10", + "getrandom 0.2.11", "rand 0.8.5", "serde", "wasm-bindgen", @@ -9830,7 +9911,7 @@ dependencies = [ "anyhow", "cached", "chrono", - "clap 4.4.7", + "clap 4.4.12", "clap-verbosity-flag", "clap_complete", "confy", @@ -9840,7 +9921,7 @@ dependencies = [ "hex", "indexmap 2.1.0", "indicatif", - "itertools 0.11.0", + "itertools 0.12.0", "log", "once_cell", "os_info", @@ -9850,10 +9931,10 @@ dependencies = [ "reqwest", "serde", "serde_json", - "serde_yaml 0.9.27", + "serde_yaml 0.9.29", "sha2", "tempfile", - "toml 0.8.6", + "toml 0.8.8", ] [[package]] @@ -9864,7 +9945,7 @@ checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191" [[package]] name = "vector" -version = "0.34.2" +version = "0.35.0" dependencies = [ "apache-avro", "approx", @@ -9905,8 +9986,9 @@ dependencies = [ "bytes 1.5.0", "bytesize", "chrono", - "cidr-utils", - "clap 4.4.7", + "chrono-tz", + "cidr-utils 0.6.1", + "clap 4.4.12", "colored", "console-subscriber", "criterion", @@ -9921,21 +10003,22 @@ dependencies = [ "exitcode", "fakedata", "flate2", - "futures 0.3.29", + "futures 0.3.30", "futures-util", "glob", "goauth", "governor", "greptimedb-client", "grok", - "h2", + "h2 0.4.0", "hash_hasher", - "hashbrown 0.14.2", + "hashbrown 0.14.3", "headers", "heim", "hex", + "hickory-proto", "hostname", - "http", + "http 0.2.9", "http-body", "http-serde", "hyper", @@ -9945,7 +10028,7 @@ dependencies = [ "indoc", "infer 0.15.0", "inventory", - "itertools 0.11.0", + "itertools 0.12.0", "k8s-openapi 0.18.0", "kube", "lapin", @@ -9961,7 +10044,7 @@ dependencies = [ "mlua", "mongodb", "nix 0.26.2", - "nkeys", + "nkeys 0.4.0", "nom", "notify", "num-format", @@ -9971,17 +10054,17 @@ dependencies = [ "openssl", "openssl-probe", "openssl-src", - "ordered-float 4.1.1", + "ordered-float 4.2.0", "paste", "percent-encoding", "pin-project", "portpicker", "postgres-openssl", "proptest", - "prost 0.12.1", - "prost-build 0.12.1", + "prost 0.12.3", + "prost-build 0.12.3", "prost-reflect", - "prost-types 0.12.1", + "prost-types 0.12.3", "pulsar", "quickcheck", "rand 0.8.5", @@ -10002,7 +10085,7 @@ dependencies = [ "serde_bytes", "serde_json", "serde_with 3.4.0", - "serde_yaml 0.9.27", + "serde_yaml 0.9.29", "sha2", "similar-asserts", "smallvec", @@ -10023,7 +10106,7 @@ dependencies = [ "tokio-test", "tokio-tungstenite", "tokio-util", - "toml 0.8.6", + "toml 0.8.8", "tonic 0.10.2", "tonic-build 0.10.2", "tower", @@ -10035,7 +10118,6 @@ dependencies = [ "tracing-limit", "tracing-subscriber", "tracing-tower", - "trust-dns-proto 0.23.2", "typetag", "url", "uuid", @@ -10055,8 +10137,8 @@ dependencies = [ "anyhow", "async-trait", "chrono", - "clap 4.4.7", - "futures 0.3.29", + "clap 4.4.12", + "futures 0.3.30", "graphql_client", "indoc", "reqwest", @@ -10078,13 +10160,14 @@ dependencies = [ "async-trait", "bytecheck", "bytes 1.5.0", - "clap 4.4.7", + "clap 4.4.12", "crc32fast", "criterion", "crossbeam-queue", "crossbeam-utils", + "derivative", "fslock", - "futures 0.3.29", + "futures 0.3.30", "hdrhistogram", "memmap2", "metrics", @@ -10092,13 +10175,14 @@ dependencies = [ "metrics-util", "num-traits", "once_cell", + "paste", "pin-project", "proptest", "quickcheck", "rand 0.8.5", "rkyv", "serde", - "serde_yaml 0.9.27", + "serde_yaml 0.9.29", "snafu", "temp-dir", "tokio", @@ -10123,11 +10207,11 @@ dependencies = [ "chrono-tz", "crossbeam-utils", "derivative", - "futures 0.3.29", + "futures 0.3.30", "indexmap 2.1.0", "metrics", "nom", - "ordered-float 4.1.1", + "ordered-float 4.2.0", "paste", "pin-project", "quickcheck", @@ -10154,7 +10238,7 @@ dependencies = [ "chrono", "chrono-tz", "encoding_rs", - "http", + "http 0.2.9", "indexmap 2.1.0", "inventory", "no-proxy", @@ -10163,7 +10247,7 @@ dependencies = [ "serde_json", "serde_with 3.4.0", "snafu", - "toml 0.8.6", + "toml 0.8.8", "tracing 0.1.40", "url", "vector-config-common", @@ -10179,11 +10263,11 @@ dependencies = [ "convert_case 0.6.0", "darling 0.20.3", "once_cell", - "proc-macro2 1.0.69", - "quote 1.0.33", + "proc-macro2 1.0.74", + "quote 1.0.35", "serde", "serde_json", - "syn 2.0.39", + "syn 2.0.46", "tracing 0.1.40", ] @@ -10192,11 +10276,11 @@ name = "vector-config-macros" version = "0.1.0" dependencies = [ "darling 0.20.3", - "proc-macro2 1.0.69", - "quote 1.0.33", + "proc-macro2 1.0.74", + "quote 1.0.35", "serde", "serde_derive_internals", - "syn 2.0.39", + "syn 2.0.46", "vector-config", "vector-config-common", ] @@ -10220,10 +10304,10 @@ dependencies = [ "enumflags2", "env-test-util", "float_eq", - "futures 0.3.29", + "futures 0.3.30", "futures-util", "headers", - "http", + "http 0.2.9", "hyper-proxy", "indexmap 2.1.0", "metrics", @@ -10236,14 +10320,14 @@ dependencies = [ "noisy_float", "once_cell", "openssl", - "ordered-float 4.1.1", + "ordered-float 4.2.0", "parking_lot", "pin-project", "proptest", - "prost 0.12.1", - "prost-build 0.12.1", - "prost-types 0.12.1", - "quanta 0.12.1", + "prost 0.12.3", + "prost-build 0.12.3", + "prost-types 0.12.3", + "quanta 0.12.2", "quickcheck", "quickcheck_macros", "rand 0.8.5", @@ -10264,7 +10348,7 @@ dependencies = [ "tokio-stream", "tokio-test", "tokio-util", - "toml 0.8.6", + "toml 0.8.8", "tonic 0.10.2", "tracing 0.1.40", "tracing-core 0.1.32", @@ -10313,7 +10397,7 @@ name = "vector-stream" version = "0.1.0" dependencies = [ "async-stream", - "futures 0.3.29", + "futures 0.3.30", "futures-util", "pin-project", "proptest", @@ -10332,7 +10416,7 @@ dependencies = [ name = "vector-vrl-cli" version = "0.1.0" dependencies = [ - "clap 4.4.7", + "clap 4.4.12", "vector-vrl-functions", "vrl", ] @@ -10351,7 +10435,7 @@ dependencies = [ "ansi_term", "chrono", "chrono-tz", - "clap 4.4.7", + "clap 4.4.12", "enrichment", "glob", "prettydiff", @@ -10370,7 +10454,7 @@ version = "0.1.0" dependencies = [ "cargo_toml", "enrichment", - "getrandom 0.2.10", + "getrandom 0.2.11", "gloo-utils", "serde", "serde-wasm-bindgen", @@ -10393,13 +10477,12 @@ checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" [[package]] name = "vrl" -version = "0.8.1" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8a93ee342590c4df0ff63961d7d76a347e0c7b6e6c0be4c001317ca1ff11b53" +checksum = "0c13adaad36ee7b6f8cb7e7baa17ac05d84439d787b0b058df7be1cd9b04f485" dependencies = [ "aes", "ansi_term", - "anymap", "arbitrary", "base16", "base64 0.21.5", @@ -10411,8 +10494,8 @@ dependencies = [ "charset", "chrono", "chrono-tz", - "cidr-utils", - "clap 4.4.7", + "cidr-utils 0.6.1", + "clap 4.4.12", "codespan-reporting", "community-id", "crypto_secretbox", @@ -10429,7 +10512,7 @@ dependencies = [ "hostname", "indexmap 2.1.0", "indoc", - "itertools 0.11.0", + "itertools 0.12.0", "lalrpop", "lalrpop-util", "md-5", @@ -10438,7 +10521,7 @@ dependencies = [ "ofb", "once_cell", "onig", - "ordered-float 4.1.1", + "ordered-float 4.2.0", "paste", "peeking_take_while", "percent-encoding", @@ -10450,7 +10533,7 @@ dependencies = [ "quoted_printable", "rand 0.8.5", "regex", - "roxmltree 0.18.1", + "roxmltree 0.19.0", "rust_decimal", "rustyline", "seahash", @@ -10460,6 +10543,7 @@ dependencies = [ "sha2", "sha3", "snafu", + "snap", "strip-ansi-escapes", "syslog_loose", "termcolor", @@ -10490,8 +10574,8 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d257817081c7dffcdbab24b9e62d2def62e2ff7d00b1c20062551e6cccc145ff" dependencies = [ - "proc-macro2 1.0.69", - "quote 1.0.33", + "proc-macro2 1.0.74", + "quote 1.0.35", ] [[package]] @@ -10538,7 +10622,7 @@ dependencies = [ "futures-channel", "futures-util", "headers", - "http", + "http 0.2.9", "hyper", "log", "mime", @@ -10572,9 +10656,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.88" +version = "0.2.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7daec296f25a1bae309c0cd5c29c4b260e510e6d813c286b19eaadf409d40fce" +checksum = "0ed0d4f68a3015cc185aff4db9506a015f4b96f95303897bfa23f846db54064e" dependencies = [ "cfg-if", "wasm-bindgen-macro", @@ -10582,16 +10666,16 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.88" +version = "0.2.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e397f4664c0e4e428e8313a469aaa58310d302159845980fd23b0f22a847f217" +checksum = "1b56f625e64f3a1084ded111c4d5f477df9f8c92df113852fa5a374dbda78826" dependencies = [ "bumpalo", "log", "once_cell", - "proc-macro2 1.0.69", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.74", + "quote 1.0.35", + "syn 2.0.46", "wasm-bindgen-shared", ] @@ -10609,32 +10693,32 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.88" +version = "0.2.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5961017b3b08ad5f3fe39f1e79877f8ee7c23c5e5fd5eb80de95abc41f1f16b2" +checksum = "0162dbf37223cd2afce98f3d0785506dcb8d266223983e4b5b525859e6e182b2" dependencies = [ - "quote 1.0.33", + "quote 1.0.35", "wasm-bindgen-macro-support", ] [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.88" +version = "0.2.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5353b8dab669f5e10f5bd76df26a9360c748f054f862ff5f3f8aae0c7fb3907" +checksum = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283" dependencies = [ - "proc-macro2 1.0.69", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.74", + "quote 1.0.35", + "syn 2.0.46", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.88" +version = "0.2.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d046c5d029ba91a1ed14da14dca44b68bf2f124cfbaf741c54151fdb3e0750b" +checksum = "7ab9b36309365056cd639da3134bf87fa8f3d86008abf99e612384a6eecd459f" [[package]] name = "wasm-streams" @@ -10701,7 +10785,20 @@ dependencies = [ "either", "home", "once_cell", - "rustix 0.38.21", + "rustix 0.38.28", +] + +[[package]] +name = "which" +version = "5.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9bf3ea8596f3a0dd5980b46430f2058dfe2c36a27ccfbb1845d6fbfcd9ba6e14" +dependencies = [ + "either", + "home", + "once_cell", + "rustix 0.38.28", + "windows-sys 0.48.0", ] [[package]] @@ -10795,6 +10892,15 @@ dependencies = [ "windows-targets 0.48.5", ] +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.0", +] + [[package]] name = "windows-targets" version = "0.42.2" @@ -10825,6 +10931,21 @@ dependencies = [ "windows_x86_64_msvc 0.48.5", ] +[[package]] +name = "windows-targets" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" +dependencies = [ + "windows_aarch64_gnullvm 0.52.0", + "windows_aarch64_msvc 0.52.0", + "windows_i686_gnu 0.52.0", + "windows_i686_msvc 0.52.0", + "windows_x86_64_gnu 0.52.0", + "windows_x86_64_gnullvm 0.52.0", + "windows_x86_64_msvc 0.52.0", +] + [[package]] name = "windows_aarch64_gnullvm" version = "0.42.2" @@ -10837,6 +10958,12 @@ version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" + [[package]] name = "windows_aarch64_msvc" version = "0.42.2" @@ -10849,6 +10976,12 @@ version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" + [[package]] name = "windows_i686_gnu" version = "0.42.2" @@ -10861,6 +10994,12 @@ version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" +[[package]] +name = "windows_i686_gnu" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" + [[package]] name = "windows_i686_msvc" version = "0.42.2" @@ -10873,6 +11012,12 @@ version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" +[[package]] +name = "windows_i686_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" + [[package]] name = "windows_x86_64_gnu" version = "0.42.2" @@ -10885,6 +11030,12 @@ version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" + [[package]] name = "windows_x86_64_gnullvm" version = "0.42.2" @@ -10897,6 +11048,12 @@ version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" + [[package]] name = "windows_x86_64_msvc" version = "0.42.2" @@ -10909,6 +11066,12 @@ version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" + [[package]] name = "winnow" version = "0.5.18" @@ -10930,15 +11093,15 @@ dependencies = [ [[package]] name = "wiremock" -version = "0.5.21" +version = "0.5.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "079aee011e8a8e625d16df9e785de30a6b77f80a6126092d76a57375f96448da" +checksum = "13a3a53eaf34f390dd30d7b1b078287dd05df2aa2e21a589ccb80f5c7253c2e9" dependencies = [ "assert-json-diff 2.0.2", "async-trait", "base64 0.21.5", "deadpool", - "futures 0.3.29", + "futures 0.3.30", "futures-timer", "http-types", "hyper", @@ -11005,9 +11168,9 @@ version = "0.7.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b3c129550b3e6de3fd0ba67ba5c81818f9805e58b8d7fee80a3a59d2c9fc601a" dependencies = [ - "proc-macro2 1.0.69", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.74", + "quote 1.0.35", + "syn 2.0.46", ] [[package]] diff --git a/pkgs/tools/misc/vector/default.nix b/pkgs/tools/misc/vector/default.nix index aef8bace56f7..7bae0c6e7646 100644 --- a/pkgs/tools/misc/vector/default.nix +++ b/pkgs/tools/misc/vector/default.nix @@ -9,6 +9,7 @@ , oniguruma , zstd , rust-jemalloc-sys +, rust-jemalloc-sys-unprefixed , Security , libiconv , coreutils @@ -35,7 +36,7 @@ let pname = "vector"; - version = "0.34.2"; + version = "0.35.0"; in rustPlatform.buildRustPackage { inherit pname version; @@ -44,11 +45,9 @@ rustPlatform.buildRustPackage { owner = "vectordotdev"; repo = pname; rev = "v${version}"; - hash = "sha256-XaX6C1kl908MG8SndT2sUDR09qbFCar4G7U7TYlLBR4="; + hash = "sha256-hScmHDkKkR6g1rrVRzBjtkrq59w1efIjeRJdDxmb+nY="; }; - patches = [ ./vector-pr19075.patch ]; - cargoLock = { lockFile = ./Cargo.lock; outputHashes = { @@ -64,8 +63,9 @@ rustPlatform.buildRustPackage { }; nativeBuildInputs = [ pkg-config cmake perl git rustPlatform.bindgenHook ]; buildInputs = - [ oniguruma openssl protobuf rdkafka zstd rust-jemalloc-sys ] - ++ lib.optionals stdenv.isDarwin [ Security libiconv coreutils CoreServices SystemConfiguration ]; + [ oniguruma openssl protobuf rdkafka zstd ] + ++ lib.optionals stdenv.isLinux [ rust-jemalloc-sys-unprefixed ] + ++ lib.optionals stdenv.isDarwin [ rust-jemalloc-sys Security libiconv coreutils CoreServices SystemConfiguration ]; # needed for internal protobuf c wrapper library PROTOC = "${protobuf}/bin/protoc"; diff --git a/pkgs/tools/misc/vector/vector-pr19075.patch b/pkgs/tools/misc/vector/vector-pr19075.patch deleted file mode 100644 index 96ab75edef37..000000000000 --- a/pkgs/tools/misc/vector/vector-pr19075.patch +++ /dev/null @@ -1,23 +0,0 @@ -From 14cd9c12416b5c9ada55ced51e8f92fdce56a4b1 Mon Sep 17 00:00:00 2001 -From: Aaron Andersen -Date: Tue, 7 Nov 2023 09:05:26 -0500 -Subject: [PATCH] fix(config): rustc warnings - ---- - src/convert_config.rs | 3 +-- - 1 file changed, 1 insertion(+), 2 deletions(-) - -diff --git a/src/convert_config.rs b/src/convert_config.rs -index f0a900cf421a0..d81b998c5ee1f 100644 ---- a/src/convert_config.rs -+++ b/src/convert_config.rs -@@ -157,8 +157,7 @@ fn walk_dir_and_convert( - let new_output_dir = if entry_path.is_dir() { - let last_component = entry_path - .file_name() -- .unwrap_or_else(|| panic!("Failed to get file_name for {entry_path:?}")) -- .clone(); -+ .unwrap_or_else(|| panic!("Failed to get file_name for {entry_path:?}")); - let new_dir = output_dir.join(last_component); - - if !new_dir.exists() { From 3606478738a3849c4d91b5bf58757e2bd01de26c Mon Sep 17 00:00:00 2001 From: Luka Blaskovic Date: Mon, 15 Jan 2024 08:50:14 +0000 Subject: [PATCH 43/59] vector: fix build with rustc 1.75 --- pkgs/tools/misc/vector/default.nix | 2 ++ pkgs/tools/misc/vector/vector-pr19518.patch | 25 +++++++++++++++++++++ 2 files changed, 27 insertions(+) create mode 100644 pkgs/tools/misc/vector/vector-pr19518.patch diff --git a/pkgs/tools/misc/vector/default.nix b/pkgs/tools/misc/vector/default.nix index 7bae0c6e7646..de9341c1c6bc 100644 --- a/pkgs/tools/misc/vector/default.nix +++ b/pkgs/tools/misc/vector/default.nix @@ -99,6 +99,8 @@ rustPlatform.buildRustPackage { "--skip=sources::aws_kinesis_firehose::tests::handles_acknowledgement_failure" ]; + patches = [ ./vector-pr19518.patch ]; + # recent overhauls of DNS support in 0.9 mean that we try to resolve # vector.dev during the checkPhase, which obviously isn't going to work. # these tests in the DNS module are trivial though, so stubbing them out is diff --git a/pkgs/tools/misc/vector/vector-pr19518.patch b/pkgs/tools/misc/vector/vector-pr19518.patch new file mode 100644 index 000000000000..a8ee5334eda9 --- /dev/null +++ b/pkgs/tools/misc/vector/vector-pr19518.patch @@ -0,0 +1,25 @@ +diff --git a/src/config/loading/mod.rs b/src/config/loading/mod.rs +index 58c464a58..40656fd29 100644 +--- a/src/config/loading/mod.rs ++++ b/src/config/loading/mod.rs +@@ -13,7 +13,6 @@ use std::{ + }; + + use config_builder::ConfigBuilderLoader; +-pub use config_builder::*; + use glob::glob; + use loader::process::Process; + pub use loader::*; +diff --git a/src/sinks/prometheus/remote_write/mod.rs b/src/sinks/prometheus/remote_write/mod.rs +index 3ebda7df8..cf5b37a70 100644 +--- a/src/sinks/prometheus/remote_write/mod.rs ++++ b/src/sinks/prometheus/remote_write/mod.rs +@@ -24,8 +24,6 @@ mod tests; + #[cfg(all(test, feature = "prometheus-integration-tests"))] + mod integration_tests; + +-pub use config::RemoteWriteConfig; +- + #[derive(Debug, Snafu)] + enum Errors { + #[cfg(feature = "aws-core")] From 0164ab8387f0718cb0639d1b793cef40116d3a78 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Mon, 15 Jan 2024 13:16:56 +0100 Subject: [PATCH 44/59] zircolite: enable darwin build --- pkgs/by-name/zi/zircolite/package.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/by-name/zi/zircolite/package.nix b/pkgs/by-name/zi/zircolite/package.nix index 65453749f4fb..0c430916c987 100644 --- a/pkgs/by-name/zi/zircolite/package.nix +++ b/pkgs/by-name/zi/zircolite/package.nix @@ -16,6 +16,8 @@ python3.pkgs.buildPythonApplication rec { hash = "sha256-De1FLeYZY9eiBW18AVAMtYysC0b8AzO5HtFKxyzK9GY="; }; + __darwinAllowLocalNetworking = true; + nativeBuildInputs = [ makeWrapper ]; From 8db1e24adb0e75260b0e2a5f32c1a86a56dc728b Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Mon, 15 Jan 2024 13:17:52 +0100 Subject: [PATCH 45/59] zircolite: 2.9.9 -> 2.10.0 Diff: https://github.com/wagga40/Zircolite/compare/refs/tags/2.9.9...2.10.0 Changelog: https://github.com/wagga40/Zircolite/releases/tag/2.10.0 --- pkgs/by-name/zi/zircolite/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/zi/zircolite/package.nix b/pkgs/by-name/zi/zircolite/package.nix index 0c430916c987..799f2002963c 100644 --- a/pkgs/by-name/zi/zircolite/package.nix +++ b/pkgs/by-name/zi/zircolite/package.nix @@ -6,14 +6,14 @@ python3.pkgs.buildPythonApplication rec { pname = "zircolite"; - version = "2.9.9"; + version = "2.10.0"; format = "other"; src = fetchFromGitHub { owner = "wagga40"; repo = "Zircolite"; rev = "refs/tags/${version}"; - hash = "sha256-De1FLeYZY9eiBW18AVAMtYysC0b8AzO5HtFKxyzK9GY="; + hash = "sha256-r5MIoP+6CnAGsOtK4YLshLBVSZN2NVrwnkuHHDdLZrQ="; }; __darwinAllowLocalNetworking = true; From 50814196e8c150255bd21a2a932e9b92cf7331ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Silva?= Date: Mon, 15 Jan 2024 14:21:04 +0000 Subject: [PATCH 46/59] pyprland: 1.6.10 -> 1.6.11 --- pkgs/by-name/py/pyprland/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/py/pyprland/package.nix b/pkgs/by-name/py/pyprland/package.nix index d4412c321a47..7c65fb40dcfd 100644 --- a/pkgs/by-name/py/pyprland/package.nix +++ b/pkgs/by-name/py/pyprland/package.nix @@ -2,7 +2,7 @@ python3Packages.buildPythonApplication rec { pname = "pyprland"; - version = "1.6.10"; + version = "1.6.11"; format = "pyproject"; disabled = python3Packages.pythonOlder "3.10"; @@ -11,7 +11,7 @@ python3Packages.buildPythonApplication rec { owner = "hyprland-community"; repo = "pyprland"; rev = version; - hash = "sha256-1JPEAVfGkIE3pRS1JNQJQXUI4YjtO/M6MpD7Q0pPR3E="; + hash = "sha256-intrvN6sPaokcY9If2GZvDaFdDFcHg4hO7LXXu0pLXU="; }; nativeBuildInputs = with python3Packages; [ poetry-core ]; From 58e22cabd9f983bce49aef2771b057208cfedc6a Mon Sep 17 00:00:00 2001 From: Jon Seager Date: Mon, 15 Jan 2024 08:59:17 +0000 Subject: [PATCH 47/59] lxd-ui: run nixosTests.lxd.ui by default --- pkgs/tools/admin/lxd/ui.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkgs/tools/admin/lxd/ui.nix b/pkgs/tools/admin/lxd/ui.nix index 71b0fb9d0621..d2110d4c4d7c 100644 --- a/pkgs/tools/admin/lxd/ui.nix +++ b/pkgs/tools/admin/lxd/ui.nix @@ -5,6 +5,7 @@ , nodejs , prefetch-yarn-deps , yarn +, nixosTests }: stdenv.mkDerivation rec { @@ -57,6 +58,8 @@ stdenv.mkDerivation rec { runHook postInstall ''; + passthru.tests.default = nixosTests.lxd.ui; + meta = { description = "Web user interface for LXD"; homepage = "https://github.com/canonical/lxd-ui"; From cec3e9441cb04878705536d2861d92060ec7f86e Mon Sep 17 00:00:00 2001 From: Chris McDonough Date: Mon, 15 Jan 2024 10:49:36 -0500 Subject: [PATCH 48/59] Move prose Co-authored-by: Alexander Groleau --- doc/build-helpers/trivial-build-helpers.chapter.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/doc/build-helpers/trivial-build-helpers.chapter.md b/doc/build-helpers/trivial-build-helpers.chapter.md index 398fb60fc880..d90fee192b25 100644 --- a/doc/build-helpers/trivial-build-helpers.chapter.md +++ b/doc/build-helpers/trivial-build-helpers.chapter.md @@ -71,9 +71,9 @@ Each of these functions will cause a derivation to be produced. When you coerce :::: {.warning} Some of these functions will put the resulting files within a directory inside the derivation output. If you need to refer to the resulting files somewhere else in Nix code, remember to append the path to the file For example: -```nix -# if the derivation destination is a directory.... +If the derivation destination is a directory... +```nix my-file = writeTextFile { name = "my-file"; @@ -83,13 +83,13 @@ my-file = writeTextFile { destination = "/share/my-file"; } -# remember to tack on "/share/my-file" to the derivation path when -# using it elsewhere. - writeShellScript "evaluate-my-file.sh" '' cat ${my-file}/share/my-file ''; ``` +::: {.note} +Remember to tack on "/share/my-file" to the derivation path when using it elsewhere. +::: :::: ### `writeTextFile` {#trivial-builder-writeTextFile} From 39a1686e562aa3d53a74615dbda50f01574724c0 Mon Sep 17 00:00:00 2001 From: Chris McDonough Date: Mon, 15 Jan 2024 10:49:51 -0500 Subject: [PATCH 49/59] Add a period Co-authored-by: Alexander Groleau --- doc/build-helpers/trivial-build-helpers.chapter.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/build-helpers/trivial-build-helpers.chapter.md b/doc/build-helpers/trivial-build-helpers.chapter.md index d90fee192b25..8a1fd61c18c8 100644 --- a/doc/build-helpers/trivial-build-helpers.chapter.md +++ b/doc/build-helpers/trivial-build-helpers.chapter.md @@ -69,7 +69,7 @@ These are useful for creating files from Nix expressions, which may be scripts o Each of these functions will cause a derivation to be produced. When you coerce the result of each of these functions to a string, it will evaluate to the *store path* of this derivation. :::: {.warning} -Some of these functions will put the resulting files within a directory inside the derivation output. If you need to refer to the resulting files somewhere else in Nix code, remember to append the path to the file For example: +Some of these functions will put the resulting files within a directory inside the derivation output. If you need to refer to the resulting files somewhere else in Nix code, remember to append the path to the file. For example: If the derivation destination is a directory... From aaf048eaeea1c01b20754670a70faf7f7fb53bc0 Mon Sep 17 00:00:00 2001 From: Lin Xianyi Date: Mon, 15 Jan 2024 22:06:37 +0800 Subject: [PATCH 50/59] swww: 0.8.1 -> 0.8.2 --- pkgs/tools/wayland/swww/default.nix | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pkgs/tools/wayland/swww/default.nix b/pkgs/tools/wayland/swww/default.nix index d97c8ea28df8..9973e6b2fb69 100644 --- a/pkgs/tools/wayland/swww/default.nix +++ b/pkgs/tools/wayland/swww/default.nix @@ -10,16 +10,16 @@ rustPlatform.buildRustPackage rec { pname = "swww"; - version = "0.8.1"; + version = "0.8.2"; src = fetchFromGitHub { - owner = "Horus645"; + owner = "LGFae"; repo = pname; rev = "refs/tags/v${version}"; - hash = "sha256-9c/qBmk//NpfvPYjK2QscubFneiQYBU/7PLtTvVRmTA="; + hash = "sha256-n7YdUmIZGu7W7cX6OvVW+wbkKjFvont4hEAhZXYDQd8="; }; - cargoSha256 = "sha256-AE9bQtW5r1cjIsXA7YEP8TR94wBjaM7emOroVFq9ldE="; + cargoSha256 = "sha256-lZC71M3lbsI+itMydAp5VCz0cpSHo/FpkQFC1NlN4DU="; buildInputs = [ lz4 @@ -49,7 +49,7 @@ rustPlatform.buildRustPackage rec { meta = with lib; { description = "Efficient animated wallpaper daemon for wayland, controlled at runtime"; - homepage = "https://github.com/Horus645/swww"; + homepage = "https://github.com/LGFae/swww"; license = licenses.gpl3; maintainers = with maintainers; [ mateodd25 donovanglover ]; platforms = platforms.linux; From 2e2aaa1c2e48ef25fba479bb3e2e000fa9c65569 Mon Sep 17 00:00:00 2001 From: Chris McDonough Date: Mon, 15 Jan 2024 11:29:35 -0500 Subject: [PATCH 51/59] do not nest a note within a warning, break out writeTextFile examples into multiple example sections, test first writeTextFile example (it was broken, heh) and fix, move prose out of code blocks --- .../trivial-build-helpers.chapter.md | 65 ++++++++++++------- 1 file changed, 42 insertions(+), 23 deletions(-) diff --git a/doc/build-helpers/trivial-build-helpers.chapter.md b/doc/build-helpers/trivial-build-helpers.chapter.md index 8a1fd61c18c8..54118fa773ae 100644 --- a/doc/build-helpers/trivial-build-helpers.chapter.md +++ b/doc/build-helpers/trivial-build-helpers.chapter.md @@ -68,11 +68,9 @@ These are useful for creating files from Nix expressions, which may be scripts o Each of these functions will cause a derivation to be produced. When you coerce the result of each of these functions to a string, it will evaluate to the *store path* of this derivation. -:::: {.warning} -Some of these functions will put the resulting files within a directory inside the derivation output. If you need to refer to the resulting files somewhere else in Nix code, remember to append the path to the file. For example: +:::: {.note} +Some of these functions will put the resulting files within a directory inside the derivation output. If you need to refer to the resulting files somewhere else in Nix code, remember to append the path to the file. For example, if the derivation destination is a directory: - -If the derivation destination is a directory... ```nix my-file = writeTextFile { @@ -82,14 +80,16 @@ my-file = writeTextFile { ''; destination = "/share/my-file"; } +``` +Remember to append "/share/my-file" to the derivation path when using it elsewhere: + +```nix writeShellScript "evaluate-my-file.sh" '' cat ${my-file}/share/my-file ''; ``` -::: {.note} -Remember to tack on "/share/my-file" to the derivation path when using it elsewhere. -::: + :::: ### `writeTextFile` {#trivial-builder-writeTextFile} @@ -130,46 +130,59 @@ Writes a text file to the store : Whether to prefer building locally, even if faster remote builders are available. It defaults to `true` for the same reason `allowSubstitutes` defaults to `false`. -The resulting store path will include some variation of the name, and it will be a file unless `destination` (see below) is used, in which case it will be a directory. +The resulting store path will include some variation of the name, and it will be a file unless `destination` is used, in which case it will be a directory. ::: {.example #ex-writeTextFile} -# Usages of `writeTextFile` +# Usage 1 of `writeTextFile` + +Writes my-file to `/nix/store//some/subpath/my-cool-script`, making it executable. It also runs a check on the resulting file in a `checkPhase`, and supplies values for the less-used options. + ```nix -# Writes my-file to /nix/store//some/subpath/my-cool-script, -# making it executable and also supplies values for the less-used options -writeTextFile rec { +writeTextFile { name = "my-cool-script"; text = '' #!/bin/sh echo "This is my cool script!" ''; executable = true; - destination = "some/subpath/my-cool-script"; + destination = "/some/subpath/my-cool-script"; checkPhase = '' - ${pkgs.shellcheck}/bin/shellcheck $out/${destination} + ${pkgs.shellcheck}/bin/shellcheck $out/some/subpath/my-cool-script ''; meta = { license = pkgs.lib.licenses.cc0; }; allowSubstitutes = true; preferLocalBuild = false; -} +}; +``` +::: -# Writes my-file to /nix/store/ -# See also the `writeText` helper function below. +::: {.example #ex2-writeTextFile} +# Usage 2 of `writeTextFile` + +Writes `Contents of File` to `/nix/store/`. See also the `writeText` helper function below. + +```nix writeTextFile { name = "my-file"; text = '' Contents of File ''; } +``` +::: -# Writes executable my-file to /nix/store//bin/my-file -# see also the `writeScriptBin` helper function below. +::: {.example #ex3-writeTextFile} +# Usage 3 of `writeTextFile` + +Writes an executable `my-file` to `/nix/store//bin/my-file`. See also the `writeScriptBin` helper function below. + +```nix writeTextFile { name = "my-file"; text = '' - Contents of File + echo "hi" ''; executable = true; destination = "/bin/my-file"; @@ -198,8 +211,10 @@ Here is an example. ::: {.example #ex-writeText} # Usage of `writeText` + +Writes `Contents of File` to `/nix/store/` + ```nix -# Writes my-file to /nix/store/ writeText "my-file" '' Contents of File @@ -236,8 +251,10 @@ The store path will be a directory. ::: {.example #ex-writeTextDir} # Usage of `writeTextDir` + +Writes `Contents of File` to `/nix/store//share/my-file`. + ```nix -# Writes contents of file to /nix/store//share/my-file writeTextDir "share/my-file" '' Contents of File @@ -279,8 +296,10 @@ Here is an example. ::: {.example #ex-writeScript} # Usage of `writeScript` + +Writes `Contents of File` to `/nix/store/` and makes the store path executable. + ```nix -# Writes my-file to /nix/store/ and makes executable writeScript "my-file" '' Contents of File From aa7dd0b5964f4b8b8f3bd542d2883296b249d68b Mon Sep 17 00:00:00 2001 From: Silvan Mosberger Date: Mon, 15 Jan 2024 18:34:16 +0100 Subject: [PATCH 52/59] tests.nixpkgs-check-by-name: Improve lib path handling in tests nix-build failed because the tests assume to run in a CWD equal to the project root, which is not the case in the derivation build. This commit fixes it by not using hacky `..` references to paths, and instead uses NIX_PATH for all implicit Nix testing path dependencies. Also the root of the `lib` path gets passed in from the `default.nix` file, so all the relative path handling is done by Nix during evaluation already, and in the Nix store when possible. --- pkgs/test/nixpkgs-check-by-name/default.nix | 4 ++ pkgs/test/nixpkgs-check-by-name/src/eval.rs | 12 ++++-- pkgs/test/nixpkgs-check-by-name/src/main.rs | 38 ++++++++++++++----- .../tests/broken-autocall/default.nix | 2 +- .../tests/empty-base/default.nix | 2 +- .../tests/incorrect-shard/default.nix | 2 +- .../tests/internalCallPackage/default.nix | 2 +- .../tests/invalid-package-name/default.nix | 2 +- .../tests/invalid-shard-name/default.nix | 2 +- .../tests/missing-package-nix/default.nix | 2 +- .../tests/mock-nixpkgs.nix | 2 +- .../move-to-non-by-name/base/default.nix | 2 +- .../tests/move-to-non-by-name/default.nix | 2 +- .../new-package-non-by-name/base/default.nix | 2 +- .../tests/new-package-non-by-name/default.nix | 2 +- .../tests/no-by-name/default.nix | 2 +- .../tests/no-eval/default.nix | 2 +- .../tests/non-attrs/default.nix | 2 +- .../tests/non-derivation/default.nix | 2 +- .../tests/one-letter/default.nix | 2 +- .../only-callPackage-derivations/default.nix | 2 +- .../tests/override-different-file/default.nix | 2 +- .../base/default.nix | 2 +- .../override-empty-arg-gradual/default.nix | 2 +- .../tests/override-empty-arg/base/default.nix | 2 +- .../tests/override-empty-arg/default.nix | 2 +- .../override-no-call-package/default.nix | 2 +- .../tests/override-no-file/default.nix | 2 +- .../tests/override-success/default.nix | 2 +- .../tests/package-dir-is-file/default.nix | 2 +- .../tests/package-nix-dir/default.nix | 2 +- .../tests/ref-absolute/default.nix | 2 +- .../tests/ref-escape/default.nix | 2 +- .../tests/ref-nix-path/default.nix | 2 +- .../tests/ref-parse-failure/default.nix | 2 +- .../tests/ref-path-subexpr/default.nix | 2 +- .../tests/ref-success/default.nix | 2 +- .../tests/shard-file/default.nix | 2 +- .../tests/sorted-order/default.nix | 2 +- .../tests/success/default.nix | 2 +- .../tests/symlink-escape/default.nix | 2 +- .../tests/symlink-invalid/default.nix | 2 +- .../tests/uppercase/default.nix | 2 +- .../tests/with-readme/default.nix | 2 +- 44 files changed, 82 insertions(+), 54 deletions(-) diff --git a/pkgs/test/nixpkgs-check-by-name/default.nix b/pkgs/test/nixpkgs-check-by-name/default.nix index fc24b1fd3398..d2de2d960042 100644 --- a/pkgs/test/nixpkgs-check-by-name/default.nix +++ b/pkgs/test/nixpkgs-check-by-name/default.nix @@ -9,6 +9,7 @@ }: let runtimeExprPath = ./src/eval.nix; + nixpkgsLibPath = ../../../lib; package = rustPlatform.buildRustPackage { name = "nixpkgs-check-by-name"; @@ -30,6 +31,8 @@ let export NIX_STATE_DIR=$TEST_ROOT/var/nix export NIX_STORE_DIR=$TEST_ROOT/store + export NIXPKGS_LIB_PATH=${nixpkgsLibPath} + # Ensure that even if tests run in parallel, we don't get an error # We'd run into https://github.com/NixOS/nix/issues/2706 unless the store is initialised first nix-store --init @@ -44,6 +47,7 @@ let ''; passthru.shell = mkShell { env.NIX_CHECK_BY_NAME_EXPR_PATH = toString runtimeExprPath; + env.NIXPKGS_LIB_PATH = toString nixpkgsLibPath; inputsFrom = [ package ]; }; }; diff --git a/pkgs/test/nixpkgs-check-by-name/src/eval.rs b/pkgs/test/nixpkgs-check-by-name/src/eval.rs index 39653a871604..b411a2a3c601 100644 --- a/pkgs/test/nixpkgs-check-by-name/src/eval.rs +++ b/pkgs/test/nixpkgs-check-by-name/src/eval.rs @@ -2,6 +2,8 @@ use crate::nixpkgs_problem::NixpkgsProblem; use crate::ratchet; use crate::structure; use crate::validation::{self, Validation::Success}; +use std::collections::HashMap; +use std::ffi::OsString; use std::path::Path; use anyhow::Context; @@ -71,7 +73,7 @@ enum CallPackageVariant { pub fn check_values( nixpkgs_path: &Path, package_names: Vec, - eval_accessible_paths: &[&Path], + eval_nix_path: &HashMap, ) -> validation::Result { // Write the list of packages we need to check into a temporary JSON file. // This can then get read by the Nix evaluation. @@ -120,9 +122,13 @@ pub fn check_values( .arg(nixpkgs_path); // Also add extra paths that need to be accessible - for path in eval_accessible_paths { + for (name, path) in eval_nix_path { command.arg("-I"); - command.arg(path); + let mut name_value = OsString::new(); + name_value.push(name); + name_value.push("="); + name_value.push(path); + command.arg(name_value); } command.args(["-I", &expr_path]); command.arg(expr_path); diff --git a/pkgs/test/nixpkgs-check-by-name/src/main.rs b/pkgs/test/nixpkgs-check-by-name/src/main.rs index 62ae159df35c..273ebca1643e 100644 --- a/pkgs/test/nixpkgs-check-by-name/src/main.rs +++ b/pkgs/test/nixpkgs-check-by-name/src/main.rs @@ -12,6 +12,7 @@ use crate::validation::Validation::Success; use anyhow::Context; use clap::Parser; use colored::Colorize; +use std::collections::HashMap; use std::io; use std::path::{Path, PathBuf}; use std::process::ExitCode; @@ -44,7 +45,12 @@ pub struct Args { fn main() -> ExitCode { let args = Args::parse(); - match process(&args.base, &args.nixpkgs, &[], &mut io::stderr()) { + match process( + &args.base, + &args.nixpkgs, + &HashMap::new(), + &mut io::stderr(), + ) { Ok(true) => { eprintln!("{}", "Validated successfully".green()); ExitCode::SUCCESS @@ -77,15 +83,15 @@ fn main() -> ExitCode { pub fn process( base_nixpkgs: &Path, main_nixpkgs: &Path, - eval_accessible_paths: &[&Path], + eval_nix_path: &HashMap, error_writer: &mut W, ) -> anyhow::Result { // Check the main Nixpkgs first - let main_result = check_nixpkgs(main_nixpkgs, eval_accessible_paths, error_writer)?; + let main_result = check_nixpkgs(main_nixpkgs, eval_nix_path, error_writer)?; let check_result = main_result.result_map(|nixpkgs_version| { // If the main Nixpkgs doesn't have any problems, run the ratchet checks against the base // Nixpkgs - check_nixpkgs(base_nixpkgs, eval_accessible_paths, error_writer)?.result_map( + check_nixpkgs(base_nixpkgs, eval_nix_path, error_writer)?.result_map( |base_nixpkgs_version| { Ok(ratchet::Nixpkgs::compare( base_nixpkgs_version, @@ -113,7 +119,7 @@ pub fn process( /// ratchet check against another result. pub fn check_nixpkgs( nixpkgs_path: &Path, - eval_accessible_paths: &[&Path], + eval_nix_path: &HashMap, error_writer: &mut W, ) -> validation::Result { Ok({ @@ -134,7 +140,7 @@ pub fn check_nixpkgs( } else { check_structure(&nixpkgs_path)?.result_map(|package_names| // Only if we could successfully parse the structure, we do the evaluation checks - eval::check_values(&nixpkgs_path, package_names, eval_accessible_paths))? + eval::check_values(&nixpkgs_path, package_names, eval_nix_path))? } }) } @@ -144,8 +150,10 @@ mod tests { use crate::process; use crate::utils; use anyhow::Context; + use std::collections::HashMap; use std::fs; use std::path::Path; + use std::path::PathBuf; use tempfile::{tempdir_in, TempDir}; #[test] @@ -226,9 +234,19 @@ mod tests { } fn test_nixpkgs(name: &str, path: &Path, expected_errors: &str) -> anyhow::Result<()> { - let mock_nixpkgs_path = Path::new("tests/mock-nixpkgs.nix"); - let real_lib_path = Path::new("../../../lib"); - let extra_nix_path = [mock_nixpkgs_path, real_lib_path]; + let eval_nix_path = HashMap::from([ + ( + "test-nixpkgs".to_string(), + PathBuf::from("tests/mock-nixpkgs.nix"), + ), + ( + "test-nixpkgs/lib".to_string(), + PathBuf::from( + std::env::var("NIXPKGS_LIB_PATH") + .with_context(|| "Could not get environment variable NIXPKGS_LIB_PATH")?, + ), + ), + ]); let base_path = path.join("base"); let base_nixpkgs = if base_path.exists() { @@ -240,7 +258,7 @@ mod tests { // We don't want coloring to mess up the tests let writer = temp_env::with_var("NO_COLOR", Some("1"), || -> anyhow::Result<_> { let mut writer = vec![]; - process(base_nixpkgs, &path, &extra_nix_path, &mut writer) + process(base_nixpkgs, &path, &eval_nix_path, &mut writer) .with_context(|| format!("Failed test case {name}"))?; Ok(writer) })?; diff --git a/pkgs/test/nixpkgs-check-by-name/tests/broken-autocall/default.nix b/pkgs/test/nixpkgs-check-by-name/tests/broken-autocall/default.nix index 793dfabd6553..bd4825f8bad8 100644 --- a/pkgs/test/nixpkgs-check-by-name/tests/broken-autocall/default.nix +++ b/pkgs/test/nixpkgs-check-by-name/tests/broken-autocall/default.nix @@ -1,4 +1,4 @@ args: builtins.removeAttrs - (import ../mock-nixpkgs.nix { root = ./.; } args) + (import { root = ./.; } args) [ "foo" ] diff --git a/pkgs/test/nixpkgs-check-by-name/tests/empty-base/default.nix b/pkgs/test/nixpkgs-check-by-name/tests/empty-base/default.nix index af25d1450122..861260cdca4b 100644 --- a/pkgs/test/nixpkgs-check-by-name/tests/empty-base/default.nix +++ b/pkgs/test/nixpkgs-check-by-name/tests/empty-base/default.nix @@ -1 +1 @@ -import ../mock-nixpkgs.nix { root = ./.; } +import { root = ./.; } diff --git a/pkgs/test/nixpkgs-check-by-name/tests/incorrect-shard/default.nix b/pkgs/test/nixpkgs-check-by-name/tests/incorrect-shard/default.nix index af25d1450122..861260cdca4b 100644 --- a/pkgs/test/nixpkgs-check-by-name/tests/incorrect-shard/default.nix +++ b/pkgs/test/nixpkgs-check-by-name/tests/incorrect-shard/default.nix @@ -1 +1 @@ -import ../mock-nixpkgs.nix { root = ./.; } +import { root = ./.; } diff --git a/pkgs/test/nixpkgs-check-by-name/tests/internalCallPackage/default.nix b/pkgs/test/nixpkgs-check-by-name/tests/internalCallPackage/default.nix index af25d1450122..861260cdca4b 100644 --- a/pkgs/test/nixpkgs-check-by-name/tests/internalCallPackage/default.nix +++ b/pkgs/test/nixpkgs-check-by-name/tests/internalCallPackage/default.nix @@ -1 +1 @@ -import ../mock-nixpkgs.nix { root = ./.; } +import { root = ./.; } diff --git a/pkgs/test/nixpkgs-check-by-name/tests/invalid-package-name/default.nix b/pkgs/test/nixpkgs-check-by-name/tests/invalid-package-name/default.nix index af25d1450122..861260cdca4b 100644 --- a/pkgs/test/nixpkgs-check-by-name/tests/invalid-package-name/default.nix +++ b/pkgs/test/nixpkgs-check-by-name/tests/invalid-package-name/default.nix @@ -1 +1 @@ -import ../mock-nixpkgs.nix { root = ./.; } +import { root = ./.; } diff --git a/pkgs/test/nixpkgs-check-by-name/tests/invalid-shard-name/default.nix b/pkgs/test/nixpkgs-check-by-name/tests/invalid-shard-name/default.nix index af25d1450122..861260cdca4b 100644 --- a/pkgs/test/nixpkgs-check-by-name/tests/invalid-shard-name/default.nix +++ b/pkgs/test/nixpkgs-check-by-name/tests/invalid-shard-name/default.nix @@ -1 +1 @@ -import ../mock-nixpkgs.nix { root = ./.; } +import { root = ./.; } diff --git a/pkgs/test/nixpkgs-check-by-name/tests/missing-package-nix/default.nix b/pkgs/test/nixpkgs-check-by-name/tests/missing-package-nix/default.nix index af25d1450122..861260cdca4b 100644 --- a/pkgs/test/nixpkgs-check-by-name/tests/missing-package-nix/default.nix +++ b/pkgs/test/nixpkgs-check-by-name/tests/missing-package-nix/default.nix @@ -1 +1 @@ -import ../mock-nixpkgs.nix { root = ./.; } +import { root = ./.; } diff --git a/pkgs/test/nixpkgs-check-by-name/tests/mock-nixpkgs.nix b/pkgs/test/nixpkgs-check-by-name/tests/mock-nixpkgs.nix index f35fe051562b..183f8ff2ae8d 100644 --- a/pkgs/test/nixpkgs-check-by-name/tests/mock-nixpkgs.nix +++ b/pkgs/test/nixpkgs-check-by-name/tests/mock-nixpkgs.nix @@ -25,7 +25,7 @@ It returns a Nixpkgs-like function that can be auto-called and evaluates to an a let # Simplified versions of lib functions - lib = import ../../../../lib; + lib = import ; # The base fixed-point function to populate the resulting attribute set pkgsFun = self: { diff --git a/pkgs/test/nixpkgs-check-by-name/tests/move-to-non-by-name/base/default.nix b/pkgs/test/nixpkgs-check-by-name/tests/move-to-non-by-name/base/default.nix index 2875ea6327ef..861260cdca4b 100644 --- a/pkgs/test/nixpkgs-check-by-name/tests/move-to-non-by-name/base/default.nix +++ b/pkgs/test/nixpkgs-check-by-name/tests/move-to-non-by-name/base/default.nix @@ -1 +1 @@ -import ../../mock-nixpkgs.nix { root = ./.; } +import { root = ./.; } diff --git a/pkgs/test/nixpkgs-check-by-name/tests/move-to-non-by-name/default.nix b/pkgs/test/nixpkgs-check-by-name/tests/move-to-non-by-name/default.nix index af25d1450122..861260cdca4b 100644 --- a/pkgs/test/nixpkgs-check-by-name/tests/move-to-non-by-name/default.nix +++ b/pkgs/test/nixpkgs-check-by-name/tests/move-to-non-by-name/default.nix @@ -1 +1 @@ -import ../mock-nixpkgs.nix { root = ./.; } +import { root = ./.; } diff --git a/pkgs/test/nixpkgs-check-by-name/tests/new-package-non-by-name/base/default.nix b/pkgs/test/nixpkgs-check-by-name/tests/new-package-non-by-name/base/default.nix index 2875ea6327ef..861260cdca4b 100644 --- a/pkgs/test/nixpkgs-check-by-name/tests/new-package-non-by-name/base/default.nix +++ b/pkgs/test/nixpkgs-check-by-name/tests/new-package-non-by-name/base/default.nix @@ -1 +1 @@ -import ../../mock-nixpkgs.nix { root = ./.; } +import { root = ./.; } diff --git a/pkgs/test/nixpkgs-check-by-name/tests/new-package-non-by-name/default.nix b/pkgs/test/nixpkgs-check-by-name/tests/new-package-non-by-name/default.nix index af25d1450122..861260cdca4b 100644 --- a/pkgs/test/nixpkgs-check-by-name/tests/new-package-non-by-name/default.nix +++ b/pkgs/test/nixpkgs-check-by-name/tests/new-package-non-by-name/default.nix @@ -1 +1 @@ -import ../mock-nixpkgs.nix { root = ./.; } +import { root = ./.; } diff --git a/pkgs/test/nixpkgs-check-by-name/tests/no-by-name/default.nix b/pkgs/test/nixpkgs-check-by-name/tests/no-by-name/default.nix index af25d1450122..861260cdca4b 100644 --- a/pkgs/test/nixpkgs-check-by-name/tests/no-by-name/default.nix +++ b/pkgs/test/nixpkgs-check-by-name/tests/no-by-name/default.nix @@ -1 +1 @@ -import ../mock-nixpkgs.nix { root = ./.; } +import { root = ./.; } diff --git a/pkgs/test/nixpkgs-check-by-name/tests/no-eval/default.nix b/pkgs/test/nixpkgs-check-by-name/tests/no-eval/default.nix index af25d1450122..861260cdca4b 100644 --- a/pkgs/test/nixpkgs-check-by-name/tests/no-eval/default.nix +++ b/pkgs/test/nixpkgs-check-by-name/tests/no-eval/default.nix @@ -1 +1 @@ -import ../mock-nixpkgs.nix { root = ./.; } +import { root = ./.; } diff --git a/pkgs/test/nixpkgs-check-by-name/tests/non-attrs/default.nix b/pkgs/test/nixpkgs-check-by-name/tests/non-attrs/default.nix index af25d1450122..861260cdca4b 100644 --- a/pkgs/test/nixpkgs-check-by-name/tests/non-attrs/default.nix +++ b/pkgs/test/nixpkgs-check-by-name/tests/non-attrs/default.nix @@ -1 +1 @@ -import ../mock-nixpkgs.nix { root = ./.; } +import { root = ./.; } diff --git a/pkgs/test/nixpkgs-check-by-name/tests/non-derivation/default.nix b/pkgs/test/nixpkgs-check-by-name/tests/non-derivation/default.nix index af25d1450122..861260cdca4b 100644 --- a/pkgs/test/nixpkgs-check-by-name/tests/non-derivation/default.nix +++ b/pkgs/test/nixpkgs-check-by-name/tests/non-derivation/default.nix @@ -1 +1 @@ -import ../mock-nixpkgs.nix { root = ./.; } +import { root = ./.; } diff --git a/pkgs/test/nixpkgs-check-by-name/tests/one-letter/default.nix b/pkgs/test/nixpkgs-check-by-name/tests/one-letter/default.nix index af25d1450122..861260cdca4b 100644 --- a/pkgs/test/nixpkgs-check-by-name/tests/one-letter/default.nix +++ b/pkgs/test/nixpkgs-check-by-name/tests/one-letter/default.nix @@ -1 +1 @@ -import ../mock-nixpkgs.nix { root = ./.; } +import { root = ./.; } diff --git a/pkgs/test/nixpkgs-check-by-name/tests/only-callPackage-derivations/default.nix b/pkgs/test/nixpkgs-check-by-name/tests/only-callPackage-derivations/default.nix index af25d1450122..861260cdca4b 100644 --- a/pkgs/test/nixpkgs-check-by-name/tests/only-callPackage-derivations/default.nix +++ b/pkgs/test/nixpkgs-check-by-name/tests/only-callPackage-derivations/default.nix @@ -1 +1 @@ -import ../mock-nixpkgs.nix { root = ./.; } +import { root = ./.; } diff --git a/pkgs/test/nixpkgs-check-by-name/tests/override-different-file/default.nix b/pkgs/test/nixpkgs-check-by-name/tests/override-different-file/default.nix index af25d1450122..861260cdca4b 100644 --- a/pkgs/test/nixpkgs-check-by-name/tests/override-different-file/default.nix +++ b/pkgs/test/nixpkgs-check-by-name/tests/override-different-file/default.nix @@ -1 +1 @@ -import ../mock-nixpkgs.nix { root = ./.; } +import { root = ./.; } diff --git a/pkgs/test/nixpkgs-check-by-name/tests/override-empty-arg-gradual/base/default.nix b/pkgs/test/nixpkgs-check-by-name/tests/override-empty-arg-gradual/base/default.nix index 2875ea6327ef..861260cdca4b 100644 --- a/pkgs/test/nixpkgs-check-by-name/tests/override-empty-arg-gradual/base/default.nix +++ b/pkgs/test/nixpkgs-check-by-name/tests/override-empty-arg-gradual/base/default.nix @@ -1 +1 @@ -import ../../mock-nixpkgs.nix { root = ./.; } +import { root = ./.; } diff --git a/pkgs/test/nixpkgs-check-by-name/tests/override-empty-arg-gradual/default.nix b/pkgs/test/nixpkgs-check-by-name/tests/override-empty-arg-gradual/default.nix index af25d1450122..861260cdca4b 100644 --- a/pkgs/test/nixpkgs-check-by-name/tests/override-empty-arg-gradual/default.nix +++ b/pkgs/test/nixpkgs-check-by-name/tests/override-empty-arg-gradual/default.nix @@ -1 +1 @@ -import ../mock-nixpkgs.nix { root = ./.; } +import { root = ./.; } diff --git a/pkgs/test/nixpkgs-check-by-name/tests/override-empty-arg/base/default.nix b/pkgs/test/nixpkgs-check-by-name/tests/override-empty-arg/base/default.nix index 2875ea6327ef..861260cdca4b 100644 --- a/pkgs/test/nixpkgs-check-by-name/tests/override-empty-arg/base/default.nix +++ b/pkgs/test/nixpkgs-check-by-name/tests/override-empty-arg/base/default.nix @@ -1 +1 @@ -import ../../mock-nixpkgs.nix { root = ./.; } +import { root = ./.; } diff --git a/pkgs/test/nixpkgs-check-by-name/tests/override-empty-arg/default.nix b/pkgs/test/nixpkgs-check-by-name/tests/override-empty-arg/default.nix index af25d1450122..861260cdca4b 100644 --- a/pkgs/test/nixpkgs-check-by-name/tests/override-empty-arg/default.nix +++ b/pkgs/test/nixpkgs-check-by-name/tests/override-empty-arg/default.nix @@ -1 +1 @@ -import ../mock-nixpkgs.nix { root = ./.; } +import { root = ./.; } diff --git a/pkgs/test/nixpkgs-check-by-name/tests/override-no-call-package/default.nix b/pkgs/test/nixpkgs-check-by-name/tests/override-no-call-package/default.nix index af25d1450122..861260cdca4b 100644 --- a/pkgs/test/nixpkgs-check-by-name/tests/override-no-call-package/default.nix +++ b/pkgs/test/nixpkgs-check-by-name/tests/override-no-call-package/default.nix @@ -1 +1 @@ -import ../mock-nixpkgs.nix { root = ./.; } +import { root = ./.; } diff --git a/pkgs/test/nixpkgs-check-by-name/tests/override-no-file/default.nix b/pkgs/test/nixpkgs-check-by-name/tests/override-no-file/default.nix index af25d1450122..861260cdca4b 100644 --- a/pkgs/test/nixpkgs-check-by-name/tests/override-no-file/default.nix +++ b/pkgs/test/nixpkgs-check-by-name/tests/override-no-file/default.nix @@ -1 +1 @@ -import ../mock-nixpkgs.nix { root = ./.; } +import { root = ./.; } diff --git a/pkgs/test/nixpkgs-check-by-name/tests/override-success/default.nix b/pkgs/test/nixpkgs-check-by-name/tests/override-success/default.nix index af25d1450122..861260cdca4b 100644 --- a/pkgs/test/nixpkgs-check-by-name/tests/override-success/default.nix +++ b/pkgs/test/nixpkgs-check-by-name/tests/override-success/default.nix @@ -1 +1 @@ -import ../mock-nixpkgs.nix { root = ./.; } +import { root = ./.; } diff --git a/pkgs/test/nixpkgs-check-by-name/tests/package-dir-is-file/default.nix b/pkgs/test/nixpkgs-check-by-name/tests/package-dir-is-file/default.nix index af25d1450122..861260cdca4b 100644 --- a/pkgs/test/nixpkgs-check-by-name/tests/package-dir-is-file/default.nix +++ b/pkgs/test/nixpkgs-check-by-name/tests/package-dir-is-file/default.nix @@ -1 +1 @@ -import ../mock-nixpkgs.nix { root = ./.; } +import { root = ./.; } diff --git a/pkgs/test/nixpkgs-check-by-name/tests/package-nix-dir/default.nix b/pkgs/test/nixpkgs-check-by-name/tests/package-nix-dir/default.nix index af25d1450122..861260cdca4b 100644 --- a/pkgs/test/nixpkgs-check-by-name/tests/package-nix-dir/default.nix +++ b/pkgs/test/nixpkgs-check-by-name/tests/package-nix-dir/default.nix @@ -1 +1 @@ -import ../mock-nixpkgs.nix { root = ./.; } +import { root = ./.; } diff --git a/pkgs/test/nixpkgs-check-by-name/tests/ref-absolute/default.nix b/pkgs/test/nixpkgs-check-by-name/tests/ref-absolute/default.nix index af25d1450122..861260cdca4b 100644 --- a/pkgs/test/nixpkgs-check-by-name/tests/ref-absolute/default.nix +++ b/pkgs/test/nixpkgs-check-by-name/tests/ref-absolute/default.nix @@ -1 +1 @@ -import ../mock-nixpkgs.nix { root = ./.; } +import { root = ./.; } diff --git a/pkgs/test/nixpkgs-check-by-name/tests/ref-escape/default.nix b/pkgs/test/nixpkgs-check-by-name/tests/ref-escape/default.nix index af25d1450122..861260cdca4b 100644 --- a/pkgs/test/nixpkgs-check-by-name/tests/ref-escape/default.nix +++ b/pkgs/test/nixpkgs-check-by-name/tests/ref-escape/default.nix @@ -1 +1 @@ -import ../mock-nixpkgs.nix { root = ./.; } +import { root = ./.; } diff --git a/pkgs/test/nixpkgs-check-by-name/tests/ref-nix-path/default.nix b/pkgs/test/nixpkgs-check-by-name/tests/ref-nix-path/default.nix index af25d1450122..861260cdca4b 100644 --- a/pkgs/test/nixpkgs-check-by-name/tests/ref-nix-path/default.nix +++ b/pkgs/test/nixpkgs-check-by-name/tests/ref-nix-path/default.nix @@ -1 +1 @@ -import ../mock-nixpkgs.nix { root = ./.; } +import { root = ./.; } diff --git a/pkgs/test/nixpkgs-check-by-name/tests/ref-parse-failure/default.nix b/pkgs/test/nixpkgs-check-by-name/tests/ref-parse-failure/default.nix index af25d1450122..861260cdca4b 100644 --- a/pkgs/test/nixpkgs-check-by-name/tests/ref-parse-failure/default.nix +++ b/pkgs/test/nixpkgs-check-by-name/tests/ref-parse-failure/default.nix @@ -1 +1 @@ -import ../mock-nixpkgs.nix { root = ./.; } +import { root = ./.; } diff --git a/pkgs/test/nixpkgs-check-by-name/tests/ref-path-subexpr/default.nix b/pkgs/test/nixpkgs-check-by-name/tests/ref-path-subexpr/default.nix index af25d1450122..861260cdca4b 100644 --- a/pkgs/test/nixpkgs-check-by-name/tests/ref-path-subexpr/default.nix +++ b/pkgs/test/nixpkgs-check-by-name/tests/ref-path-subexpr/default.nix @@ -1 +1 @@ -import ../mock-nixpkgs.nix { root = ./.; } +import { root = ./.; } diff --git a/pkgs/test/nixpkgs-check-by-name/tests/ref-success/default.nix b/pkgs/test/nixpkgs-check-by-name/tests/ref-success/default.nix index af25d1450122..861260cdca4b 100644 --- a/pkgs/test/nixpkgs-check-by-name/tests/ref-success/default.nix +++ b/pkgs/test/nixpkgs-check-by-name/tests/ref-success/default.nix @@ -1 +1 @@ -import ../mock-nixpkgs.nix { root = ./.; } +import { root = ./.; } diff --git a/pkgs/test/nixpkgs-check-by-name/tests/shard-file/default.nix b/pkgs/test/nixpkgs-check-by-name/tests/shard-file/default.nix index af25d1450122..861260cdca4b 100644 --- a/pkgs/test/nixpkgs-check-by-name/tests/shard-file/default.nix +++ b/pkgs/test/nixpkgs-check-by-name/tests/shard-file/default.nix @@ -1 +1 @@ -import ../mock-nixpkgs.nix { root = ./.; } +import { root = ./.; } diff --git a/pkgs/test/nixpkgs-check-by-name/tests/sorted-order/default.nix b/pkgs/test/nixpkgs-check-by-name/tests/sorted-order/default.nix index af25d1450122..861260cdca4b 100644 --- a/pkgs/test/nixpkgs-check-by-name/tests/sorted-order/default.nix +++ b/pkgs/test/nixpkgs-check-by-name/tests/sorted-order/default.nix @@ -1 +1 @@ -import ../mock-nixpkgs.nix { root = ./.; } +import { root = ./.; } diff --git a/pkgs/test/nixpkgs-check-by-name/tests/success/default.nix b/pkgs/test/nixpkgs-check-by-name/tests/success/default.nix index af25d1450122..861260cdca4b 100644 --- a/pkgs/test/nixpkgs-check-by-name/tests/success/default.nix +++ b/pkgs/test/nixpkgs-check-by-name/tests/success/default.nix @@ -1 +1 @@ -import ../mock-nixpkgs.nix { root = ./.; } +import { root = ./.; } diff --git a/pkgs/test/nixpkgs-check-by-name/tests/symlink-escape/default.nix b/pkgs/test/nixpkgs-check-by-name/tests/symlink-escape/default.nix index af25d1450122..861260cdca4b 100644 --- a/pkgs/test/nixpkgs-check-by-name/tests/symlink-escape/default.nix +++ b/pkgs/test/nixpkgs-check-by-name/tests/symlink-escape/default.nix @@ -1 +1 @@ -import ../mock-nixpkgs.nix { root = ./.; } +import { root = ./.; } diff --git a/pkgs/test/nixpkgs-check-by-name/tests/symlink-invalid/default.nix b/pkgs/test/nixpkgs-check-by-name/tests/symlink-invalid/default.nix index af25d1450122..861260cdca4b 100644 --- a/pkgs/test/nixpkgs-check-by-name/tests/symlink-invalid/default.nix +++ b/pkgs/test/nixpkgs-check-by-name/tests/symlink-invalid/default.nix @@ -1 +1 @@ -import ../mock-nixpkgs.nix { root = ./.; } +import { root = ./.; } diff --git a/pkgs/test/nixpkgs-check-by-name/tests/uppercase/default.nix b/pkgs/test/nixpkgs-check-by-name/tests/uppercase/default.nix index af25d1450122..861260cdca4b 100644 --- a/pkgs/test/nixpkgs-check-by-name/tests/uppercase/default.nix +++ b/pkgs/test/nixpkgs-check-by-name/tests/uppercase/default.nix @@ -1 +1 @@ -import ../mock-nixpkgs.nix { root = ./.; } +import { root = ./.; } diff --git a/pkgs/test/nixpkgs-check-by-name/tests/with-readme/default.nix b/pkgs/test/nixpkgs-check-by-name/tests/with-readme/default.nix index af25d1450122..861260cdca4b 100644 --- a/pkgs/test/nixpkgs-check-by-name/tests/with-readme/default.nix +++ b/pkgs/test/nixpkgs-check-by-name/tests/with-readme/default.nix @@ -1 +1 @@ -import ../mock-nixpkgs.nix { root = ./.; } +import { root = ./.; } From f1601b35e7481e3160c2ecc3bcd8db43223e836f Mon Sep 17 00:00:00 2001 From: Valentin Gagarin Date: Mon, 15 Jan 2024 21:01:21 +0100 Subject: [PATCH 53/59] doc: mention new documentation-reviewers subteam --- CONTRIBUTING.md | 2 +- doc/README.md | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index a6d853772963..3cc123be431e 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -323,7 +323,7 @@ All the review template samples provided in this section are generic and meant a To get more information about how to review specific parts of Nixpkgs, refer to the documents linked to in the [overview section][overview]. -If a pull request contains documentation changes that might require feedback from the documentation team, ping @NixOS/documentation-team on the pull request. +If a pull request contains documentation changes that might require feedback from the documentation team, ping [@NixOS/documentation-reviewers](https://github.com/orgs/nixos/teams/documentation-reviewers) on the pull request. If you consider having enough knowledge and experience in a topic and would like to be a long-term reviewer for related submissions, please contact the current reviewers for that topic. They will give you information about the reviewing process. The main reviewers for a topic can be hard to find as there is no list, but checking past pull requests to see who reviewed or git-blaming the code to see who committed to that topic can give some hints. diff --git a/doc/README.md b/doc/README.md index 43eb39c02ab1..2a54a7cfa0c7 100644 --- a/doc/README.md +++ b/doc/README.md @@ -203,3 +203,7 @@ In that case, please open an issue about the particular documentation convention _Default value:_ the output path's hash. ``` + +## Getting help + +If you need documentation-specific help or reviews, ping [@NixOS/documentation-reviewers](https://github.com/orgs/nixos/teams/documentation-reviewers) on your pull request. From 69890ec251cc1be9dfb71c1570008230dcf771f0 Mon Sep 17 00:00:00 2001 From: ajs124 Date: Mon, 15 Jan 2024 15:25:10 +0100 Subject: [PATCH 54/59] gitlab-container-registry: fix hashes something seems to have went wrong in 24c72d8dd01da01582e6fef7c0439566a10c7e33 but I'm not sure what exactly. re-running the update script does not reproduce this issue. --- .../gitlab/gitlab-container-registry/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/version-management/gitlab/gitlab-container-registry/default.nix b/pkgs/applications/version-management/gitlab/gitlab-container-registry/default.nix index ffec1e0057d3..bc4093e72000 100644 --- a/pkgs/applications/version-management/gitlab/gitlab-container-registry/default.nix +++ b/pkgs/applications/version-management/gitlab/gitlab-container-registry/default.nix @@ -10,10 +10,10 @@ buildGoModule rec { owner = "gitlab-org"; repo = "container-registry"; inherit rev; - hash = "sha256-vQ5bP2S1McZxD+Mjw0y/+GB8ntv8nQynM1cIWtUK7pU="; + hash = "sha256-egslb+8+RsDjpL5xQpdCU3QwFH59grRCkODQnAkZe/0="; }; - vendorHash = "sha256-rDmmCwz/+FBzbREKIqwQulcOKwd4Y6/MITyNpB+pfwQ="; + vendorHash = "sha256-IFXIr0xYJCKM5VUHQV+4S/+FEAhFEjbMaU+9JWIh8cA="; patches = [ ./Disable-inmemory-storage-driver-test.patch From 0fe7b4c389fab957dc5d821341121c335c04497e Mon Sep 17 00:00:00 2001 From: Valentin Gagarin Date: Mon, 15 Jan 2024 21:04:12 +0100 Subject: [PATCH 55/59] doc: reword documentation conventions --- doc/README.md | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/doc/README.md b/doc/README.md index 43eb39c02ab1..b790b5f26e06 100644 --- a/doc/README.md +++ b/doc/README.md @@ -159,24 +159,28 @@ In an effort to keep the Nixpkgs manual in a consistent style, please follow the In that case, please open an issue about the particular documentation convention and tag it with a "needs: documentation" label. - Put each sentence in its own line. - This makes reviewing documentation much easier, since GitHub's review system is based on lines. + This makes reviews and suggestions much easier, since GitHub's review system is based on lines. + It also helps identifying long sentences at a glance. -- Use the admonitions syntax for any callouts and examples (see [section above](#admonitions)). +- Use the [admonition syntax](#admonitions) for callouts and examples. -- If you provide an example involving Nix code, make your example into a fully-working package (something that can be passed to `pkgs.callPackage`). - This will help others quickly test that the example works, and will also make it easier if we start automatically testing all example code to make sure it works. - For example, instead of providing something like: +- Provide at least one example per function, and make examples self-contained. + This is easier to understand for beginners. + It also helps with testing that it actually works – especially once we introduce automation. - ``` + Example code should be such that it can be passed to `pkgs.callPackage`. + Instead of something like: + + ```nix pkgs.dockerTools.buildLayeredImage { name = "hello"; contents = [ pkgs.hello ]; } ``` - Provide something like: + Write something like: - ``` + ```nix { dockerTools, hello }: dockerTools.buildLayeredImage { name = "hello"; @@ -200,6 +204,6 @@ In that case, please open an issue about the particular documentation convention : Tag of the generated image. - _Default value:_ the output path's hash. + _Default value:_ the output path's hash. ``` From b22ec91243c1d0bd645990d4f25869ecd1c0ca6c Mon Sep 17 00:00:00 2001 From: Valentin Gagarin Date: Mon, 15 Jan 2024 22:31:47 +0100 Subject: [PATCH 56/59] review pass --- .../trivial-build-helpers.chapter.md | 209 ++++++++++-------- 1 file changed, 115 insertions(+), 94 deletions(-) diff --git a/doc/build-helpers/trivial-build-helpers.chapter.md b/doc/build-helpers/trivial-build-helpers.chapter.md index 54118fa773ae..4648c7985542 100644 --- a/doc/build-helpers/trivial-build-helpers.chapter.md +++ b/doc/build-helpers/trivial-build-helpers.chapter.md @@ -1,6 +1,7 @@ # Trivial build helpers {#chap-trivial-builders} -Nixpkgs provides a variety of wrapper functions that help build commonly useful derivations. Like [`stdenv.mkDerivation`](#sec-using-stdenv), each of these builders creates a derivation, but the arguments passed are different (usually simpler) from those required by `stdenv.mkDerivation`. +Nixpkgs provides a variety of wrapper functions that help build commonly useful derivations. +Like [`stdenv.mkDerivation`](#sec-using-stdenv), each of these build helpers creates a derivation, but the arguments passed are different (usually simpler) from those required by `stdenv.mkDerivation`. ## `runCommand` {#trivial-builder-runCommand} @@ -58,21 +59,21 @@ Variant of `runCommand` that forces the derivation to be built locally, it is no This sets [`allowSubstitutes` to `false`](https://nixos.org/nix/manual/#adv-attr-allowSubstitutes), so only use `runCommandLocal` if you are certain the user will always have a builder for the `system` of the derivation. This should be true for most trivial use cases (e.g., just copying some files to a different location or adding symlinks) because there the `system` is usually the same as `builtins.currentSystem`. ::: -## `writeTextFile`, `writeText`, `writeTextDir`, `writeScript`, `writeScriptBin`, `writeShellScript`, `writeShellScriptBin` {#trivial-builder-text-writing} +## Writing text files {#trivial-builder-text-writing} -Nixpkgs provides the following functions for producing derivations which write text into the Nix store: `writeTextFile`, `writeText`, `writeTextDir`, `writeScript`, `writeScriptBin`, `writeShellScript`, and `writeShellScriptBin`. +Nixpkgs provides the following functions for producing derivations which write text files or executable scripts into the Nix store. +They are useful for creating files from Nix expression, and are all implemented as convenience wrappers around `writeTextFile`. -`writeText`, `writeTextDir`, `writeScript`, `writeScriptBin`, `writeShellScript`, and `writeShellScriptBin` are convenience functions over `writeTextFile`. - -These are useful for creating files from Nix expressions, which may be scripts or non-executable text files. - -Each of these functions will cause a derivation to be produced. When you coerce the result of each of these functions to a string, it will evaluate to the *store path* of this derivation. +Each of these functions will cause a derivation to be produced. +When you coerce the result of each of these functions to a string with [string interpolation](https://nixos.org/manual/nix/stable/language/string-interpolation) or [`builtins.toString`](https://nixos.org/manual/nix/stable/language/builtins#builtins-toString), it will evaluate to the [store path](https://nixos.org/manual/nix/stable/store/store-path) of this derivation. :::: {.note} -Some of these functions will put the resulting files within a directory inside the derivation output. If you need to refer to the resulting files somewhere else in Nix code, remember to append the path to the file. For example, if the derivation destination is a directory: +Some of these functions will put the resulting files within a directory inside the [derivation output](https://nixos.org/manual/nix/stable/language/derivations#attr-outputs). +If you need to refer to the resulting files somewhere else in a Nix expression, append their path to the derivation's store path. + +For example, if the file destination is a directory: ```nix - my-file = writeTextFile { name = "my-file"; text = '' @@ -82,60 +83,83 @@ my-file = writeTextFile { } ``` -Remember to append "/share/my-file" to the derivation path when using it elsewhere: +Remember to append "/share/my-file" to the resulting store path when using it elsewhere: ```nix writeShellScript "evaluate-my-file.sh" '' cat ${my-file}/share/my-file ''; ``` - :::: ### `writeTextFile` {#trivial-builder-writeTextFile} -Writes a text file to the store +Write a text file to the Nix store. `writeTextFile` takes an attribute set with the following possible attributes: -`name` +`name` (String) : Corresponds to the name used in the Nix store path identifier. -`text` +`text` (String) : The contents of the file. -`executable` _optional_ +`executable` (Bool, _optional_) -: Make this file have the executable bit set. Defaults to `false` +: Make this file have the executable bit set. -`destination` _optional_ + Default: `false` -: Supplies a subpath under the derivation's Nix store ouput path into which to create the file. It may contain directory path elements, these are created automatically when the derivation is realized. Defaults to `""`, which indicates that the store path itself will be a file containing the text contents. +`destination` (String, _optional_) -`checkPhase` _optional_ +: A subpath under the derivation's output path into which to put the file. + Subdirectories are created automatically when the derivation is realised. -: Commands to run after generating the file, e.g. lints. It defaults to `""` (no checking). + By default, the store path itself will be a file containing the text contents. -`meta` _optional_ + Default: `""` -: Additional metadata for the derivation. It defaults to `{}`. +`checkPhase` (String, _optional_) -`allowSubstitutes` _optional_ +: Commands to run after generating the file. -: Whether to allow substituting from a binary cache. It defaults to `false`, as the operation is assumed to be faster performed locally. You may want to set this to true if the `checkPhase` step is expensive. + Default: `""` -`preferLocalBuild` _optional_ +`meta` (Attribute set, _optional_) -: Whether to prefer building locally, even if faster remote builders are available. It defaults to `true` for the same reason `allowSubstitutes` defaults to `false`. +: Additional metadata for the derivation. + + Default: `{}` + +`allowSubstitutes` (Bool, _optional_) + +: Whether to allow substituting from a binary cache. + Passed through to [`allowSubsitutes`](https://nixos.org/manual/nix/stable/language/advanced-attributes#adv-attr-allowSubstitutes) of the underlying call to `builtins.derivation`. + + It defaults to `false`, as running the derivation's simple `builder` executable locally is assumed to be faster than network operations. + Set it to true if the `checkPhase` step is expensive. + + Default: `false` + +`preferLocalBuild` (Bool, _optional_) + +: Whether to prefer building locally, even if faster [remote build machines](https://nixos.org/manual/nix/stable/command-ref/conf-file#conf-substituters) are available. + + Passed through to [`preferLocalBuild`](https://nixos.org/manual/nix/stable/language/advanced-attributes#adv-attr-preferLocalBuild) of the underlying call to `builtins.derivation`. + + It defaults to `true` for the same reason `allowSubstitutes` defaults to `false`. + + Default: `true` The resulting store path will include some variation of the name, and it will be a file unless `destination` is used, in which case it will be a directory. ::: {.example #ex-writeTextFile} # Usage 1 of `writeTextFile` -Writes my-file to `/nix/store//some/subpath/my-cool-script`, making it executable. It also runs a check on the resulting file in a `checkPhase`, and supplies values for the less-used options. +Write `my-file` to `/nix/store//some/subpath/my-cool-script`, making it executable. +Also run a check on the resulting file in a `checkPhase`, and supply values for the less-used options. ```nix writeTextFile { @@ -161,7 +185,8 @@ writeTextFile { ::: {.example #ex2-writeTextFile} # Usage 2 of `writeTextFile` -Writes `Contents of File` to `/nix/store/`. See also the `writeText` helper function below. +Write the string `Contents of File` to `/nix/store/`. +See also the [](#trivial-builder-writeText) helper function. ```nix writeTextFile { @@ -176,43 +201,42 @@ writeTextFile { ::: {.example #ex3-writeTextFile} # Usage 3 of `writeTextFile` -Writes an executable `my-file` to `/nix/store//bin/my-file`. See also the `writeScriptBin` helper function below. +Write an executable script `my-script` to `/nix/store//bin/my-script`. +See also the [](#trivial-builder-writeScriptBin) helper function. ```nix writeTextFile { - name = "my-file"; + name = "my-script"; text = '' echo "hi" ''; executable = true; - destination = "/bin/my-file"; + destination = "/bin/my-script"; } ``` ::: ### `writeText` {#trivial-builder-writeText} -Writes a text file to the store +Write a text file to the Nix store -`writeText` takes two arguments: `name` and `text`, each of which should be +`writeText` takes the following arguments: a string. -`name` +`name` (String) -: the name used in the Nix store path. +: The name used in the Nix store path. -`text` +`text` (String) -: will be the contents of the file. +: The contents of the file. -The store path will include the the name, and it will be a file. - -Here is an example. +The store path will include the name, and it will be a file. ::: {.example #ex-writeText} # Usage of `writeText` -Writes `Contents of File` to `/nix/store/` +Write the string `Contents of File` to `/nix/store/`: ```nix writeText "my-file" @@ -222,7 +246,7 @@ writeText "my-file" ``` ::: -This example is equivalent to: +This is equivalent to: ```nix writeTextFile { @@ -235,24 +259,24 @@ writeTextFile { ### `writeTextDir` {#trivial-builder-writeTextDir} -Writes a text file within a subdirectory of the store. +Write a text file within a subdirectory of the Nix store. -`writeTextDir` takes two arguments: `path` and `text`, each of which should be a string. +`writeTextDir` takes the following arguments: -`path` +`path` (String) -: the destination within the Nix store path under which to create the file. +: The destination within the Nix store path under which to create the file. -`text` +`text` (String) -: the contents of the file. +: The contents of the file. The store path will be a directory. ::: {.example #ex-writeTextDir} # Usage of `writeTextDir` -Writes `Contents of File` to `/nix/store//share/my-file`. +Write the string `Contents of File` to `/nix/store//share/my-file`: ```nix writeTextDir "share/my-file" @@ -262,7 +286,7 @@ writeTextDir "share/my-file" ``` ::: -This example is equivalent to: +This is equivalent to: ```nix writeTextFile { @@ -276,28 +300,25 @@ writeTextFile { ### `writeScript` {#trivial-builder-writeScript} -Writes a script within the store. +Write an executable script file to the Nix store. -`writeScript` takes two arguments: `name` and `text`, each of which should be a string. +`writeScript` takes the following arguments: -`name` +`name` (String) -: the name used in the Nix store path. +: The name used in the Nix store path. -`text` +`text` (String) -: the contents of the file. +: The contents of the file. The created file is marked as executable. - -The store path will include the the name, and it will be a file. - -Here is an example. +The store path will include the name, and it will be a file. ::: {.example #ex-writeScript} # Usage of `writeScript` -Writes `Contents of File` to `/nix/store/` and makes the store path executable. +Write the string `Contents of File` to `/nix/store/` and make the file executable. ```nix writeScript "my-file" @@ -307,7 +328,7 @@ writeScript "my-file" ``` ::: -This example is equivalent to: +This is equivalent to: ```nix writeTextFile { @@ -321,26 +342,26 @@ writeTextFile { ### `writeScriptBin` {#trivial-builder-writeScriptBin} -Writes a script within a "bin" subirectory of a subdirectory of the store. +Write a script within a `bin` subirectory of a directory in the Nix store. +This is for consistency with the convention of software packages placing executables under `bin`. -`writeScriptBin` takes two arguments: `name` and `text`, each of which should be a string. +`writeScriptBin` takes the following arguments: -`name` +`name` (String) -: the name used in the Nix store path and within the file generated under the store path. +: The name used in the Nix store path and within the file created under the store path. -`text` +`text` (String) -: the contents of the file. +: The contents of the file. The created file is marked as executable. - The file's contents will be put into `/nix/store//bin/`. - The store path will include the the name, and it will be a directory. ::: {.example #ex-writeScriptBin} # Usage of `writeScriptBin` + ```nix writeScriptBin "my-script" '' @@ -349,7 +370,7 @@ writeScriptBin "my-script" ``` ::: -This example is equivalent to: +This is equivalent to: ```nix writeTextFile { @@ -364,28 +385,27 @@ writeTextFile { ### `writeShellScript` {#trivial-builder-writeShellScript} -Writes a shell script to the store. +Write a Bash script to the store. -`writeShellScript` takes two arguments: `name` and `text`, each of which should be a string. +`writeShellScript` takes the following arguments: -`name` +`name` (String) -: the name used in the Nix store path. +: The name used in the Nix store path. -`text` +`text` (String) -: the contents of the file. +: The contents of the file. The created file is marked as executable. +The store path will include the name, and it will be a file. -This function is almost exactly like `writeScript`, but it prepends a shebang line that points to the runtime shell (usually bash) at the top of the file contents. - -The store path will include the the name, and it will be a file. - -Here is an example. +This function is almost exactly like [](#trivial-builder-writeScript), except that it prepends to the file a [shebang](https://en.wikipedia.org/wiki/Shebang_%28Unix%29) line that points to the version of Bash used in Nixpkgs. + ::: {.example #ex-writeShellScript} # Usage of `writeShellScript` + ```nix writeShellScript "my-script" '' @@ -394,7 +414,7 @@ writeShellScript "my-script" ``` ::: -This example is equivalent to: +This is equivalent to: ```nix writeTextFile { @@ -406,28 +426,29 @@ writeTextFile { executable = true; } ``` + ### `writeShellScriptBin` {#trivial-builder-writeShellScriptBin} -Writes a shell script to a "bin" subdirectory of subdirectory of the store. +Write a Bash script to a "bin" subdirectory of a directory in the Nix store. -`writeShellScriptBin` takes two arguments: `name` and `text`, each of which should be a string. +`writeShellScriptBin` takes the following arguments: -`name` +`name` (String) -: the name used in the Nix store path and within the file generated under the store path. +: The name used in the Nix store path and within the file generated under the store path. -`text` +`text` (String) -: the contents of the file. - -This function is almost exactly like `writeScriptBin`, but it prepends a shebang line that points to the runtime shell (usually bash) at the top of the file contents. +: The contents of the file. The file's contents will be put into `/nix/store//bin/`. - The store path will include the the name, and it will be a directory. +This function is a combination of [](#trivial-builder-writeShellScript) and [](#trivial-builder-writeScriptBin). + ::: {.example #ex-writeShellScriptBin} # Usage of `writeShellScriptBin` + ```nix writeShellScriptBin "my-script" '' @@ -436,7 +457,7 @@ writeShellScriptBin "my-script" ``` ::: -This example is equivalent to: +This is equivalent to: ```nix writeTextFile { From b8076b893eacf2e6bec67453fbf4d421ee28ff03 Mon Sep 17 00:00:00 2001 From: Yureka Date: Fri, 5 Jan 2024 00:35:26 +0100 Subject: [PATCH 57/59] rust: allow linker to be different from compiler --- pkgs/build-support/rust/hooks/default.nix | 4 ++-- pkgs/build-support/rust/lib/default.nix | 16 ++++++++++------ 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/pkgs/build-support/rust/hooks/default.nix b/pkgs/build-support/rust/hooks/default.nix index 7703ff4abad4..874f23fe7ed3 100644 --- a/pkgs/build-support/rust/hooks/default.nix +++ b/pkgs/build-support/rust/hooks/default.nix @@ -66,10 +66,10 @@ cargoConfig = '' [target."${stdenv.buildPlatform.rust.rustcTarget}"] - "linker" = "${rust.envVars.ccForBuild}" + "linker" = "${rust.envVars.linkerForBuild}" ${lib.optionalString (stdenv.buildPlatform.config != stdenv.hostPlatform.config) '' [target."${stdenv.hostPlatform.rust.rustcTarget}"] - "linker" = "${rust.envVars.ccForHost}" + "linker" = "${rust.envVars.linkerForHost}" ''} "rustflags" = [ "-C", "target-feature=${if stdenv.hostPlatform.isStatic then "+" else "-"}crt-static" ] ''; diff --git a/pkgs/build-support/rust/lib/default.nix b/pkgs/build-support/rust/lib/default.nix index dad8ab528235..6645715eb2c8 100644 --- a/pkgs/build-support/rust/lib/default.nix +++ b/pkgs/build-support/rust/lib/default.nix @@ -14,8 +14,11 @@ rec { envVars = let ccForBuild = "${buildPackages.stdenv.cc}/bin/${buildPackages.stdenv.cc.targetPrefix}cc"; cxxForBuild = "${buildPackages.stdenv.cc}/bin/${buildPackages.stdenv.cc.targetPrefix}c++"; + linkerForBuild = ccForBuild; + ccForHost = "${stdenv.cc}/bin/${stdenv.cc.targetPrefix}cc"; cxxForHost = "${stdenv.cc}/bin/${stdenv.cc.targetPrefix}c++"; + linkerForHost = ccForHost; # Unfortunately we must use the dangerous `targetPackages` here # because hooks are artificially phase-shifted one slot earlier @@ -23,6 +26,7 @@ rec { # a targetPlatform to them). ccForTarget = "${targetPackages.stdenv.cc}/bin/${targetPackages.stdenv.cc.targetPrefix}cc"; cxxForTarget = "${targetPackages.stdenv.cc}/bin/${targetPackages.stdenv.cc.targetPrefix}c++"; + linkerForTarget = ccForTarget; rustBuildPlatform = stdenv.buildPlatform.rust.rustcTarget; rustBuildPlatformSpec = stdenv.buildPlatform.rust.rustcTargetSpec; @@ -32,9 +36,9 @@ rec { rustTargetPlatformSpec = stdenv.targetPlatform.rust.rustcTargetSpec; in { inherit - ccForBuild cxxForBuild rustBuildPlatform rustBuildPlatformSpec - ccForHost cxxForHost rustHostPlatform rustHostPlatformSpec - ccForTarget cxxForTarget rustTargetPlatform rustTargetPlatformSpec; + ccForBuild cxxForBuild linkerForBuild rustBuildPlatform rustBuildPlatformSpec + ccForHost cxxForHost linkerForHost rustHostPlatform rustHostPlatformSpec + ccForTarget cxxForTarget linkerForTarget rustTargetPlatform rustTargetPlatformSpec; # Prefix this onto a command invocation in order to set the # variables needed by cargo. @@ -50,15 +54,15 @@ rec { + lib.optionalString (rustTargetPlatform != rustHostPlatform) '' "CC_${stdenv.targetPlatform.rust.cargoEnvVarTarget}=${ccForTarget}" \ "CXX_${stdenv.targetPlatform.rust.cargoEnvVarTarget}=${cxxForTarget}" \ - "CARGO_TARGET_${stdenv.targetPlatform.rust.cargoEnvVarTarget}_LINKER=${ccForTarget}" \ + "CARGO_TARGET_${stdenv.targetPlatform.rust.cargoEnvVarTarget}_LINKER=${linkerForTarget}" \ '' + '' "CC_${stdenv.hostPlatform.rust.cargoEnvVarTarget}=${ccForHost}" \ "CXX_${stdenv.hostPlatform.rust.cargoEnvVarTarget}=${cxxForHost}" \ - "CARGO_TARGET_${stdenv.hostPlatform.rust.cargoEnvVarTarget}_LINKER=${ccForHost}" \ + "CARGO_TARGET_${stdenv.hostPlatform.rust.cargoEnvVarTarget}_LINKER=${linkerForHost}" \ '' + '' "CC_${stdenv.buildPlatform.rust.cargoEnvVarTarget}=${ccForBuild}" \ "CXX_${stdenv.buildPlatform.rust.cargoEnvVarTarget}=${cxxForBuild}" \ - "CARGO_TARGET_${stdenv.buildPlatform.rust.cargoEnvVarTarget}_LINKER=${ccForBuild}" \ + "CARGO_TARGET_${stdenv.buildPlatform.rust.cargoEnvVarTarget}_LINKER=${linkerForBuild}" \ "CARGO_BUILD_TARGET=${rustBuildPlatform}" \ "HOST_CC=${buildPackages.stdenv.cc}/bin/cc" \ "HOST_CXX=${buildPackages.stdenv.cc}/bin/c++" \ From 48a6213611bb3b12bb19e0b72abcf03908eabea0 Mon Sep 17 00:00:00 2001 From: Yureka Date: Fri, 5 Jan 2024 00:47:52 +0100 Subject: [PATCH 58/59] rust: use lld on pkgsStatic aarch64 --- pkgs/build-support/rust/lib/default.nix | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/pkgs/build-support/rust/lib/default.nix b/pkgs/build-support/rust/lib/default.nix index 6645715eb2c8..e70b8229d356 100644 --- a/pkgs/build-support/rust/lib/default.nix +++ b/pkgs/build-support/rust/lib/default.nix @@ -12,13 +12,20 @@ rec { # hostPlatform-targeted compiler -- for example, `-m64` being # passed on a build=x86_64/host=aarch64 compilation. envVars = let + + # As a workaround for https://github.com/rust-lang/rust/issues/89626 use lld on pkgsStatic aarch64 + shouldUseLLD = platform: platform.isAarch64 && platform.isStatic && !stdenv.isDarwin; + ccForBuild = "${buildPackages.stdenv.cc}/bin/${buildPackages.stdenv.cc.targetPrefix}cc"; cxxForBuild = "${buildPackages.stdenv.cc}/bin/${buildPackages.stdenv.cc.targetPrefix}c++"; linkerForBuild = ccForBuild; ccForHost = "${stdenv.cc}/bin/${stdenv.cc.targetPrefix}cc"; cxxForHost = "${stdenv.cc}/bin/${stdenv.cc.targetPrefix}c++"; - linkerForHost = ccForHost; + linkerForHost = if shouldUseLLD stdenv.targetPlatform + && !stdenv.cc.bintools.isLLVM + then "${buildPackages.lld}/bin/ld.lld" + else ccForHost; # Unfortunately we must use the dangerous `targetPackages` here # because hooks are artificially phase-shifted one slot earlier @@ -26,7 +33,10 @@ rec { # a targetPlatform to them). ccForTarget = "${targetPackages.stdenv.cc}/bin/${targetPackages.stdenv.cc.targetPrefix}cc"; cxxForTarget = "${targetPackages.stdenv.cc}/bin/${targetPackages.stdenv.cc.targetPrefix}c++"; - linkerForTarget = ccForTarget; + linkerForTarget = if shouldUseLLD targetPackages.stdenv.targetPlatform + && !targetPackages.stdenv.cc.bintools.isLLVM # whether stdenv's linker is lld already + then "${buildPackages.lld}/bin/ld.lld" + else ccForTarget; rustBuildPlatform = stdenv.buildPlatform.rust.rustcTarget; rustBuildPlatformSpec = stdenv.buildPlatform.rust.rustcTargetSpec; From 0eed8836c5a68fa5e9dd048830580e825661fdda Mon Sep 17 00:00:00 2001 From: Yureka Date: Fri, 5 Jan 2024 00:48:11 +0100 Subject: [PATCH 59/59] buildRustPackage: disable cargo-auditable on pkgsStatic aarch64 --- pkgs/build-support/rust/build-rust-package/default.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkgs/build-support/rust/build-rust-package/default.nix b/pkgs/build-support/rust/build-rust-package/default.nix index cf2ddbd084b8..cd90c68c7930 100644 --- a/pkgs/build-support/rust/build-rust-package/default.nix +++ b/pkgs/build-support/rust/build-rust-package/default.nix @@ -44,7 +44,8 @@ , buildFeatures ? [ ] , checkFeatures ? buildFeatures , useNextest ? false -, auditable ? !cargo-auditable.meta.broken +# Enable except on aarch64 pkgsStatic, where we use lld for reasons +, auditable ? !cargo-auditable.meta.broken && !(stdenv.hostPlatform.isStatic && stdenv.hostPlatform.isAarch64 && !stdenv.hostPlatform.isDarwin) , depsExtraArgs ? {}