From 08000db65f4da68a95be072df79b79ef23062051 Mon Sep 17 00:00:00 2001 From: FliegendeWurst <2012gdwu+github@posteo.de> Date: Fri, 11 Oct 2024 13:32:24 +0200 Subject: [PATCH 01/55] sweethome3d.application: 7.3 -> 7.5 --- pkgs/applications/misc/sweethome3d/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/misc/sweethome3d/default.nix b/pkgs/applications/misc/sweethome3d/default.nix index c441ca300858..0016e7ab4fec 100644 --- a/pkgs/applications/misc/sweethome3d/default.nix +++ b/pkgs/applications/misc/sweethome3d/default.nix @@ -108,13 +108,13 @@ in { application = mkSweetHome3D rec { pname = lib.toLower module + "-application"; - version = "7.3"; + version = "7.5"; module = "SweetHome3D"; description = "Design and visualize your future home"; license = lib.licenses.gpl2Plus; src = fetchzip { url = "mirror://sourceforge/sweethome3d/${module}-${version}-src.zip"; - hash = "sha256-adMQzQE+xAZpMJyQFm01A+AfvcB5YHsJvk+533BUf1Q="; + hash = "sha256-+rAhq5sFXC34AMYCcdAYZzrUa3LDy4S5Zid4DlEVvTQ="; }; desktopName = "Sweet Home 3D"; icons = { From 6e9650ad5000290fc439e072b022cf44dca341a7 Mon Sep 17 00:00:00 2001 From: DontEatOreo <57304299+DontEatOreo@users.noreply.github.com> Date: Wed, 16 Oct 2024 17:04:13 +0300 Subject: [PATCH 02/55] koboldcpp: drop unused args --- pkgs/by-name/ko/koboldcpp/package.nix | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/pkgs/by-name/ko/koboldcpp/package.nix b/pkgs/by-name/ko/koboldcpp/package.nix index 40cc23278ea7..aaeb69a831da 100644 --- a/pkgs/by-name/ko/koboldcpp/package.nix +++ b/pkgs/by-name/ko/koboldcpp/package.nix @@ -5,7 +5,6 @@ makeWrapper, gitUpdater, python3Packages, - python311Packages ? null, # Ignored. Kept for compatibility with the release tk, addDriverRunpath, @@ -31,9 +30,7 @@ vulkanSupport ? true, vulkan-loader, - metalSupport ? stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64, - march ? "", - mtune ? "", + metalSupport ? stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64 }: let @@ -115,14 +112,6 @@ effectiveStdenv.mkDerivation (finalAttrs: { env.NIX_LDFLAGS = lib.concatStringsSep " " (finalAttrs.darwinLdFlags ++ finalAttrs.metalLdFlags); - env.NIX_CFLAGS_COMPILE = - lib.optionalString (march != "") ( - lib.warn "koboldcpp: the march argument is only kept for compatibility; use overrideAttrs intead" "-march=${march}" - ) - + lib.optionalString (mtune != "") ( - lib.warn "koboldcpp: the mtune argument is only kept for compatibility; use overrideAttrs intead" "-mtune=${mtune}" - ); - makeFlags = [ (makeBool "LLAMA_OPENBLAS" openblasSupport) (makeBool "LLAMA_CUBLAS" cublasSupport) From 466d4657464a62b8da2df28715918c5f9e66f7ac Mon Sep 17 00:00:00 2001 From: DontEatOreo <57304299+DontEatOreo@users.noreply.github.com> Date: Wed, 16 Oct 2024 17:08:07 +0300 Subject: [PATCH 03/55] koboldcpp: migrate to `apple-sdk_12` --- pkgs/by-name/ko/koboldcpp/package.nix | 38 +++------------------------ 1 file changed, 3 insertions(+), 35 deletions(-) diff --git a/pkgs/by-name/ko/koboldcpp/package.nix b/pkgs/by-name/ko/koboldcpp/package.nix index aaeb69a831da..6815c89f4705 100644 --- a/pkgs/by-name/ko/koboldcpp/package.nix +++ b/pkgs/by-name/ko/koboldcpp/package.nix @@ -8,7 +8,7 @@ tk, addDriverRunpath, - darwin, + apple-sdk_12, koboldLiteSupport ? true, @@ -29,8 +29,7 @@ vulkanSupport ? true, vulkan-loader, - - metalSupport ? stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64 + metalSupport ? stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64, }: let @@ -40,12 +39,6 @@ let --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ addDriverRunpath.driverLink ]}" ''; - darwinFrameworks = - if (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isx86_64) then - darwin.apple_sdk.frameworks - else - darwin.apple_sdk_11_0.frameworks; - effectiveStdenv = if cublasSupport then cudaPackages.backendStdenv else stdenv; in effectiveStdenv.mkDerivation (finalAttrs: { @@ -71,17 +64,7 @@ effectiveStdenv.mkDerivation (finalAttrs: { buildInputs = [ tk ] ++ finalAttrs.pythonInputs - ++ lib.optionals effectiveStdenv.hostPlatform.isDarwin [ - darwinFrameworks.Accelerate - darwinFrameworks.CoreVideo - darwinFrameworks.CoreGraphics - darwinFrameworks.CoreServices - ] - ++ lib.optionals metalSupport [ - darwinFrameworks.MetalKit - darwinFrameworks.Foundation - darwinFrameworks.MetalPerformanceShaders - ] + ++ lib.optionals stdenv.hostPlatform.isDarwin [ apple-sdk_12 ] ++ lib.optionals openblasSupport [ openblas ] ++ lib.optionals cublasSupport [ cudaPackages.libcublas @@ -97,21 +80,6 @@ effectiveStdenv.mkDerivation (finalAttrs: { pythonPath = finalAttrs.pythonInputs; - darwinLdFlags = lib.optionals stdenv.hostPlatform.isDarwin [ - "-F${darwinFrameworks.CoreServices}/Library/Frameworks" - "-F${darwinFrameworks.Accelerate}/Library/Frameworks" - "-framework CoreServices" - "-framework Accelerate" - ]; - metalLdFlags = lib.optionals metalSupport [ - "-F${darwinFrameworks.Foundation}/Library/Frameworks" - "-F${darwinFrameworks.Metal}/Library/Frameworks" - "-framework Foundation" - "-framework Metal" - ]; - - env.NIX_LDFLAGS = lib.concatStringsSep " " (finalAttrs.darwinLdFlags ++ finalAttrs.metalLdFlags); - makeFlags = [ (makeBool "LLAMA_OPENBLAS" openblasSupport) (makeBool "LLAMA_CUBLAS" cublasSupport) From 30a3b42239b001ec62ef6f5d97e44304543edb68 Mon Sep 17 00:00:00 2001 From: DontEatOreo <57304299+DontEatOreo@users.noreply.github.com> Date: Fri, 8 Nov 2024 18:10:23 +0200 Subject: [PATCH 04/55] koboldcpp: drop `stdenv.hostPlatform.isAarch64` requirement https://github.com/NixOS/nixpkgs/pull/349052#issuecomment-2417739679 --- pkgs/by-name/ko/koboldcpp/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/ko/koboldcpp/package.nix b/pkgs/by-name/ko/koboldcpp/package.nix index 6815c89f4705..78ce1d5eed12 100644 --- a/pkgs/by-name/ko/koboldcpp/package.nix +++ b/pkgs/by-name/ko/koboldcpp/package.nix @@ -29,7 +29,7 @@ vulkanSupport ? true, vulkan-loader, - metalSupport ? stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64, + metalSupport ? stdenv.hostPlatform.isDarwin, }: let From bccff63bbbb1a7746120e2ecc211b4289ecfabd3 Mon Sep 17 00:00:00 2001 From: DontEatOreo <57304299+DontEatOreo@users.noreply.github.com> Date: Fri, 8 Nov 2024 18:37:54 +0200 Subject: [PATCH 05/55] koboldcpp: drop `postPatch` --- pkgs/by-name/ko/koboldcpp/package.nix | 6 ------ 1 file changed, 6 deletions(-) diff --git a/pkgs/by-name/ko/koboldcpp/package.nix b/pkgs/by-name/ko/koboldcpp/package.nix index 78ce1d5eed12..f72b76d5ae08 100644 --- a/pkgs/by-name/ko/koboldcpp/package.nix +++ b/pkgs/by-name/ko/koboldcpp/package.nix @@ -110,12 +110,6 @@ effectiveStdenv.mkDerivation (finalAttrs: { runHook postInstall ''; - # Remove an unused argument, mainly intended for Darwin to reduce warnings - postPatch = '' - substituteInPlace Makefile \ - --replace-warn " -s " " " - ''; - postFixup = '' wrapPythonProgramsIn "$out/bin" "$pythonPath" makeWrapper "$out/bin/koboldcpp.unwrapped" "$out/bin/koboldcpp" \ From d626241e242fd883d0cd1e4da950479cf371ba0c Mon Sep 17 00:00:00 2001 From: DontEatOreo <57304299+DontEatOreo@users.noreply.github.com> Date: Fri, 8 Nov 2024 18:41:57 +0200 Subject: [PATCH 06/55] koboldcpp: `gitUpdater` -> `nix-update-script` --- pkgs/by-name/ko/koboldcpp/package.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkgs/by-name/ko/koboldcpp/package.nix b/pkgs/by-name/ko/koboldcpp/package.nix index f72b76d5ae08..ddc931b5d5cb 100644 --- a/pkgs/by-name/ko/koboldcpp/package.nix +++ b/pkgs/by-name/ko/koboldcpp/package.nix @@ -30,6 +30,7 @@ vulkanSupport ? true, vulkan-loader, metalSupport ? stdenv.hostPlatform.isDarwin, + nix-update-script, }: let @@ -116,7 +117,7 @@ effectiveStdenv.mkDerivation (finalAttrs: { --prefix PATH : ${lib.makeBinPath [ tk ]} ${libraryPathWrapperArgs} ''; - passthru.updateScript = gitUpdater { rev-prefix = "v"; }; + passthru.updateScript = nix-update-script { }; meta = { changelog = "https://github.com/LostRuins/koboldcpp/releases/tag/v${finalAttrs.version}"; From ecee72e2475c5ca4ccce98d5b7e59fe30d2daa2c Mon Sep 17 00:00:00 2001 From: PerchunPak Date: Thu, 3 Oct 2024 20:16:09 +0200 Subject: [PATCH 07/55] pluginupdate.py: add support for adding/updating individual plugins --- doc/languages-frameworks/vim.section.md | 7 +- .../scripts/pluginupdate-py/pluginupdate.py | 157 ++++++++++++++++-- .../editors/kakoune/plugins/update.py | 38 +++-- .../editors/vim/plugins/get-plugins.nix | 29 ++-- .../lu/luarocks-packages-updater/updater.py | 17 +- 5 files changed, 203 insertions(+), 45 deletions(-) diff --git a/doc/languages-frameworks/vim.section.md b/doc/languages-frameworks/vim.section.md index c79fd3a55df9..4bb2b6e4f255 100644 --- a/doc/languages-frameworks/vim.section.md +++ b/doc/languages-frameworks/vim.section.md @@ -264,10 +264,15 @@ nix-shell -p vimPluginsUpdater --run 'vim-plugins-updater --github-token=mytoken Alternatively, set the number of processes to a lower count to avoid rate-limiting. ```sh - nix-shell -p vimPluginsUpdater --run 'vim-plugins-updater --proc 1' ``` +If you want to update only certain plugins, you can specify them after the `update` command. Note that you must use the same plugin names as the `pkgs/applications/editors/vim/plugins/vim-plugin-names` file. + +```sh +nix-shell -p vimPluginsUpdater --run 'vim-plugins-updater update "nvim-treesitter" "LazyVim"' +``` + ## How to maintain an out-of-tree overlay of vim plugins ? {#vim-out-of-tree-overlays} You can use the updater script to generate basic packages out of a custom vim diff --git a/maintainers/scripts/pluginupdate-py/pluginupdate.py b/maintainers/scripts/pluginupdate-py/pluginupdate.py index e37e82fef3e7..168c727480c1 100644 --- a/maintainers/scripts/pluginupdate-py/pluginupdate.py +++ b/maintainers/scripts/pluginupdate-py/pluginupdate.py @@ -388,6 +388,19 @@ class Editor: fetch_config, args.input_file, editor.deprecated, append=append ) plugin, _ = prefetch_plugin(pdesc) + + if ( # lua updater doesn't support updating individual plugin + self.name != "lua" + ): + # update generated.nix + update = self.get_update( + args.input_file, + args.outfile, + fetch_config, + [plugin.normalized_name], + ) + update() + autocommit = not args.no_commit if autocommit: commit( @@ -404,13 +417,32 @@ class Editor: """CSV spec""" print("the update member function should be overridden in subclasses") - def get_current_plugins(self, nixpkgs: str) -> List[Plugin]: + def get_current_plugins( + self, config: FetchConfig, nixpkgs: str + ) -> List[Tuple[PluginDesc, Plugin]]: """To fill the cache""" data = run_nix_expr(self.get_plugins, nixpkgs) plugins = [] for name, attr in data.items(): - p = Plugin(name, attr["rev"], attr["submodules"], attr["sha256"]) - plugins.append(p) + checksum = attr["checksum"] + + # https://github.com/NixOS/nixpkgs/blob/8a335419/pkgs/applications/editors/neovim/build-neovim-plugin.nix#L36 + # https://github.com/NixOS/nixpkgs/pull/344478#discussion_r1786646055 + version = re.search(r"\d\d\d\d-\d\d?-\d\d?", attr["version"]) + if version is None: + raise ValueError(f"Cannot parse version: {attr['version']}") + date = datetime.strptime(version.group(), "%Y-%m-%d") + + pdesc = PluginDesc.load_from_string(config, f'{attr["homePage"]} as {name}') + p = Plugin( + attr["pname"], + checksum["rev"], + checksum["submodules"], + checksum["sha256"], + date, + ) + + plugins.append((pdesc, p)) return plugins def load_plugin_spec(self, config: FetchConfig, plugin_file) -> List[PluginDesc]: @@ -421,28 +453,117 @@ class Editor: """Returns nothing for now, writes directly to outfile""" raise NotImplementedError() - def get_update(self, input_file: str, outfile: str, config: FetchConfig): - cache: Cache = Cache(self.get_current_plugins(self.nixpkgs), self.cache_file) + def filter_plugins_to_update( + self, plugin: PluginDesc, to_update: List[str] + ) -> bool: + """Function for filtering out plugins, that user doesn't want to update. + + It is mainly used for updating only specific plugins, not all of them. + By default it filters out plugins not present in `to_update`, + assuming `to_update` is a list of plugin names (the same as in the + result expression). + + This function is never called if `to_update` is empty. + Feel free to override this function in derived classes. + + Note: + Known bug: you have to use a deprecated name, instead of new one. + This is because we resolve deprecations later and can't get new + plugin URL before we request info about it. + + Although, we could parse deprecated.json, but it's a whole bunch + of spaghetti code, which I don't want to write. + + Arguments: + plugin: Plugin on which you decide whether to ignore or not. + to_update: + List of strings passed to via the `--update` command line parameter. + By default, we assume it is a list of URIs identical to what + is in the input file. + + Returns: + True if we should update plugin and False if not. + """ + return plugin.name.replace(".", "-") in to_update + + def get_update( + self, + input_file: str, + output_file: str, + config: FetchConfig, + to_update: Optional[List[str]], + ): + if to_update is None: + to_update = [] + + current_plugins = self.get_current_plugins(config, self.nixpkgs) + current_plugin_specs = self.load_plugin_spec(config, input_file) + + cache: Cache = Cache( + [plugin for _description, plugin in current_plugins], self.cache_file + ) _prefetch = functools.partial(prefetch, cache=cache) - def update() -> dict: - plugins = self.load_plugin_spec(config, input_file) + plugins_to_update = ( + current_plugin_specs + if len(to_update) == 0 + else [ + description + for description in current_plugin_specs + if self.filter_plugins_to_update(description, to_update) + ] + ) + + def update() -> Redirects: + if len(plugins_to_update) == 0: + log.error( + "\n\n\n\nIt seems like you provided some arguments to `--update`:\n" + + ", ".join(to_update) + + "\nBut after filtering, the result list of plugins is empty\n" + "\n" + "Are you sure you provided the same URIs as in your input file?\n" + "(" + str(input_file) + ")\n\n" + ) + return {} try: pool = Pool(processes=config.proc) - results = pool.map(_prefetch, plugins) + results = pool.map(_prefetch, plugins_to_update) finally: cache.store() + print(f"{len(results)} of {len(current_plugins)} were checked") + # Do only partial update of out file + if len(results) != len(current_plugins): + results = self.merge_results(current_plugins, results) plugins, redirects = check_results(results) plugins = sorted(plugins, key=lambda v: v[1].normalized_name) - self.generate_nix(plugins, outfile) + self.generate_nix(plugins, output_file) return redirects return update + def merge_results( + self, + current: list[Tuple[PluginDesc, Plugin]], + fetched: List[Tuple[PluginDesc, Union[Exception, Plugin], Optional[Repo]]], + ) -> List[Tuple[PluginDesc, Union[Exception, Plugin], Optional[Repo]]]: + # transforming this to dict, so lookup is O(1) instead of O(n) (n is len(current)) + result: Dict[ + str, Tuple[PluginDesc, Union[Exception, Plugin], Optional[Repo]] + ] = { + # also adding redirect (third item in the result tuple) + pl.normalized_name: (pdesc, pl, None) + for pdesc, pl in current + } + + for plugin_desc, plugin, redirect in fetched: + result[plugin.normalized_name] = (plugin_desc, plugin, redirect) + + return list(result.values()) + @property def attr_path(self): return self.name + "Plugins" @@ -544,6 +665,12 @@ class Editor: description="Update all or a subset of existing plugins", add_help=False, ) + pupdate.add_argument( + "update_only", + default=None, + nargs="*", + help="Plugin URLs to update (must be the same as in the input file)", + ) pupdate.set_defaults(func=self.update) return main @@ -637,11 +764,10 @@ def check_results( new_pdesc = PluginDesc(redirect, pdesc.branch, pdesc.alias) plugins.append((new_pdesc, result)) - print(f"{len(results) - len(failures)} plugins were checked", end="") if len(failures) == 0: return plugins, redirects else: - log.error(f", {len(failures)} plugin(s) could not be downloaded:\n") + log.error(f"{len(failures)} plugin(s) could not be downloaded:\n") for plugin, exception in failures: print_download_error(plugin, exception) @@ -802,7 +928,14 @@ def update_plugins(editor: Editor, args): ) fetch_config = FetchConfig(args.proc, args.github_token) - update = editor.get_update(args.input_file, args.outfile, fetch_config) + update = editor.get_update( + input_file=args.input_file, + output_file=args.outfile, + config=fetch_config, + to_update=getattr( # if script was called without arguments + args, "update_only", None + ), + ) start_time = time.time() redirects = update() diff --git a/pkgs/applications/editors/kakoune/plugins/update.py b/pkgs/applications/editors/kakoune/plugins/update.py index 333c96807dd4..47c960e9ae24 100755 --- a/pkgs/applications/editors/kakoune/plugins/update.py +++ b/pkgs/applications/editors/kakoune/plugins/update.py @@ -21,13 +21,11 @@ sys.path.insert( ) import pluginupdate -GET_PLUGINS = f"""( -with import {{ }}; +GET_PLUGINS = f"""with import {{ }}; let inherit (kakouneUtils.override {{ }}) buildKakounePluginFrom2Nix; - generated = callPackage {ROOT}/generated.nix {{ - inherit buildKakounePluginFrom2Nix; - }}; + generated = callPackage {ROOT}/generated.nix {{ inherit buildKakounePluginFrom2Nix; }}; + hasChecksum = value: lib.isAttrs value @@ -35,24 +33,28 @@ let "src" "outputHash" ] value; - getChecksum = - name: value: - if hasChecksum value then - {{ - submodules = value.src.fetchSubmodules or false; - sha256 = value.src.outputHash; - rev = value.src.rev; - }} - else - null; - checksums = lib.mapAttrs getChecksum generated; + + parse = name: value: {{ + pname = value.pname; + version = value.version; + homePage = value.meta.homepage; + checksum = + if hasChecksum value then + {{ + submodules = value.src.fetchSubmodules or false; + sha256 = value.src.outputHash; + rev = value.src.rev; + }} + else + null; + }}; in -lib.filterAttrs (n: v: v != null) checksums -)""" +lib.mapAttrs parse generated""" HEADER = "# This file has been @generated by ./pkgs/applications/editors/kakoune/plugins/update.py. Do not edit!" + class KakouneEditor(pluginupdate.Editor): def generate_nix( self, diff --git a/pkgs/applications/editors/vim/plugins/get-plugins.nix b/pkgs/applications/editors/vim/plugins/get-plugins.nix index 6c587a94821f..c32f3880d6f2 100644 --- a/pkgs/applications/editors/vim/plugins/get-plugins.nix +++ b/pkgs/applications/editors/vim/plugins/get-plugins.nix @@ -6,6 +6,7 @@ let generated = callPackage { inherit buildNeovimPlugin buildVimPlugin; } { } { }; + hasChecksum = value: lib.isAttrs value @@ -13,16 +14,20 @@ let "src" "outputHash" ] value; - getChecksum = - name: value: - if hasChecksum value then - { - submodules = value.src.fetchSubmodules or false; - sha256 = value.src.outputHash; - rev = value.src.rev; - } - else - null; - checksums = lib.mapAttrs getChecksum generated; + + parse = name: value: { + pname = value.pname; + version = value.version; + homePage = value.meta.homepage; + checksum = + if hasChecksum value then + { + submodules = value.src.fetchSubmodules or false; + sha256 = value.src.outputHash; + rev = value.src.rev; + } + else + null; + }; in -lib.filterAttrs (n: v: v != null) checksums +lib.mapAttrs parse generated diff --git a/pkgs/by-name/lu/luarocks-packages-updater/updater.py b/pkgs/by-name/lu/luarocks-packages-updater/updater.py index 2471e46f5f42..2f4b2493ebed 100755 --- a/pkgs/by-name/lu/luarocks-packages-updater/updater.py +++ b/pkgs/by-name/lu/luarocks-packages-updater/updater.py @@ -25,7 +25,9 @@ from pluginupdate import FetchConfig, update_plugins log = logging.getLogger() log.addHandler(logging.StreamHandler()) -ROOT = Path(os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe())))).parent.parent # type: ignore +ROOT = Path( + os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe()))) +).parent.parent # type: ignore PKG_LIST = "maintainers/scripts/luarocks-packages.csv" TMP_FILE = "$(mktemp)" @@ -121,7 +123,18 @@ class LuaEditor(pluginupdate.Editor): def attr_path(self): return "luaPackages" - def get_update(self, input_file: str, outfile: str, config: FetchConfig): + def get_update( + self, + input_file: str, + outfile: str, + config: FetchConfig, + # TODO: implement support for adding/updating individual plugins + to_update: Optional[List[str]], + ): + if to_update is not None: + raise NotImplementedError( + "For now, lua updater doesn't support updating individual packages." + ) _prefetch = generate_pkg_nix def update() -> dict: From 3c2cc3049dc3981c2bed06d2a9bda232543d70e7 Mon Sep 17 00:00:00 2001 From: PerchunPak Date: Sun, 10 Nov 2024 16:53:32 +0100 Subject: [PATCH 08/55] pluginupdate.py: use newer syntax for types --- .../scripts/pluginupdate-py/pluginupdate.py | 76 +++++++++---------- .../editors/kakoune/plugins/update.py | 4 +- .../lu/luarocks-packages-updater/updater.py | 27 +++---- 3 files changed, 49 insertions(+), 58 deletions(-) diff --git a/maintainers/scripts/pluginupdate-py/pluginupdate.py b/maintainers/scripts/pluginupdate-py/pluginupdate.py index 168c727480c1..2f55c1359de7 100644 --- a/maintainers/scripts/pluginupdate-py/pluginupdate.py +++ b/maintainers/scripts/pluginupdate-py/pluginupdate.py @@ -32,7 +32,7 @@ from functools import wraps from multiprocessing.dummy import Pool from pathlib import Path from tempfile import NamedTemporaryFile -from typing import Any, Callable, Dict, List, Optional, Tuple, Union +from typing import Any, Callable from urllib.parse import urljoin, urlparse import git @@ -94,7 +94,7 @@ def make_request(url: str, token=None) -> urllib.request.Request: # a dictionary of plugins and their new repositories -Redirects = Dict["PluginDesc", "Repo"] +Redirects = dict["PluginDesc", "Repo"] class Repo: @@ -103,7 +103,7 @@ class Repo: """Url to the repo""" self._branch = branch # Redirect is the new Repo to use - self.redirect: Optional["Repo"] = None + self.redirect: "Repo | None" = None self.token = "dummy_token" @property @@ -125,14 +125,14 @@ class Repo: return True @retry(urllib.error.URLError, tries=4, delay=3, backoff=2) - def latest_commit(self) -> Tuple[str, datetime]: + def latest_commit(self) -> tuple[str, datetime]: log.debug("Latest commit") loaded = self._prefetch(None) updated = datetime.strptime(loaded["date"], "%Y-%m-%dT%H:%M:%S%z") return loaded["rev"], updated - def _prefetch(self, ref: Optional[str]): + def _prefetch(self, ref: str | None): cmd = ["nix-prefetch-git", "--quiet", "--fetch-submodules", self.uri] if ref is not None: cmd.append(ref) @@ -141,7 +141,7 @@ class Repo: loaded = json.loads(data) return loaded - def prefetch(self, ref: Optional[str]) -> str: + def prefetch(self, ref: str | None) -> str: log.info("Prefetching %s", self.uri) loaded = self._prefetch(ref) return loaded["sha256"] @@ -186,7 +186,7 @@ class RepoGitHub(Repo): return True @retry(urllib.error.URLError, tries=4, delay=3, backoff=2) - def latest_commit(self) -> Tuple[str, datetime]: + def latest_commit(self) -> tuple[str, datetime]: commit_url = self.url(f"commits/{self.branch}.atom") log.debug("Sending request to %s", commit_url) commit_req = make_request(commit_url, self.token) @@ -252,14 +252,14 @@ class RepoGitHub(Repo): class PluginDesc: repo: Repo branch: str - alias: Optional[str] + alias: str | None @property def name(self): return self.alias or self.repo.name @staticmethod - def load_from_csv(config: FetchConfig, row: Dict[str, str]) -> "PluginDesc": + def load_from_csv(config: FetchConfig, row: dict[str, str]) -> "PluginDesc": log.debug("Loading row %s", row) branch = row["branch"] repo = make_repo(row["repo"], branch.strip()) @@ -292,7 +292,7 @@ class Plugin: commit: str has_submodules: bool sha256: str - date: Optional[datetime] = None + date: datetime | None = None @property def normalized_name(self) -> str: @@ -303,7 +303,7 @@ class Plugin: assert self.date is not None return self.date.strftime("%Y-%m-%d") - def as_json(self) -> Dict[str, str]: + def as_json(self) -> dict[str, str]: copy = self.__dict__.copy() del copy["date"] return copy @@ -312,7 +312,7 @@ class Plugin: def load_plugins_from_csv( config: FetchConfig, input_file: Path, -) -> List[PluginDesc]: +) -> list[PluginDesc]: log.debug("Load plugins from csv %s", input_file) plugins = [] with open(input_file, newline="") as csvfile: @@ -359,10 +359,10 @@ class Editor: name: str, root: Path, get_plugins: str, - default_in: Optional[Path] = None, - default_out: Optional[Path] = None, - deprecated: Optional[Path] = None, - cache_file: Optional[str] = None, + default_in: Path | None = None, + default_out: Path | None = None, + deprecated: Path | None = None, + cache_file: str | None = None, ): log.debug("get_plugins:", get_plugins) self.name = name @@ -419,7 +419,7 @@ class Editor: def get_current_plugins( self, config: FetchConfig, nixpkgs: str - ) -> List[Tuple[PluginDesc, Plugin]]: + ) -> list[tuple[PluginDesc, Plugin]]: """To fill the cache""" data = run_nix_expr(self.get_plugins, nixpkgs) plugins = [] @@ -445,7 +445,7 @@ class Editor: plugins.append((pdesc, p)) return plugins - def load_plugin_spec(self, config: FetchConfig, plugin_file) -> List[PluginDesc]: + def load_plugin_spec(self, config: FetchConfig, plugin_file) -> list[PluginDesc]: """CSV spec""" return load_plugins_from_csv(config, plugin_file) @@ -454,7 +454,7 @@ class Editor: raise NotImplementedError() def filter_plugins_to_update( - self, plugin: PluginDesc, to_update: List[str] + self, plugin: PluginDesc, to_update: list[str] ) -> bool: """Function for filtering out plugins, that user doesn't want to update. @@ -491,7 +491,7 @@ class Editor: input_file: str, output_file: str, config: FetchConfig, - to_update: Optional[List[str]], + to_update: list[str] | None, ): if to_update is None: to_update = [] @@ -547,13 +547,11 @@ class Editor: def merge_results( self, - current: list[Tuple[PluginDesc, Plugin]], - fetched: List[Tuple[PluginDesc, Union[Exception, Plugin], Optional[Repo]]], - ) -> List[Tuple[PluginDesc, Union[Exception, Plugin], Optional[Repo]]]: + current: list[tuple[PluginDesc, Plugin]], + fetched: list[tuple[PluginDesc, Exception | Plugin, Repo | None]], + ) -> list[tuple[PluginDesc, Exception | Plugin, Repo | None]]: # transforming this to dict, so lookup is O(1) instead of O(n) (n is len(current)) - result: Dict[ - str, Tuple[PluginDesc, Union[Exception, Plugin], Optional[Repo]] - ] = { + result: dict[str, tuple[PluginDesc, Exception | Plugin, Repo | None]] = { # also adding redirect (third item in the result tuple) pl.normalized_name: (pdesc, pl, None) for pdesc, pl in current @@ -714,8 +712,8 @@ class CleanEnvironment(object): def prefetch_plugin( p: PluginDesc, - cache: "Optional[Cache]" = None, -) -> Tuple[Plugin, Optional[Repo]]: + cache: "Cache | None" = None, +) -> tuple[Plugin, Repo | None]: commit = None log.info(f"Fetching last commit for plugin {p.name} from {p.repo.uri}@{p.branch}") commit, date = p.repo.latest_commit() @@ -748,10 +746,10 @@ def print_download_error(plugin: PluginDesc, ex: Exception): def check_results( - results: List[Tuple[PluginDesc, Union[Exception, Plugin], Optional[Repo]]], -) -> Tuple[List[Tuple[PluginDesc, Plugin]], Redirects]: + results: list[tuple[PluginDesc, Exception | Plugin, Repo | None]], +) -> tuple[list[tuple[PluginDesc, Plugin]], Redirects]: """ """ - failures: List[Tuple[PluginDesc, Exception]] = [] + failures: list[tuple[PluginDesc, Exception]] = [] plugins = [] redirects: Redirects = {} for pdesc, result, redirect in results: @@ -787,7 +785,7 @@ def make_repo(uri: str, branch) -> Repo: return repo -def get_cache_path(cache_file_name: str) -> Optional[Path]: +def get_cache_path(cache_file_name: str) -> Path | None: xdg_cache = os.environ.get("XDG_CACHE_HOME", None) if xdg_cache is None: home = os.environ.get("HOME", None) @@ -799,7 +797,7 @@ def get_cache_path(cache_file_name: str) -> Optional[Path]: class Cache: - def __init__(self, initial_plugins: List[Plugin], cache_file_name: str) -> None: + def __init__(self, initial_plugins: list[Plugin], cache_file_name: str) -> None: self.cache_file = get_cache_path(cache_file_name) downloads = {} @@ -808,11 +806,11 @@ class Cache: downloads.update(self.load()) self.downloads = downloads - def load(self) -> Dict[str, Plugin]: + def load(self) -> dict[str, Plugin]: if self.cache_file is None or not self.cache_file.exists(): return {} - downloads: Dict[str, Plugin] = {} + downloads: dict[str, Plugin] = {} with open(self.cache_file) as f: data = json.load(f) for attr in data.values(): @@ -833,7 +831,7 @@ class Cache: data[name] = attr.as_json() json.dump(data, f, indent=4, sort_keys=True) - def __getitem__(self, key: str) -> Optional[Plugin]: + def __getitem__(self, key: str) -> Plugin | None: return self.downloads.get(key, None) def __setitem__(self, key: str, value: Plugin) -> None: @@ -842,7 +840,7 @@ class Cache: def prefetch( pluginDesc: PluginDesc, cache: Cache -) -> Tuple[PluginDesc, Union[Exception, Plugin], Optional[Repo]]: +) -> tuple[PluginDesc, Exception | Plugin, Repo | None]: try: plugin, redirect = prefetch_plugin(pluginDesc, cache) cache[plugin.commit] = plugin @@ -857,7 +855,7 @@ def rewrite_input( deprecated: Path, # old pluginDesc and the new redirects: Redirects = {}, - append: List[PluginDesc] = [], + append: list[PluginDesc] = [], ): log.info("Rewriting input file %s", input_file) plugins = load_plugins_from_csv(config, input_file) @@ -905,7 +903,7 @@ def rewrite_input( writer.writerow(asdict(plugin)) -def commit(repo: git.Repo, message: str, files: List[Path]) -> None: +def commit(repo: git.Repo, message: str, files: list[Path]) -> None: repo.index.add([str(f.resolve()) for f in files]) if repo.index.diff("HEAD"): diff --git a/pkgs/applications/editors/kakoune/plugins/update.py b/pkgs/applications/editors/kakoune/plugins/update.py index 47c960e9ae24..9b06d0c06e9c 100755 --- a/pkgs/applications/editors/kakoune/plugins/update.py +++ b/pkgs/applications/editors/kakoune/plugins/update.py @@ -12,7 +12,6 @@ import inspect import os import sys from pathlib import Path -from typing import List, Tuple # Import plugin update library from maintainers/scripts/pluginupdate.py ROOT = Path(os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe())))) # type: ignore @@ -54,11 +53,10 @@ lib.mapAttrs parse generated""" HEADER = "# This file has been @generated by ./pkgs/applications/editors/kakoune/plugins/update.py. Do not edit!" - class KakouneEditor(pluginupdate.Editor): def generate_nix( self, - plugins: List[Tuple[pluginupdate.PluginDesc, pluginupdate.Plugin]], + plugins: list[tuple[pluginupdate.PluginDesc, pluginupdate.Plugin]], outfile: str, ): with open(outfile, "w+") as f: diff --git a/pkgs/by-name/lu/luarocks-packages-updater/updater.py b/pkgs/by-name/lu/luarocks-packages-updater/updater.py index 2f4b2493ebed..49ac8f8379df 100755 --- a/pkgs/by-name/lu/luarocks-packages-updater/updater.py +++ b/pkgs/by-name/lu/luarocks-packages-updater/updater.py @@ -17,7 +17,6 @@ import textwrap from dataclasses import dataclass from multiprocessing.dummy import Pool from pathlib import Path -from typing import List, Optional, Tuple import pluginupdate from pluginupdate import FetchConfig, update_plugins @@ -25,9 +24,7 @@ from pluginupdate import FetchConfig, update_plugins log = logging.getLogger() log.addHandler(logging.StreamHandler()) -ROOT = Path( - os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe()))) -).parent.parent # type: ignore +ROOT = Path(os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe())))).parent.parent # type: ignore PKG_LIST = "maintainers/scripts/luarocks-packages.csv" TMP_FILE = "$(mktemp)" @@ -51,18 +48,18 @@ class LuaPlugin: """Name of the plugin, as seen on luarocks.org""" rockspec: str """Full URI towards the rockspec""" - ref: Optional[str] + ref: str | None """git reference (branch name/tag)""" - version: Optional[str] + version: str | None """Set it to pin a package """ - server: Optional[str] + server: str | None """luarocks.org registers packages under different manifests. Its value can be 'http://luarocks.org/dev' """ - luaversion: Optional[str] + luaversion: str | None """lua version if a package is available only for a specific lua version""" - maintainers: Optional[str] - """ Optional string listing maintainers separated by spaces""" + maintainers: str | None + """Optional string listing maintainers separated by spaces""" @property def normalized_name(self) -> str: @@ -79,7 +76,7 @@ class LuaEditor(pluginupdate.Editor): def get_current_plugins(self): return [] - def load_plugin_spec(self, input_file) -> List[LuaPlugin]: + def load_plugin_spec(self, input_file) -> list[LuaPlugin]: luaPackages = [] csvfilename = input_file log.info("Loading package descriptions from %s", csvfilename) @@ -97,7 +94,7 @@ class LuaEditor(pluginupdate.Editor): def update(self, args): update_plugins(self, args) - def generate_nix(self, results: List[Tuple[LuaPlugin, str]], outfilename: str): + def generate_nix(self, results: list[tuple[LuaPlugin, str]], outfilename: str): with tempfile.NamedTemporaryFile("w+") as f: f.write(HEADER) header2 = textwrap.dedent( @@ -129,12 +126,10 @@ class LuaEditor(pluginupdate.Editor): outfile: str, config: FetchConfig, # TODO: implement support for adding/updating individual plugins - to_update: Optional[List[str]], + to_update: list[str] | None, ): if to_update is not None: - raise NotImplementedError( - "For now, lua updater doesn't support updating individual packages." - ) + raise NotImplementedError("For now, lua updater doesn't support updating individual packages.") _prefetch = generate_pkg_nix def update() -> dict: From 61f09a9edc49d9f5231abcf038079c4e694705b6 Mon Sep 17 00:00:00 2001 From: Henner Zeller Date: Sat, 16 Nov 2024 14:11:18 -0800 Subject: [PATCH 09/55] perf_data_converter: fix fixed derivation hash. Bazel seems to put elements in there which make it dependent on some unknown dependencies. --- pkgs/by-name/pe/perf_data_converter/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/pe/perf_data_converter/package.nix b/pkgs/by-name/pe/perf_data_converter/package.nix index be0943a2f1c1..9c15422977d9 100644 --- a/pkgs/by-name/pe/perf_data_converter/package.nix +++ b/pkgs/by-name/pe/perf_data_converter/package.nix @@ -38,8 +38,8 @@ buildBazelPackage rec { fetchAttrs = { hash = { - aarch64-linux = "sha256-gSRSkLGZhHe8o3byZVFsUxXPM+xzetOPhfzkAVTGAUs="; - x86_64-linux = "sha256-ZYjFpdH0oYrJguw16DSJWiXjhfJusG+inShbx/BOrcY="; + aarch64-linux = "sha256-F4fYZfdCmDzJRR+z1rCLsculP9y9B8H8WHNQbFZEv+s="; + x86_64-linux = "sha256-rjlquK0WcB7Te2uUKKVOrL7+6PtcWQImUWTVafIsbHY="; } .${system} or (throw "No hash for system: ${system}"); }; From 4f0861ca1f9d58aff22a69a31e746e2ff8dc4c0d Mon Sep 17 00:00:00 2001 From: Nick Cao Date: Sun, 17 Nov 2024 10:00:46 -0500 Subject: [PATCH 10/55] telegram-desktop: 5.7.1 -> 5.8.0 Diff: https://github.com/telegramdesktop/tdesktop/compare/v5.7.1...v5.8.0 Changelog: https://github.com/telegramdesktop/tdesktop/releases/tag/v5.8.0 --- .../telegram/telegram-desktop/unwrapped.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/unwrapped.nix b/pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/unwrapped.nix index 33b9573b9720..3cf6b2e70343 100644 --- a/pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/unwrapped.nix +++ b/pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/unwrapped.nix @@ -46,14 +46,14 @@ stdenv.mkDerivation (finalAttrs: { pname = "telegram-desktop-unwrapped"; - version = "5.7.1"; + version = "5.8.0"; src = fetchFromGitHub { owner = "telegramdesktop"; repo = "tdesktop"; rev = "v${finalAttrs.version}"; fetchSubmodules = true; - hash = "sha256-MPVm9WfAjF11sy0hyhDTI/mM2OsENSMavnVrOwXTGUk="; + hash = "sha256-qx1IG9uQfonWrY+/UIFQ6t96FoS3v51E8ry1IKLqaRQ="; }; postPatch = lib.optionalString stdenv.hostPlatform.isLinux '' From 5c7471db68057f695f7891a96fc915d99540deda Mon Sep 17 00:00:00 2001 From: Nick Cao Date: Sun, 17 Nov 2024 16:45:34 -0500 Subject: [PATCH 11/55] telegram-desktop: 5.8.0 -> 5.8.1 Diff: https://github.com/telegramdesktop/tdesktop/compare/v5.8.0...v5.8.1 Changelog: https://github.com/telegramdesktop/tdesktop/releases/tag/v5.8.1 --- .../telegram/telegram-desktop/unwrapped.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/unwrapped.nix b/pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/unwrapped.nix index 3cf6b2e70343..3dadbd542739 100644 --- a/pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/unwrapped.nix +++ b/pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/unwrapped.nix @@ -46,14 +46,14 @@ stdenv.mkDerivation (finalAttrs: { pname = "telegram-desktop-unwrapped"; - version = "5.8.0"; + version = "5.8.1"; src = fetchFromGitHub { owner = "telegramdesktop"; repo = "tdesktop"; rev = "v${finalAttrs.version}"; fetchSubmodules = true; - hash = "sha256-qx1IG9uQfonWrY+/UIFQ6t96FoS3v51E8ry1IKLqaRQ="; + hash = "sha256-9042n0fU+phXAll5o5uyoHLXbIyrGkNGrqTUTf9LWDc="; }; postPatch = lib.optionalString stdenv.hostPlatform.isLinux '' From 9715e65d53e18f2ea4976d70172a18003c6766ae Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Mon, 18 Nov 2024 09:48:44 +0100 Subject: [PATCH 12/55] python312Packages.asyncwhois: 1.1.5 -> 1.1.9 Diff: https://github.com/pogzyb/asyncwhois/compare/refs/tags/v1.1.5...v1.1.9 Changelog: https://github.com/pogzyb/asyncwhois/releases/tag/v1.1.9 --- pkgs/development/python-modules/asyncwhois/default.nix | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/asyncwhois/default.nix b/pkgs/development/python-modules/asyncwhois/default.nix index 460ab2684ec9..12802c13f942 100644 --- a/pkgs/development/python-modules/asyncwhois/default.nix +++ b/pkgs/development/python-modules/asyncwhois/default.nix @@ -6,6 +6,7 @@ pytest-asyncio, pytest-mock, pytestCheckHook, + python-dateutil, python-socks, pythonOlder, tldextract, @@ -14,7 +15,7 @@ buildPythonPackage rec { pname = "asyncwhois"; - version = "1.1.5"; + version = "1.1.9"; pyproject = true; disabled = pythonOlder "3.9"; @@ -23,12 +24,13 @@ buildPythonPackage rec { owner = "pogzyb"; repo = "asyncwhois"; rev = "refs/tags/v${version}"; - hash = "sha256-y5JmAbrk9qJeNYejNcz5nI5bghaetUw1xkD8qgwOkao="; + hash = "sha256-Eb7De2AMxZi0Wu8dYA5wlX84BbF62L24vIuBEnvfxBU="; }; build-system = [ hatchling ]; dependencies = [ + python-dateutil python-socks tldextract whodap From cc0d0e84165bd2bcb438d7bae24d85f85a76eb5b Mon Sep 17 00:00:00 2001 From: Francesco Gazzetta Date: Mon, 18 Nov 2024 22:46:36 +0100 Subject: [PATCH 13/55] faircamp: 0.15.1 -> 0.21.0 Diff: https://codeberg.org/simonrepp/faircamp/compare/0.15.1...0.21.0 --- pkgs/by-name/fa/faircamp/Cargo.lock | 1058 +++++++++++++++----------- pkgs/by-name/fa/faircamp/package.nix | 13 +- 2 files changed, 635 insertions(+), 436 deletions(-) diff --git a/pkgs/by-name/fa/faircamp/Cargo.lock b/pkgs/by-name/fa/faircamp/Cargo.lock index 741e486cbf00..da90a4b5fd70 100644 --- a/pkgs/by-name/fa/faircamp/Cargo.lock +++ b/pkgs/by-name/fa/faircamp/Cargo.lock @@ -8,7 +8,7 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5f7b0a21988c1bf877cf4759ef5ddaac04c1c9fe808c9142ecb78ba97d97a28a" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "bytes", "futures-core", "futures-sink", @@ -29,7 +29,7 @@ dependencies = [ "actix-service", "actix-utils", "actix-web", - "bitflags 2.5.0", + "bitflags 2.6.0", "bytes", "derive_more", "futures-core", @@ -44,9 +44,9 @@ dependencies = [ [[package]] name = "actix-http" -version = "3.7.0" +version = "3.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4eb9843d84c775696c37d9a418bbb01b932629d01870722c0f13eb3f95e2536d" +checksum = "d48f96fc3003717aeb9856ca3d02a8c7de502667ad76eeacd830b48d2e91fac4" dependencies = [ "actix-codec", "actix-rt", @@ -54,7 +54,7 @@ dependencies = [ "actix-utils", "ahash", "base64", - "bitflags 2.5.0", + "bitflags 2.6.0", "brotli", "bytes", "bytestring", @@ -88,7 +88,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e01ed3140b2f8d422c68afa1ed2e85d996ea619c988ac834d255db32138655cb" dependencies = [ "quote", - "syn 2.0.66", + "syn 2.0.87", ] [[package]] @@ -108,9 +108,9 @@ dependencies = [ [[package]] name = "actix-rt" -version = "2.9.0" +version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28f32d40287d3f402ae0028a9d54bef51af15c8769492826a69d28f81893151d" +checksum = "24eda4e2a6e042aa4e55ac438a2ae052d3b5da0ecf83d7411e1a368946925208" dependencies = [ "futures-core", "tokio", @@ -118,9 +118,9 @@ dependencies = [ [[package]] name = "actix-server" -version = "2.3.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3eb13e7eef0423ea6eab0e59f6c72e7cb46d33691ad56a726b3cd07ddec2c2d4" +checksum = "7ca2549781d8dd6d75c40cf6b6051260a2cc2f3c62343d761a969a0640646894" dependencies = [ "actix-rt", "actix-service", @@ -156,9 +156,9 @@ dependencies = [ [[package]] name = "actix-web" -version = "4.8.0" +version = "4.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1988c02af8d2b718c05bc4aeb6a66395b7cdf32858c2c71131e5637a8c05a9ff" +checksum = "9180d76e5cc7ccbc4d60a506f2c727730b154010262df5b910eb17dbe4b8cb38" dependencies = [ "actix-codec", "actix-http", @@ -178,6 +178,7 @@ dependencies = [ "encoding_rs", "futures-core", "futures-util", + "impl-more", "itoa", "language-tags", "log", @@ -204,14 +205,14 @@ dependencies = [ "actix-router", "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.87", ] [[package]] name = "addr2line" -version = "0.22.0" +version = "0.24.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e4503c46a5c0c7844e948c9a4d6acd9f50cccb4de1c48eb9e291ea17470c678" +checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" dependencies = [ "gimli", ] @@ -222,6 +223,12 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" +[[package]] +name = "adler2" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" + [[package]] name = "aes" version = "0.8.4" @@ -302,9 +309,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.14" +version = "0.6.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "418c75fa768af9c03be99d17643f93f79bbba589895012a80e3452a19ddda15b" +checksum = "64e15c1ab1f89faffbf04a634d5e1962e9074f2741eef6d97f3c4e322426d526" dependencies = [ "anstyle", "anstyle-parse", @@ -317,33 +324,33 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.7" +version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "038dfcf04a5feb68e9c60b21c9625a54c2c0616e79b72b0fd87075a056ae1d1b" +checksum = "1bec1de6f59aedf83baf9ff929c98f2ad654b97c9510f4e70cf6f661d49fd5b1" [[package]] name = "anstyle-parse" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c03a11a9034d92058ceb6ee011ce58af4a9bf61491aa7e1e59ecd24bd40d22d4" +checksum = "eb47de1e80c2b463c735db5b217a0ddc39d612e7ac9e2e96a5aed1f57616c1cb" dependencies = [ "utf8parse", ] [[package]] name = "anstyle-query" -version = "1.0.3" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a64c907d4e79225ac72e2a354c9ce84d50ebb4586dee56c82b3ee73004f537f5" +checksum = "6d36fc52c7f6c869915e99412912f22093507da8d9e942ceaf66fe4b7c14422a" dependencies = [ "windows-sys 0.52.0", ] [[package]] name = "anstyle-wincon" -version = "3.0.3" +version = "3.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61a38449feb7068f52bb06c12759005cf459ee52bb4adc1d5a7c4322d716fb19" +checksum = "5bf74e1b6e971609db8ca7a9ce79fd5768ab6ae46441c572e46cf596f59e57f8" dependencies = [ "anstyle", "windows-sys 0.52.0", @@ -351,9 +358,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.86" +version = "1.0.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da" +checksum = "86fdf8605db99b54d3cd748a44c6d04df638eb5dafb219b135d0149bd0db01f6" [[package]] name = "arbitrary" @@ -378,23 +385,14 @@ checksum = "0ae92a5119aa49cdbcf6b9f893fe4e1d98b04ccbf82ee0584ad948a44a734dea" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.87", ] [[package]] name = "arrayvec" -version = "0.7.4" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" - -[[package]] -name = "atomic-polyfill" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8cf2bce30dfe09ef0bfaef228b9d414faaf7e563035494d7fe092dba54b300f4" -dependencies = [ - "critical-section", -] +checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" [[package]] name = "audiopus_sys" @@ -409,9 +407,9 @@ dependencies = [ [[package]] name = "autocfg" -version = "1.3.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" +checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" [[package]] name = "av1-grain" @@ -429,9 +427,9 @@ dependencies = [ [[package]] name = "avif-serialize" -version = "0.8.1" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "876c75a42f6364451a033496a14c44bffe41f5f4a8236f697391f11024e596d2" +checksum = "e335041290c43101ca215eed6f43ec437eb5a42125573f600fc3fa42b9bddd62" dependencies = [ "arrayvec", ] @@ -444,17 +442,17 @@ checksum = "7b7e4c2464d97fe331d41de9d5db0def0a96f4d823b8b32a2efd503578988973" [[package]] name = "backtrace" -version = "0.3.72" +version = "0.3.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17c6a35df3749d2e8bb1b7b21a976d82b15548788d2735b9d82f329268f71a11" +checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" dependencies = [ "addr2line", - "cc", "cfg-if", "libc", - "miniz_oxide", + "miniz_oxide 0.8.0", "object", "rustc-demangle", + "windows-targets 0.52.6", ] [[package]] @@ -486,9 +484,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.5.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" +checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" [[package]] name = "bitreader" @@ -501,9 +499,9 @@ dependencies = [ [[package]] name = "bitstream-io" -version = "2.3.0" +version = "2.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c12d1856e42f0d817a835fe55853957c85c8c8a470114029143d3f12671446e" +checksum = "b81e1519b0d82120d2fd469d5bfb2919a9361c48b02d82d04befc1cdd2002452" [[package]] name = "block-buffer" @@ -546,9 +544,9 @@ dependencies = [ [[package]] name = "built" -version = "0.7.3" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6a6c0b39c38fd754ac338b00a88066436389c0f029da5d37d1e01091d9b7c17" +checksum = "236e6289eda5a812bc6b53c3b024039382a2895fbbeef2d748b2931546d392c4" [[package]] name = "bumpalo" @@ -558,9 +556,9 @@ checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" [[package]] name = "bytemuck" -version = "1.16.0" +version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78834c15cb5d5efe3452d58b1e8ba890dd62d21907f867f383358198e56ebca5" +checksum = "94bbb0ad554ad961ddc5da507a12a29b14e4ae5bda06b19f575a3e6079d2e2ae" [[package]] name = "byteorder" @@ -576,9 +574,9 @@ checksum = "8f1fe948ff07f4bd06c30984e69f5b4899c516a3ef74f34df92a2df2ab535495" [[package]] name = "bytes" -version = "1.6.0" +version = "1.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9" +checksum = "428d9aa8fbc0670b7b8d6030a7fadd0f86151cae55e4dbbece15f3780a3dfaf3" [[package]] name = "bytestring" @@ -612,13 +610,13 @@ dependencies = [ [[package]] name = "cc" -version = "1.0.98" +version = "1.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41c270e7540d725e65ac7f1b212ac8ce349719624d7bcff99f8e2e488e8cf03f" +checksum = "2e80e3b6a3ab07840e1cae9b0666a63970dc28e8ed5ffbcdacbfc760c281bfc1" dependencies = [ "jobserver", "libc", - "once_cell", + "shlex", ] [[package]] @@ -655,7 +653,7 @@ dependencies = [ "num-traits", "serde", "wasm-bindgen", - "windows-targets 0.52.5", + "windows-targets 0.52.6", ] [[package]] @@ -670,9 +668,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.8" +version = "4.5.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84b3edb18336f4df585bc9aa31dd99c036dfa5dc5e9a2939a722a188f3a8970d" +checksum = "fb3b4b9e5a7c7514dfa52869339ee98b3156b0bfb4e8a77c4ff4babb64b1604f" dependencies = [ "clap_builder", "clap_derive", @@ -680,9 +678,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.8" +version = "4.5.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1c09dd5ada6c6c78075d6fd0da3f90d8080651e2d6cc8eb2f1aaa4034ced708" +checksum = "b17a95aa67cc7b5ebd32aa5370189aa0d79069ef1c64ce893bd30fb24bff20ec" dependencies = [ "anstream", "anstyle", @@ -692,21 +690,21 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.8" +version = "4.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bac35c6dafb060fd4d275d9a4ffae97917c13a6327903a8be2153cd964f7085" +checksum = "4ac6a0c7b1a9e9a5186361f67dfa1b88213572f427fb9ab038efb2bd8c582dab" dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.87", ] [[package]] name = "clap_lex" -version = "0.7.0" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce" +checksum = "1462739cb27611015575c0c11df5df7601141071f07518d56fcc1be504cbec97" [[package]] name = "claxon" @@ -716,9 +714,9 @@ checksum = "4bfbf56724aa9eca8afa4fcfadeb479e722935bb2a0900c2d37e0cc477af0688" [[package]] name = "cmake" -version = "0.1.50" +version = "0.1.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a31c789563b815f77f4250caee12365734369f942439b7defd71e18a48197130" +checksum = "fb1e43aa7fd152b1f968787f7dbcdeb306d1867ff373c69955211876c053f91a" dependencies = [ "cc", ] @@ -731,9 +729,9 @@ checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" [[package]] name = "colorchoice" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b6a852b24ab71dffc585bcb46eaf7959d175cb865a7152e35b348d1b2960422" +checksum = "d3fd119d74b830634cea2a0f58bbd0d54540518a14397557951e79340abc28c0" [[package]] name = "combine" @@ -770,9 +768,9 @@ dependencies = [ [[package]] name = "core-foundation" -version = "0.9.4" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" +checksum = "b55271e5c8c478ad3f38ad24ef34923091e0548492a266d19b3c0b4d82574c63" dependencies = [ "core-foundation-sys", "libc", @@ -780,15 +778,15 @@ dependencies = [ [[package]] name = "core-foundation-sys" -version = "0.8.6" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" [[package]] name = "cpufeatures" -version = "0.2.12" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" +checksum = "608697df725056feaccfa42cffdaeeec3fccc4ffc38358ecd19b243e716a78e0" dependencies = [ "libc", ] @@ -817,12 +815,6 @@ dependencies = [ "cfg-if", ] -[[package]] -name = "critical-section" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7059fff8937831a9ae6f0fe4d658ffabf58f2ca96aa9dec1c889f936f705f216" - [[package]] name = "crossbeam-deque" version = "0.8.5" @@ -866,9 +858,9 @@ dependencies = [ [[package]] name = "deflate64" -version = "0.1.8" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83ace6c86376be0b6cdcf3fb41882e81d94b31587573d1cfa9d01cd06bba210d" +checksum = "da692b8d1080ea3045efaab14434d40468c3d8657e42abddfffca87b428f4c1b" [[package]] name = "deranged" @@ -887,20 +879,20 @@ checksum = "67e77553c4162a157adbf834ebae5b415acbecbeafc7a74b0e886657506a7611" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.87", ] [[package]] name = "derive_more" -version = "0.99.17" +version = "0.99.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" +checksum = "5f33878137e4dafd7fa914ad4e259e18a4e8e532b9617a2d0150262bf53abfce" dependencies = [ "convert_case", "proc-macro2", "quote", "rustc_version", - "syn 1.0.109", + "syn 2.0.87", ] [[package]] @@ -922,20 +914,20 @@ dependencies = [ [[package]] name = "displaydoc" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" +checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.87", ] [[package]] name = "either" -version = "1.12.0" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3dca9240753cf90908d7e4aac30f630662b02aebaa1b58a3cadabdb23385b58b" +checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" [[package]] name = "encoding_rs" @@ -967,7 +959,7 @@ dependencies = [ "flume", "half", "lebe", - "miniz_oxide", + "miniz_oxide 0.7.4", "rayon-core", "smallvec", "zune-inflate", @@ -975,7 +967,7 @@ dependencies = [ [[package]] name = "faircamp" -version = "0.15.1" +version = "0.21.0" dependencies = [ "actix-files", "actix-web", @@ -1008,6 +1000,7 @@ dependencies = [ "serde_derive", "slug", "tokio", + "translations", "url", "urlencoding", "webbrowser", @@ -1025,18 +1018,18 @@ dependencies = [ [[package]] name = "fdeflate" -version = "0.3.4" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f9bfee30e4dedf0ab8b422f03af778d9612b63f502710fc500a334ebe2de645" +checksum = "d8090f921a24b04994d9929e204f50b498a33ea6ba559ffaa05e04f7ee7fb5ab" dependencies = [ "simd-adler32", ] [[package]] name = "fixed" -version = "1.27.0" +version = "1.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fc715d38bea7b5bf487fcd79bcf8c209f0b58014f3018a7a19c2b855f472048" +checksum = "85c6e0b89bf864acd20590dbdbad56f69aeb898abfc9443008fd7bd48b2cc85a" dependencies = [ "az", "bytemuck", @@ -1046,12 +1039,12 @@ dependencies = [ [[package]] name = "flate2" -version = "1.0.30" +version = "1.0.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f54427cfd1c7829e2a139fcefea601bf088ebca651d2bf53ebc600eac295dae" +checksum = "a1b589b4dc103969ad3cf85c950899926ec64300a1a46d76c03a6072957036f0" dependencies = [ "crc32fast", - "miniz_oxide", + "miniz_oxide 0.8.0", ] [[package]] @@ -1080,27 +1073,27 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" +checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" [[package]] name = "futures-sink" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" +checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" [[package]] name = "futures-task" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" +checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" [[package]] name = "futures-util" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" +checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" dependencies = [ "futures-core", "futures-task", @@ -1141,9 +1134,9 @@ dependencies = [ [[package]] name = "gimli" -version = "0.29.0" +version = "0.31.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd" +checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" [[package]] name = "h2" @@ -1176,9 +1169,9 @@ dependencies = [ [[package]] name = "hash32" -version = "0.2.1" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0c35f58762feb77d74ebe43bdbc3210f09be9fe6742234d573bacc26ed92b67" +checksum = "47d60b12902ba28e2730cd37e95b8c9223af2808df9e902d4df49588d1470606" dependencies = [ "byteorder", ] @@ -1194,20 +1187,17 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.14.5" +version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" +checksum = "1e087f84d4f86bf4b218b927129862374b72199ae7d8657835f1e89000eea4fb" [[package]] name = "heapless" -version = "0.7.17" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdc6457c0eb62c71aac4bc17216026d8410337c4126773b9c5daba343f17964f" +checksum = "0bfb9eb618601c89945a70e254898da93b13be0388091d42117462b265bb3fad" dependencies = [ - "atomic-polyfill", "hash32", - "rustc_version", - "spin", "stable_deref_trait", ] @@ -1272,9 +1262,9 @@ checksum = "21dec9db110f5f872ed9699c3ecf50cf16f423502706ba5c72462e28d3157573" [[package]] name = "httparse" -version = "1.8.0" +version = "1.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" +checksum = "7d71d3574edd2771538b901e6549113b4006ece66150fb69c0fb6d9a2adae946" [[package]] name = "httpdate" @@ -1305,35 +1295,164 @@ dependencies = [ "cc", ] +[[package]] +name = "icu_collections" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_locid" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" +dependencies = [ + "displaydoc", + "litemap", + "tinystr", + "writeable", + "zerovec", +] + +[[package]] +name = "icu_locid_transform" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_locid_transform_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_locid_transform_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" + +[[package]] +name = "icu_normalizer" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_normalizer_data", + "icu_properties", + "icu_provider", + "smallvec", + "utf16_iter", + "utf8_iter", + "write16", + "zerovec", +] + +[[package]] +name = "icu_normalizer_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" + +[[package]] +name = "icu_properties" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_locid_transform", + "icu_properties_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_properties_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" + +[[package]] +name = "icu_provider" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_provider_macros", + "stable_deref_trait", + "tinystr", + "writeable", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_provider_macros" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", +] + [[package]] name = "id3" version = "1.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "55f4e785f2c700217ee82a1c727c720449421742abd5fcb2f1df04e1244760e9" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "byteorder", "flate2", ] [[package]] name = "idna" -version = "0.5.0" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" +checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" dependencies = [ - "unicode-bidi", - "unicode-normalization", + "idna_adapter", + "smallvec", + "utf8_iter", +] + +[[package]] +name = "idna_adapter" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" +dependencies = [ + "icu_normalizer", + "icu_properties", ] [[package]] name = "image" -version = "0.25.1" +version = "0.25.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd54d660e773627692c524beaad361aca785a4f9f5730ce91f42aabe5bce3d11" +checksum = "cd6f44aed642f18953a158afeb30206f4d50da59fbc66ecb53c66488de73563b" dependencies = [ "bytemuck", - "byteorder", + "byteorder-lite", "color_quant", "exr", "gif", @@ -1351,12 +1470,12 @@ dependencies = [ [[package]] name = "image-webp" -version = "0.1.2" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d730b085583c4d789dfd07fdcf185be59501666a90c97c40162b37e4fdad272d" +checksum = "e031e8e3d94711a9ccb5d6ea357439ef3dcbed361798bd4071dc4d9793fbe22f" dependencies = [ "byteorder-lite", - "thiserror", + "quick-error", ] [[package]] @@ -1366,13 +1485,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "44feda355f4159a7c757171a77de25daf6411e217b4cabd03bd6650690468126" [[package]] -name = "indexmap" -version = "2.2.6" +name = "impl-more" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" +checksum = "206ca75c9c03ba3d4ace2460e57b189f39f43de612c2f85836e65c929701bb2d" + +[[package]] +name = "indexmap" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "707907fe3c25f5424cce2cb7e1cbcafee6bdbe735ca90ef77c29e84591e5b9da" dependencies = [ "equivalent", - "hashbrown 0.14.5", + "hashbrown 0.15.0", ] [[package]] @@ -1398,14 +1523,14 @@ checksum = "c34819042dc3d3971c46c2190835914dfbe0c3c13f61449b2997f4e9722dfa60" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.87", ] [[package]] name = "is_terminal_polyfill" -version = "1.70.0" +version = "1.70.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8478577c03552c21db0e2724ffb8986a5ce7af88107e6be5d2ee6e158c12800" +checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" [[package]] name = "iso_country" @@ -1418,11 +1543,13 @@ dependencies = [ [[package]] name = "iso_currency" -version = "0.4.4" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33f07181be95c82347a07cf4caf43d2acd8a7e8d08ef1db75e10ed5a9aec3c1b" +checksum = "f402cc74ed2fec6f6fed285d45645a8c7c82e1d1fa694898864ef7c0cb047785" dependencies = [ "iso_country", + "proc-macro2", + "quote", ] [[package]] @@ -1451,7 +1578,7 @@ dependencies = [ "combine", "jni-sys", "log", - "thiserror", + "thiserror 1.0.64", "walkdir", "windows-sys 0.45.0", ] @@ -1464,9 +1591,9 @@ checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" [[package]] name = "jobserver" -version = "0.1.31" +version = "0.1.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2b099aaa34a9751c5bf0878add70444e1ed2dd73f347be99003d4577277de6e" +checksum = "48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0" dependencies = [ "libc", ] @@ -1479,9 +1606,9 @@ checksum = "f5d4a7da358eff58addd2877a45865158f0d78c911d43a5784ceb7bbf52833b0" [[package]] name = "js-sys" -version = "0.3.69" +version = "0.3.70" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" +checksum = "1868808506b929d7b0cfa8f75951347aa71bb21144b7791bae35d9bccfcfe37a" dependencies = [ "wasm-bindgen", ] @@ -1494,9 +1621,9 @@ checksum = "d4345964bb142484797b161f473a503a434de77149dd8c7427788c6e13379388" [[package]] name = "lazy_static" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" [[package]] name = "lebe" @@ -1517,9 +1644,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.155" +version = "0.2.159" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" +checksum = "561d97a539a36e26a9a5fad1ea11a3039a67714694aaa379433e580854bc3dc5" [[package]] name = "libfuzzer-sys" @@ -1542,6 +1669,12 @@ dependencies = [ "num-traits", ] +[[package]] +name = "litemap" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "643cb0b8d4fcc284004d5fd0d67ccf61dfffadb7f75e1e71bc420f4688a3a704" + [[package]] name = "local-channel" version = "0.1.5" @@ -1577,9 +1710,9 @@ checksum = "9374ef4228402d4b7e403e5838cb880d9ee663314b0a900d5a6aabf0c213552e" [[package]] name = "log" -version = "0.4.21" +version = "0.4.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c" +checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" [[package]] name = "loop9" @@ -1612,9 +1745,9 @@ dependencies = [ [[package]] name = "memchr" -version = "2.7.2" +version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" [[package]] name = "metaflac" @@ -1634,9 +1767,9 @@ checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" [[package]] name = "mime_guess" -version = "2.0.4" +version = "2.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4192263c238a5f0d0c6bfd21f336a313a4ce1c450542449ca191bb657b4642ef" +checksum = "f7c44f8e672c00fe5308fa235f821cb4198414e1c77935c1ab6948d3fd78550e" dependencies = [ "mime", "unicase", @@ -1650,24 +1783,34 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "miniz_oxide" -version = "0.7.3" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87dfd01fe195c66b572b37921ad8803d010623c0aca821bea2302239d155cdae" +checksum = "b8a240ddb74feaf34a79a7add65a741f3167852fba007066dcac1ca548d89c08" dependencies = [ "adler", +] + +[[package]] +name = "miniz_oxide" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1" +dependencies = [ + "adler2", "simd-adler32", ] [[package]] name = "mio" -version = "0.8.11" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c" +checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec" dependencies = [ + "hermit-abi", "libc", "log", "wasi", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -1735,9 +1878,9 @@ checksum = "0676bb32a98c1a483ce53e500a81ad9c3d5b3f7c920c28c24e9cb0980d0b5bc8" [[package]] name = "num-bigint" -version = "0.4.5" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c165a9ab64cf766f73521c0dd2cfdff64f488b8f0b3e621face3462d3db536d7" +checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" dependencies = [ "num-integer", "num-traits", @@ -1768,7 +1911,7 @@ checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.87", ] [[package]] @@ -1800,16 +1943,6 @@ dependencies = [ "autocfg", ] -[[package]] -name = "num_cpus" -version = "1.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" -dependencies = [ - "hermit-abi", - "libc", -] - [[package]] name = "objc-sys" version = "0.3.5" @@ -1838,7 +1971,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ee638a5da3799329310ad4cfa62fbf045d5f56e3ef5ba4149e7452dcf89d5a8" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "block2", "libc", "objc2", @@ -1846,9 +1979,9 @@ dependencies = [ [[package]] name = "object" -version = "0.35.0" +version = "0.36.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8ec7ab813848ba4522158d5517a6093db1ded27575b070f4177b8d12b41db5e" +checksum = "aedf0a2d09c573ed1d8d85b30c119153926a2b36dce0ab28322c09a117a4683e" dependencies = [ "memchr", ] @@ -1873,9 +2006,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.19.0" +version = "1.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" +checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" [[package]] name = "opus" @@ -1895,15 +2028,15 @@ checksum = "afbb993947f111397c2bc536944f8dac7f54a4e73383d478efe1990b56404b60" [[package]] name = "pacmog" -version = "0.4.1" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f24fb9dc847fa21adf6fe1cbf98239cd27ba02b80c1503a89672b3808b82f5a" +checksum = "b9aec65fa4371bb2526d0ecd63fc90294f7d0dc370a8645adeb32042af57e641" dependencies = [ - "anyhow", "arbitrary-int", "fixed", "heapless", "nom", + "thiserror 2.0.3", ] [[package]] @@ -1926,7 +2059,7 @@ dependencies = [ "libc", "redox_syscall", "smallvec", - "windows-targets 0.52.5", + "windows-targets 0.52.6", ] [[package]] @@ -1965,21 +2098,21 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "pkg-config" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" +checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" [[package]] name = "png" -version = "0.17.13" +version = "0.17.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06e4b0d3d1312775e782c86c91a111aa1f910cbb65e1337f9975b5f9a554b5e1" +checksum = "52f9d46a34a05a6a57566bc2bfae066ef07585a6e3fa30fbbdff5936380623f0" dependencies = [ "bitflags 1.3.2", "crc32fast", "fdeflate", "flate2", - "miniz_oxide", + "miniz_oxide 0.8.0", ] [[package]] @@ -1990,15 +2123,18 @@ checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" [[package]] name = "ppv-lite86" -version = "0.2.17" +version = "0.2.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" +checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04" +dependencies = [ + "zerocopy", +] [[package]] name = "proc-macro2" -version = "1.0.85" +version = "1.0.86" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22244ce15aa966053a896d1accb3a6e68469b97c7f33f284b99f0d576879fc23" +checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" dependencies = [ "unicode-ident", ] @@ -2019,16 +2155,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8021cf59c8ec9c432cfc2526ac6b8aa508ecaf29cd415f271b8406c1b851c3fd" dependencies = [ "quote", - "syn 2.0.66", + "syn 2.0.87", ] [[package]] name = "pulldown-cmark" -version = "0.11.0" +version = "0.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8746739f11d39ce5ad5c2520a9b75285310dbfe78c541ccf832d38615765aec0" +checksum = "f86ba2052aebccc42cbbb3ed234b8b13ce76f75c3551a303cb2bcffcff12bb14" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "memchr", "pulldown-cmark-escape", "unicase", @@ -2057,9 +2193,9 @@ checksum = "a993555f31e5a609f617c12db6250dedcac1b0a85076912c436e6fc9b2c8e6a3" [[package]] name = "quote" -version = "1.0.36" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" +checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" dependencies = [ "proc-macro2", ] @@ -2124,16 +2260,16 @@ dependencies = [ "rand_chacha", "simd_helpers", "system-deps", - "thiserror", + "thiserror 1.0.64", "v_frame", "wasm-bindgen", ] [[package]] name = "ravif" -version = "0.11.5" +version = "0.11.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc13288f5ab39e6d7c9d501759712e6969fcc9734220846fc9ed26cae2cc4234" +checksum = "2413fd96bd0ea5cdeeb37eaf446a22e6ed7b981d792828721e74ded1980a45c6" dependencies = [ "avif-serialize", "imgref", @@ -2166,18 +2302,18 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.5.1" +version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "469052894dcb553421e483e4209ee581a45100d31b4018de03e5a7ad86374a7e" +checksum = "9b6dfecf2c74bce2466cabf93f6664d6998a69eb21e39f4207930065b27b771f" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", ] [[package]] name = "regex" -version = "1.10.4" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c" +checksum = "38200e5ee88914975b69f657f0801b6f6dccafd44fd9326302a4aaeecfacb1d8" dependencies = [ "aho-corasick", "memchr", @@ -2187,9 +2323,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.6" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea" +checksum = "368758f23274712b504848e9d5a6f010445cc8b87a7cdb4d7cbee666c1288da3" dependencies = [ "aho-corasick", "memchr", @@ -2198,24 +2334,21 @@ dependencies = [ [[package]] name = "regex-lite" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30b661b2f27137bdbc16f00eda72866a92bb28af1753ffbd56744fb6e2e9cd8e" +checksum = "53a49587ad06b26609c52e423de037e7f57f20d53535d66e08c695f347df952a" [[package]] name = "regex-syntax" -version = "0.8.3" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56" +checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" [[package]] name = "rgb" -version = "0.8.37" +version = "0.8.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05aaa8004b64fd573fc9d002f4e632d51ad4f026c2b5ba95fcb6c2f32c2c47d8" -dependencies = [ - "bytemuck", -] +checksum = "57397d16646700483b67d2dd6511d79318f9d057fdbd21a4066aeac8b41d310a" [[package]] name = "rmp3" @@ -2235,9 +2368,9 @@ checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" [[package]] name = "rustc_version" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" dependencies = [ "semver", ] @@ -2259,11 +2392,10 @@ dependencies = [ [[package]] name = "sanitize-filename" -version = "0.5.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ed72fbaf78e6f2d41744923916966c4fbe3d7c74e3037a8ee482f1115572603" +checksum = "bc984f4f9ceb736a7bb755c3e3bd17dc56370af2600c9780dcc48c66453da34d" dependencies = [ - "lazy_static", "regex", ] @@ -2287,40 +2419,41 @@ checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" [[package]] name = "serde" -version = "1.0.203" +version = "1.0.215" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7253ab4de971e72fb7be983802300c30b5a7f0c2e56fab8abfc6a214307c0094" +checksum = "6513c1ad0b11a9376da888e3e0baa0077f1aed55c17f50e7b2397136129fb88f" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.203" +version = "1.0.215" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "500cbc0ebeb6f46627f50f3f5811ccf6bf00643be300b4c3eabc0ef55dc5b5ba" +checksum = "ad1e866f866923f252f05c889987993144fb74e722403468a4ebd70c3cd756c0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.87", ] [[package]] name = "serde_json" -version = "1.0.117" +version = "1.0.128" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "455182ea6142b14f93f4bc5320a2b31c1f266b66a4a5c858b013302a5d8cbfc3" +checksum = "6ff5456707a1de34e7e37f2a6fd3d3f808c318259cbd01ab6377795054b483d8" dependencies = [ "itoa", + "memchr", "ryu", "serde", ] [[package]] name = "serde_spanned" -version = "0.6.6" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79e674e01f999af37c49f70a6ede167a8a60b2503e56c5599532a65baa5969a0" +checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1" dependencies = [ "serde", ] @@ -2348,6 +2481,12 @@ dependencies = [ "digest", ] +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + [[package]] name = "signal-hook-registry" version = "1.4.2" @@ -2383,9 +2522,9 @@ dependencies = [ [[package]] name = "slug" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3bd94acec9c8da640005f8e135a39fc0372e74535e6b368b7a04b875f784c8c4" +checksum = "882a80f72ee45de3cc9a5afeb2da0331d58df69e4e7d8eeb5d3c7784ae67e724" dependencies = [ "deunicode", "wasm-bindgen", @@ -2436,9 +2575,9 @@ checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" [[package]] name = "subtle" -version = "2.5.0" +version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" [[package]] name = "syn" @@ -2453,15 +2592,26 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.66" +version = "2.0.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c42f3f41a2de00b01c0aaad383c5a45241efc8b2d1eda5661812fda5f3cdcff5" +checksum = "25aa4ce346d03a6dcd68dd8b4010bcb74e54e62c90c573f394c46eae99aba32d" dependencies = [ "proc-macro2", "quote", "unicode-ident", ] +[[package]] +name = "synstructure" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", +] + [[package]] name = "system-deps" version = "6.2.2" @@ -2477,28 +2627,48 @@ dependencies = [ [[package]] name = "target-lexicon" -version = "0.12.14" +version = "0.12.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1fc403891a21bcfb7c37834ba66a547a8f402146eba7265b5a6d88059c9ff2f" +checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" [[package]] name = "thiserror" -version = "1.0.61" +version = "1.0.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c546c80d6be4bc6a00c0f01730c08df82eaa7a7a61f11d656526506112cc1709" +checksum = "d50af8abc119fb8bb6dbabcfa89656f46f84aa0ac7688088608076ad2b459a84" dependencies = [ - "thiserror-impl", + "thiserror-impl 1.0.64", +] + +[[package]] +name = "thiserror" +version = "2.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c006c85c7651b3cf2ada4584faa36773bd07bac24acfb39f3c431b36d7e667aa" +dependencies = [ + "thiserror-impl 2.0.3", ] [[package]] name = "thiserror-impl" -version = "1.0.61" +version = "1.0.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533" +checksum = "08904e7672f5eb876eaaf87e0ce17857500934f4981c4a0ab2b4aa98baac7fc3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.87", +] + +[[package]] +name = "thiserror-impl" +version = "2.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f077553d607adc1caf65430528a576c757a71ed73944b66ebb58ef2bbd243568" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", ] [[package]] @@ -2544,10 +2714,20 @@ dependencies = [ ] [[package]] -name = "tinyvec" -version = "1.6.0" +name = "tinystr" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" +checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" +dependencies = [ + "displaydoc", + "zerovec", +] + +[[package]] +name = "tinyvec" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "445e881f4f6d382d5f27c034e25eb92edd7c784ceab92a0937db7f2e9471b938" dependencies = [ "tinyvec_macros", ] @@ -2560,39 +2740,38 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.38.0" +version = "1.41.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba4f4a02a7a80d6f274636f0aa95c7e383b912d41fe721a31f29e29698585a4a" +checksum = "22cfb5bee7a6a52939ca9224d6ac897bb669134078daa8735560897f69de4d33" dependencies = [ "backtrace", "bytes", "libc", "mio", - "num_cpus", "parking_lot", "pin-project-lite", "signal-hook-registry", "socket2", "tokio-macros", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] name = "tokio-macros" -version = "2.3.0" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f5ae998a069d4b5aba8ee9dad856af7d520c3699e6159b185c2acd48155d39a" +checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.87", ] [[package]] name = "tokio-util" -version = "0.7.11" +version = "0.7.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1" +checksum = "61e7c3654c13bcd040d4a03abee2c75b1d14a37b423cf5a813ceae1cc903ec6a" dependencies = [ "bytes", "futures-core", @@ -2603,9 +2782,9 @@ dependencies = [ [[package]] name = "toml" -version = "0.8.13" +version = "0.8.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4e43f8cc456c9704c851ae29c67e17ef65d2c30017c17a9765b89c382dc8bba" +checksum = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e" dependencies = [ "serde", "serde_spanned", @@ -2615,18 +2794,18 @@ dependencies = [ [[package]] name = "toml_datetime" -version = "0.6.6" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4badfd56924ae69bcc9039335b2e017639ce3f9b001c393c1b2d1ef846ce2cbf" +checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" dependencies = [ "serde", ] [[package]] name = "toml_edit" -version = "0.22.13" +version = "0.22.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c127785850e8c20836d49732ae6abfa47616e60bf9d9f57c43c250361a9db96c" +checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5" dependencies = [ "indexmap", "serde", @@ -2655,6 +2834,14 @@ dependencies = [ "once_cell", ] +[[package]] +name = "translations" +version = "0.0.0" +dependencies = [ + "base64", + "indoc", +] + [[package]] name = "typenum" version = "1.17.0" @@ -2670,32 +2857,17 @@ dependencies = [ "version_check", ] -[[package]] -name = "unicode-bidi" -version = "0.3.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" - [[package]] name = "unicode-ident" -version = "1.0.12" +version = "1.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" - -[[package]] -name = "unicode-normalization" -version = "0.1.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5" -dependencies = [ - "tinyvec", -] +checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe" [[package]] name = "url" -version = "2.5.2" +version = "2.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c" +checksum = "8d157f1b96d14500ffdc1f10ba712e780825526c03d9a49b4d0324b0d9113ada" dependencies = [ "form_urlencoded", "idna", @@ -2709,10 +2881,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da" [[package]] -name = "utf8parse" -version = "0.2.1" +name = "utf16_iter" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" +checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" + +[[package]] +name = "utf8_iter" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" + +[[package]] +name = "utf8parse" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "v_frame" @@ -2739,9 +2923,9 @@ checksum = "852e951cb7832cb45cb1169900d19760cfa39b82bc0ea9c0e5a14ae88411c98b" [[package]] name = "version_check" -version = "0.9.4" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" [[package]] name = "walkdir" @@ -2761,34 +2945,35 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.92" +version = "0.2.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" +checksum = "a82edfc16a6c469f5f44dc7b571814045d60404b55a0ee849f9bcfa2e63dd9b5" dependencies = [ "cfg-if", + "once_cell", "wasm-bindgen-macro", ] [[package]] name = "wasm-bindgen-backend" -version = "0.2.92" +version = "0.2.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" +checksum = "9de396da306523044d3302746f1208fa71d7532227f15e347e2d93e4145dd77b" dependencies = [ "bumpalo", "log", "once_cell", "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.87", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.92" +version = "0.2.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" +checksum = "585c4c91a46b072c92e908d99cb1dcdf95c5218eeb6f3bf1efa991ee7a68cccf" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -2796,28 +2981,28 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.92" +version = "0.2.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" +checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.87", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.92" +version = "0.2.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" +checksum = "c62a0a307cb4a311d3a07867860911ca130c3494e8c2719593806c08bc5d0484" [[package]] name = "web-sys" -version = "0.3.69" +version = "0.3.70" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef" +checksum = "26fdeaafd9bd129f65e7c031593c24d62186301e0c72c8978fa1678be7d532c0" dependencies = [ "js-sys", "wasm-bindgen", @@ -2825,9 +3010,9 @@ dependencies = [ [[package]] name = "webbrowser" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "425ba64c1e13b1c6e8c5d2541c8fac10022ca584f33da781db01b5756aef1f4e" +checksum = "2e5f07fb9bc8de2ddfe6b24a71a75430673fd679e568c48b52716cef1cfae923" dependencies = [ "block2", "core-foundation", @@ -2849,11 +3034,11 @@ checksum = "53a85b86a771b1c87058196170769dd264f66c0782acf1ae6cc51bfd64b39082" [[package]] name = "winapi-util" -version = "0.1.8" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d4cc384e1e73b93bafa6fb4f1df8c41695c8a91cf9c4c64358067d15a7b6c6b" +checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -2862,7 +3047,7 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" dependencies = [ - "windows-targets 0.52.5", + "windows-targets 0.52.6", ] [[package]] @@ -2874,22 +3059,22 @@ dependencies = [ "windows-targets 0.42.2", ] -[[package]] -name = "windows-sys" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" -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.5", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +dependencies = [ + "windows-targets 0.52.6", ] [[package]] @@ -2909,33 +3094,18 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.48.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" dependencies = [ - "windows_aarch64_gnullvm 0.48.5", - "windows_aarch64_msvc 0.48.5", - "windows_i686_gnu 0.48.5", - "windows_i686_msvc 0.48.5", - "windows_x86_64_gnu 0.48.5", - "windows_x86_64_gnullvm 0.48.5", - "windows_x86_64_msvc 0.48.5", -] - -[[package]] -name = "windows-targets" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb" -dependencies = [ - "windows_aarch64_gnullvm 0.52.5", - "windows_aarch64_msvc 0.52.5", - "windows_i686_gnu 0.52.5", + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", "windows_i686_gnullvm", - "windows_i686_msvc 0.52.5", - "windows_x86_64_gnu 0.52.5", - "windows_x86_64_gnullvm 0.52.5", - "windows_x86_64_msvc 0.52.5", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", ] [[package]] @@ -2946,15 +3116,9 @@ checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" [[package]] name = "windows_aarch64_gnullvm" -version = "0.48.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" [[package]] name = "windows_aarch64_msvc" @@ -2964,15 +3128,9 @@ checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" [[package]] name = "windows_aarch64_msvc" -version = "0.48.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" [[package]] name = "windows_i686_gnu" @@ -2982,21 +3140,15 @@ checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" [[package]] name = "windows_i686_gnu" -version = "0.48.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" - -[[package]] -name = "windows_i686_gnu" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" [[package]] name = "windows_i686_gnullvm" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" [[package]] name = "windows_i686_msvc" @@ -3006,15 +3158,9 @@ checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" [[package]] name = "windows_i686_msvc" -version = "0.48.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" - -[[package]] -name = "windows_i686_msvc" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" [[package]] name = "windows_x86_64_gnu" @@ -3024,15 +3170,9 @@ checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" [[package]] name = "windows_x86_64_gnu" -version = "0.48.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" [[package]] name = "windows_x86_64_gnullvm" @@ -3042,15 +3182,9 @@ checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" [[package]] name = "windows_x86_64_gnullvm" -version = "0.48.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" [[package]] name = "windows_x86_64_msvc" @@ -3060,43 +3194,95 @@ checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" [[package]] name = "windows_x86_64_msvc" -version = "0.48.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "winnow" -version = "0.6.9" +version = "0.6.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86c949fede1d13936a99f14fafd3e76fd642b556dd2ce96287fbe2e0151bfac6" +checksum = "36c1fec1a2bb5866f07c25f68c26e565c4c200aebb96d7e55710c19d3e8ac49b" dependencies = [ "memchr", ] [[package]] -name = "zerocopy" -version = "0.7.34" +name = "write16" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae87e3fcd617500e5d106f0380cf7b77f3c6092aae37191433159dda23cfb087" +checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" + +[[package]] +name = "writeable" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" + +[[package]] +name = "yoke" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c5b1314b079b0930c31e3af543d8ee1757b1951ae1e1565ec704403a7240ca5" dependencies = [ + "serde", + "stable_deref_trait", + "yoke-derive", + "zerofrom", +] + +[[package]] +name = "yoke-derive" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28cc31741b18cb6f1d5ff12f5b7523e3d6eb0852bbbad19d73905511d9849b95" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", + "synstructure", +] + +[[package]] +name = "zerocopy" +version = "0.7.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" +dependencies = [ + "byteorder", "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.7.34" +version = "0.7.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15e934569e47891f7d9411f1a451d947a60e000ab3bd24fbb970f000387d1b3b" +checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.87", +] + +[[package]] +name = "zerofrom" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91ec111ce797d0e0784a1116d0ddcdbea84322cd79e5d5ad173daeba4f93ab55" +dependencies = [ + "zerofrom-derive", +] + +[[package]] +name = "zerofrom-derive" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ea7b4a3637ea8669cedf0f1fd5c286a17f3de97b8dd5a70a6c167a1730e63a5" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", + "synstructure", ] [[package]] @@ -3116,14 +3302,36 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.87", +] + +[[package]] +name = "zerovec" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" +dependencies = [ + "yoke", + "zerofrom", + "zerovec-derive", +] + +[[package]] +name = "zerovec-derive" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", ] [[package]] name = "zip" -version = "2.1.3" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "775a2b471036342aa69bc5a602bc889cb0a06cda00477d0c69566757d5553d39" +checksum = "dc5e4288ea4057ae23afc69a4472434a87a2495cafce6632fd1c4ec9f5cf3494" dependencies = [ "aes", "arbitrary", @@ -3141,7 +3349,7 @@ dependencies = [ "pbkdf2", "rand", "sha1", - "thiserror", + "thiserror 1.0.64", "time", "zeroize", "zopfli", @@ -3164,27 +3372,27 @@ dependencies = [ [[package]] name = "zstd" -version = "0.13.1" +version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d789b1514203a1120ad2429eae43a7bd32b90976a7bb8a05f7ec02fa88cc23a" +checksum = "fcf2b778a664581e31e389454a7072dab1647606d44f7feea22cd5abb9c9f3f9" dependencies = [ "zstd-safe", ] [[package]] name = "zstd-safe" -version = "7.1.0" +version = "7.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cd99b45c6bc03a018c8b8a86025678c87e55526064e38f9df301989dce7ec0a" +checksum = "54a3ab4db68cea366acc5c897c7b4d4d1b8994a9cd6e6f841f8964566a419059" dependencies = [ "zstd-sys", ] [[package]] name = "zstd-sys" -version = "2.0.10+zstd.1.5.6" +version = "2.0.13+zstd.1.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c253a4914af5bafc8fa8c86ee400827e83cf6ec01195ec1f1ed8441bf00d65aa" +checksum = "38ff0f21cfee8f97d94cef41359e0c89aa6113028ab0291aa8ca0038995a95aa" dependencies = [ "cc", "pkg-config", @@ -3207,9 +3415,9 @@ dependencies = [ [[package]] name = "zune-jpeg" -version = "0.4.11" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec866b44a2a1fd6133d363f073ca1b179f438f99e7e5bfb1e33f7181facfe448" +checksum = "16099418600b4d8f028622f73ff6e3deaabdff330fb9a2a131dea781ee8b0768" dependencies = [ "zune-core", ] diff --git a/pkgs/by-name/fa/faircamp/package.nix b/pkgs/by-name/fa/faircamp/package.nix index 0f9155fe1b89..3ff332f68ff9 100644 --- a/pkgs/by-name/fa/faircamp/package.nix +++ b/pkgs/by-name/fa/faircamp/package.nix @@ -2,7 +2,6 @@ , stdenv , rustPlatform , fetchFromGitea -, fetchpatch , makeWrapper , pkg-config , glib @@ -17,24 +16,16 @@ rustPlatform.buildRustPackage rec { pname = "faircamp"; - version = "0.15.1"; + version = "0.21.0"; src = fetchFromGitea { domain = "codeberg.org"; owner = "simonrepp"; repo = "faircamp"; rev = version; - hash = "sha256-TMN4DLur61bJAPp2kahBAAjf2lto62X/7rhC88nhISg="; + hash = "sha256-1awOzIvWUaqsmtg0XP4BNCRZP+d26JTjn+3Lcvo/WcI="; }; - patches = [ - # Fix build error in tests - (fetchpatch { - url = "https://codeberg.org/simonrepp/faircamp/commit/7240dd707f3669d49e755088393d27369ca368c2.patch"; - hash = "sha256-Ec75Gte2zUp/q912keLdYXUse60QirTQ+DkSaCwEboQ="; - }) - ]; - cargoLock = { lockFile = ./Cargo.lock; outputHashes = { From b515f2811b677846cabebd14d8d2e7ad17949495 Mon Sep 17 00:00:00 2001 From: natsukium Date: Mon, 11 Nov 2024 21:52:28 +0900 Subject: [PATCH 14/55] backblaze-b2: 4.0.1 -> 4.2.0 Diff: https://github.com/Backblaze/B2_Command_Line_Tool/compare/refs/tags/v4.0.1...v4.2.0 Changelog: https://github.com/Backblaze/B2_Command_Line_Tool/blob/v4.2.0/CHANGELOG.md --- pkgs/by-name/ba/backblaze-b2/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/ba/backblaze-b2/package.nix b/pkgs/by-name/ba/backblaze-b2/package.nix index b7e2265c4915..bc8666c670cd 100644 --- a/pkgs/by-name/ba/backblaze-b2/package.nix +++ b/pkgs/by-name/ba/backblaze-b2/package.nix @@ -10,14 +10,14 @@ python3Packages.buildPythonApplication rec { pname = "backblaze-b2"; - version = "4.0.1"; + version = "4.2.0"; pyproject = true; src = fetchFromGitHub { owner = "Backblaze"; repo = "B2_Command_Line_Tool"; rev = "refs/tags/v${version}"; - hash = "sha256-rZUWPSI7CrKOdEKdsSpekwBerbIMf2iiVrWkV8WrqSc="; + hash = "sha256-a0XJq8M1yw4GmD5ndIAJtmHFKqS0rYdvYIxK7t7oyZw="; }; nativeBuildInputs = with python3Packages; [ From 7c1f286645fc8908037a3c9da85175798e8b0878 Mon Sep 17 00:00:00 2001 From: Nick Cao Date: Tue, 19 Nov 2024 09:08:21 -0500 Subject: [PATCH 15/55] telegram-desktop: 5.8.1 -> 5.8.2 Diff: https://github.com/telegramdesktop/tdesktop/compare/v5.8.1...v5.8.2 Changelog: https://github.com/telegramdesktop/tdesktop/releases/tag/v5.8.2 --- .../telegram/telegram-desktop/unwrapped.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/unwrapped.nix b/pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/unwrapped.nix index 3dadbd542739..6921753297f0 100644 --- a/pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/unwrapped.nix +++ b/pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/unwrapped.nix @@ -46,14 +46,14 @@ stdenv.mkDerivation (finalAttrs: { pname = "telegram-desktop-unwrapped"; - version = "5.8.1"; + version = "5.8.2"; src = fetchFromGitHub { owner = "telegramdesktop"; repo = "tdesktop"; rev = "v${finalAttrs.version}"; fetchSubmodules = true; - hash = "sha256-9042n0fU+phXAll5o5uyoHLXbIyrGkNGrqTUTf9LWDc="; + hash = "sha256-zgvyxhQDF1JcGe/fpputvPrAFh1Z+EGaynSXHDk9k/8="; }; postPatch = lib.optionalString stdenv.hostPlatform.isLinux '' From 0082fde43de47be45a7b2daf7dcba9347f4f489c Mon Sep 17 00:00:00 2001 From: "Matthieu C." <886074+teto@users.noreply.github.com> Date: Sun, 3 Nov 2024 17:55:34 +0100 Subject: [PATCH 16/55] notmuch: move the vim plugin to another output I wondered why my neovim was slow. Turned out notmuch.vim loading took > 500ms to load (ruby and all). And I dont even use it ! I suspect the plugin could be improved to lazyload more stuff but I think it's ok to have the vim plugin installer be a user decision as well. I moved it to a new "vim" output : you can install the plugin via "notmuch.vim" --- nixos/doc/manual/release-notes/rl-2505.section.md | 5 +++++ .../applications/editors/vim/plugins/overrides.nix | 3 +++ .../networking/mailreaders/notmuch/default.nix | 14 ++++++++------ 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/nixos/doc/manual/release-notes/rl-2505.section.md b/nixos/doc/manual/release-notes/rl-2505.section.md index b18dbef5fe7f..e98511c2c243 100644 --- a/nixos/doc/manual/release-notes/rl-2505.section.md +++ b/nixos/doc/manual/release-notes/rl-2505.section.md @@ -27,6 +27,11 @@ [v1.7.0](https://github.com/jtroo/kanata/releases/tag/v1.7.0) for more information. +- the notmuch vim plugin now lives in a separate output of the `notmuch` + package. Installing `notmuch` will not bring the notmuch vim package anymore, + add `vimPlugins.notmuch-vim` to your (Neo)vim configuration if you want the + vim plugin. + ## Other Notable Changes {#sec-release-25.05-notable-changes} diff --git a/pkgs/applications/editors/vim/plugins/overrides.nix b/pkgs/applications/editors/vim/plugins/overrides.nix index 7a299f346a4c..51e939072b2b 100644 --- a/pkgs/applications/editors/vim/plugins/overrides.nix +++ b/pkgs/applications/editors/vim/plugins/overrides.nix @@ -38,6 +38,7 @@ languagetool, llvmPackages, meson, + notmuch, neovim-unwrapped, nim1, nodePackages, @@ -1780,6 +1781,8 @@ in nvimRequireCheck = "null-ls"; }; + notmuch-vim = notmuch.vim; + NotebookNavigator-nvim = super.NotebookNavigator-nvim.overrideAttrs { nvimRequireCheck = "notebook-navigator"; }; diff --git a/pkgs/applications/networking/mailreaders/notmuch/default.nix b/pkgs/applications/networking/mailreaders/notmuch/default.nix index b70512a9d151..e3b6d3a2bdef 100644 --- a/pkgs/applications/networking/mailreaders/notmuch/default.nix +++ b/pkgs/applications/networking/mailreaders/notmuch/default.nix @@ -11,6 +11,7 @@ , withEmacs ? true , withRuby ? true , withSfsexp ? true # also installs notmuch-git, which requires sexp-support +# TODO upstream: it takes too long ! 800 ms here , withVim ? true }: @@ -76,7 +77,8 @@ stdenv.mkDerivation (finalAttrs: { ''; outputs = [ "out" "man" "info" "bindingconfig" ] - ++ lib.optional withEmacs "emacs"; + ++ lib.optional withEmacs "emacs" + ++ lib.optional withVim "vim"; # if notmuch is built with s-expression support, the testsuite (T-850.sh) only # passes if notmuch-git can be executed, so we need to patch its shebang. @@ -133,14 +135,14 @@ stdenv.mkDerivation (finalAttrs: { cp notmuch-git $out/bin/notmuch-git wrapProgram $out/bin/notmuch-git --prefix PATH : $out/bin:${lib.getBin git}/bin '' + lib.optionalString withVim '' - make -C vim DESTDIR="$out/share/vim-plugins/notmuch" prefix="" install - mkdir -p $out/share/nvim - ln -s $out/share/vim-plugins/notmuch $out/share/nvim/site + make -C vim DESTDIR="$vim/share/vim-plugins/notmuch" prefix="" install + mkdir -p $vim/share/nvim + ln -s $vim/share/vim-plugins/notmuch $vim/share/nvim/site '' + lib.optionalString (withVim && withRuby) '' - PLUG=$out/share/vim-plugins/notmuch/plugin/notmuch.vim + PLUG=$vim/share/vim-plugins/notmuch/plugin/notmuch.vim cat >> $PLUG << EOF let \$GEM_PATH=\$GEM_PATH . ":${finalAttrs.passthru.gemEnv}/${ruby.gemPath}" - let \$RUBYLIB=\$RUBYLIB . ":$out/${ruby.libPath}/${ruby.system}" + let \$RUBYLIB=\$RUBYLIB . ":$vim/${ruby.libPath}/${ruby.system}" if has('nvim') EOF for gem in ${finalAttrs.passthru.gemEnv}/${ruby.gemPath}/gems/*/lib; do From f862225a11680b8dbe2435ae8f13014c05181ee4 Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Wed, 20 Nov 2024 03:23:49 +0100 Subject: [PATCH 17/55] python314: 3.14.0a1 -> 3.14.0a2 https://docs.python.org/3.14/whatsnew/changelog.html#python-3-14-0-alpha-2 --- pkgs/development/interpreters/python/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/interpreters/python/default.nix b/pkgs/development/interpreters/python/default.nix index 7f0c8ce68110..04b6a60ce5e4 100644 --- a/pkgs/development/interpreters/python/default.nix +++ b/pkgs/development/interpreters/python/default.nix @@ -100,9 +100,9 @@ in { major = "3"; minor = "14"; patch = "0"; - suffix = "a1"; + suffix = "a2"; }; - hash = "sha256-PkZLDLt1NeLbNCYv0ZoKOT0OYr4PQ7FRPtmDebBU6tQ="; + hash = "sha256-L/nhAUc0Kz79afXNnMBuxGJQ8qBGWHWZ0Y4srGnAWSA="; inherit passthruFun; }; # Minimal versions of Python (built without optional dependencies) From 89c0a1604a40a608fce404a86b416b3fac92308d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Wed, 13 Nov 2024 13:57:28 +0100 Subject: [PATCH 18/55] pnpm: 9.12.3 -> 9.14.2 --- pkgs/development/tools/pnpm/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/tools/pnpm/default.nix b/pkgs/development/tools/pnpm/default.nix index 596c4c73d991..36b5e8d7a5e2 100644 --- a/pkgs/development/tools/pnpm/default.nix +++ b/pkgs/development/tools/pnpm/default.nix @@ -12,8 +12,8 @@ let hash = "sha256-2qJ6C1QbxjUyP/lsLe2ZVGf/n+bWn/ZwIVWKqa2dzDY="; }; "9" = { - version = "9.12.3"; - hash = "sha256-JCNXcsxKyCpiYnzUf4NMcmZ6LOh3mahG7E6OVV4tS4s="; + version = "9.14.2"; + hash = "sha256-BuZaSWW6/21gl/nI91w19tQgl028A9d1AJBWpp7f0nE="; }; }; From 9afbaab23f0861c64fd45e382e319ac6f9f9fb15 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Wed, 20 Nov 2024 18:16:55 +0100 Subject: [PATCH 19/55] puncia: 0.15-unstable-2024-03-23 -> 0.24 Diff: https://github.com/ARPSyndicate/puncia/compare/refs/tags/v0.15-unstable-2024-03-23...v0.24 Changelog: https://github.com/ARPSyndicate/puncia/releases/tag/v0.24 --- pkgs/by-name/pu/puncia/package.nix | 30 ++++++++++++------------------ 1 file changed, 12 insertions(+), 18 deletions(-) diff --git a/pkgs/by-name/pu/puncia/package.nix b/pkgs/by-name/pu/puncia/package.nix index 89e0850e0f54..06f9268e25d5 100644 --- a/pkgs/by-name/pu/puncia/package.nix +++ b/pkgs/by-name/pu/puncia/package.nix @@ -1,41 +1,35 @@ -{ lib -, fetchFromGitHub -, python3 +{ + lib, + fetchFromGitHub, + python3, }: python3.pkgs.buildPythonApplication rec { pname = "puncia"; - version = "0.15-unstable-2024-03-23"; + version = "0.24"; pyproject = true; src = fetchFromGitHub { owner = "ARPSyndicate"; repo = "puncia"; - # https://github.com/ARPSyndicate/puncia/issues/5 - rev = "c70ed93ea1e7e42e12dd9c14713cab71bb0e0fe9"; - hash = "sha256-xGJk8y26tluHUPm9ikrBBiWGuzq6MKl778BF8wNDmps="; + rev = "refs/tags/v${version}"; + hash = "sha256-4PJyAYPRsqay5Y9RxhOpUgIJvntVKokqYhE1b+hVc44="; }; - build-system = with python3.pkgs; [ - setuptools - ]; + build-system = with python3.pkgs; [ setuptools ]; - dependencies = with python3.pkgs; [ - requests - ]; + dependencies = with python3.pkgs; [ requests ]; # Project has no tests doCheck = false; - pythonImportsCheck = [ - "puncia" - ]; + pythonImportsCheck = [ "puncia" ]; meta = with lib; { description = "CLI utility for Subdomain Center & Exploit Observer"; homepage = "https://github.com/ARPSyndicate/puncia"; - # https://github.com/ARPSyndicate/puncia/issues/6 - license = licenses.unfree; + changelog = "https://github.com/ARPSyndicate/puncia/releases/tag/v${version}"; + license = licenses.mit; maintainers = with maintainers; [ fab ]; mainProgram = "puncia"; }; From 200c150a5157b10f3204c4e1cff3d55654b9e8e8 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Wed, 20 Nov 2024 18:22:30 +0100 Subject: [PATCH 20/55] python312Packages.archinfo: 9.2.128 -> 9.2.129 Diff: https://github.com/angr/archinfo/compare/refs/tags/v9.2.128...v9.2.129 --- pkgs/development/python-modules/archinfo/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/archinfo/default.nix b/pkgs/development/python-modules/archinfo/default.nix index 9cbdd72e979f..bb77a93a14ca 100644 --- a/pkgs/development/python-modules/archinfo/default.nix +++ b/pkgs/development/python-modules/archinfo/default.nix @@ -10,7 +10,7 @@ buildPythonPackage rec { pname = "archinfo"; - version = "9.2.128"; + version = "9.2.129"; pyproject = true; disabled = pythonOlder "3.8"; @@ -19,7 +19,7 @@ buildPythonPackage rec { owner = "angr"; repo = "archinfo"; rev = "refs/tags/v${version}"; - hash = "sha256-uNzT3doBHbbRLjxTtndQx+03M9zCdOI+FuTmVea1C1M="; + hash = "sha256-s0EaGaSLQ3lLUKOZKU1wTLs7apYXvYwXbgCs48UO6EE="; }; build-system = [ setuptools ]; From 7d677ba5a162a8b676e884cd788755e304ebd05c Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Wed, 20 Nov 2024 18:22:53 +0100 Subject: [PATCH 21/55] python312Packages.ailment: 9.2.128 -> 9.2.129 Diff: https://github.com/angr/ailment/compare/refs/tags/v9.2.128...v9.2.129 --- pkgs/development/python-modules/ailment/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/ailment/default.nix b/pkgs/development/python-modules/ailment/default.nix index 69174d4fd0ee..742e7a3da6bb 100644 --- a/pkgs/development/python-modules/ailment/default.nix +++ b/pkgs/development/python-modules/ailment/default.nix @@ -9,7 +9,7 @@ buildPythonPackage rec { pname = "ailment"; - version = "9.2.128"; + version = "9.2.129"; pyproject = true; disabled = pythonOlder "3.11"; @@ -18,7 +18,7 @@ buildPythonPackage rec { owner = "angr"; repo = "ailment"; rev = "refs/tags/v${version}"; - hash = "sha256-08cIIFuo0Kf3jLtH6STPRAJVo+0ywFCcOo5rpXHXnwA="; + hash = "sha256-xxrqr5zh6n3A7YTxf7K1x3iLsCh8s0l/4esdoTtoIbQ="; }; build-system = [ setuptools ]; From d1ca2c779a52f4770ea33190c439fe9a2df54528 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Wed, 20 Nov 2024 18:24:45 +0100 Subject: [PATCH 22/55] python312Packages.pyvex: 9.2.128 -> 9.2.129 --- pkgs/development/python-modules/pyvex/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/pyvex/default.nix b/pkgs/development/python-modules/pyvex/default.nix index 55e52042704c..c1727a85f8fb 100644 --- a/pkgs/development/python-modules/pyvex/default.nix +++ b/pkgs/development/python-modules/pyvex/default.nix @@ -12,14 +12,14 @@ buildPythonPackage rec { pname = "pyvex"; - version = "9.2.128"; + version = "9.2.129"; pyproject = true; disabled = pythonOlder "3.11"; src = fetchPypi { inherit pname version; - hash = "sha256-ASo1hqxLsX4UkdhXLOArKBQdxws/maUjGb/HotAoxzw="; + hash = "sha256-xEq3W9f38yHf9hZiYpjcP89/5/mH85XRKW5nDotz4KY="; }; build-system = [ setuptools ]; From 5ffafd6e202c53146cfbd38d9ae6194bcc776c0d Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Wed, 20 Nov 2024 18:26:22 +0100 Subject: [PATCH 23/55] python312Packages.claripy: 9.2.128 -> 9.2.129 Diff: https://github.com/angr/claripy/compare/refs/tags/v9.2.128...v9.2.129 --- pkgs/development/python-modules/claripy/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/claripy/default.nix b/pkgs/development/python-modules/claripy/default.nix index 7a74eba55339..b17a8d0872be 100644 --- a/pkgs/development/python-modules/claripy/default.nix +++ b/pkgs/development/python-modules/claripy/default.nix @@ -14,7 +14,7 @@ buildPythonPackage rec { pname = "claripy"; - version = "9.2.128"; + version = "9.2.129"; pyproject = true; disabled = pythonOlder "3.11"; @@ -23,7 +23,7 @@ buildPythonPackage rec { owner = "angr"; repo = "claripy"; rev = "refs/tags/v${version}"; - hash = "sha256-YP2Cphf57iyZXrdseZhUkzrkop0+jCRu98ckurxS1UU="; + hash = "sha256-q4TFOjJs3mybn5y4W3B3pSC5l+6co8PXCOEEk8+wP3M="; }; # z3 does not provide a dist-info, so python-runtime-deps-check will fail From 4fba5287c3b2bb81da4ddd7718c54426fefbe98a Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Wed, 20 Nov 2024 18:42:55 +0100 Subject: [PATCH 24/55] python312Packages.cle: 9.2.128 -> 9.2.129 Diff: https://github.com/angr/cle/compare/refs/tags/v9.2.128...v9.2.129 --- pkgs/development/python-modules/cle/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/development/python-modules/cle/default.nix b/pkgs/development/python-modules/cle/default.nix index af5800eb106f..274a3d19b3c9 100644 --- a/pkgs/development/python-modules/cle/default.nix +++ b/pkgs/development/python-modules/cle/default.nix @@ -16,14 +16,14 @@ let # The binaries are following the argr projects release cycle - version = "9.2.128"; + version = "9.2.129"; # Binary files from https://github.com/angr/binaries (only used for testing and only here) binaries = fetchFromGitHub { owner = "angr"; repo = "binaries"; rev = "refs/tags/v${version}"; - hash = "sha256-wROuTg+RMp2tkjPsjHTK7aJs4SWTuIw4SsuIKIUZvkw="; + hash = "sha256-LP29VvCImJ3jbNrqwBYi829EO75jximrQkR9aj/gNPM="; }; in buildPythonPackage rec { @@ -37,7 +37,7 @@ buildPythonPackage rec { owner = "angr"; repo = "cle"; rev = "refs/tags/v${version}"; - hash = "sha256-C3lp9Dhg0XZXTxnYbRMfanxVn8qJhL1VEVDrMCpkMe4="; + hash = "sha256-0CQVnnzK7eeQNCLuUDPibWCkeKp3QEpxfQ+lT1SoMLA="; }; build-system = [ setuptools ]; From 503dc93f1b99faedb2f20ff4eb6450f3cf44a854 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Wed, 20 Nov 2024 18:46:04 +0100 Subject: [PATCH 25/55] python312Packages.angr: 9.2.128 -> 9.2.129 Diff: https://github.com/angr/angr/compare/refs/tags/v9.2.128...v9.2.129 --- pkgs/development/python-modules/angr/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/angr/default.nix b/pkgs/development/python-modules/angr/default.nix index 661c458c21fd..5cc6f66d2e6c 100644 --- a/pkgs/development/python-modules/angr/default.nix +++ b/pkgs/development/python-modules/angr/default.nix @@ -36,7 +36,7 @@ buildPythonPackage rec { pname = "angr"; - version = "9.2.128"; + version = "9.2.129"; pyproject = true; disabled = pythonOlder "3.11"; @@ -45,7 +45,7 @@ buildPythonPackage rec { owner = "angr"; repo = "angr"; rev = "refs/tags/v${version}"; - hash = "sha256-OAdPBmJAGqQEiQCXKZMtEoyDMS/A9pUYeTXJQ0qQYVs="; + hash = "sha256-GO8Vk/L1swhQsGfH/Ugi5i9MwWbaco/f1ukqJ2+R6IA="; }; postPatch = '' From 4cecdc4c3310316baf443012ea093e13880abd3a Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 20 Nov 2024 17:49:43 +0000 Subject: [PATCH 26/55] python312Packages.sudachipy: 0.6.8 -> 0.6.9 --- pkgs/by-name/su/sudachi-rs/package.nix | 6 +++--- pkgs/development/python-modules/sudachipy/default.nix | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/by-name/su/sudachi-rs/package.nix b/pkgs/by-name/su/sudachi-rs/package.nix index a68dcdf87e91..34398b1c40d1 100644 --- a/pkgs/by-name/su/sudachi-rs/package.nix +++ b/pkgs/by-name/su/sudachi-rs/package.nix @@ -9,13 +9,13 @@ rustPlatform.buildRustPackage rec { pname = "sudachi-rs"; - version = "0.6.8"; + version = "0.6.9"; src = fetchFromGitHub { owner = "WorksApplications"; repo = "sudachi.rs"; rev = "refs/tags/v${version}"; - hash = "sha256-9GXU+YDPuQ+roqQfUE5q17Hl6AopsvGhRPjZ+Ui+n24="; + hash = "sha256-G+lJzOYxrR/Le2lgfZMXbbjCqPYmCKMy1pIomTP5NIg="; }; postPatch = '' @@ -23,7 +23,7 @@ rustPlatform.buildRustPackage rec { --replace '"resources"' '"${placeholder "out"}/share/resources"' ''; - cargoHash = "sha256-Ufo3dB2KGDDNiebp7hLhQrUMLsefO8wRpJQDz57Yb8Y="; + cargoHash = "sha256-iECIk5+QvTP1xiH9AcEJGKt1YHG8KASYmsuIq0vHD20="; # prepare the resources before the build so that the binary can find sudachidict preBuild = '' diff --git a/pkgs/development/python-modules/sudachipy/default.nix b/pkgs/development/python-modules/sudachipy/default.nix index 20233c1f7d9a..57dda97d467d 100644 --- a/pkgs/development/python-modules/sudachipy/default.nix +++ b/pkgs/development/python-modules/sudachipy/default.nix @@ -21,7 +21,7 @@ buildPythonPackage rec { cargoDeps = rustPlatform.fetchCargoTarball { inherit src; name = "${pname}-${version}"; - hash = "sha256-ARwvThfATDdzBTjPFr9yjbE/0eYvp/TCZOEGbUupJmU="; + hash = "sha256-vYn1dWu87ruEGT/9QVIvxY21LzesVyq1VPaLcTrDKvY="; }; nativeBuildInputs = [ From 2f620d4b5a53140ed58798403e38e5d26051b5ba Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Wed, 20 Nov 2024 19:08:36 +0100 Subject: [PATCH 27/55] python312Packages.aioopenexchangerates: 0.6.10 -> 0.6.13 Diff: https://github.com/MartinHjelmare/aioopenexchangerates/compare/refs/tags/v0.6.10...v0.6.13 Changelog: https://github.com/MartinHjelmare/aioopenexchangerates/blob/v0.6.13/CHANGELOG.md --- .../python-modules/aioopenexchangerates/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/aioopenexchangerates/default.nix b/pkgs/development/python-modules/aioopenexchangerates/default.nix index eaf034f090b2..c5b77eef9ad6 100644 --- a/pkgs/development/python-modules/aioopenexchangerates/default.nix +++ b/pkgs/development/python-modules/aioopenexchangerates/default.nix @@ -14,7 +14,7 @@ buildPythonPackage rec { pname = "aioopenexchangerates"; - version = "0.6.10"; + version = "0.6.13"; pyproject = true; disabled = pythonOlder "3.11"; @@ -23,7 +23,7 @@ buildPythonPackage rec { owner = "MartinHjelmare"; repo = "aioopenexchangerates"; rev = "refs/tags/v${version}"; - hash = "sha256-GDAeBk4h0YLFbLSGEjomvzR94y0JGsRzd15J4sv6i6o="; + hash = "sha256-5RLD3Y0DxsOSejSOPo+071hpsgoduMcLniQNqt/shs8="; }; pythonRelaxDeps = [ "pydantic" ]; From ee73901639c3d23e29659fedc63c02ae7858e24d Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Wed, 20 Nov 2024 19:23:29 +0100 Subject: [PATCH 28/55] python312Packages.pynina: 0.3.3 -> 0.3.4 Changelog: https://gitlab.com/DeerMaximum/pynina/-/releases/0.3.4 --- pkgs/development/python-modules/pynina/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/pynina/default.nix b/pkgs/development/python-modules/pynina/default.nix index 9f95a1064550..6860f121bffc 100644 --- a/pkgs/development/python-modules/pynina/default.nix +++ b/pkgs/development/python-modules/pynina/default.nix @@ -8,7 +8,7 @@ buildPythonPackage rec { pname = "pynina"; - version = "0.3.3"; + version = "0.3.4"; format = "setuptools"; disabled = pythonOlder "3.7"; @@ -16,7 +16,7 @@ buildPythonPackage rec { src = fetchPypi { pname = "PyNINA"; inherit version; - hash = "sha256-6HJ78tKl6If/ezwOrGl3VEYO4eMh/6cZq2j2AMBr0I8="; + hash = "sha256-/BeT05dHPHfqybsly0QUbBPFFJKEr67vG1xbBfZXQuY="; }; propagatedBuildInputs = [ aiohttp ]; From 29e945ea362394a9f517ba5daa5af4766c1de29e Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Wed, 20 Nov 2024 19:27:02 +0100 Subject: [PATCH 29/55] python312Packages.pynina: refactor --- pkgs/development/python-modules/pynina/default.nix | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/pynina/default.nix b/pkgs/development/python-modules/pynina/default.nix index 6860f121bffc..f8b54a67d0b5 100644 --- a/pkgs/development/python-modules/pynina/default.nix +++ b/pkgs/development/python-modules/pynina/default.nix @@ -4,12 +4,13 @@ buildPythonPackage, fetchPypi, pythonOlder, + setuptools, }: buildPythonPackage rec { pname = "pynina"; version = "0.3.4"; - format = "setuptools"; + pyproject = true; disabled = pythonOlder "3.7"; @@ -19,7 +20,11 @@ buildPythonPackage rec { hash = "sha256-/BeT05dHPHfqybsly0QUbBPFFJKEr67vG1xbBfZXQuY="; }; - propagatedBuildInputs = [ aiohttp ]; + pythonRelaxDeps = [ "aiohttp" ]; + + build-system = [ setuptools ]; + + dependencies = [ aiohttp ]; # Project has no tests doCheck = false; From a5c5f98a5aeb0c59dc4b53b63c377577cfe28a6c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=BCtz?= Date: Wed, 20 Nov 2024 13:49:26 -0800 Subject: [PATCH 30/55] immich: 1.120.1 -> 1.121.0 https://github.com/immich-app/immich/releases/tag/v1.120.2 https://github.com/immich-app/immich/releases/tag/v1.121.0 --- .../im/immich-machine-learning/package.nix | 4 ---- pkgs/by-name/im/immich/package.nix | 2 +- pkgs/by-name/im/immich/sources.json | 20 +++++++++---------- 3 files changed, 11 insertions(+), 15 deletions(-) diff --git a/pkgs/by-name/im/immich-machine-learning/package.nix b/pkgs/by-name/im/immich-machine-learning/package.nix index 31149ea2c7cf..e7bf36be8182 100644 --- a/pkgs/by-name/im/immich-machine-learning/package.nix +++ b/pkgs/by-name/im/immich-machine-learning/package.nix @@ -17,10 +17,6 @@ python.pkgs.buildPythonApplication rec { src = "${immich.src}/machine-learning"; pyproject = true; - postPatch = '' - substituteInPlace pyproject.toml --replace-fail 'fastapi-slim' 'fastapi' - ''; - pythonRelaxDeps = [ "pillow" "pydantic-settings" diff --git a/pkgs/by-name/im/immich/package.nix b/pkgs/by-name/im/immich/package.nix index eb0d2395ab3e..dc0b2aa4d296 100644 --- a/pkgs/by-name/im/immich/package.nix +++ b/pkgs/by-name/im/immich/package.nix @@ -152,7 +152,7 @@ buildNpmPackage' { # pg_dumpall fails without database root access # see https://github.com/immich-app/immich/issues/13971 substituteInPlace src/services/backup.service.ts \ - --replace-fail '`pg_dumpall`' '`pg_dump`' + --replace-fail '`/usr/lib/postgresql/''${databaseMajorVersion}/bin/pg_dumpall`' '`pg_dump`' ''; nativeBuildInputs = [ diff --git a/pkgs/by-name/im/immich/sources.json b/pkgs/by-name/im/immich/sources.json index f58bc75177a1..ae1b7e68e009 100644 --- a/pkgs/by-name/im/immich/sources.json +++ b/pkgs/by-name/im/immich/sources.json @@ -1,22 +1,22 @@ { - "version": "1.120.1", - "hash": "sha256-FKPs6BHOXmqnHh2yH+PPBFQoK5ykP716dNvES/45t4g=", + "version": "1.121.0", + "hash": "sha256-3Rk/0LtbRIrtnPBhG6TzYFcPlZqlkZoyO01jIL4gzC8=", "components": { "cli": { - "npmDepsHash": "sha256-5JmcDjLAVXhF3TH0M88dKLYPDsSctcOGPz9nV1n3k9c=", - "version": "2.2.30" + "npmDepsHash": "sha256-LsStgf6iJMpqCYZoZoP7cNnHbuzawTQ02wvJ5q/2RyU=", + "version": "2.2.32" }, "server": { - "npmDepsHash": "sha256-u2ZQv+z8uyn7z52V+7hNRWgnHVm4xMdhjspPqsLHYek=", - "version": "1.120.1" + "npmDepsHash": "sha256-9xyl+8YItzHSHcgUi1X9MwNtmZpdDGtg4DUa2YZv08I=", + "version": "1.121.0" }, "web": { - "npmDepsHash": "sha256-EAFUOhcmE1TfUBN0uxzuNkHibdaDRn8Lxvma70UJqDE=", - "version": "1.120.1" + "npmDepsHash": "sha256-vHmiNWVLl4len6SnJ/NmiRVLLc4uUUWF/25LiOMnvf0=", + "version": "1.121.0" }, "open-api/typescript-sdk": { - "npmDepsHash": "sha256-AJcK5NE+ZNAK2FJblY32jtYxY0Z9npH92A3htcPes4A=", - "version": "1.120.1" + "npmDepsHash": "sha256-jiwUoWrMH/mDO+GPi13Q+Z87NAtDx95h6igI0NuPhnc=", + "version": "1.121.0" } } } From d65d18f1e48709dfdc7ca70b8945a1818aa870b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= Date: Thu, 21 Nov 2024 09:08:25 +0100 Subject: [PATCH 31/55] ci: use nix 2.24 --- ci/eval/default.nix | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/ci/eval/default.nix b/ci/eval/default.nix index f213bff611dd..3f31faef73ae 100644 --- a/ci/eval/default.nix +++ b/ci/eval/default.nix @@ -5,7 +5,7 @@ linkFarm, time, procps, - nix, + nixVersions, jq, sta, }: @@ -29,6 +29,8 @@ let ); }; + nix = nixVersions.nix_2_24; + supportedSystems = import ../supportedSystems.nix; attrpathsSuperset = From 778a616b69640491c39087c29467f64ecf1e5cf8 Mon Sep 17 00:00:00 2001 From: Yury Shvedov Date: Thu, 21 Nov 2024 12:43:31 +0300 Subject: [PATCH 32/55] yandex-music: 5.23.2 -> 5.28.4 Change-Id: Ifae0f3e895fc3cf12d4de83e7520a82019372345 --- pkgs/by-name/ya/yandex-music/package.nix | 4 ++-- pkgs/by-name/ya/yandex-music/ym_info.json | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/pkgs/by-name/ya/yandex-music/package.nix b/pkgs/by-name/ya/yandex-music/package.nix index 3e9e70770c33..518bdd0de63c 100644 --- a/pkgs/by-name/ya/yandex-music/package.nix +++ b/pkgs/by-name/ya/yandex-music/package.nix @@ -14,13 +14,13 @@ }: stdenvNoCC.mkDerivation rec { pname = "yandex-music"; - version = "5.23.2"; + version = "5.28.4"; src = fetchFromGitHub { owner = "cucumber-sp"; repo = "yandex-music-linux"; rev = "v${version}"; - hash = "sha256-nhy4D2PgTMsQOs8hPY39Z+I+Tldgf1ASZbatfxWqNTw="; + hash = "sha256-0YUZKklwHkZ3bDI4OLmXyj0v2wzWzJbJpQ8QQa356fI="; }; nativeBuildInputs = [ diff --git a/pkgs/by-name/ya/yandex-music/ym_info.json b/pkgs/by-name/ya/yandex-music/ym_info.json index dd5ec7436833..f7200b7767d8 100644 --- a/pkgs/by-name/ya/yandex-music/ym_info.json +++ b/pkgs/by-name/ya/yandex-music/ym_info.json @@ -1,6 +1,6 @@ { - "version": "5.23.2", - "exe_name": "Yandex_Music_x64_5.23.2.exe", - "exe_link": "https://music-desktop-application.s3.yandex.net/stable/Yandex_Music_x64_5.23.2.exe", - "exe_hash": "sha256-PhXmUGV9+9zfRZufw3FVvpPGqVLAB51lrz7KJovm+C8=" + "version": "5.28.4", + "exe_name": "Yandex_Music_x64_5.28.4.exe", + "exe_link": "https://music-desktop-application.s3.yandex.net/stable/Yandex_Music_x64_5.28.4.exe", + "exe_hash": "sha256-fJlRtGgOJcHbAgUBxrv3AJro7uN5En9le2b+a5K2QMc=" } From e7b85eaca5c8426cfa2f19e96a93cccdca94f3f5 Mon Sep 17 00:00:00 2001 From: Nick Cao Date: Thu, 21 Nov 2024 10:23:51 -0500 Subject: [PATCH 33/55] amazon-ssm-agent: skip additional flaky test --- pkgs/by-name/am/amazon-ssm-agent/package.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/by-name/am/amazon-ssm-agent/package.nix b/pkgs/by-name/am/amazon-ssm-agent/package.nix index 6d12e6e55701..d2e7be030e7b 100644 --- a/pkgs/by-name/am/amazon-ssm-agent/package.nix +++ b/pkgs/by-name/am/amazon-ssm-agent/package.nix @@ -136,6 +136,7 @@ buildGoModule rec { checkFlags = [ # Skip time dependent/flaky test "-skip=TestSendStreamDataMessageWithStreamDataSequenceNumberMutexLocked" + "-skip=TestParallelAccessOfQueue" ]; postFixup = '' From 01dbbb39ec485d437fad2db25293f4a375a263ac Mon Sep 17 00:00:00 2001 From: Pol Dellaiera Date: Thu, 21 Nov 2024 11:20:32 +0100 Subject: [PATCH 34/55] python312Packages.pygelf: init at 0.4.2 --- .../python-modules/pygelf/default.nix | 50 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 52 insertions(+) create mode 100644 pkgs/development/python-modules/pygelf/default.nix diff --git a/pkgs/development/python-modules/pygelf/default.nix b/pkgs/development/python-modules/pygelf/default.nix new file mode 100644 index 000000000000..bb5735771c74 --- /dev/null +++ b/pkgs/development/python-modules/pygelf/default.nix @@ -0,0 +1,50 @@ +{ + lib, + buildPythonPackage, + fetchPypi, + setuptools, + mock, + pytestCheckHook, + requests, +}: +buildPythonPackage rec { + pname = "pygelf"; + version = "0.4.2"; + pyproject = true; + + src = fetchPypi { + pname = "pygelf"; + inherit version; + hash = "sha256-0LuPRf9kipoYdxP0oFwJ9oX8uK3XsEu3Rx8gBxvRGq0="; + }; + + build-system = [ setuptools ]; + + pythonImportsCheck = [ "pygelf" ]; + + nativeCheckInputs = [ + mock + pytestCheckHook + requests + ]; + + disabledTests = [ + # ConnectionRefusedError: [Errno 111] Connection refused + "test_static_fields" + "test_dynamic_fields" + ]; + + disabledTestPaths = [ + # These tests requires files that are stripped off by Pypi packaging + "tests/test_queuehandler_support.py" + "tests/test_debug_mode.py" + "tests/test_common_fields.py" + ]; + + meta = { + description = "Python logging handlers with GELF (Graylog Extended Log Format) support"; + homepage = "https://github.com/keeprocking/pygelf"; + license = lib.licenses.bsd3; + maintainers = with lib.maintainers; [ drupol ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 63be75ca0110..04f9ff0e621d 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -10397,6 +10397,8 @@ self: super: with self; { pyfreedompro = callPackage ../development/python-modules/pyfreedompro { }; + pygelf = callPackage ../development/python-modules/pygelf { }; + pygments-style-github = callPackage ../development/python-modules/pygments-style-github { }; pygnmi = callPackage ../development/python-modules/pygnmi { }; From df9a80ca76d4db2aabc06bbc7a185c1374f39328 Mon Sep 17 00:00:00 2001 From: Pol Dellaiera Date: Thu, 21 Nov 2024 11:37:09 +0100 Subject: [PATCH 35/55] python312Packages.parsedmarc: add missing `pygelf` dependency --- pkgs/development/python-modules/parsedmarc/default.nix | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/parsedmarc/default.nix b/pkgs/development/python-modules/parsedmarc/default.nix index 61ec964340d4..dc118008ef9b 100644 --- a/pkgs/development/python-modules/parsedmarc/default.nix +++ b/pkgs/development/python-modules/parsedmarc/default.nix @@ -27,6 +27,7 @@ nixosTests, opensearch-py, publicsuffixlist, + pygelf, pythonOlder, requests, tqdm, @@ -41,14 +42,14 @@ let in buildPythonPackage rec { pname = "parsedmarc"; - version = "8.15.0"; + version = "8.15.4"; pyproject = true; disabled = pythonOlder "3.7"; src = fetchPypi { inherit pname version; - hash = "sha256-Z2KF8jv/D/SvwQWd1PGSlsAfowmYOd5CvvcC4kVuLos="; + hash = "sha256-lxW92jlSWgGVxOO+CwIZi5sKHqoZuR5VQCnDVORXmXU="; }; nativeBuildInputs = [ @@ -82,6 +83,7 @@ buildPythonPackage rec { mailsuite msgraph-core publicsuffixlist + pygelf requests tqdm xmltodict From 2c6c67a61d8889e4ef2a9e6a354eb4e0c6d2b255 Mon Sep 17 00:00:00 2001 From: Pol Dellaiera Date: Thu, 21 Nov 2024 11:52:32 +0100 Subject: [PATCH 36/55] python312Packages.mail-parser: 4.0.0 -> 4.1.2 --- .../development/python-modules/mail-parser/default.nix | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pkgs/development/python-modules/mail-parser/default.nix b/pkgs/development/python-modules/mail-parser/default.nix index 226fe1878de2..807c97f6adde 100644 --- a/pkgs/development/python-modules/mail-parser/default.nix +++ b/pkgs/development/python-modules/mail-parser/default.nix @@ -12,14 +12,14 @@ buildPythonPackage rec { pname = "mail-parser"; - version = "4.0.0"; + version = "4.1.2"; pyproject = true; src = fetchFromGitHub { owner = "SpamScope"; repo = "mail-parser"; rev = "refs/tags/${version}"; - hash = "sha256-WpV1WJFwzAquPXimew86YpEp++dnkIiBe5E4lMBDl7w="; + hash = "sha256-AXMfb+9POEaosCc+dv1xenhvBbpVkllMjftMoADUPXE="; }; LC_ALL = "en_US.utf-8"; @@ -49,11 +49,11 @@ buildPythonPackage rec { cat tests/mails/mail_malformed_3 | ${python.interpreter} -m mailparser -k -j ''; - meta = with lib; { + meta = { description = "Mail parser for python 2 and 3"; mainProgram = "mailparser"; homepage = "https://github.com/SpamScope/mail-parser"; - license = licenses.asl20; - maintainers = with maintainers; [ psyanticy ]; + license = lib.licenses.asl20; + maintainers = with lib.maintainers; [ psyanticy ]; }; } From c532371d8423fb13baaa7c5a41790b7be0a0de17 Mon Sep 17 00:00:00 2001 From: Pol Dellaiera Date: Thu, 21 Nov 2024 11:24:23 +0100 Subject: [PATCH 37/55] python312Packages.mailsuite: 1.9.16 -> 1.9.18 --- pkgs/development/python-modules/mailsuite/default.nix | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/mailsuite/default.nix b/pkgs/development/python-modules/mailsuite/default.nix index f6cb1a2a2330..a58dfba8dbea 100644 --- a/pkgs/development/python-modules/mailsuite/default.nix +++ b/pkgs/development/python-modules/mailsuite/default.nix @@ -16,18 +16,22 @@ buildPythonPackage rec { pname = "mailsuite"; - version = "1.9.16"; + version = "1.9.18"; format = "pyproject"; disabled = pythonOlder "3.6"; src = fetchPypi { inherit pname version; - hash = "sha256-rfavOOivttXXmdA/Nl3jUmXIUQrjxDDZ8cHcNIJQL6U="; + hash = "sha256-3rK5PgcAOKVvZbFT7PaZX9lhU8yKpPQozvh2F8mTkfA="; }; nativeBuildInputs = [ hatchling ]; + pythonRelaxDeps = [ + "mail-parser" + ]; + propagatedBuildInputs = [ dnspython expiringdict From d60df245ce98d22bb333abc09803ac8a4dd5a059 Mon Sep 17 00:00:00 2001 From: Pol Dellaiera Date: Wed, 20 Nov 2024 20:44:21 +0100 Subject: [PATCH 38/55] python312Packages.opensearch-py: fix build --- .../python-modules/opensearch-py/default.nix | 23 +++++++++++++++---- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/pkgs/development/python-modules/opensearch-py/default.nix b/pkgs/development/python-modules/opensearch-py/default.nix index 0914a8ca6701..5557ea3e21b1 100644 --- a/pkgs/development/python-modules/opensearch-py/default.nix +++ b/pkgs/development/python-modules/opensearch-py/default.nix @@ -1,5 +1,6 @@ { lib, + stdenv, buildPythonPackage, fetchFromGitHub, @@ -62,6 +63,8 @@ buildPythonPackage rec { pytz ] ++ optional-dependencies.async; + __darwinAllowLocalNetworking = true; + disabledTestPaths = [ # require network "test_opensearchpy/test_async/test_connection.py" @@ -70,11 +73,21 @@ buildPythonPackage rec { "test_opensearchpy/test_server_secured" ]; - disabledTests = [ - # finds our ca-bundle, but expects something else (/path/to/clientcert/dir or None) - "test_ca_certs_ssl_cert_dir" - "test_no_ca_certs" - ]; + disabledTests = + [ + # finds our ca-bundle, but expects something else (/path/to/clientcert/dir or None) + "test_ca_certs_ssl_cert_dir" + "test_no_ca_certs" + + # Failing tests, issue opened at https://github.com/opensearch-project/opensearch-py/issues/849 + "test_basicauth_in_request_session" + "test_callable_in_request_session" + ] + ++ lib.optionals (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isx86) [ + # Flaky tests: OSError: [Errno 48] Address already in use + "test_redirect_failure_when_allow_redirect_false" + "test_redirect_success_when_allow_redirect_true" + ]; meta = { description = "Python low-level client for OpenSearch"; From db1a685947b2d2aba8859b38a28f0123daf12f3b Mon Sep 17 00:00:00 2001 From: Daylin Morgan Date: Wed, 20 Nov 2024 15:37:59 -0600 Subject: [PATCH 39/55] fix(#356524): update nim mangling patch --- .../ni/nim-unwrapped-1_0/extra-mangling.patch | 16 +++-- .../nim-unwrapped-2_2/extra-mangling-2.patch | 66 ++++++++++--------- 2 files changed, 45 insertions(+), 37 deletions(-) diff --git a/pkgs/by-name/ni/nim-unwrapped-1_0/extra-mangling.patch b/pkgs/by-name/ni/nim-unwrapped-1_0/extra-mangling.patch index b68f7033994d..dc6bcebfaba1 100644 --- a/pkgs/by-name/ni/nim-unwrapped-1_0/extra-mangling.patch +++ b/pkgs/by-name/ni/nim-unwrapped-1_0/extra-mangling.patch @@ -1,13 +1,17 @@ diff --git a/compiler/modulepaths.nim b/compiler/modulepaths.nim -index e80ea3fa6..8ecf27a85 100644 +index fa8fab08a..63b0cb44d 100644 --- a/compiler/modulepaths.nim +++ b/compiler/modulepaths.nim -@@ -70,6 +70,13 @@ proc checkModuleName*(conf: ConfigRef; n: PNode; doLocalError=true): FileIndex = +@@ -73,6 +73,17 @@ proc checkModuleName*(conf: ConfigRef; n: PNode; doLocalError=true): FileIndex = else: result = fileInfoIdx(conf, fullPath) +proc rot13(result: var string) = -+ for i, c in result: ++ # don't mangle .nim ++ let finalIdx = ++ if result.endsWith(".nim"): result.len - 4 ++ else: result.len ++ for i, c in result[0.. Date: Thu, 14 Nov 2024 14:10:38 +0100 Subject: [PATCH 40/55] dnslink-std-go: init at 0.6.0 --- pkgs/by-name/dn/dnslink-std-go/package.nix | 26 ++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 pkgs/by-name/dn/dnslink-std-go/package.nix diff --git a/pkgs/by-name/dn/dnslink-std-go/package.nix b/pkgs/by-name/dn/dnslink-std-go/package.nix new file mode 100644 index 000000000000..c061c74035a6 --- /dev/null +++ b/pkgs/by-name/dn/dnslink-std-go/package.nix @@ -0,0 +1,26 @@ +{ + lib, + buildGoModule, + fetchFromGitHub, +}: + +buildGoModule rec { + pname = "dnslink"; + version = "0.6.0"; + src = fetchFromGitHub { + owner = "dnslink-std"; + repo = "go"; + rev = "refs/tags/v${version}"; + hash = "sha256-aATnNDUogNS4jBoWxUAFYFMa2ZS0+th3XH+1KWqwfWQ="; + }; + vendorHash = "sha256-RH55yfIO9jHLbjtEdUF5QpL5ILV5ctX2hBYBJWutmUA="; + doCheck = false; # Uses network, unsuprisingly. + meta = { + changelog = "https://github.com/dnslink-std/go/releases/tag/v${version}"; + description = "Reference implementation for DNSLink in golang"; + homepage = "https://dnslink.org/"; + license = lib.licenses.mit; + mainProgram = "dnslink"; + maintainers = with lib.maintainers; [ ehmry ]; + }; +} From 50bbfb5788f82535cdd5046cf1aa7c9da588a258 Mon Sep 17 00:00:00 2001 From: Emery Hemingway Date: Thu, 21 Nov 2024 11:06:22 +0000 Subject: [PATCH 41/55] nixos/nncp: recursively merge configurations --- nixos/modules/programs/nncp.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nixos/modules/programs/nncp.nix b/nixos/modules/programs/nncp.nix index 6ac0363e50a0..08485f0dfc87 100644 --- a/nixos/modules/programs/nncp.nix +++ b/nixos/modules/programs/nncp.nix @@ -79,7 +79,7 @@ in { for f in ${jsonCfgFile} ${builtins.toString config.programs.nncp.secrets} do ${lib.getExe pkgs.hjson-go} -c <"$f" - done |${lib.getExe pkgs.jq} --slurp add >${nncpCfgFile} + done |${lib.getExe pkgs.jq} --slurp 'reduce .[] as $x ({}; . * $x)' >${nncpCfgFile} chgrp ${programCfg.group} ${nncpCfgFile} ''; }; From 19db54eda1057089c1c64c2a06758c41a4ff67b1 Mon Sep 17 00:00:00 2001 From: Silvan Mosberger Date: Thu, 21 Nov 2024 20:01:18 +0100 Subject: [PATCH 42/55] workflows/eval: Minor fixes, ensure the correct commit is checked out - `env.mergedSha` is empty, so it checked out the master version by default - The process step used `needs.attrs.outputs.mergedSha`, but apparently that's empty unless `attrs` is declared as a `needs`, even though `outputs` implicitly depends on `attrs` --- .github/workflows/eval.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/eval.yml b/.github/workflows/eval.yml index 1686898e6842..280ed141576c 100644 --- a/.github/workflows/eval.yml +++ b/.github/workflows/eval.yml @@ -38,7 +38,7 @@ jobs: # Add this to _all_ subsequent steps to skip them if: steps.merged.outputs.mergedSha with: - ref: ${{ env.mergedSha }} + ref: ${{ steps.merged.outputs.mergedSha }} path: nixpkgs - name: Install Nix @@ -104,7 +104,7 @@ jobs: process: name: Process runs-on: ubuntu-latest - needs: outpaths + needs: [ outpaths, attrs ] steps: - name: Download output paths and eval stats for all systems uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8 From bb19beaf770f52ba83c3951fa10fa978c88d098a Mon Sep 17 00:00:00 2001 From: Silvan Mosberger Date: Thu, 21 Nov 2024 20:04:01 +0100 Subject: [PATCH 43/55] OWNERS: Add myself to .github/workflows --- ci/OWNERS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/OWNERS b/ci/OWNERS index 9795b76eef46..1a1175cacd6c 100644 --- a/ci/OWNERS +++ b/ci/OWNERS @@ -14,7 +14,7 @@ # Processing of this file is implemented in workflows/codeowners-v2.yml # CI -/.github/workflows @NixOS/Security @Mic92 @zowoq +/.github/workflows @NixOS/Security @Mic92 @zowoq @infinisil /.github/workflows/check-nix-format.yml @infinisil /.github/workflows/nixpkgs-vet.yml @infinisil @philiptaron /.github/workflows/codeowners-v2.yml @infinisil From eb2872ea67f6633d9681c511063b41303f908d9a Mon Sep 17 00:00:00 2001 From: GetPsyched Date: Thu, 21 Nov 2024 17:03:57 +0400 Subject: [PATCH 44/55] nixos-render-docs: don't validate redirects if none were given --- .../src/nixos_render_docs/manual.py | 40 ++++++++++--------- .../src/tests/test_auto_id_prefix.py | 6 +-- 2 files changed, 25 insertions(+), 21 deletions(-) diff --git a/pkgs/by-name/ni/nixos-render-docs/src/nixos_render_docs/manual.py b/pkgs/by-name/ni/nixos-render-docs/src/nixos_render_docs/manual.py index 64b3740c8352..52b51f63f4d8 100644 --- a/pkgs/by-name/ni/nixos-render-docs/src/nixos_render_docs/manual.py +++ b/pkgs/by-name/ni/nixos-render-docs/src/nixos_render_docs/manual.py @@ -217,11 +217,11 @@ class ManualHTMLRenderer(RendererMixin, HTMLRenderer): _base_path: Path _in_dir: Path _html_params: HTMLParameters - _redirects: Redirects + _redirects: Redirects | None def __init__(self, toplevel_tag: str, revision: str, html_params: HTMLParameters, manpage_urls: Mapping[str, str], xref_targets: dict[str, XrefTarget], - redirects: Redirects, in_dir: Path, base_path: Path): + redirects: Redirects | None, in_dir: Path, base_path: Path): super().__init__(toplevel_tag, revision, manpage_urls, xref_targets) self._in_dir = in_dir self._base_path = base_path.absolute() @@ -310,9 +310,12 @@ class ManualHTMLRenderer(RendererMixin, HTMLRenderer): ' ', ]) - redirects_path = f'{self._base_path}/{toc.target.path.split('.html')[0]}-redirects.js' - with open(redirects_path, 'w') as file: - file.write(self._redirects.get_redirect_script(toc.target.path)) + scripts = self._html_params.scripts + if self._redirects: + redirects_path = f'{self._base_path}/{toc.target.path.split('.html')[0]}-redirects.js' + with open(redirects_path, 'w') as file: + file.write(self._redirects.get_redirect_script(toc.target.path)) + scripts.append(redirects_path) return "\n".join([ '', @@ -325,7 +328,7 @@ class ManualHTMLRenderer(RendererMixin, HTMLRenderer): "".join((f'' for style in self._html_params.stylesheets)), "".join((f'' - for script in [*self._html_params.scripts, redirects_path])), + for script in scripts)), f' ', f' ' if home.target.href() else "", f' {up_link}{prev_link}{next_link}', @@ -509,7 +512,7 @@ class HTMLConverter(BaseConverter[ManualHTMLRenderer]): _revision: str _html_params: HTMLParameters _manpage_urls: Mapping[str, str] - _redirects: Redirects + _redirects: Redirects | None _xref_targets: dict[str, XrefTarget] _redirection_targets: set[str] _appendix_count: int = 0 @@ -518,7 +521,7 @@ class HTMLConverter(BaseConverter[ManualHTMLRenderer]): self._appendix_count += 1 return _to_base26(self._appendix_count - 1) - def __init__(self, revision: str, html_params: HTMLParameters, manpage_urls: Mapping[str, str], redirects: Redirects): + def __init__(self, revision: str, html_params: HTMLParameters, manpage_urls: Mapping[str, str], redirects: Redirects | None = None): super().__init__() self._revision, self._html_params, self._manpage_urls, self._redirects = revision, html_params, manpage_urls, redirects self._xref_targets = {} @@ -679,13 +682,14 @@ class HTMLConverter(BaseConverter[ManualHTMLRenderer]): ) TocEntry.collect_and_link(self._xref_targets, tokens) - self._redirects.validate(self._xref_targets) - server_redirects = self._redirects.get_server_redirects() - with open(outfile.parent / '_redirects', 'w') as server_redirects_file: - formatted_server_redirects = [] - for from_path, to_path in server_redirects.items(): - formatted_server_redirects.append(f"{from_path} {to_path} 301") - server_redirects_file.write("\n".join(formatted_server_redirects)) + if self._redirects: + self._redirects.validate(self._xref_targets) + server_redirects = self._redirects.get_server_redirects() + with open(outfile.parent / '_redirects', 'w') as server_redirects_file: + formatted_server_redirects = [] + for from_path, to_path in server_redirects.items(): + formatted_server_redirects.append(f"{from_path} {to_path} 301") + server_redirects_file.write("\n".join(formatted_server_redirects)) def _build_cli_html(p: argparse.ArgumentParser) -> None: @@ -704,16 +708,16 @@ def _build_cli_html(p: argparse.ArgumentParser) -> None: def _run_cli_html(args: argparse.Namespace) -> None: with open(args.manpage_urls) as manpage_urls, open(Path(__file__).parent / "redirects.js") as redirects_script: - redirects = {} + redirects = None if args.redirects: with open(args.redirects) as raw_redirects: - redirects = json.load(raw_redirects) + redirects = Redirects(json.load(raw_redirects), redirects_script.read()) md = HTMLConverter( args.revision, HTMLParameters(args.generator, args.stylesheet, args.script, args.toc_depth, args.chunk_toc_depth, args.section_toc_depth, args.media_dir), - json.load(manpage_urls), Redirects(redirects, redirects_script.read())) + json.load(manpage_urls), redirects) md.convert(args.infile, args.outfile) def build_cli(p: argparse.ArgumentParser) -> None: diff --git a/pkgs/by-name/ni/nixos-render-docs/src/tests/test_auto_id_prefix.py b/pkgs/by-name/ni/nixos-render-docs/src/tests/test_auto_id_prefix.py index a3d33930b303..ae847de6b8a8 100644 --- a/pkgs/by-name/ni/nixos-render-docs/src/tests/test_auto_id_prefix.py +++ b/pkgs/by-name/ni/nixos-render-docs/src/tests/test_auto_id_prefix.py @@ -11,7 +11,7 @@ def set_prefix(token: Token, ident: str) -> None: def test_auto_id_prefix_simple() -> None: - md = HTMLConverter("1.0.0", HTMLParameters("", [], [], 2, 2, 2, Path("")), {}, Redirects({}, '')) + md = HTMLConverter("1.0.0", HTMLParameters("", [], [], 2, 2, 2, Path("")), {}) src = f""" # title @@ -32,7 +32,7 @@ def test_auto_id_prefix_simple() -> None: def test_auto_id_prefix_repeated() -> None: - md = HTMLConverter("1.0.0", HTMLParameters("", [], [], 2, 2, 2, Path("")), {}, Redirects({}, '')) + md = HTMLConverter("1.0.0", HTMLParameters("", [], [], 2, 2, 2, Path("")), {}) src = f""" # title @@ -58,7 +58,7 @@ def test_auto_id_prefix_repeated() -> None: ] def test_auto_id_prefix_maximum_nested() -> None: - md = HTMLConverter("1.0.0", HTMLParameters("", [], [], 2, 2, 2, Path("")), {}, Redirects({}, '')) + md = HTMLConverter("1.0.0", HTMLParameters("", [], [], 2, 2, 2, Path("")), {}) src = f""" # h1 From 9597f3627e5a88061ef5d34b266ec5dbf4c93832 Mon Sep 17 00:00:00 2001 From: Pietro Albini Date: Thu, 21 Nov 2024 14:38:32 +0100 Subject: [PATCH 45/55] vimPlugins.lspecho-nvim: init at 2024-10-06 --- pkgs/applications/editors/vim/plugins/generated.nix | 12 ++++++++++++ pkgs/applications/editors/vim/plugins/overrides.nix | 5 +++++ .../editors/vim/plugins/vim-plugin-names | 1 + 3 files changed, 18 insertions(+) diff --git a/pkgs/applications/editors/vim/plugins/generated.nix b/pkgs/applications/editors/vim/plugins/generated.nix index 6974f36caa84..80bd2774d127 100644 --- a/pkgs/applications/editors/vim/plugins/generated.nix +++ b/pkgs/applications/editors/vim/plugins/generated.nix @@ -6242,6 +6242,18 @@ final: prev: meta.homepage = "https://github.com/lspcontainers/lspcontainers.nvim/"; }; + lspecho-nvim = buildVimPlugin { + pname = "lspecho.nvim"; + version = "2024-10-06"; + src = fetchFromGitHub { + owner = "deathbeam"; + repo = "lspecho.nvim"; + rev = "6b00e2ed29a1f7b254a07d4b8a918ebf855026e5"; + sha256 = "0z45b0mk7hd5h9d79318nyhhyhprwr929rpqfbblk5x0j4x2glxf"; + }; + meta.homepage = "https://github.com/deathbeam/lspecho.nvim/"; + }; + lspkind-nvim = buildVimPlugin { pname = "lspkind.nvim"; version = "2024-10-25"; diff --git a/pkgs/applications/editors/vim/plugins/overrides.nix b/pkgs/applications/editors/vim/plugins/overrides.nix index 4d20f448ec12..f7d49d4623e6 100644 --- a/pkgs/applications/editors/vim/plugins/overrides.nix +++ b/pkgs/applications/editors/vim/plugins/overrides.nix @@ -1407,6 +1407,11 @@ in nvimRequireCheck = "lsp-progress"; }; + lspecho-nvim = super.lspecho-nvim.overrideAttrs { + meta.license = lib.licenses.mit; + nvimRequireCheck = "lspecho"; + }; + lualine-lsp-progress = super.lualine-lsp-progress.overrideAttrs { dependencies = with self; [ lualine-nvim ]; }; diff --git a/pkgs/applications/editors/vim/plugins/vim-plugin-names b/pkgs/applications/editors/vim/plugins/vim-plugin-names index 9e97c5921e81..61248af3c14a 100644 --- a/pkgs/applications/editors/vim/plugins/vim-plugin-names +++ b/pkgs/applications/editors/vim/plugins/vim-plugin-names @@ -518,6 +518,7 @@ https://github.com/nvim-lua/lsp_extensions.nvim/,, https://git.sr.ht/~whynothugo/lsp_lines.nvim,, https://github.com/ray-x/lsp_signature.nvim/,, https://github.com/lspcontainers/lspcontainers.nvim/,, +https://github.com/deathbeam/lspecho.nvim/,HEAD, https://github.com/onsails/lspkind.nvim/,, https://github.com/nvimdev/lspsaga.nvim/,, https://github.com/barreiroleo/ltex_extra.nvim/,HEAD, From 670003530c1b6b990ca06d373396a5a40f6a0901 Mon Sep 17 00:00:00 2001 From: Kerstin Humm Date: Thu, 15 Aug 2024 16:29:55 +0200 Subject: [PATCH 46/55] python3Packages.pytest-smtpd: init at 0.1.0 --- .../python-modules/pytest-smtpd/default.nix | 45 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 47 insertions(+) create mode 100644 pkgs/development/python-modules/pytest-smtpd/default.nix diff --git a/pkgs/development/python-modules/pytest-smtpd/default.nix b/pkgs/development/python-modules/pytest-smtpd/default.nix new file mode 100644 index 000000000000..9563441880b9 --- /dev/null +++ b/pkgs/development/python-modules/pytest-smtpd/default.nix @@ -0,0 +1,45 @@ +{ + lib, + buildPythonPackage, + pythonOlder, + fetchFromGitHub, + hatchling, + pytest, + smtpdfix, + pytestCheckHook, +}: + +buildPythonPackage rec { + pname = "pytest-smtpd"; + version = "0.1.0"; + pyproject = true; + + disabled = pythonOlder "3.8"; + + # Pypi tarball doesn't include tests/ + src = fetchFromGitHub { + owner = "bebleo"; + repo = "pytest-smtpd"; + rev = "refs/tags/v${version}"; + hash = "sha256-Vu2D2hfxBYxgXQ4Gjr+jFpac9fjpLL2FftBhnqrcQaA="; + }; + + build-system = [ hatchling ]; + + dependencies = [ + smtpdfix + ]; + + buildInputs = [ pytest ]; + + nativeCheckInputs = [ pytestCheckHook ]; + + pythonImportsCheck = [ "pytest_smtpd" ]; + + meta = with lib; { + description = "Pytest fixture that creates an SMTP server"; + homepage = "https://github.com/bebleo/pytest-smtpd"; + license = licenses.mit; + maintainers = with maintainers; [ erictapen ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 7cbaa4b090f1..742eff0b79c1 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -12794,6 +12794,8 @@ self: super: with self; { pytest-shutil = callPackage ../development/python-modules/pytest-shutil { }; + pytest-smtpd = callPackage ../development/python-modules/pytest-smtpd { }; + pytest-spec = callPackage ../development/python-modules/pytest-spec { }; python-status = callPackage ../development/python-modules/python-status { }; From ea8280c3a479734bd0c1023c15431e9a3b252d85 Mon Sep 17 00:00:00 2001 From: Kerstin Humm Date: Thu, 15 Aug 2024 16:30:53 +0200 Subject: [PATCH 47/55] python3Packages.slapd: init at 0.1.5 --- .../python-modules/slapd/default.nix | 48 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 50 insertions(+) create mode 100644 pkgs/development/python-modules/slapd/default.nix diff --git a/pkgs/development/python-modules/slapd/default.nix b/pkgs/development/python-modules/slapd/default.nix new file mode 100644 index 000000000000..c8e8a3707b37 --- /dev/null +++ b/pkgs/development/python-modules/slapd/default.nix @@ -0,0 +1,48 @@ +{ + lib, + buildPythonPackage, + pythonOlder, + fetchFromGitHub, + poetry-core, + openldap, + pytestCheckHook, +}: + +buildPythonPackage rec { + pname = "slapd"; + version = "0.1.5"; + pyproject = true; + + disabled = pythonOlder "3.8"; + + # Pypi tarball doesn't include tests/ + src = fetchFromGitHub { + owner = "python-ldap"; + repo = "python-slapd"; + rev = "refs/tags/${version}"; + hash = "sha256-AiJvhgJ62vCj75m6l5kuIEb7k2qCh/QJybS0uqw2vBY="; + }; + + build-system = [ poetry-core ]; + + nativeCheckInputs = [ pytestCheckHook ]; + + preCheck = '' + # Needed by tests to setup a mockup ldap server + export BIN="${openldap}/bin" + export SBIN="${openldap}/bin" + export SLAPD="${openldap}/libexec/slapd" + export SCHEMA="${openldap}/etc/schema" + ''; + + pythonImportsCheck = [ "slapd" ]; + + meta = with lib; { + description = "Controls a slapd process in a pythonic way"; + homepage = "https://github.com/python-ldap/python-slapd"; + changelog = "https://github.com/python-ldap/python-slapd/blob/${src.rev}/CHANGES.rst"; + license = licenses.mit; + maintainers = with maintainers; [ erictapen ]; + }; + +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 742eff0b79c1..94d31262a352 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -14683,6 +14683,8 @@ self: super: with self; { slack-sdk = callPackage ../development/python-modules/slack-sdk { }; + slapd = callPackage ../development/python-modules/slapd { }; + sleekxmpp = callPackage ../development/python-modules/sleekxmpp { }; sleekxmppfs = callPackage ../development/python-modules/sleekxmppfs { }; From 45cc7f418109740a59d000a10b6490898e65be13 Mon Sep 17 00:00:00 2001 From: Kerstin Humm Date: Thu, 15 Aug 2024 16:31:34 +0200 Subject: [PATCH 48/55] python3Packages.flask-webtest: init at 0.1.4 --- .../python-modules/flask-webtest/default.nix | 48 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 50 insertions(+) create mode 100644 pkgs/development/python-modules/flask-webtest/default.nix diff --git a/pkgs/development/python-modules/flask-webtest/default.nix b/pkgs/development/python-modules/flask-webtest/default.nix new file mode 100644 index 000000000000..48fad5c4ebe8 --- /dev/null +++ b/pkgs/development/python-modules/flask-webtest/default.nix @@ -0,0 +1,48 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + setuptools, + flask, + webtest, + blinker, + flask-sqlalchemy, + greenlet, +}: + +buildPythonPackage rec { + pname = "flask-webtest"; + version = "0.1.4"; + pyproject = true; + + # Pypi tarball doesn't include version.py + src = fetchFromGitHub { + owner = "level12"; + repo = "flask-webtest"; + rev = "refs/tags/${version}"; + hash = "sha256-4USNT6HYh49v+euCePYkL1gR6Ul8C0+/xanuYGxKpfM="; + }; + + build-system = [ setuptools ]; + + dependencies = [ + flask + webtest + blinker + ]; + + nativeCheckInputs = [ + flask-sqlalchemy + greenlet + ]; + + pythonImportsCheck = [ "flask_webtest" ]; + + meta = with lib; { + description = "Utilities for testing Flask applications with WebTest"; + homepage = "https://github.com/level12/flask-webtest"; + changelog = "https://github.com/level12/flask-webtest/blob/${src.rev}/changelog.rst"; + license = licenses.bsd3; + maintainers = with maintainers; [ erictapen ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 94d31262a352..fea590c2bdc6 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -4706,6 +4706,8 @@ self: super: with self; { flask-versioned = callPackage ../development/python-modules/flask-versioned { }; + flask-webtest = callPackage ../development/python-modules/flask-webtest { }; + flask-wtf = callPackage ../development/python-modules/flask-wtf { }; flatbuffers = callPackage ../development/python-modules/flatbuffers { From e45e3313af1c07fc1c482566592b8c87d5d7f312 Mon Sep 17 00:00:00 2001 From: Kerstin Humm Date: Thu, 15 Aug 2024 16:32:15 +0200 Subject: [PATCH 49/55] pythonPackages.sqlalchemy-json: init at 0.7.0 Co-Authored-By: Auguste Baum --- .../sqlalchemy-json/default.nix | 37 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 39 insertions(+) create mode 100644 pkgs/development/python-modules/sqlalchemy-json/default.nix diff --git a/pkgs/development/python-modules/sqlalchemy-json/default.nix b/pkgs/development/python-modules/sqlalchemy-json/default.nix new file mode 100644 index 000000000000..57b45fdb096e --- /dev/null +++ b/pkgs/development/python-modules/sqlalchemy-json/default.nix @@ -0,0 +1,37 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + pytestCheckHook, + pythonOlder, + sqlalchemy, +}: + +let + version = "0.7.0"; +in +buildPythonPackage { + pname = "sqlalchemy-json"; + inherit version; + + disabled = pythonOlder "3.6"; + + src = fetchFromGitHub { + owner = "edelooff"; + repo = "sqlalchemy-json"; + rev = "refs/tags/v${version}"; + hash = "sha256-Is3DznojvpWYFSDutzCxRLceQMIiS3ZIg0c//MIOF+s="; + }; + + propagatedBuildInputs = [ sqlalchemy ]; + + nativeCheckInputs = [ pytestCheckHook ]; + + meta = with lib; { + description = "Full-featured JSON type with mutation tracking for SQLAlchemy"; + homepage = "https://github.com/edelooff/sqlalchemy-json"; + changelog = "https://github.com/edelooff/sqlalchemy-json/tree/v${version}#changelog"; + license = licenses.bsd2; + maintainers = with maintainers; [ augustebaum ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index fea590c2bdc6..7e29acf303da 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -15154,6 +15154,8 @@ self: super: with self; { sqlalchemy-i18n = callPackage ../development/python-modules/sqlalchemy-i18n { }; + sqlalchemy-json = callPackage ../development/python-modules/sqlalchemy-json { }; + sqlalchemy-jsonfield = callPackage ../development/python-modules/sqlalchemy-jsonfield { }; sqlalchemy-mixins = callPackage ../development/python-modules/sqlalchemy-mixins { }; From d6f955ba9b7207b53cd809d4b8394f464f954b0d Mon Sep 17 00:00:00 2001 From: Kerstin Humm Date: Thu, 15 Aug 2024 16:33:04 +0200 Subject: [PATCH 50/55] python3Packages.flask-themer: init at 2.0.0 Co-Authored-By: Sofi --- .../python-modules/flask-themer/default.nix | 42 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 44 insertions(+) create mode 100644 pkgs/development/python-modules/flask-themer/default.nix diff --git a/pkgs/development/python-modules/flask-themer/default.nix b/pkgs/development/python-modules/flask-themer/default.nix new file mode 100644 index 000000000000..d76a9b59bd24 --- /dev/null +++ b/pkgs/development/python-modules/flask-themer/default.nix @@ -0,0 +1,42 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + setuptools, + flask, + pytestCheckHook, + pytest-cov-stub, +}: + +buildPythonPackage rec { + pname = "flask-themer"; + version = "2.0.0"; + pyproject = true; + + # Pypi tarball doesn't contain tests/ + src = fetchFromGitHub { + owner = "TkTech"; + repo = "flask-themer"; + rev = "refs/tags/v${version}"; + hash = "sha256-2Zw+gKKN0kfjYuruuLQ+3dIFF0X07DTy0Ypc22Ih66w="; + }; + + build-system = [ setuptools ]; + + dependencies = [ flask ]; + + nativeCheckInputs = [ + pytestCheckHook + pytest-cov-stub + ]; + + pythonImportsCheck = [ "flask_themer" ]; + + meta = with lib; { + description = "Simple theming support for Flask apps"; + homepage = "https://github.com/TkTech/flask-themer"; + changelog = "https://github.com/TkTech/flask-themer/releases/tag/v${version}"; + license = licenses.mit; + maintainers = with maintainers; [ erictapen ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 7e29acf303da..74e9207265e0 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -4702,6 +4702,8 @@ self: super: with self; { flask-testing = callPackage ../development/python-modules/flask-testing { }; + flask-themer = callPackage ../development/python-modules/flask-themer { }; + flask-themes2 = callPackage ../development/python-modules/flask-themes2 { }; flask-versioned = callPackage ../development/python-modules/flask-versioned { }; From 6849c636b475e85e6450b53f6891e23079f16cd4 Mon Sep 17 00:00:00 2001 From: Kerstin Humm Date: Thu, 21 Nov 2024 16:52:31 +0100 Subject: [PATCH 51/55] python3Packages.zxcvbn-rs-py: init at 0.1.1 --- .../python-modules/zxcvbn-rs-py/default.nix | 44 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 46 insertions(+) create mode 100644 pkgs/development/python-modules/zxcvbn-rs-py/default.nix diff --git a/pkgs/development/python-modules/zxcvbn-rs-py/default.nix b/pkgs/development/python-modules/zxcvbn-rs-py/default.nix new file mode 100644 index 000000000000..dcfc2f8d6640 --- /dev/null +++ b/pkgs/development/python-modules/zxcvbn-rs-py/default.nix @@ -0,0 +1,44 @@ +{ + lib, + buildPythonPackage, + pythonOlder, + pythonAtLeast, + fetchPypi, + rustPlatform, +}: + +buildPythonPackage rec { + pname = "zxcvbn-rs-py"; + version = "0.1.1"; + + pyproject = true; + + disabled = pythonOlder "3.9" || pythonAtLeast "3.13"; + + src = fetchPypi { + pname = "zxcvbn_rs_py"; + inherit version; + hash = "sha256-7EZJ/WGekfsnisqTs9dwwbQia6OlDEx3MR9mkqSI+gA="; + }; + + build-system = [ + rustPlatform.cargoSetupHook + rustPlatform.maturinBuildHook + ]; + + cargoDeps = rustPlatform.fetchCargoTarball { + name = "${pname}-${version}"; + inherit src; + hash = "sha256-OA6iyojBMAG9GtjHaIQ9cM0SEMwMa2bKFRIXmqp4OBE="; + }; + + pythonImportsCheck = [ "zxcvbn_rs_py" ]; + + meta = with lib; { + description = "Python bindings for zxcvbn-rs, the Rust implementation of zxcvbn"; + homepage = "https://github.com/fief-dev/zxcvbn-rs-py/"; + license = licenses.mit; + maintainers = with maintainers; [ erictapen ]; + }; + +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 74e9207265e0..61e7d05fb154 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -18303,6 +18303,8 @@ self: super: with self; { zxcvbn = callPackage ../development/python-modules/zxcvbn { }; + zxcvbn-rs-py = callPackage ../development/python-modules/zxcvbn-rs-py { }; + zxing-cpp = callPackage ../development/python-modules/zxing-cpp { libzxing-cpp = pkgs.zxing-cpp; }; From 09c2d481c18d03ec0409b751c99ad048942bd175 Mon Sep 17 00:00:00 2001 From: Kerstin Humm Date: Thu, 15 Aug 2024 16:34:31 +0200 Subject: [PATCH 52/55] canaille: init at 0.0.56 Co-Authored-By: Sofi Co-Authored-By: Janik <80165193+Janik-Haag@users.noreply.github.com> --- pkgs/by-name/ca/canaille/package.nix | 118 +++++++++++++++++++++++++++ 1 file changed, 118 insertions(+) create mode 100644 pkgs/by-name/ca/canaille/package.nix diff --git a/pkgs/by-name/ca/canaille/package.nix b/pkgs/by-name/ca/canaille/package.nix new file mode 100644 index 000000000000..be6bc9875696 --- /dev/null +++ b/pkgs/by-name/ca/canaille/package.nix @@ -0,0 +1,118 @@ +{ + lib, + python3, + fetchFromGitLab, + openldap, + nixosTests, +}: + +let + python = python3; +in +python.pkgs.buildPythonApplication rec { + pname = "canaille"; + version = "0.0.56"; + pyproject = true; + + disabled = python.pythonOlder "3.10"; + + src = fetchFromGitLab { + owner = "yaal"; + repo = "canaille"; + rev = "refs/tags/${version}"; + hash = "sha256-cLsLwttUDxMKVqtVDCY5A22m1YY1UezeZQh1j74WzgU="; + }; + + build-system = with python.pkgs; [ + hatchling + babel + setuptools + ]; + + dependencies = + with python.pkgs; + [ + flask + flask-wtf + pydantic-settings + wtforms + ] + ++ sentry-sdk.optional-dependencies.flask; + + nativeCheckInputs = + with python.pkgs; + [ + pytestCheckHook + coverage + flask-webtest + pyquery + pytest-cov + pytest-httpserver + pytest-lazy-fixtures + pytest-smtpd + pytest-xdist + slapd + toml + faker + time-machine + ] + ++ optional-dependencies.front + ++ optional-dependencies.oidc + ++ optional-dependencies.ldap + ++ optional-dependencies.postgresql; + + postInstall = '' + mkdir -p $out/etc/schema + cp $out/${python.sitePackages}/canaille/backends/ldap/schemas/* $out/etc/schema/ + ''; + + preCheck = '' + # Needed by tests to setup a mockup ldap server. + export BIN="${openldap}/bin" + export SBIN="${openldap}/bin" + export SLAPD="${openldap}/libexec/slapd" + export SCHEMA="${openldap}/etc/schema" + + # Just use their example config for testing + export CONFIG=canaille/config.sample.toml + ''; + + optional-dependencies = with python.pkgs; { + front = [ + email-validator + flask-babel + flask-themer + pycountry + pytz + toml + zxcvbn-rs-py + ]; + oidc = [ authlib ]; + ldap = [ python-ldap ]; + sentry = [ sentry-sdk ]; + postgresql = [ + passlib + sqlalchemy + sqlalchemy-json + sqlalchemy-utils + ] ++ sqlalchemy.optional-dependencies.postgresql; + }; + + passthru = { + inherit python; + tests = { + inherit (nixosTests) canaille; + }; + }; + + meta = with lib; { + description = "Lightweight Identity and Authorization Management"; + homepage = "https://canaille.readthedocs.io/en/latest/index.html"; + changelog = "https://gitlab.com/yaal/canaille/-/blob/${src.rev}/CHANGES.rst"; + license = licenses.mit; + platforms = platforms.linux; + maintainers = with maintainers; [ erictapen ]; + mainProgram = "canaille"; + }; + +} From ff2f00d425fc9e342582b8f69065f1584b63a369 Mon Sep 17 00:00:00 2001 From: Kerstin Humm Date: Thu, 15 Aug 2024 16:35:10 +0200 Subject: [PATCH 53/55] nixos/canaille: init module Co-Authored-By: Janik <80165193+Janik-Haag@users.noreply.github.com> --- nixos/modules/module-list.nix | 1 + nixos/modules/services/security/canaille.nix | 390 +++++++++++++++++++ nixos/tests/all-tests.nix | 1 + nixos/tests/canaille.nix | 62 +++ 4 files changed, 454 insertions(+) create mode 100644 nixos/modules/services/security/canaille.nix create mode 100644 nixos/tests/canaille.nix diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index 88a6c24ce293..cc107eefe505 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -1316,6 +1316,7 @@ ./services/security/aesmd.nix ./services/security/authelia.nix ./services/security/bitwarden-directory-connector-cli.nix + ./services/security/canaille.nix ./services/security/certmgr.nix ./services/security/cfssl.nix ./services/security/clamav.nix diff --git a/nixos/modules/services/security/canaille.nix b/nixos/modules/services/security/canaille.nix new file mode 100644 index 000000000000..427ecaffde21 --- /dev/null +++ b/nixos/modules/services/security/canaille.nix @@ -0,0 +1,390 @@ +{ + config, + lib, + pkgs, + ... +}: + +let + cfg = config.services.canaille; + + inherit (lib) + mkOption + mkIf + mkEnableOption + mkPackageOption + types + getExe + optional + converge + filterAttrsRecursive + ; + + dataDir = "/var/lib/canaille"; + secretsDir = "${dataDir}/secrets"; + + settingsFormat = pkgs.formats.toml { }; + + # Remove null values, so we can document optional/forbidden values that don't end up in the generated TOML file. + filterConfig = converge (filterAttrsRecursive (_: v: v != null)); + + finalPackage = cfg.package.overridePythonAttrs (old: { + dependencies = + old.dependencies + ++ old.optional-dependencies.front + ++ old.optional-dependencies.oidc + ++ old.optional-dependencies.ldap + ++ old.optional-dependencies.sentry + ++ old.optional-dependencies.postgresql; + makeWrapperArgs = (old.makeWrapperArgs or [ ]) ++ [ + "--set CONFIG /etc/canaille/config.toml" + "--set SECRETS_DIR \"${secretsDir}\"" + ]; + }); + inherit (finalPackage) python; + pythonEnv = python.buildEnv.override { + extraLibs = with python.pkgs; [ + (toPythonModule finalPackage) + celery + ]; + }; + + commonServiceConfig = { + WorkingDirectory = dataDir; + User = "canaille"; + Group = "canaille"; + StateDirectory = "canaille"; + StateDirectoryMode = "0750"; + PrivateTmp = true; + }; + + postgresqlHost = "postgresql://localhost/canaille?host=/run/postgresql"; + createLocalPostgresqlDb = cfg.settings.CANAILLE_SQL.DATABASE_URI == postgresqlHost; +in +{ + + options.services.canaille = { + enable = mkEnableOption "Canaille"; + package = mkPackageOption pkgs "canaille" { }; + secretKeyFile = mkOption { + description = '' + File containing the Flask secret key. Its content is going to be + provided to Canaille as `SECRET_KEY`. Make sure it has appropriate + permissions. For example, copy the output of this to the specified + file: + + ``` + python3 -c 'import secrets; print(secrets.token_hex())' + ``` + ''; + type = types.path; + }; + smtpPasswordFile = mkOption { + description = '' + File containing the SMTP password. Make sure it has appropriate permissions. + ''; + default = null; + type = types.nullOr types.path; + }; + jwtPrivateKeyFile = mkOption { + description = '' + File containing the JWT private key. Make sure it has appropriate permissions. + + You can generate one using + ``` + openssl genrsa -out private.pem 4096 + openssl rsa -in private.pem -pubout -outform PEM -out public.pem + ``` + ''; + default = null; + type = types.nullOr types.path; + }; + ldapBindPasswordFile = mkOption { + description = '' + File containing the LDAP bind password. + ''; + default = null; + type = types.nullOr types.path; + }; + settings = mkOption { + default = { }; + description = "Settings for Canaille. See [the documentation](https://canaille.readthedocs.io/en/latest/references/configuration.html) for details."; + type = types.submodule { + freeformType = settingsFormat.type; + options = { + SECRET_KEY = mkOption { + readOnly = true; + description = '' + Flask Secret Key. Can't be set and must be provided through + `services.canaille.settings.secretKeyFile`. + ''; + default = null; + type = types.nullOr types.str; + }; + SERVER_NAME = mkOption { + description = "The domain name on which canaille will be served."; + example = "auth.example.org"; + type = types.str; + }; + PREFERRED_URL_SCHEME = mkOption { + description = "The url scheme by which canaille will be served."; + default = "https"; + type = types.enum [ + "http" + "https" + ]; + }; + + CANAILLE = { + ACL = mkOption { + default = null; + description = '' + Access Control Lists. + + See also [the documentation](https://canaille.readthedocs.io/en/latest/references/configuration.html#canaille.core.configuration.ACLSettings). + ''; + type = types.nullOr ( + types.submodule { + freeformType = settingsFormat.type; + options = { }; + } + ); + }; + SMTP = mkOption { + default = null; + example = { }; + description = '' + SMTP configuration. By default, sending emails is not enabled. + + Set to an empty attrs to send emails from localhost without + authentication. + + See also [the documentation](https://canaille.readthedocs.io/en/latest/references/configuration.html#canaille.core.configuration.SMTPSettings). + ''; + type = types.nullOr ( + types.submodule { + freeformType = settingsFormat.type; + options = { + PASSWORD = mkOption { + readOnly = true; + description = '' + SMTP Password. Can't be set and has to be provided using + `services.canaille.smtpPasswordFile`. + ''; + default = null; + type = types.nullOr types.str; + }; + }; + } + ); + }; + + }; + CANAILLE_OIDC = mkOption { + default = null; + description = '' + OpenID Connect settings. See [the documentation](https://canaille.readthedocs.io/en/latest/references/configuration.html#canaille.oidc.configuration.OIDCSettings). + ''; + type = types.nullOr ( + types.submodule { + freeformType = settingsFormat.type; + options = { + JWT.PRIVATE_KEY = mkOption { + readOnly = true; + description = '' + JWT private key. Can't be set and has to be provided using + `services.canaille.jwtPrivateKeyFile`. + ''; + default = null; + type = types.nullOr types.str; + }; + }; + } + ); + }; + CANAILLE_LDAP = mkOption { + default = null; + description = '' + Configuration for the LDAP backend. This storage backend is not + yet supported by the module, so use at your own risk! + ''; + type = types.nullOr ( + types.submodule { + freeformType = settingsFormat.type; + options = { + BIND_PW = mkOption { + readOnly = true; + description = '' + The LDAP bind password. Can't be set and has to be provided using + `services.canaille.ldapBindPasswordFile`. + ''; + default = null; + type = types.nullOr types.str; + }; + }; + } + ); + }; + CANAILLE_SQL = { + DATABASE_URI = mkOption { + description = '' + The SQL server URI. Will configure a local PostgreSQL db if + left to default. Please note that the NixOS module only really + supports PostgreSQL for now. Change at your own risk! + ''; + default = postgresqlHost; + type = types.str; + }; + }; + }; + }; + }; + }; + + config = mkIf cfg.enable { + # We can use some kind of fix point for the config anyways, and + # /etc/canaille is recommended by upstream. The alternative would be to use + # a double wrapped canaille executable, to avoid having to rebuild Canaille + # on every config change. + environment.etc."canaille/config.toml" = { + source = settingsFormat.generate "config.toml" (filterConfig cfg.settings); + user = "canaille"; + group = "canaille"; + }; + + # Secrets management is unfortunately done in a semi stateful way, due to these constraints: + # - Canaille uses Pydantic, which currently only accepts an env file or a single + # directory (SECRETS_DIR) for loading settings from files. + # - The canaille user needs access to secrets, as it needs to run the CLI + # for e.g. user creation. Therefore specifying the SECRETS_DIR as systemd's + # CREDENTIALS_DIRECTORY is not an option. + # + # See this for how Pydantic maps file names/env vars to config settings: + # https://docs.pydantic.dev/latest/concepts/pydantic_settings/#parsing-environment-variable-values + systemd.tmpfiles.rules = + [ + "Z ${secretsDir} 700 canaille canaille - -" + "L+ ${secretsDir}/SECRET_KEY - - - - ${cfg.secretKeyFile}" + ] + ++ optional ( + cfg.smtpPasswordFile != null + ) "L+ ${secretsDir}/CANAILLE_SMTP__PASSWORD - - - - ${cfg.smtpPasswordFile}" + ++ optional ( + cfg.jwtPrivateKeyFile != null + ) "L+ ${secretsDir}/CANAILLE_OIDC__JWT__PRIVATE_KEY - - - - ${cfg.jwtPrivateKeyFile}" + ++ optional ( + cfg.ldapBindPasswordFile != null + ) "L+ ${secretsDir}/CANAILLE_LDAP__BIND_PW - - - - ${cfg.ldapBindPasswordFile}"; + + # This is not a migration, just an initial setup of schemas + systemd.services.canaille-install = { + # We want this on boot, not on socket activation + wantedBy = [ "multi-user.target" ]; + after = optional createLocalPostgresqlDb "postgresql.service"; + serviceConfig = commonServiceConfig // { + Type = "oneshot"; + ExecStart = "${getExe finalPackage} install"; + }; + }; + + systemd.services.canaille = { + description = "Canaille"; + documentation = [ "https://canaille.readthedocs.io/en/latest/tutorial/deployment.html" ]; + after = [ + "network.target" + "canaille-install.service" + ] ++ optional createLocalPostgresqlDb "postgresql.service"; + requires = [ + "canaille-install.service" + "canaille.socket" + ]; + environment = { + PYTHONPATH = "${pythonEnv}/${python.sitePackages}/"; + CONFIG = "/etc/canaille/config.toml"; + SECRETS_DIR = secretsDir; + }; + serviceConfig = commonServiceConfig // { + Restart = "on-failure"; + ExecStart = + let + gunicorn = python.pkgs.gunicorn.overridePythonAttrs (old: { + # Allows Gunicorn to set a meaningful process name + dependencies = (old.dependencies or [ ]) ++ old.optional-dependencies.setproctitle; + }); + in + '' + ${getExe gunicorn} \ + --name=canaille \ + --bind='unix:///run/canaille.socket' \ + 'canaille:create_app()' + ''; + }; + restartTriggers = [ "/etc/canaille/config.toml" ]; + }; + + systemd.sockets.canaille = { + before = [ "nginx.service" ]; + wantedBy = [ "sockets.target" ]; + socketConfig = { + ListenStream = "/run/canaille.socket"; + SocketUser = "canaille"; + SocketGroup = "canaille"; + SocketMode = "770"; + }; + }; + + services.nginx.enable = true; + services.nginx.recommendedGzipSettings = true; + services.nginx.recommendedProxySettings = true; + services.nginx.virtualHosts."${cfg.settings.SERVER_NAME}" = { + forceSSL = true; + enableACME = true; + # Config from https://canaille.readthedocs.io/en/latest/tutorial/deployment.html#nginx + extraConfig = '' + charset utf-8; + client_max_body_size 10M; + + add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always; + add_header X-Frame-Options "SAMEORIGIN" always; + add_header X-XSS-Protection "1; mode=block" always; + add_header X-Content-Type-Options "nosniff" always; + add_header Referrer-Policy "same-origin" always; + ''; + locations = { + "/".proxyPass = "http://unix:///run/canaille.socket"; + "/static" = { + root = "${finalPackage}/${python.sitePackages}/canaille"; + }; + "~* ^/static/.+\\.(?:css|cur|js|jpe?g|gif|htc|ico|png|html|xml|otf|ttf|eot|woff|woff2|svg)$" = { + root = "${finalPackage}/${python.sitePackages}/canaille"; + extraConfig = '' + access_log off; + expires 30d; + more_set_headers Cache-Control public; + ''; + }; + }; + }; + + services.postgresql = mkIf createLocalPostgresqlDb { + enable = true; + ensureUsers = [ + { + name = "canaille"; + ensureDBOwnership = true; + } + ]; + ensureDatabases = [ "canaille" ]; + }; + + users.users.canaille = { + isSystemUser = true; + group = "canaille"; + packages = [ finalPackage ]; + }; + + users.groups.canaille.members = [ config.services.nginx.user ]; + }; + + meta.maintainers = with lib.maintainers; [ erictapen ]; +} diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index b35d5fa7bf7d..14a1439eeae7 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -184,6 +184,7 @@ in { cagebreak = handleTest ./cagebreak.nix {}; calibre-web = handleTest ./calibre-web.nix {}; calibre-server = handleTest ./calibre-server.nix {}; + canaille = handleTest ./canaille.nix {}; castopod = handleTest ./castopod.nix {}; cassandra_3_0 = handleTest ./cassandra.nix { testPackage = pkgs.cassandra_3_0; }; cassandra_3_11 = handleTest ./cassandra.nix { testPackage = pkgs.cassandra_3_11; }; diff --git a/nixos/tests/canaille.nix b/nixos/tests/canaille.nix new file mode 100644 index 000000000000..a085f695fd45 --- /dev/null +++ b/nixos/tests/canaille.nix @@ -0,0 +1,62 @@ +import ./make-test-python.nix ( + { pkgs, ... }: + let + certs = import ./common/acme/server/snakeoil-certs.nix; + inherit (certs) domain; + in + { + name = "canaille"; + meta.maintainers = with pkgs.lib.maintainers; [ erictapen ]; + + nodes.server = + { pkgs, lib, ... }: + { + services.canaille = { + enable = true; + secretKeyFile = pkgs.writeText "canaille-secret-key" '' + this is not a secret key + ''; + settings = { + SERVER_NAME = domain; + }; + }; + + services.nginx.virtualHosts."${domain}" = { + enableACME = lib.mkForce false; + sslCertificate = certs."${domain}".cert; + sslCertificateKey = certs."${domain}".key; + }; + + networking.hosts."::1" = [ "${domain}" ]; + networking.firewall.allowedTCPPorts = [ + 80 + 443 + ]; + + users.users.canaille.shell = pkgs.bashInteractive; + + security.pki.certificateFiles = [ certs.ca.cert ]; + }; + + nodes.client = + { nodes, ... }: + { + networking.hosts."${nodes.server.networking.primaryIPAddress}" = [ "${domain}" ]; + security.pki.certificateFiles = [ certs.ca.cert ]; + }; + + testScript = + { ... }: + '' + import json + + start_all() + server.wait_for_unit("canaille.socket") + server.wait_until_succeeds("curl -f https://${domain}") + server.succeed("sudo -iu canaille -- canaille create user --user-name admin --password adminpass --emails admin@${domain}") + json_str = server.succeed("sudo -iu canaille -- canaille get user") + assert json.loads(json_str)[0]["user_name"] == "admin" + server.succeed("sudo -iu canaille -- canaille check") + ''; + } +) From 04d5b525759d3cbe06bef54c668fe935c8b26ea9 Mon Sep 17 00:00:00 2001 From: Leona Maroni Date: Thu, 21 Nov 2024 21:34:56 +0100 Subject: [PATCH 54/55] vikunja: 0.24.4 -> 0.24.5 https://vikunja.io/changelog/vikunja-v0.24.5-was-released --- pkgs/by-name/vi/vikunja/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/vi/vikunja/package.nix b/pkgs/by-name/vi/vikunja/package.nix index 150b1abc8fb9..939b8e32f9dc 100644 --- a/pkgs/by-name/vi/vikunja/package.nix +++ b/pkgs/by-name/vi/vikunja/package.nix @@ -1,12 +1,12 @@ { lib, fetchFromGitHub, stdenv, nodejs, pnpm, buildGoModule, mage, writeShellScriptBin, nixosTests }: let - version = "0.24.4"; + version = "0.24.5"; src = fetchFromGitHub { owner = "go-vikunja"; repo = "vikunja"; rev = "v${version}"; - hash = "sha256-h3Jz28HYQYZC+oWGXNeKv2iNsrU0gbBRfWgOvuKijtw="; + hash = "sha256-P5H+NfjE8wTmPD1VOI72hPi2DlDb4pCyq0nphK1VGK0="; }; frontend = stdenv.mkDerivation (finalAttrs: { @@ -67,7 +67,7 @@ buildGoModule { in [ fakeGit mage ]; - vendorHash = "sha256-d2BNzsBeWlpZGbU7PkXWO5e9FLJA/Wda5ImXwqh/WV4="; + vendorHash = "sha256-OsKejno8QGg7HzRsrftngiWGiWHFc1jDLi5mQ9/NjI4="; inherit frontend; From 02652438fcbeb637cf834389f425cb436dbe98b0 Mon Sep 17 00:00:00 2001 From: matthewcroughan Date: Fri, 13 Sep 2024 17:26:37 +0100 Subject: [PATCH 55/55] python3Packages.keke: init at 0.1.4 Signed-off-by: Sefa Eyeoglu --- .../python-modules/keke/default.nix | 41 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 43 insertions(+) create mode 100644 pkgs/development/python-modules/keke/default.nix diff --git a/pkgs/development/python-modules/keke/default.nix b/pkgs/development/python-modules/keke/default.nix new file mode 100644 index 000000000000..d6fdb3549d80 --- /dev/null +++ b/pkgs/development/python-modules/keke/default.nix @@ -0,0 +1,41 @@ +{ + lib, + buildPythonPackage, + fetchPypi, + setuptools, + wheel, + setuptools-scm, +}: + +buildPythonPackage rec { + pname = "keke"; + version = "0.1.4"; + pyproject = true; + + src = fetchPypi { + inherit pname version; + hash = "sha256-qGU7fZk23a4I0eosKY5eNqUOs3lwXj90qwix9q44MaA="; + }; + + installCheckPhase = '' + python -m keke.tests + ''; + + nativeBuildInputs = [ setuptools-scm ]; + + build-system = [ + setuptools + wheel + ]; + + pythonImportsCheck = [ + "keke" + ]; + + meta = { + description = "Easy profiling in chrome trace format"; + homepage = "https://pypi.org/project/keke/"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ matthewcroughan ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index fb1c6cdddf59..e9d1de83773f 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -6674,6 +6674,8 @@ self: super: with self; { kegtron-ble = callPackage ../development/python-modules/kegtron-ble { }; + keke = callPackage ../development/python-modules/keke { }; + keras-applications = callPackage ../development/python-modules/keras-applications { }; keras = callPackage ../development/python-modules/keras { };