diff --git a/ci/OWNERS b/ci/OWNERS index 45cd1a2b621a..dd952ddeebb4 100644 --- a/ci/OWNERS +++ b/ci/OWNERS @@ -395,12 +395,6 @@ pkgs/by-name/fo/forgejo/ @adamcstephens @bendlas @emilylange /pkgs/development/compilers/ocaml @ulrikstrid /pkgs/development/ocaml-modules @ulrikstrid -# ZFS -pkgs/os-specific/linux/zfs/2_1.nix @raitobezarius -pkgs/os-specific/linux/zfs/generic.nix @raitobezarius -nixos/modules/tasks/filesystems/zfs.nix @raitobezarius -nixos/tests/zfs.nix @raitobezarius - # Zig /pkgs/development/compilers/zig @figsoda /doc/hooks/zig.section.md @figsoda diff --git a/doc/build-helpers/special/fhs-environments.section.md b/doc/build-helpers/special/fhs-environments.section.md index b87bb9727857..815f6cac1126 100644 --- a/doc/build-helpers/special/fhs-environments.section.md +++ b/doc/build-helpers/special/fhs-environments.section.md @@ -6,11 +6,13 @@ It uses Linux' namespaces feature to create temporary lightweight environments w Accepted arguments are: - `name` - The name of the environment, and the wrapper executable if `pname` is unset. + The name of the environment. - `pname` - The pname of the environment and the wrapper executable. + The pname of the environment. - `version` The version of the environment. +- `executableName` + The name of the wrapper executable. Defaults to `pname` if set, or `name` otherwise. - `targetPkgs` Packages to be installed for the main host's architecture (i.e. x86_64 on x86_64 installations). Along with libraries binaries are also installed. - `multiPkgs` diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 8eb805087068..19181a547faa 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -19461,6 +19461,12 @@ githubId = 807447; name = "Robert Scott"; }; + Rishik-Y = { + name = "Rishik Yalamanchili"; + email = "202301258@daiict.ac.in"; + github = "Rishik-Y"; + githubId = 73787402; + }; risson = { name = "Marc Schmitt"; email = "marc.schmitt@risson.space"; diff --git a/nixos/README.md b/nixos/README.md index 7838790ef551..8e6d44410ef3 100644 --- a/nixos/README.md +++ b/nixos/README.md @@ -84,6 +84,9 @@ Reviewing process: - Ensure that the introduced options are correct. - Type should be appropriate (string related types differs in their merging capabilities, `loaOf` and `string` types are deprecated). - Description, default and example should be provided. + - Defaults may only be omitted if both: + 1. The user is required to set the default in order to properly use the service. + 2. The lack of a default does not break evaluation when the module is not enabled. - Ensure that module `meta` field is present - Maintainers should be declared in `meta.maintainers`. - Module documentation should be declared with `meta.doc`. diff --git a/nixos/lib/make-options-doc/default.nix b/nixos/lib/make-options-doc/default.nix index a6ff4be92c80..ea24c4004e55 100644 --- a/nixos/lib/make-options-doc/default.nix +++ b/nixos/lib/make-options-doc/default.nix @@ -1,3 +1,5 @@ +# Tests: ./tests.nix + /** Generates documentation for [nix modules](https://nix.dev/tutorials/module-system/index.html). @@ -193,12 +195,16 @@ rec { optionsCommonMark = pkgs.runCommand "options.md" { + __structuredAttrs = true; nativeBuildInputs = [ pkgs.nixos-render-docs ]; + # For overriding + extraArgs = [ ]; } '' nixos-render-docs -j $NIX_BUILD_CORES options commonmark \ --manpage-urls ${pkgs.path + "/doc/manpage-urls.json"} \ --revision ${lib.escapeShellArg revision} \ + ''${extraArgs[@]} \ ${optionsJSON}/share/doc/nixos/options.json \ $out ''; diff --git a/nixos/lib/make-options-doc/tests.nix b/nixos/lib/make-options-doc/tests.nix new file mode 100644 index 000000000000..795c0ff4fe00 --- /dev/null +++ b/nixos/lib/make-options-doc/tests.nix @@ -0,0 +1,59 @@ +# Run tests: nix-build -A tests.nixosOptionsDoc + +{ + lib, + nixosOptionsDoc, + runCommand, +}: +let + inherit (lib) mkOption types; + + eval = lib.evalModules { + modules = [ + { + options.foo.bar.enable = mkOption { + type = types.bool; + default = false; + description = '' + Enable the foo bar feature. + ''; + }; + } + ]; + }; + + doc = nixosOptionsDoc { + inherit (eval) options; + }; +in +{ + /** + Test that + - the `nixosOptionsDoc` function can be invoked + - integration of the module system and `nixosOptionsDoc` (limited coverage) + + The more interesting tests happen in the `nixos-render-docs` package. + */ + commonMark = + runCommand "test-nixosOptionsDoc-commonMark" + { + commonMarkDefault = doc.optionsCommonMark; + commonMarkAnchors = doc.optionsCommonMark.overrideAttrs { + extraArgs = [ + "--anchor-prefix" + "my-opt-" + "--anchor-style" + "legacy" + ]; + }; + } + '' + env | grep ^commonMark | sed -e 's/=/ = /' + ( + set -x + grep -F 'foo\.bar\.enable' $commonMarkDefault >/dev/null + grep -F '{#my-opt-foo.bar.enable}' $commonMarkAnchors >/dev/null + ) + touch $out + ''; +} diff --git a/nixos/tests/zfs.nix b/nixos/tests/zfs.nix index 13db2c8e06be..df9593e0db66 100644 --- a/nixos/tests/zfs.nix +++ b/nixos/tests/zfs.nix @@ -191,14 +191,13 @@ let in { - # maintainer: @raitobezarius - series_2_1 = makeZfsTest { - zfsPackage = pkgs.zfs_2_1; + series_2_2 = makeZfsTest { + zfsPackage = pkgs.zfs_2_2; kernelPackages = pkgs.linuxPackages; }; - series_2_2 = makeZfsTest { - zfsPackage = pkgs.zfs_2_2; + series_2_3 = makeZfsTest { + zfsPackage = pkgs.zfs_2_3; kernelPackages = pkgs.linuxPackages; }; diff --git a/pkgs/applications/audio/ladspa-plugins/default.nix b/pkgs/applications/audio/ladspa-plugins/default.nix index 2548696fb9a5..9032f34d5a32 100644 --- a/pkgs/applications/audio/ladspa-plugins/default.nix +++ b/pkgs/applications/audio/ladspa-plugins/default.nix @@ -3,6 +3,7 @@ stdenv, fetchFromGitHub, autoreconfHook, + automake, fftw, ladspaH, libxml2, @@ -21,8 +22,19 @@ stdenv.mkDerivation rec { sha256 = "sha256-eOtIhNcuItREUShI8JRlBVKfMfovpdfIYu+m37v4KLE="; }; + preBuild = '' + shopt -s globstar + for f in **/Makefile; do + substituteInPlace "$f" \ + --replace-quiet 'ranlib' '${stdenv.cc.targetPrefix}ranlib' + done + shopt -u globstar + ''; + nativeBuildInputs = [ autoreconfHook + perlPackages.perl + perlPackages.XMLParser pkg-config perlPackages.perl perlPackages.XMLParser @@ -34,10 +46,8 @@ stdenv.mkDerivation rec { ]; postPatch = '' - patchShebangs . - substituteInPlace util/Makefile.am --replace-fail "ranlib" "$RANLIB" - substituteInPlace gsm/Makefile.am --replace-fail "ranlib" "$RANLIB" - substituteInPlace gverb/Makefile.am --replace-fail "ranlib" "$RANLIB" + patchShebangs --build . ./metadata/ makestub.pl + cp ${automake}/share/automake-*/mkinstalldirs . ''; meta = with lib; { diff --git a/pkgs/applications/misc/rofi/wayland.nix b/pkgs/applications/misc/rofi/wayland.nix index 56e23ffb7c52..c79ec6debc8f 100644 --- a/pkgs/applications/misc/rofi/wayland.nix +++ b/pkgs/applications/misc/rofi/wayland.nix @@ -1,7 +1,6 @@ { lib, fetchFromGitHub, - fetchpatch, rofi-unwrapped, wayland-scanner, pkg-config, @@ -11,26 +10,16 @@ rofi-unwrapped.overrideAttrs (oldAttrs: rec { pname = "rofi-wayland-unwrapped"; - version = "1.7.5+wayland3"; + version = "1.7.7+wayland1"; src = fetchFromGitHub { owner = "lbonn"; repo = "rofi"; rev = version; fetchSubmodules = true; - hash = "sha256-pKxraG3fhBh53m+bLPzCigRr6dBcH/A9vbdf67CO2d8="; + hash = "sha256-wGBB7h2gZRQNmHV0NIbD0vvHtKZqnT5hd2gz5smKGoU="; }; - patches = [ - # Fix use on niri window manager - # ref. https://github.com/davatorium/rofi/discussions/2008 - # this was merged upstream, and can be removed on next release - (fetchpatch { - url = "https://github.com/lbonn/rofi/commit/55425f72ff913eb72f5ba5f5d422b905d87577d0.patch"; - hash = "sha256-vTUxtJs4SuyPk0PgnGlDIe/GVm/w1qZirEhKdBp4bHI="; - }) - ]; - depsBuildBuild = oldAttrs.depsBuildBuild ++ [ pkg-config ]; nativeBuildInputs = oldAttrs.nativeBuildInputs ++ [ wayland-protocols diff --git a/pkgs/applications/networking/browsers/firefox/packages/firefox-devedition.nix b/pkgs/applications/networking/browsers/firefox/packages/firefox-devedition.nix index bb2b934aef75..e9386bf99c6c 100644 --- a/pkgs/applications/networking/browsers/firefox/packages/firefox-devedition.nix +++ b/pkgs/applications/networking/browsers/firefox/packages/firefox-devedition.nix @@ -9,13 +9,13 @@ buildMozillaMach rec { pname = "firefox-devedition"; - version = "133.0b1"; + version = "135.0b4"; applicationName = "Mozilla Firefox Developer Edition"; requireSigning = false; branding = "browser/branding/aurora"; src = fetchurl { url = "mirror://mozilla/devedition/releases/${version}/source/firefox-${version}.source.tar.xz"; - sha512 = "dced4aba71b07b68ee31c283945e7d62a7032f08f5cf71aa261fc7ba32f58277acbe9fdbdd28777d7f4b824e411815b069cab0ce791438088c9ad19c3d2de62e"; + sha512 = "d3ee20d264c4c26308b814f4cc997349a6df32da17b9a29514b0504f7548606f4b6793ccd2e7464babf6588f13bfcc0e0641f9ac8d620f7da7d7e45684fdf775"; }; meta = { diff --git a/pkgs/applications/networking/sync/rsync/CVE-2024-12084/0001-Some-checksum-buffer-fixes.patch b/pkgs/applications/networking/sync/rsync/CVE-2024-12084/0001-Some-checksum-buffer-fixes.patch new file mode 100644 index 000000000000..e5ba8ddc6f79 --- /dev/null +++ b/pkgs/applications/networking/sync/rsync/CVE-2024-12084/0001-Some-checksum-buffer-fixes.patch @@ -0,0 +1,151 @@ +From 0902b52f6687b1f7952422080d50b93108742e53 Mon Sep 17 00:00:00 2001 +From: Wayne Davison +Date: Tue, 29 Oct 2024 22:55:29 -0700 +Subject: [PATCH 1/2] Some checksum buffer fixes. + +- Put sum2_array into sum_struct to hold an array of sum2 checksums + that are each xfer_sum_len bytes. +- Remove sum2 buf from sum_buf. +- Add macro sum2_at() to access each sum2 array element. +- Throw an error if a sums header has an s2length larger than + xfer_sum_len. +--- + io.c | 3 ++- + match.c | 8 ++++---- + rsync.c | 5 ++++- + rsync.h | 4 +++- + sender.c | 4 +++- + 5 files changed, 16 insertions(+), 8 deletions(-) + +diff --git a/io.c b/io.c +index a99ac0ec..bb60eeca 100644 +--- a/io.c ++++ b/io.c +@@ -55,6 +55,7 @@ extern int read_batch; + extern int compat_flags; + extern int protect_args; + extern int checksum_seed; ++extern int xfer_sum_len; + extern int daemon_connection; + extern int protocol_version; + extern int remove_source_files; +@@ -1977,7 +1978,7 @@ void read_sum_head(int f, struct sum_struct *sum) + exit_cleanup(RERR_PROTOCOL); + } + sum->s2length = protocol_version < 27 ? csum_length : (int)read_int(f); +- if (sum->s2length < 0 || sum->s2length > MAX_DIGEST_LEN) { ++ if (sum->s2length < 0 || sum->s2length > xfer_sum_len) { + rprintf(FERROR, "Invalid checksum length %d [%s]\n", + sum->s2length, who_am_i()); + exit_cleanup(RERR_PROTOCOL); +diff --git a/match.c b/match.c +index cdb30a15..36e78ed2 100644 +--- a/match.c ++++ b/match.c +@@ -232,7 +232,7 @@ static void hash_search(int f,struct sum_struct *s, + done_csum2 = 1; + } + +- if (memcmp(sum2,s->sums[i].sum2,s->s2length) != 0) { ++ if (memcmp(sum2, sum2_at(s, i), s->s2length) != 0) { + false_alarms++; + continue; + } +@@ -252,7 +252,7 @@ static void hash_search(int f,struct sum_struct *s, + if (i != aligned_i) { + if (sum != s->sums[aligned_i].sum1 + || l != s->sums[aligned_i].len +- || memcmp(sum2, s->sums[aligned_i].sum2, s->s2length) != 0) ++ || memcmp(sum2, sum2_at(s, aligned_i), s->s2length) != 0) + goto check_want_i; + i = aligned_i; + } +@@ -271,7 +271,7 @@ static void hash_search(int f,struct sum_struct *s, + if (sum != s->sums[i].sum1) + goto check_want_i; + get_checksum2((char *)map, l, sum2); +- if (memcmp(sum2, s->sums[i].sum2, s->s2length) != 0) ++ if (memcmp(sum2, sum2_at(s, i), s->s2length) != 0) + goto check_want_i; + /* OK, we have a re-alignment match. Bump the offset + * forward to the new match point. */ +@@ -290,7 +290,7 @@ static void hash_search(int f,struct sum_struct *s, + && (!updating_basis_file || s->sums[want_i].offset >= offset + || s->sums[want_i].flags & SUMFLG_SAME_OFFSET) + && sum == s->sums[want_i].sum1 +- && memcmp(sum2, s->sums[want_i].sum2, s->s2length) == 0) { ++ && memcmp(sum2, sum2_at(s, want_i), s->s2length) == 0) { + /* we've found an adjacent match - the RLL coder + * will be happy */ + i = want_i; +diff --git a/rsync.c b/rsync.c +index cd288f57..b130aba5 100644 +--- a/rsync.c ++++ b/rsync.c +@@ -437,7 +437,10 @@ int read_ndx_and_attrs(int f_in, int f_out, int *iflag_ptr, uchar *type_ptr, cha + */ + void free_sums(struct sum_struct *s) + { +- if (s->sums) free(s->sums); ++ if (s->sums) { ++ free(s->sums); ++ free(s->sum2_array); ++ } + free(s); + } + +diff --git a/rsync.h b/rsync.h +index d3709fe0..8ddbe702 100644 +--- a/rsync.h ++++ b/rsync.h +@@ -958,12 +958,12 @@ struct sum_buf { + uint32 sum1; /**< simple checksum */ + int32 chain; /**< next hash-table collision */ + short flags; /**< flag bits */ +- char sum2[SUM_LENGTH]; /**< checksum */ + }; + + struct sum_struct { + OFF_T flength; /**< total file length */ + struct sum_buf *sums; /**< points to info for each chunk */ ++ char *sum2_array; /**< checksums of length xfer_sum_len */ + int32 count; /**< how many chunks */ + int32 blength; /**< block_length */ + int32 remainder; /**< flength % block_length */ +@@ -982,6 +982,8 @@ struct map_struct { + int status; /* first errno from read errors */ + }; + ++#define sum2_at(s, i) ((s)->sum2_array + ((OFF_T)(i) * xfer_sum_len)) ++ + #define NAME_IS_FILE (0) /* filter name as a file */ + #define NAME_IS_DIR (1<<0) /* filter name as a dir */ + #define NAME_IS_XATTR (1<<2) /* filter name as an xattr */ +diff --git a/sender.c b/sender.c +index 3d4f052e..ab205341 100644 +--- a/sender.c ++++ b/sender.c +@@ -31,6 +31,7 @@ extern int log_before_transfer; + extern int stdout_format_has_i; + extern int logfile_format_has_i; + extern int want_xattr_optim; ++extern int xfer_sum_len; + extern int csum_length; + extern int append_mode; + extern int copy_links; +@@ -94,10 +95,11 @@ static struct sum_struct *receive_sums(int f) + return(s); + + s->sums = new_array(struct sum_buf, s->count); ++ s->sum2_array = new_array(char, s->count * xfer_sum_len); + + for (i = 0; i < s->count; i++) { + s->sums[i].sum1 = read_int(f); +- read_buf(f, s->sums[i].sum2, s->s2length); ++ read_buf(f, sum2_at(s, i), s->s2length); + + s->sums[i].offset = offset; + s->sums[i].flags = 0; +-- +2.34.1 + diff --git a/pkgs/applications/networking/sync/rsync/CVE-2024-12084/0002-Another-cast-when-multiplying-integers.patch b/pkgs/applications/networking/sync/rsync/CVE-2024-12084/0002-Another-cast-when-multiplying-integers.patch new file mode 100644 index 000000000000..5a21d71b292e --- /dev/null +++ b/pkgs/applications/networking/sync/rsync/CVE-2024-12084/0002-Another-cast-when-multiplying-integers.patch @@ -0,0 +1,39 @@ +From 42e2b56c4ede3ab164f9a5c6dae02aa84606a6c1 Mon Sep 17 00:00:00 2001 +From: Wayne Davison +Date: Tue, 5 Nov 2024 11:01:03 -0800 +Subject: [PATCH 2/2] Another cast when multiplying integers. + +--- + rsync.h | 2 +- + sender.c | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/rsync.h b/rsync.h +index 8ddbe702..0f9e277f 100644 +--- a/rsync.h ++++ b/rsync.h +@@ -982,7 +982,7 @@ struct map_struct { + int status; /* first errno from read errors */ + }; + +-#define sum2_at(s, i) ((s)->sum2_array + ((OFF_T)(i) * xfer_sum_len)) ++#define sum2_at(s, i) ((s)->sum2_array + ((size_t)(i) * xfer_sum_len)) + + #define NAME_IS_FILE (0) /* filter name as a file */ + #define NAME_IS_DIR (1<<0) /* filter name as a dir */ +diff --git a/sender.c b/sender.c +index ab205341..2bbff2fa 100644 +--- a/sender.c ++++ b/sender.c +@@ -95,7 +95,7 @@ static struct sum_struct *receive_sums(int f) + return(s); + + s->sums = new_array(struct sum_buf, s->count); +- s->sum2_array = new_array(char, s->count * xfer_sum_len); ++ s->sum2_array = new_array(char, (size_t)s->count * xfer_sum_len); + + for (i = 0; i < s->count; i++) { + s->sums[i].sum1 = read_int(f); +-- +2.34.1 + diff --git a/pkgs/applications/networking/sync/rsync/CVE-2024-12085/0001-prevent-information-leak-off-the-stack.patch b/pkgs/applications/networking/sync/rsync/CVE-2024-12085/0001-prevent-information-leak-off-the-stack.patch new file mode 100644 index 000000000000..7356fb6cb022 --- /dev/null +++ b/pkgs/applications/networking/sync/rsync/CVE-2024-12085/0001-prevent-information-leak-off-the-stack.patch @@ -0,0 +1,27 @@ +From cf620065502f065d4ea44f5df4f81295a738aa21 Mon Sep 17 00:00:00 2001 +From: Andrew Tridgell +Date: Thu, 14 Nov 2024 09:57:08 +1100 +Subject: [PATCH] prevent information leak off the stack + +prevent leak of uninitialised stack data in hash_search +--- + match.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/match.c b/match.c +index 36e78ed2..dfd6af2c 100644 +--- a/match.c ++++ b/match.c +@@ -147,6 +147,9 @@ static void hash_search(int f,struct sum_struct *s, + int more; + schar *map; + ++ // prevent possible memory leaks ++ memset(sum2, 0, sizeof sum2); ++ + /* want_i is used to encourage adjacent matches, allowing the RLL + * coding of the output to work more efficiently. */ + want_i = 0; +-- +2.34.1 + diff --git a/pkgs/applications/networking/sync/rsync/CVE-2024-12086/0001-refuse-fuzzy-options-when-fuzzy-not-selected.patch b/pkgs/applications/networking/sync/rsync/CVE-2024-12086/0001-refuse-fuzzy-options-when-fuzzy-not-selected.patch new file mode 100644 index 000000000000..f409b1aa7ec7 --- /dev/null +++ b/pkgs/applications/networking/sync/rsync/CVE-2024-12086/0001-refuse-fuzzy-options-when-fuzzy-not-selected.patch @@ -0,0 +1,37 @@ +From 3feb8669d875d03c9ceb82e208ef40ddda8eb908 Mon Sep 17 00:00:00 2001 +From: Andrew Tridgell +Date: Sat, 23 Nov 2024 11:08:03 +1100 +Subject: [PATCH 1/4] refuse fuzzy options when fuzzy not selected + +this prevents a malicious server providing a file to compare to when +the user has not given the fuzzy option +--- + receiver.c | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/receiver.c b/receiver.c +index 6b4b369e..2d7f6033 100644 +--- a/receiver.c ++++ b/receiver.c +@@ -66,6 +66,7 @@ extern char sender_file_sum[MAX_DIGEST_LEN]; + extern struct file_list *cur_flist, *first_flist, *dir_flist; + extern filter_rule_list daemon_filter_list; + extern OFF_T preallocated_len; ++extern int fuzzy_basis; + + extern struct name_num_item *xfer_sum_nni; + extern int xfer_sum_len; +@@ -716,6 +717,10 @@ int recv_files(int f_in, int f_out, char *local_name) + fnamecmp = get_backup_name(fname); + break; + case FNAMECMP_FUZZY: ++ if (fuzzy_basis == 0) { ++ rprintf(FERROR_XFER, "rsync: refusing malicious fuzzy operation for %s\n", xname); ++ exit_cleanup(RERR_PROTOCOL); ++ } + if (file->dirname) { + pathjoin(fnamecmpbuf, sizeof fnamecmpbuf, file->dirname, xname); + fnamecmp = fnamecmpbuf; +-- +2.34.1 + diff --git a/pkgs/applications/networking/sync/rsync/CVE-2024-12086/0002-added-secure_relative_open.patch b/pkgs/applications/networking/sync/rsync/CVE-2024-12086/0002-added-secure_relative_open.patch new file mode 100644 index 000000000000..719c6f1a7cff --- /dev/null +++ b/pkgs/applications/networking/sync/rsync/CVE-2024-12086/0002-added-secure_relative_open.patch @@ -0,0 +1,103 @@ +From 33385aefe4773e7a3982d41995681eb079c92d12 Mon Sep 17 00:00:00 2001 +From: Andrew Tridgell +Date: Sat, 23 Nov 2024 12:26:10 +1100 +Subject: [PATCH 2/4] added secure_relative_open() + +this is an open that enforces no symlink following for all path +components in a relative path +--- + syscall.c | 74 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 74 insertions(+) + +diff --git a/syscall.c b/syscall.c +index d92074aa..a4b7f542 100644 +--- a/syscall.c ++++ b/syscall.c +@@ -33,6 +33,8 @@ + #include + #endif + ++#include "ifuncs.h" ++ + extern int dry_run; + extern int am_root; + extern int am_sender; +@@ -712,3 +714,75 @@ int do_open_nofollow(const char *pathname, int flags) + + return fd; + } ++ ++/* ++ open a file relative to a base directory. The basedir can be NULL, ++ in which case the current working directory is used. The relpath ++ must be a relative path, and the relpath must not contain any ++ elements in the path which follow symlinks (ie. like O_NOFOLLOW, but ++ applies to all path components, not just the last component) ++*/ ++int secure_relative_open(const char *basedir, const char *relpath, int flags, mode_t mode) ++{ ++ if (!relpath || relpath[0] == '/') { ++ // must be a relative path ++ errno = EINVAL; ++ return -1; ++ } ++ ++#if !defined(O_NOFOLLOW) || !defined(O_DIRECTORY) ++ // really old system, all we can do is live with the risks ++ if (!basedir) { ++ return open(relpath, flags, mode); ++ } ++ char fullpath[MAXPATHLEN]; ++ pathjoin(fullpath, sizeof fullpath, basedir, relpath); ++ return open(fullpath, flags, mode); ++#else ++ int dirfd = AT_FDCWD; ++ if (basedir != NULL) { ++ dirfd = openat(AT_FDCWD, basedir, O_RDONLY | O_DIRECTORY); ++ if (dirfd == -1) { ++ return -1; ++ } ++ } ++ int retfd = -1; ++ ++ char *path_copy = my_strdup(relpath, __FILE__, __LINE__); ++ if (!path_copy) { ++ return -1; ++ } ++ ++ for (const char *part = strtok(path_copy, "/"); ++ part != NULL; ++ part = strtok(NULL, "/")) ++ { ++ int next_fd = openat(dirfd, part, O_RDONLY | O_DIRECTORY | O_NOFOLLOW); ++ if (next_fd == -1 && errno == ENOTDIR) { ++ if (strtok(NULL, "/") != NULL) { ++ // this is not the last component of the path ++ errno = ELOOP; ++ goto cleanup; ++ } ++ // this could be the last component of the path, try as a file ++ retfd = openat(dirfd, part, flags | O_NOFOLLOW, mode); ++ goto cleanup; ++ } ++ if (next_fd == -1) { ++ goto cleanup; ++ } ++ if (dirfd != AT_FDCWD) close(dirfd); ++ dirfd = next_fd; ++ } ++ ++ // the path must be a directory ++ errno = EINVAL; ++ ++cleanup: ++ free(path_copy); ++ if (dirfd != AT_FDCWD) { ++ close(dirfd); ++ } ++ return retfd; ++#endif // O_NOFOLLOW, O_DIRECTORY ++} +-- +2.34.1 + diff --git a/pkgs/applications/networking/sync/rsync/CVE-2024-12086/0003-receiver-use-secure_relative_open-for-basis-file.patch b/pkgs/applications/networking/sync/rsync/CVE-2024-12086/0003-receiver-use-secure_relative_open-for-basis-file.patch new file mode 100644 index 000000000000..4be6391648df --- /dev/null +++ b/pkgs/applications/networking/sync/rsync/CVE-2024-12086/0003-receiver-use-secure_relative_open-for-basis-file.patch @@ -0,0 +1,103 @@ +From e59ef9939d3f0ccc8f9bab51442989a81be0c914 Mon Sep 17 00:00:00 2001 +From: Andrew Tridgell +Date: Sat, 23 Nov 2024 12:28:13 +1100 +Subject: [PATCH 3/4] receiver: use secure_relative_open() for basis file + +this prevents attacks where the basis file is manipulated by a +malicious sender to gain information about files outside the +destination tree +--- + receiver.c | 42 ++++++++++++++++++++++++++---------------- + 1 file changed, 26 insertions(+), 16 deletions(-) + +diff --git a/receiver.c b/receiver.c +index 2d7f6033..8031b8f4 100644 +--- a/receiver.c ++++ b/receiver.c +@@ -552,6 +552,8 @@ int recv_files(int f_in, int f_out, char *local_name) + progress_init(); + + while (1) { ++ const char *basedir = NULL; ++ + cleanup_disable(); + + /* This call also sets cur_flist. */ +@@ -722,27 +724,29 @@ int recv_files(int f_in, int f_out, char *local_name) + exit_cleanup(RERR_PROTOCOL); + } + if (file->dirname) { +- pathjoin(fnamecmpbuf, sizeof fnamecmpbuf, file->dirname, xname); +- fnamecmp = fnamecmpbuf; +- } else +- fnamecmp = xname; ++ basedir = file->dirname; ++ } ++ fnamecmp = xname; + break; + default: + if (fnamecmp_type > FNAMECMP_FUZZY && fnamecmp_type-FNAMECMP_FUZZY <= basis_dir_cnt) { + fnamecmp_type -= FNAMECMP_FUZZY + 1; + if (file->dirname) { +- stringjoin(fnamecmpbuf, sizeof fnamecmpbuf, +- basis_dir[fnamecmp_type], "/", file->dirname, "/", xname, NULL); +- } else +- pathjoin(fnamecmpbuf, sizeof fnamecmpbuf, basis_dir[fnamecmp_type], xname); ++ pathjoin(fnamecmpbuf, sizeof fnamecmpbuf, basis_dir[fnamecmp_type], file->dirname); ++ basedir = fnamecmpbuf; ++ } else { ++ basedir = basis_dir[fnamecmp_type]; ++ } ++ fnamecmp = xname; + } else if (fnamecmp_type >= basis_dir_cnt) { + rprintf(FERROR, + "invalid basis_dir index: %d.\n", + fnamecmp_type); + exit_cleanup(RERR_PROTOCOL); +- } else +- pathjoin(fnamecmpbuf, sizeof fnamecmpbuf, basis_dir[fnamecmp_type], fname); +- fnamecmp = fnamecmpbuf; ++ } else { ++ basedir = basis_dir[fnamecmp_type]; ++ fnamecmp = fname; ++ } + break; + } + if (!fnamecmp || (daemon_filter_list.head +@@ -765,7 +769,7 @@ int recv_files(int f_in, int f_out, char *local_name) + } + + /* open the file */ +- fd1 = do_open(fnamecmp, O_RDONLY, 0); ++ fd1 = secure_relative_open(basedir, fnamecmp, O_RDONLY, 0); + + if (fd1 == -1 && protocol_version < 29) { + if (fnamecmp != fname) { +@@ -776,14 +780,20 @@ int recv_files(int f_in, int f_out, char *local_name) + + if (fd1 == -1 && basis_dir[0]) { + /* pre-29 allowed only one alternate basis */ +- pathjoin(fnamecmpbuf, sizeof fnamecmpbuf, +- basis_dir[0], fname); +- fnamecmp = fnamecmpbuf; ++ basedir = basis_dir[0]; ++ fnamecmp = fname; + fnamecmp_type = FNAMECMP_BASIS_DIR_LOW; +- fd1 = do_open(fnamecmp, O_RDONLY, 0); ++ fd1 = secure_relative_open(basedir, fnamecmp, O_RDONLY, 0); + } + } + ++ if (basedir) { ++ // for the following code we need the full ++ // path name as a single string ++ pathjoin(fnamecmpbuf, sizeof fnamecmpbuf, basedir, fnamecmp); ++ fnamecmp = fnamecmpbuf; ++ } ++ + one_inplace = inplace_partial && fnamecmp_type == FNAMECMP_PARTIAL_DIR; + updating_basis_or_equiv = one_inplace + || (inplace && (fnamecmp == fname || fnamecmp_type == FNAMECMP_BACKUP)); +-- +2.34.1 + diff --git a/pkgs/applications/networking/sync/rsync/CVE-2024-12086/0004-disallow-.-elements-in-relpath-for-secure_relative_o.patch b/pkgs/applications/networking/sync/rsync/CVE-2024-12086/0004-disallow-.-elements-in-relpath-for-secure_relative_o.patch new file mode 100644 index 000000000000..74a16e79a16a --- /dev/null +++ b/pkgs/applications/networking/sync/rsync/CVE-2024-12086/0004-disallow-.-elements-in-relpath-for-secure_relative_o.patch @@ -0,0 +1,37 @@ +From c78e53edb802d04f7e4e070fe8314f2544749e7a Mon Sep 17 00:00:00 2001 +From: Andrew Tridgell +Date: Tue, 26 Nov 2024 09:16:31 +1100 +Subject: [PATCH 4/4] disallow ../ elements in relpath for secure_relative_open + +--- + syscall.c | 7 +++++++ + 1 file changed, 7 insertions(+) + +diff --git a/syscall.c b/syscall.c +index a4b7f542..47c5ea57 100644 +--- a/syscall.c ++++ b/syscall.c +@@ -721,6 +721,8 @@ int do_open_nofollow(const char *pathname, int flags) + must be a relative path, and the relpath must not contain any + elements in the path which follow symlinks (ie. like O_NOFOLLOW, but + applies to all path components, not just the last component) ++ ++ The relpath must also not contain any ../ elements in the path + */ + int secure_relative_open(const char *basedir, const char *relpath, int flags, mode_t mode) + { +@@ -729,6 +731,11 @@ int secure_relative_open(const char *basedir, const char *relpath, int flags, mo + errno = EINVAL; + return -1; + } ++ if (strncmp(relpath, "../", 3) == 0 || strstr(relpath, "/../")) { ++ // no ../ elements allowed in the relpath ++ errno = EINVAL; ++ return -1; ++ } + + #if !defined(O_NOFOLLOW) || !defined(O_DIRECTORY) + // really old system, all we can do is live with the risks +-- +2.34.1 + diff --git a/pkgs/applications/networking/sync/rsync/CVE-2024-12087/0001-Refuse-a-duplicate-dirlist.patch b/pkgs/applications/networking/sync/rsync/CVE-2024-12087/0001-Refuse-a-duplicate-dirlist.patch new file mode 100644 index 000000000000..99ebc15bd458 --- /dev/null +++ b/pkgs/applications/networking/sync/rsync/CVE-2024-12087/0001-Refuse-a-duplicate-dirlist.patch @@ -0,0 +1,45 @@ +From 0ebc19ee486a8e928a68d8f98d07d40f176770aa Mon Sep 17 00:00:00 2001 +From: Wayne Davison +Date: Thu, 14 Nov 2024 15:46:50 -0800 +Subject: [PATCH 1/2] Refuse a duplicate dirlist. + +--- + flist.c | 9 +++++++++ + rsync.h | 1 + + 2 files changed, 10 insertions(+) + +diff --git a/flist.c b/flist.c +index 464d556e..847b1054 100644 +--- a/flist.c ++++ b/flist.c +@@ -2584,6 +2584,15 @@ struct file_list *recv_file_list(int f, int dir_ndx) + init_hard_links(); + #endif + ++ if (inc_recurse && dir_ndx >= 0) { ++ struct file_struct *file = dir_flist->files[dir_ndx]; ++ if (file->flags & FLAG_GOT_DIR_FLIST) { ++ rprintf(FERROR_XFER, "rsync: refusing malicious duplicate flist for dir %d\n", dir_ndx); ++ exit_cleanup(RERR_PROTOCOL); ++ } ++ file->flags |= FLAG_GOT_DIR_FLIST; ++ } ++ + flist = flist_new(0, "recv_file_list"); + flist_expand(flist, FLIST_START_LARGE); + +diff --git a/rsync.h b/rsync.h +index 0f9e277f..b9a7101a 100644 +--- a/rsync.h ++++ b/rsync.h +@@ -84,6 +84,7 @@ + #define FLAG_DUPLICATE (1<<4) /* sender */ + #define FLAG_MISSING_DIR (1<<4) /* generator */ + #define FLAG_HLINKED (1<<5) /* receiver/generator (checked on all types) */ ++#define FLAG_GOT_DIR_FLIST (1<<5)/* sender/receiver/generator - dir_flist only */ + #define FLAG_HLINK_FIRST (1<<6) /* receiver/generator (w/FLAG_HLINKED) */ + #define FLAG_IMPLIED_DIR (1<<6) /* sender/receiver/generator (dirs only) */ + #define FLAG_HLINK_LAST (1<<7) /* receiver/generator */ +-- +2.34.1 + diff --git a/pkgs/applications/networking/sync/rsync/CVE-2024-12087/0002-range-check-dir_ndx-before-use.patch b/pkgs/applications/networking/sync/rsync/CVE-2024-12087/0002-range-check-dir_ndx-before-use.patch new file mode 100644 index 000000000000..b067809ebb3a --- /dev/null +++ b/pkgs/applications/networking/sync/rsync/CVE-2024-12087/0002-range-check-dir_ndx-before-use.patch @@ -0,0 +1,27 @@ +From b3e16be18d582dac1513c0a932d146b36e867b1b Mon Sep 17 00:00:00 2001 +From: Andrew Tridgell +Date: Tue, 26 Nov 2024 16:12:45 +1100 +Subject: [PATCH 2/2] range check dir_ndx before use + +--- + flist.c | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/flist.c b/flist.c +index 847b1054..087f9da6 100644 +--- a/flist.c ++++ b/flist.c +@@ -2585,6 +2585,10 @@ struct file_list *recv_file_list(int f, int dir_ndx) + #endif + + if (inc_recurse && dir_ndx >= 0) { ++ if (dir_ndx >= dir_flist->used) { ++ rprintf(FERROR_XFER, "rsync: refusing invalid dir_ndx %u >= %u\n", dir_ndx, dir_flist->used); ++ exit_cleanup(RERR_PROTOCOL); ++ } + struct file_struct *file = dir_flist->files[dir_ndx]; + if (file->flags & FLAG_GOT_DIR_FLIST) { + rprintf(FERROR_XFER, "rsync: refusing malicious duplicate flist for dir %d\n", dir_ndx); +-- +2.34.1 + diff --git a/pkgs/applications/networking/sync/rsync/CVE-2024-12088/0001-make-safe-links-stricter.patch b/pkgs/applications/networking/sync/rsync/CVE-2024-12088/0001-make-safe-links-stricter.patch new file mode 100644 index 000000000000..2ba588127013 --- /dev/null +++ b/pkgs/applications/networking/sync/rsync/CVE-2024-12088/0001-make-safe-links-stricter.patch @@ -0,0 +1,136 @@ +From 535f8f816539ba681ef0f12015d2cb587ae61b6d Mon Sep 17 00:00:00 2001 +From: Andrew Tridgell +Date: Sat, 23 Nov 2024 15:15:53 +1100 +Subject: [PATCH] make --safe-links stricter + +when --safe-links is used also reject links where a '../' component is +included in the destination as other than the leading part of the +filename +--- + testsuite/safe-links.test | 55 ++++++++++++++++++++++++++++++++++++ + testsuite/unsafe-byname.test | 2 +- + util1.c | 26 ++++++++++++++++- + 3 files changed, 81 insertions(+), 2 deletions(-) + create mode 100644 testsuite/safe-links.test + +diff --git a/testsuite/safe-links.test b/testsuite/safe-links.test +new file mode 100644 +index 00000000..6e95a4b9 +--- /dev/null ++++ b/testsuite/safe-links.test +@@ -0,0 +1,55 @@ ++#!/bin/sh ++ ++. "$suitedir/rsync.fns" ++ ++test_symlink() { ++ is_a_link "$1" || test_fail "File $1 is not a symlink" ++} ++ ++test_regular() { ++ if [ ! -f "$1" ]; then ++ test_fail "File $1 is not regular file or not exists" ++ fi ++} ++ ++test_notexist() { ++ if [ -e "$1" ]; then ++ test_fail "File $1 exists" ++ fi ++ if [ -h "$1" ]; then ++ test_fail "File $1 exists as a symlink" ++ fi ++} ++ ++cd "$tmpdir" ++ ++mkdir from ++ ++mkdir "from/safe" ++mkdir "from/unsafe" ++ ++mkdir "from/safe/files" ++mkdir "from/safe/links" ++ ++touch "from/safe/files/file1" ++touch "from/safe/files/file2" ++touch "from/unsafe/unsafefile" ++ ++ln -s ../files/file1 "from/safe/links/" ++ln -s ../files/file2 "from/safe/links/" ++ln -s ../../unsafe/unsafefile "from/safe/links/" ++ln -s a/a/a/../../../unsafe2 "from/safe/links/" ++ ++#echo "LISTING FROM" ++#ls -lR from ++ ++echo "rsync with relative path and just -a" ++$RSYNC -avv --safe-links from/safe/ to ++ ++#echo "LISTING TO" ++#ls -lR to ++ ++test_symlink to/links/file1 ++test_symlink to/links/file2 ++test_notexist to/links/unsafefile ++test_notexist to/links/unsafe2 +diff --git a/testsuite/unsafe-byname.test b/testsuite/unsafe-byname.test +index 75e72014..d2e318ef 100644 +--- a/testsuite/unsafe-byname.test ++++ b/testsuite/unsafe-byname.test +@@ -40,7 +40,7 @@ test_unsafe ..//../dest from/dir unsafe + test_unsafe .. from/file safe + test_unsafe ../.. from/file unsafe + test_unsafe ..//.. from//file unsafe +-test_unsafe dir/.. from safe ++test_unsafe dir/.. from unsafe + test_unsafe dir/../.. from unsafe + test_unsafe dir/..//.. from unsafe + +diff --git a/util1.c b/util1.c +index da50ff1e..f260d398 100644 +--- a/util1.c ++++ b/util1.c +@@ -1318,7 +1318,14 @@ int handle_partial_dir(const char *fname, int create) + * + * "src" is the top source directory currently applicable at the level + * of the referenced symlink. This is usually the symlink's full path +- * (including its name), as referenced from the root of the transfer. */ ++ * (including its name), as referenced from the root of the transfer. ++ * ++ * NOTE: this also rejects dest names with a .. component in other ++ * than the first component of the name ie. it rejects names such as ++ * a/b/../x/y. This needs to be done as the leading subpaths 'a' or ++ * 'b' could later be replaced with symlinks such as a link to '.' ++ * resulting in the link being transferred now becoming unsafe ++ */ + int unsafe_symlink(const char *dest, const char *src) + { + const char *name, *slash; +@@ -1328,6 +1335,23 @@ int unsafe_symlink(const char *dest, const char *src) + if (!dest || !*dest || *dest == '/') + return 1; + ++ // reject destinations with /../ in the name other than at the start of the name ++ const char *dest2 = dest; ++ while (strncmp(dest2, "../", 3) == 0) { ++ dest2 += 3; ++ while (*dest2 == '/') { ++ // allow for ..//..///../foo ++ dest2++; ++ } ++ } ++ if (strstr(dest2, "/../")) ++ return 1; ++ ++ // reject if the destination ends in /.. ++ const size_t dlen = strlen(dest); ++ if (dlen > 3 && strcmp(&dest[dlen-3], "/..") == 0) ++ return 1; ++ + /* find out what our safety margin is */ + for (name = src; (slash = strchr(name, '/')) != 0; name = slash+1) { + /* ".." segment starts the count over. "." segment is ignored. */ +-- +2.34.1 + diff --git a/pkgs/applications/networking/sync/rsync/CVE-2024-12747/0001-fixed-symlink-race-condition-in-sender.patch b/pkgs/applications/networking/sync/rsync/CVE-2024-12747/0001-fixed-symlink-race-condition-in-sender.patch new file mode 100644 index 000000000000..c5401b5df319 --- /dev/null +++ b/pkgs/applications/networking/sync/rsync/CVE-2024-12747/0001-fixed-symlink-race-condition-in-sender.patch @@ -0,0 +1,187 @@ +From f45f48055e548851bc7230f454dfeba139be6c04 Mon Sep 17 00:00:00 2001 +From: Andrew Tridgell +Date: Wed, 18 Dec 2024 08:59:42 +1100 +Subject: [PATCH] fixed symlink race condition in sender + +when we open a file that we don't expect to be a symlink use +O_NOFOLLOW to prevent a race condition where an attacker could change +a file between being a normal file and a symlink +--- + checksum.c | 2 +- + flist.c | 2 +- + generator.c | 4 ++-- + receiver.c | 2 +- + sender.c | 2 +- + syscall.c | 20 ++++++++++++++++++++ + t_unsafe.c | 3 +++ + tls.c | 3 +++ + trimslash.c | 2 ++ + util1.c | 2 +- + 10 files changed, 35 insertions(+), 7 deletions(-) + +diff --git a/checksum.c b/checksum.c +index cb21882c..66e80896 100644 +--- a/checksum.c ++++ b/checksum.c +@@ -406,7 +406,7 @@ void file_checksum(const char *fname, const STRUCT_STAT *st_p, char *sum) + int32 remainder; + int fd; + +- fd = do_open(fname, O_RDONLY, 0); ++ fd = do_open_checklinks(fname); + if (fd == -1) { + memset(sum, 0, file_sum_len); + return; +diff --git a/flist.c b/flist.c +index 087f9da6..17832533 100644 +--- a/flist.c ++++ b/flist.c +@@ -1390,7 +1390,7 @@ struct file_struct *make_file(const char *fname, struct file_list *flist, + + if (copy_devices && am_sender && IS_DEVICE(st.st_mode)) { + if (st.st_size == 0) { +- int fd = do_open(fname, O_RDONLY, 0); ++ int fd = do_open_checklinks(fname); + if (fd >= 0) { + st.st_size = get_device_size(fd, fname); + close(fd); +diff --git a/generator.c b/generator.c +index 110db28f..3f13bb95 100644 +--- a/generator.c ++++ b/generator.c +@@ -1798,7 +1798,7 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx, + + if (write_devices && IS_DEVICE(sx.st.st_mode) && sx.st.st_size == 0) { + /* This early open into fd skips the regular open below. */ +- if ((fd = do_open(fnamecmp, O_RDONLY, 0)) >= 0) ++ if ((fd = do_open_nofollow(fnamecmp, O_RDONLY)) >= 0) + real_sx.st.st_size = sx.st.st_size = get_device_size(fd, fnamecmp); + } + +@@ -1867,7 +1867,7 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx, + } + + /* open the file */ +- if (fd < 0 && (fd = do_open(fnamecmp, O_RDONLY, 0)) < 0) { ++ if (fd < 0 && (fd = do_open_checklinks(fnamecmp)) < 0) { + rsyserr(FERROR, errno, "failed to open %s, continuing", + full_fname(fnamecmp)); + pretend_missing: +diff --git a/receiver.c b/receiver.c +index 8031b8f4..edfbb210 100644 +--- a/receiver.c ++++ b/receiver.c +@@ -775,7 +775,7 @@ int recv_files(int f_in, int f_out, char *local_name) + if (fnamecmp != fname) { + fnamecmp = fname; + fnamecmp_type = FNAMECMP_FNAME; +- fd1 = do_open(fnamecmp, O_RDONLY, 0); ++ fd1 = do_open_nofollow(fnamecmp, O_RDONLY); + } + + if (fd1 == -1 && basis_dir[0]) { +diff --git a/sender.c b/sender.c +index 2bbff2fa..a4d46c39 100644 +--- a/sender.c ++++ b/sender.c +@@ -350,7 +350,7 @@ void send_files(int f_in, int f_out) + exit_cleanup(RERR_PROTOCOL); + } + +- fd = do_open(fname, O_RDONLY, 0); ++ fd = do_open_checklinks(fname); + if (fd == -1) { + if (errno == ENOENT) { + enum logcode c = am_daemon && protocol_version < 28 ? FERROR : FWARNING; +diff --git a/syscall.c b/syscall.c +index 081357bb..8cea2900 100644 +--- a/syscall.c ++++ b/syscall.c +@@ -45,6 +45,8 @@ extern int preallocate_files; + extern int preserve_perms; + extern int preserve_executability; + extern int open_noatime; ++extern int copy_links; ++extern int copy_unsafe_links; + + #ifndef S_BLKSIZE + # if defined hpux || defined __hpux__ || defined __hpux +@@ -788,3 +790,21 @@ cleanup: + return retfd; + #endif // O_NOFOLLOW, O_DIRECTORY + } ++ ++/* ++ varient of do_open/do_open_nofollow which does do_open() if the ++ copy_links or copy_unsafe_links options are set and does ++ do_open_nofollow() otherwise ++ ++ This is used to prevent a race condition where an attacker could be ++ switching a file between being a symlink and being a normal file ++ ++ The open is always done with O_RDONLY flags ++ */ ++int do_open_checklinks(const char *pathname) ++{ ++ if (copy_links || copy_unsafe_links) { ++ return do_open(pathname, O_RDONLY, 0); ++ } ++ return do_open_nofollow(pathname, O_RDONLY); ++} +diff --git a/t_unsafe.c b/t_unsafe.c +index 010cac50..e10619a2 100644 +--- a/t_unsafe.c ++++ b/t_unsafe.c +@@ -28,6 +28,9 @@ int am_root = 0; + int am_sender = 1; + int read_only = 0; + int list_only = 0; ++int copy_links = 0; ++int copy_unsafe_links = 0; ++ + short info_levels[COUNT_INFO], debug_levels[COUNT_DEBUG]; + + int +diff --git a/tls.c b/tls.c +index e6b0708a..858f8f10 100644 +--- a/tls.c ++++ b/tls.c +@@ -49,6 +49,9 @@ int list_only = 0; + int link_times = 0; + int link_owner = 0; + int nsec_times = 0; ++int safe_symlinks = 0; ++int copy_links = 0; ++int copy_unsafe_links = 0; + + #ifdef SUPPORT_XATTRS + +diff --git a/trimslash.c b/trimslash.c +index 1ec928ca..f2774cd7 100644 +--- a/trimslash.c ++++ b/trimslash.c +@@ -26,6 +26,8 @@ int am_root = 0; + int am_sender = 1; + int read_only = 1; + int list_only = 0; ++int copy_links = 0; ++int copy_unsafe_links = 0; + + int + main(int argc, char **argv) +diff --git a/util1.c b/util1.c +index f260d398..d84bc414 100644 +--- a/util1.c ++++ b/util1.c +@@ -365,7 +365,7 @@ int copy_file(const char *source, const char *dest, int tmpfilefd, mode_t mode) + int len; /* Number of bytes read into `buf'. */ + OFF_T prealloc_len = 0, offset = 0; + +- if ((ifd = do_open(source, O_RDONLY, 0)) < 0) { ++ if ((ifd = do_open_nofollow(source, O_RDONLY)) < 0) { + int save_errno = errno; + rsyserr(FERROR_XFER, errno, "open %s", full_fname(source)); + errno = save_errno; +-- +2.34.1 + diff --git a/pkgs/applications/networking/sync/rsync/default.nix b/pkgs/applications/networking/sync/rsync/default.nix index fbea88a2e2e3..0badc906dfe8 100644 --- a/pkgs/applications/networking/sync/rsync/default.nix +++ b/pkgs/applications/networking/sync/rsync/default.nix @@ -38,6 +38,18 @@ stdenv.mkDerivation rec { patches = [ # https://github.com/WayneD/rsync/pull/558 ./configure.ac-fix-failing-IPv6-check.patch + ./CVE-2024-12084/0001-Some-checksum-buffer-fixes.patch + ./CVE-2024-12084/0002-Another-cast-when-multiplying-integers.patch + ./CVE-2024-12085/0001-prevent-information-leak-off-the-stack.patch + ./CVE-2024-12086/0001-refuse-fuzzy-options-when-fuzzy-not-selected.patch + ./CVE-2024-12086/0002-added-secure_relative_open.patch + ./CVE-2024-12086/0003-receiver-use-secure_relative_open-for-basis-file.patch + ./CVE-2024-12086/0004-disallow-.-elements-in-relpath-for-secure_relative_o.patch + ./CVE-2024-12087/0001-Refuse-a-duplicate-dirlist.patch + ./CVE-2024-12087/0002-range-check-dir_ndx-before-use.patch + ./CVE-2024-12088/0001-make-safe-links-stricter.patch + ./CVE-2024-12747/0001-fixed-symlink-race-condition-in-sender.patch + ./raise-protocol-version-to-32.patch ]; buildInputs = diff --git a/pkgs/applications/networking/sync/rsync/raise-protocol-version-to-32.patch b/pkgs/applications/networking/sync/rsync/raise-protocol-version-to-32.patch new file mode 100644 index 000000000000..94054fdc8c35 --- /dev/null +++ b/pkgs/applications/networking/sync/rsync/raise-protocol-version-to-32.patch @@ -0,0 +1,26 @@ +From 163e05b1680c4a3b448fa68d03c3fca9589f3bc4 Mon Sep 17 00:00:00 2001 +From: Andrew Tridgell +Date: Tue, 10 Dec 2024 13:34:01 +1100 +Subject: [PATCH 1/3] raise protocol version to 32 + +make it easier to spot unpatched servers +--- + rsync.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/rsync.h b/rsync.h +index b9a7101a..9be1297b 100644 +--- a/rsync.h ++++ b/rsync.h +@@ -111,7 +111,7 @@ + + /* Update this if you make incompatible changes and ALSO update the + * SUBPROTOCOL_VERSION if it is not a final (official) release. */ +-#define PROTOCOL_VERSION 31 ++#define PROTOCOL_VERSION 32 + + /* This is used when working on a new protocol version or for any unofficial + * protocol tweaks. It should be a non-zero value for each pre-release repo +-- +2.34.1 + diff --git a/pkgs/applications/video/obs-studio/plugins/obs-transition-table.nix b/pkgs/applications/video/obs-studio/plugins/obs-transition-table.nix index 06c46413287b..89ea4b6f35b6 100644 --- a/pkgs/applications/video/obs-studio/plugins/obs-transition-table.nix +++ b/pkgs/applications/video/obs-studio/plugins/obs-transition-table.nix @@ -9,13 +9,13 @@ stdenv.mkDerivation rec { pname = "obs-transition-table"; - version = "0.2.7"; + version = "0.2.7-unstable-2024-11-27"; src = fetchFromGitHub { owner = "exeldro"; repo = "obs-transition-table"; - rev = version; - sha256 = "sha256-rGF7hugC5ybpZBAIIXDiy3YDooMawf/yYX2YucQm2/U="; + rev = "976fe236dac7082b6c953f950fcb9e50495ce624"; + sha256 = "sha256-TPRqKjEXdvjv+RfHTaeeO4GHur2j/+onehcu0I/HdD0="; }; nativeBuildInputs = [ cmake ]; @@ -24,10 +24,6 @@ stdenv.mkDerivation rec { qtbase ]; - cmakeFlags = [ - "-DBUILD_OUT_OF_TREE=On" - ]; - dontWrapQtApps = true; postInstall = '' diff --git a/pkgs/build-support/build-fhsenv-bubblewrap/default.nix b/pkgs/build-support/build-fhsenv-bubblewrap/default.nix index 12881e4a0bac..c204628d1668 100644 --- a/pkgs/build-support/build-fhsenv-bubblewrap/default.nix +++ b/pkgs/build-support/build-fhsenv-bubblewrap/default.nix @@ -12,9 +12,13 @@ }: { + pname ? throw "You must provide either `name` or `pname`", + version ? throw "You must provide either `name` or `version`", + name ? "${pname}-${version}", runScript ? "bash", nativeBuildInputs ? [ ], extraInstallCommands ? "", + executableName ? args.pname or name, meta ? { }, passthru ? { }, extraPreBwrapCmds ? "", @@ -30,7 +34,12 @@ ... }@args: -assert (!args ? pname || !args ? version) -> (args ? name); # You must provide name if pname or version (preferred) is missing. +# NOTE: +# `pname` and `version` will throw if they were not provided. +# Use `name` instead of directly evaluating `pname` or `version`. +# +# If you need `pname` or `version` sepcifically, use `args` instead: +# e.g. `args.pname or ...`. let inherit (lib) @@ -48,8 +57,6 @@ let # explicit about which package set it's coming from. inherit (pkgsHostTarget) pkgsi686Linux; - name = args.name or "${args.pname}-${args.version}"; - executableName = args.pname or args.name; # we don't know which have been supplied, and want to avoid defaulting missing attrs to null. Passed into runCommandLocal nameAttrs = lib.filterAttrs ( key: value: diff --git a/pkgs/by-name/ae/aerospike/package.nix b/pkgs/by-name/ae/aerospike/package.nix index b75d281b3126..806932aa3d12 100644 --- a/pkgs/by-name/ae/aerospike/package.nix +++ b/pkgs/by-name/ae/aerospike/package.nix @@ -12,13 +12,13 @@ stdenv.mkDerivation rec { pname = "aerospike-server"; - version = "7.2.0.4"; + version = "7.2.0.6"; src = fetchFromGitHub { owner = "aerospike"; repo = "aerospike-server"; rev = version; - hash = "sha256-g07rfQabjfvfl8rkLDgeTGq1J0pczdasTXIsWqUvz7w="; + hash = "sha256-YjX/2+0n+nrtNwQaZSY5PPYAOnhR+jrIMp02STcJHRY="; fetchSubmodules = true; }; diff --git a/pkgs/by-name/au/authentik/package.nix b/pkgs/by-name/au/authentik/package.nix index 4d60eef81533..1c6467ac1e4f 100644 --- a/pkgs/by-name/au/authentik/package.nix +++ b/pkgs/by-name/au/authentik/package.nix @@ -15,13 +15,13 @@ }: let - version = "2024.12.1"; + version = "2024.12.2"; src = fetchFromGitHub { owner = "goauthentik"; repo = "authentik"; rev = "version/${version}"; - hash = "sha256-CkUmsVKzAQ/VWIhtxWxlcGtrWVa8hxqsMqvfcsG5ktA="; + hash = "sha256-Z3rFFrXrOKaF9NpY/fInsEbzdOWnWqLfEYl7YX9hFEU="; }; meta = with lib; { diff --git a/pkgs/by-name/co/code-cursor/package.nix b/pkgs/by-name/co/code-cursor/package.nix index ad1bb1e7ff33..bf46c9444b72 100644 --- a/pkgs/by-name/co/code-cursor/package.nix +++ b/pkgs/by-name/co/code-cursor/package.nix @@ -9,21 +9,32 @@ let pname = "cursor"; version = "0.44.11"; - appKey = "230313mzl4w4u92"; - src = fetchurl { - url = "https://download.todesktop.com/230313mzl4w4u92/cursor-0.44.11-build-250103fqxdt5u9z-x86_64.AppImage"; - hash = "sha256-eOZuofnpED9F6wic0S9m933Tb7Gq7cb/v0kRDltvFVg="; + + sources = { + x86_64-linux = fetchurl { + url = "https://download.todesktop.com/230313mzl4w4u92/cursor-0.44.11-build-250103fqxdt5u9z-x86_64.AppImage"; + hash = "sha256-eOZuofnpED9F6wic0S9m933Tb7Gq7cb/v0kRDltvFVg="; + }; + aarch64-linux = fetchurl { + url = "https://download.todesktop.com/230313mzl4w4u92/cursor-0.44.11-build-250103fqxdt5u9z-arm64.AppImage"; + hash = "sha256-mxq7tQJfDccE0QsZDZbaFUKO0Xc141N00ntX3oEYRcc="; + }; }; - appimageContents = appimageTools.extractType2 { inherit version pname src; }; -in -stdenvNoCC.mkDerivation { - inherit pname version; - src = appimageTools.wrapType2 { inherit version pname src; }; + supportedPlatforms = [ + "x86_64-linux" + "aarch64-linux" + ]; - nativeBuildInputs = [ makeWrapper ]; + src = sources.${stdenvNoCC.hostPlatform.system}; - installPhase = '' + appimageContents = appimageTools.extractType2 { + inherit version pname src; + }; + + wrappedAppImage = appimageTools.wrapType2 { inherit version pname src; }; + + appimageInstall = '' runHook preInstall mkdir -p $out/ @@ -43,21 +54,47 @@ stdenvNoCC.mkDerivation { runHook postInstall ''; - passthru.updateScript = writeScript "update.sh" '' - #!/usr/bin/env nix-shell - #!nix-shell -i bash -p curl yq coreutils gnused common-updater-scripts - set -eu -o pipefail - latestLinux="$(curl -s https://download.todesktop.com/${appKey}/latest-linux.yml)" - version="$(echo "$latestLinux" | yq -r .version)" - filename="$(echo "$latestLinux" | yq -r '.files[] | .url | select(. | endswith(".AppImage"))')" - url="https://download.todesktop.com/${appKey}/$filename" - currentVersion=$(nix-instantiate --eval -E "with import ./. {}; code-cursor.version or (lib.getVersion code-cursor)" | tr -d '"') +in +stdenvNoCC.mkDerivation { + inherit pname version; - if [[ "$version" != "$currentVersion" ]]; then - hash=$(nix-hash --to-sri --type sha256 "$(nix-prefetch-url "$url")") - update-source-version code-cursor "$version" "$hash" "$url" --source-key=src.src - fi - ''; + src = wrappedAppImage; + + nativeBuildInputs = [ makeWrapper ]; + + installPhase = appimageInstall; + + passthru = { + inherit sources; + updateScript = writeScript "update.sh" '' + #!/usr/bin/env nix-shell + #!nix-shell -i bash -p curl yq coreutils gnused common-updater-scripts + set -eu -o pipefail + baseUrl="https://download.todesktop.com/230313mzl4w4u92" + latestLinux="$(curl -s $baseUrl/latest-linux.yml)" + version="$(echo "$latestLinux" | yq -r .version)" + filename="$(echo "$latestLinux" | yq -r '.files[] | .url | select(. | endswith(".AppImage"))')" + linuxStem="$(echo "$filename" | sed -E s/^\(cursor-.+-build-.*\)-.+$/\\1/)" + + currentVersion=$(nix-instantiate --eval -E "with import ./. {}; code-cursor.version or (lib.getVersion code-cursor)" | tr -d '"') + + if [[ "$version" != "$currentVersion" ]]; then + for platform in ${lib.escapeShellArgs supportedPlatforms}; do + if [ $platform = "x86_64-linux" ]; then + url="$baseUrl/$linuxStem-x86_64.AppImage" + elif [ $platform = "aarch64-linux" ]; then + url="$baseUrl/$linuxStem-arm64.AppImage" + else + echo "Unsupported platform: $platform" + exit 1 + fi + + hash=$(nix-hash --to-sri --type sha256 "$(nix-prefetch-url "$url")") + update-source-version code-cursor $version $hash $url --system=$platform --ignore-same-version --source-key="sources.$platform" + done + fi + ''; + }; meta = { description = "AI-powered code editor built on vscode"; @@ -66,7 +103,7 @@ stdenvNoCC.mkDerivation { license = lib.licenses.unfree; sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ]; maintainers = with lib.maintainers; [ sarahec ]; - platforms = [ "x86_64-linux" ]; + platforms = lib.platforms.linux; mainProgram = "cursor"; }; } diff --git a/pkgs/by-name/co/containerd/package.nix b/pkgs/by-name/co/containerd/package.nix index dc27557d108e..3c36629d4d69 100644 --- a/pkgs/by-name/co/containerd/package.nix +++ b/pkgs/by-name/co/containerd/package.nix @@ -16,7 +16,7 @@ buildGoModule rec { pname = "containerd"; - version = "2.0.1"; + version = "2.0.2"; outputs = [ "out" @@ -27,7 +27,7 @@ buildGoModule rec { owner = "containerd"; repo = "containerd"; tag = "v${version}"; - hash = "sha256-gD0XRZThU/T8qxLyyboyE6GsX911ylt7hH59S+rB7vQ="; + hash = "sha256-aCC6nH+bxjk6dUIzUva4ILH0FD6QkWiJmdrcMLA18Jw="; }; postPatch = "patchShebangs ."; @@ -89,7 +89,7 @@ buildGoModule rec { meta = { description = "Daemon to control runC"; homepage = "https://containerd.io/"; - changelog = "https://github.com/containerd/containerd/releases/tag/${version}"; + changelog = "https://github.com/containerd/containerd/releases/tag/v${version}"; license = lib.licenses.asl20; maintainers = with lib.maintainers; [ offline diff --git a/pkgs/by-name/cu/curv/package.nix b/pkgs/by-name/cu/curv/package.nix index 71465cb2933a..a70b9ac3d5d6 100644 --- a/pkgs/by-name/cu/curv/package.nix +++ b/pkgs/by-name/cu/curv/package.nix @@ -1,8 +1,10 @@ { lib, stdenv, - fetchFromGitHub, + fetchFromGitea, cmake, + git, + pkg-config, boost, eigen, glm, @@ -17,19 +19,22 @@ stdenv.mkDerivation rec { pname = "curv"; - version = "0.5"; + version = "0.5-unstable-2025-01-06"; - src = fetchFromGitHub { - owner = "curv3d"; + src = fetchFromGitea { + domain = "codeberg.org"; + owner = "doug-moen"; repo = "curv"; - tag = version; - hash = "sha256-m4p5uxRk6kEJUilmbQ1zJcQDRvRCV7pkxnqupZJxyjo="; + rev = "a496d98459b65d15feae8e69036944dafb7ec26e"; + hash = "sha256-2pe76fBU78xRvHxol8O1xv0bBVwbpKDVPLQqqUCTO0Y="; fetchSubmodules = true; }; strictDeps = true; nativeBuildInputs = [ cmake + git + pkg-config ]; buildInputs = diff --git a/pkgs/by-name/cy/cyrus-imapd/package.nix b/pkgs/by-name/cy/cyrus-imapd/package.nix index c2e6ddd804fe..afb1fef30293 100644 --- a/pkgs/by-name/cy/cyrus-imapd/package.nix +++ b/pkgs/by-name/cy/cyrus-imapd/package.nix @@ -126,6 +126,7 @@ stdenv.mkDerivation (finalAttrs: { [ zlib cyrus_sasl + sqlite ] # Darwin doesn't have libuuid, try to build without it ++ lib.optional (!stdenv.hostPlatform.isDarwin) libuuid; diff --git a/pkgs/by-name/dd/ddns-go/package.nix b/pkgs/by-name/dd/ddns-go/package.nix index 573092fcae11..37b971c477de 100644 --- a/pkgs/by-name/dd/ddns-go/package.nix +++ b/pkgs/by-name/dd/ddns-go/package.nix @@ -6,16 +6,16 @@ buildGoModule rec { pname = "ddns-go"; - version = "6.7.7"; + version = "6.8.0"; src = fetchFromGitHub { owner = "jeessy2"; repo = pname; rev = "v${version}"; - hash = "sha256-MzhZ9u4noPLdtrbALi42GI9i+nb4rRdugMzd20rJ6b0="; + hash = "sha256-zVNlsFPSLI8mXBUOo8z7nM4nShNd0ZwG5lZL2VyeGi8="; }; - vendorHash = "sha256-e8/z1vriyHXPY1OvkGFqeZHJhz5ssOlqD/Uwt5xq8Uw="; + vendorHash = "sha256-D66uremGVcTcyBlCA9vrQM5zGPFR96FqVak6tATEdI0="; ldflags = [ "-X main.version=${version}" diff --git a/pkgs/by-name/ds/dsniff/package.nix b/pkgs/by-name/ds/dsniff/package.nix index cdf1361ee6fc..088405f92c47 100644 --- a/pkgs/by-name/ds/dsniff/package.nix +++ b/pkgs/by-name/ds/dsniff/package.nix @@ -71,8 +71,8 @@ stdenv.mkDerivation rec { domain = "salsa.debian.org"; owner = "pkg-security-team"; repo = "dsniff"; - rev = "debian/${version}+debian-30"; - sha256 = "1fk2k0sfdp5g27i11g0sbzm7al52raz5yr1aibzssnysv7l9xgzh"; + rev = "debian/${version}+debian-34"; + sha256 = "sha256-CY0+G09KZXtAwKuaYh5/qcmZjuNhdGis3zCG14hWtqw="; name = "dsniff.tar.gz"; }; diff --git a/pkgs/by-name/ff/ffizer/package.nix b/pkgs/by-name/ff/ffizer/package.nix new file mode 100644 index 000000000000..2fb4315f66c3 --- /dev/null +++ b/pkgs/by-name/ff/ffizer/package.nix @@ -0,0 +1,51 @@ +{ + lib, + rustPlatform, + fetchFromGitHub, + pkg-config, + libgit2, + openssl, + zlib, +}: + +rustPlatform.buildRustPackage rec { + pname = "ffizer"; + version = "2.13.1"; + + buildFeatures = [ "cli" ]; + + src = fetchFromGitHub { + owner = "ffizer"; + repo = "ffizer"; + rev = version; + hash = "sha256-ZX6Zv6ioAO33Cc5WCVBgJWlOmNvbVgckMylRnphpOdw="; + }; + + cargoHash = "sha256-4fZLL4vQxAeyqQssmEd1C72fzMXCGHtUPCGpaVupy6Q="; + + nativeBuildInputs = [ + pkg-config + ]; + + buildInputs = [ + libgit2 + openssl + zlib + ]; + + env.OPENSSL_NO_VENDOR = true; + + checkFlags = [ + # requires internet access + "--skip=run_test_samples_tests_data_template_2" + ]; + + meta = { + description = "Files and folders initializer / generator based on templates"; + homepage = "https://github.com/ffizer/ffizer"; + changelog = "https://github.com/ffizer/ffizer/blob/${src.rev}/CHANGELOG.md"; + license = lib.licenses.cc0; + maintainers = with lib.maintainers; [ XBagon ]; + mainProgram = "ffizer"; + }; +} diff --git a/pkgs/by-name/gn/gnome-builder/package.nix b/pkgs/by-name/gn/gnome-builder/package.nix index c36d51d1f996..eff3dc8ae526 100644 --- a/pkgs/by-name/gn/gnome-builder/package.nix +++ b/pkgs/by-name/gn/gnome-builder/package.nix @@ -142,6 +142,8 @@ stdenv.mkDerivation (finalAttrs: { gappsWrapperArgs+=( # For sysprof-agent --prefix PATH : "${sysprof}/bin" + # libpanel icons + --prefix XDG_DATA_DIRS : "${libpanel}/share" ) # Ensure that all plugins get their interpreter paths fixed up. diff --git a/pkgs/by-name/go/gogup/package.nix b/pkgs/by-name/go/gogup/package.nix index a015caf4ef78..2ffd0cabf759 100644 --- a/pkgs/by-name/go/gogup/package.nix +++ b/pkgs/by-name/go/gogup/package.nix @@ -6,16 +6,16 @@ buildGoModule rec { pname = "gogup"; - version = "0.27.5"; + version = "0.27.6"; src = fetchFromGitHub { owner = "nao1215"; repo = "gup"; rev = "v${version}"; - hash = "sha256-I4l/sDqafc/ZO8kKc4iOSMFLS0YZrAqRFOXn0N7Myo4="; + hash = "sha256-d+VN3BBhGiVdLpCHP08vi7lYSeL6QovswtPNvEbS9fc="; }; - vendorHash = "sha256-rtdbPwVZHwofpGccYU8NBiaikzNMIwSDggbRdnGTBu8="; + vendorHash = "sha256-jvVtwA7563ptWat/YS8klRnG3+NO3PeW0vl17yt8q8M="; doCheck = false; ldflags = [ diff --git a/pkgs/by-name/go/goperf/package.nix b/pkgs/by-name/go/goperf/package.nix index 9dfa400afc73..246905202957 100644 --- a/pkgs/by-name/go/goperf/package.nix +++ b/pkgs/by-name/go/goperf/package.nix @@ -9,15 +9,15 @@ buildGoModule rec { pname = "goperf"; - version = "0-unstable-2024-12-04"; + version = "0-unstable-2025-01-06"; src = fetchgit { url = "https://go.googlesource.com/perf"; - rev = "711ff2ab72314f5a878a356d9ff7ab8460de731f"; - hash = "sha256-T0LHlO9ObVJ68pERkY+6eJCxY+Lj9eHvOxlCRevwbuE="; + rev = "400946f43c825f133ced1d2662be611959d1335c"; + hash = "sha256-w7HUDDfsZ60ZNryewh83mJ6ZMfMpnvW6ehhijKss7B0="; }; - vendorHash = "sha256-OrrciJqJLTMM+yF9SD/eRucwOrfcZuuyR+xE6+DlYpo="; + vendorHash = "sha256-WHkeLS8Sdq2oP7hD0MKVrcENclaOWTeSVCXm+aimqIU="; passthru.updateScript = writeShellScript "update-goperf" '' export UPDATE_NIX_ATTR_PATH=goperf diff --git a/pkgs/by-name/gr/greetd-mini-wl-greeter/package.nix b/pkgs/by-name/gr/greetd-mini-wl-greeter/package.nix new file mode 100644 index 000000000000..c26a4e03ac88 --- /dev/null +++ b/pkgs/by-name/gr/greetd-mini-wl-greeter/package.nix @@ -0,0 +1,67 @@ +{ + fetchFromGitHub, + lib, + stdenv, + unstableGitUpdater, + cairo, + glib, + json_c, + libGL, + libepoxy, + libpng, + libxkbcommon, + meson, + ninja, + pango, + pkg-config, + scdoc, + wayland, + wayland-protocols, + wayland-scanner, +}: +stdenv.mkDerivation { + pname = "greetd-mini-wl-greeter"; + version = "0-unstable-2024-12-27"; + + src = fetchFromGitHub { + owner = "philj56"; + repo = "greetd-mini-wl-greeter"; + rev = "61f25ed34a1a35a061c2f3605fc3d4b37a7d0d8e"; + hash = "sha256-ifeQbzMA9O+yhLveTXpEmgG2BsSp4lxbd3yo8o69fxA="; + }; + + nativeBuildInputs = [ + libGL + cairo + glib + json_c + libepoxy + libpng + libxkbcommon + pango + wayland + wayland-protocols + wayland-scanner + ]; + + # https://github.com/philj56/greetd-mini-wl-greeter/issues/2 + mesonBuildType = "release"; + + buildInputs = [ + meson + ninja + pkg-config + scdoc + ]; + + passthru.updateScript = unstableGitUpdater { }; + + meta = { + description = "Extremely minimal raw Wayland greeter for greetd"; + license = lib.licenses.mit; + homepage = "https://github.com/philj56/greetd-mini-wl-greeter"; + mainProgram = "greetd-mini-wl-greeter"; + platforms = lib.platforms.linux; + maintainers = with lib.maintainers; [ _0x5a4 ]; + }; +} diff --git a/pkgs/by-name/im/imhex/package.nix b/pkgs/by-name/im/imhex/package.nix index 5f18c1ec4bf0..b9ab55fc993b 100644 --- a/pkgs/by-name/im/imhex/package.nix +++ b/pkgs/by-name/im/imhex/package.nix @@ -2,7 +2,7 @@ lib, stdenv, cmake, - llvmPackages_17, + llvm, fetchFromGitHub, mbedtls, gtk3, @@ -24,21 +24,12 @@ nix-update-script, autoPatchelfHook, makeWrapper, - overrideSDK, }: let version = "1.36.2"; patterns_version = "1.36.2"; - llvmPackages = llvmPackages_17; - - stdenv' = - let - baseStdenv = if stdenv.cc.isClang then llvmPackages.stdenv else stdenv; - in - if stdenv.hostPlatform.isDarwin then overrideSDK baseStdenv "11.0" else baseStdenv; - patterns_src = fetchFromGitHub { name = "ImHex-Patterns-source-${patterns_version}"; owner = "WerWolv"; @@ -48,7 +39,7 @@ let }; in -stdenv'.mkDerivation (finalAttrs: { +stdenv.mkDerivation (finalAttrs: { pname = "imhex"; inherit version; @@ -65,7 +56,7 @@ stdenv'.mkDerivation (finalAttrs: { nativeBuildInputs = [ cmake - llvmPackages.llvm + llvm python3 perl pkg-config diff --git a/pkgs/by-name/ja/jawiki-all-titles-in-ns0/package.nix b/pkgs/by-name/ja/jawiki-all-titles-in-ns0/package.nix index bef9b65d09c3..5e5c3a132245 100644 --- a/pkgs/by-name/ja/jawiki-all-titles-in-ns0/package.nix +++ b/pkgs/by-name/ja/jawiki-all-titles-in-ns0/package.nix @@ -7,13 +7,13 @@ stdenvNoCC.mkDerivation { pname = "jawiki-all-titles-in-ns0"; - version = "0-unstable-2024-12-01"; + version = "0-unstable-2025-01-01"; src = fetchFromGitHub { owner = "musjj"; repo = "jawiki-archive"; - rev = "a4146faaca34c37a36f26e1e75990187cac40954"; - hash = "sha256-FuLtXgyEpHZWeZbbrKXalXeycf7gtkfWMYoM7j2mOds="; + rev = "dbd1e032f8685387c0dbeb1a472ab9215250d11f"; + hash = "sha256-2GjbXjsf8OV/9EuX675hBXTWQsf+KhKhh1IiAxbzqfU="; }; installPhase = '' diff --git a/pkgs/by-name/jp/jp-zip-codes/package.nix b/pkgs/by-name/jp/jp-zip-codes/package.nix index a279aea8f7ee..297f49edece1 100644 --- a/pkgs/by-name/jp/jp-zip-codes/package.nix +++ b/pkgs/by-name/jp/jp-zip-codes/package.nix @@ -7,15 +7,15 @@ stdenvNoCC.mkDerivation { pname = "jp-zip-code"; - version = "0-unstable-2024-12-01"; + version = "0-unstable-2025-01-01"; # This package uses a mirror as the source because the # original provider uses the same URL for updated content. src = fetchFromGitHub { owner = "musjj"; repo = "jp-zip-codes"; - rev = "94071d5f73bcea043694d1e9a557f6e526b44096"; - hash = "sha256-RyXJZOwZmtW9vP0lEctE3t1DItBFOop7vdTi0IAH8E8="; + rev = "45aa11f1f60515893b0eb8f533f540632b394564"; + hash = "sha256-qcP1lc5E1RS+n7e3hmZwaHtnf9ErOYprW+/w0r65ZuI="; }; installPhase = '' diff --git a/pkgs/by-name/ju/justbuild/package.nix b/pkgs/by-name/ju/justbuild/package.nix index 15dd89a03f5d..fdd98efcd674 100644 --- a/pkgs/by-name/ju/justbuild/package.nix +++ b/pkgs/by-name/ju/justbuild/package.nix @@ -33,13 +33,13 @@ let in stdenv.mkDerivation rec { pname = "justbuild"; - version = "1.4.1"; + version = "1.4.2"; src = fetchFromGitHub { owner = "just-buildsystem"; repo = "justbuild"; rev = "refs/tags/v${version}"; - hash = "sha256-asbJdm50srMinr8sguGR3rWT7YXm75Zjm2Dvj53PpMc="; + hash = "sha256-oMl+hY7E4vYB4J/5LXq6sw9bafYwhXY8lkEWwU6j0Fk="; }; bazelapi = fetchurl { diff --git a/pkgs/by-name/k6/k6/package.nix b/pkgs/by-name/k6/k6/package.nix index 150347afe0f3..edd51aadb23e 100644 --- a/pkgs/by-name/k6/k6/package.nix +++ b/pkgs/by-name/k6/k6/package.nix @@ -8,13 +8,13 @@ buildGoModule rec { pname = "k6"; - version = "0.55.2"; + version = "0.56.0"; src = fetchFromGitHub { owner = "grafana"; repo = pname; rev = "v${version}"; - hash = "sha256-BuZsz5+vp4obL/Gj/gJSgA0xxdYmqd+MKggS62Jo+bM="; + hash = "sha256-QU/FJZqyodwUGxb3MjaQXIGWZSlrkxKe4bh6r/p7jrQ="; }; subPackages = [ "./" ]; diff --git a/pkgs/by-name/ke/keycloak/package.nix b/pkgs/by-name/ke/keycloak/package.nix index 4ae3dee7bec5..a4683642c4be 100644 --- a/pkgs/by-name/ke/keycloak/package.nix +++ b/pkgs/by-name/ke/keycloak/package.nix @@ -24,11 +24,11 @@ let in stdenv.mkDerivation rec { pname = "keycloak"; - version = "26.0.7"; + version = "26.0.8"; src = fetchzip { url = "https://github.com/keycloak/keycloak/releases/download/${version}/keycloak-${version}.zip"; - hash = "sha256-yIv9gAjCfzjWDLZHQbgGEjhMefY1idzZTEbqVyXjFdw="; + hash = "sha256-o4Yken4PlitebEBNI+BrQqYM+RtsURj0LvYFBSjuQIE="; }; nativeBuildInputs = [ diff --git a/pkgs/by-name/lo/lockbook-desktop/package.nix b/pkgs/by-name/lo/lockbook-desktop/package.nix index 3b534b26453f..5d511b16e05b 100644 --- a/pkgs/by-name/lo/lockbook-desktop/package.nix +++ b/pkgs/by-name/lo/lockbook-desktop/package.nix @@ -18,17 +18,17 @@ let in rustPlatform.buildRustPackage rec { pname = "lockbook-desktop"; - version = "0.9.15"; + version = "0.9.16"; src = fetchFromGitHub { owner = "lockbook"; repo = "lockbook"; tag = version; - hash = "sha256-hqBjA/6MWlhVjV4m+cIcnoRTApHuzbPzivMsaQHfRcc="; + hash = "sha256-FHD84IJ2ahxB8L75xep+TSb8e+DtUsjEyHc6P/SFi9c="; }; useFetchCargoVendor = true; - cargoHash = "sha256-+M+wL26KDbLKhcujPyWAsTlXwLrQVCUbTnnu/7sXul4="; + cargoHash = "sha256-z00WBA/51zmqFCBX1hD3dLKvuvxQvuyvtBGrxxAr7FE="; nativeBuildInputs = [ pkg-config diff --git a/pkgs/by-name/lo/lockbook/package.nix b/pkgs/by-name/lo/lockbook/package.nix index ec215983f545..9fd699e5a9c1 100644 --- a/pkgs/by-name/lo/lockbook/package.nix +++ b/pkgs/by-name/lo/lockbook/package.nix @@ -7,17 +7,17 @@ }: rustPlatform.buildRustPackage rec { pname = "lockbook"; - version = "0.9.15"; + version = "0.9.16"; src = fetchFromGitHub { owner = "lockbook"; repo = "lockbook"; tag = version; - hash = "sha256-hqBjA/6MWlhVjV4m+cIcnoRTApHuzbPzivMsaQHfRcc="; + hash = "sha256-FHD84IJ2ahxB8L75xep+TSb8e+DtUsjEyHc6P/SFi9c="; }; useFetchCargoVendor = true; - cargoHash = "sha256-+M+wL26KDbLKhcujPyWAsTlXwLrQVCUbTnnu/7sXul4="; + cargoHash = "sha256-z00WBA/51zmqFCBX1hD3dLKvuvxQvuyvtBGrxxAr7FE="; doCheck = false; # there are no cli tests cargoBuildFlags = [ diff --git a/pkgs/by-name/lz/lzlib/package.nix b/pkgs/by-name/lz/lzlib/package.nix index 7b0160c0bd56..18ca21fdc8da 100644 --- a/pkgs/by-name/lz/lzlib/package.nix +++ b/pkgs/by-name/lz/lzlib/package.nix @@ -8,7 +8,7 @@ stdenv.mkDerivation (finalAttrs: { pname = "lzlib"; - version = "1.14"; + version = "1.15"; outputs = [ "out" "info" @@ -21,7 +21,7 @@ stdenv.mkDerivation (finalAttrs: { src = fetchurl { url = "mirror://savannah/lzip/lzlib/lzlib-${finalAttrs.version}.tar.lz"; - hash = "sha256-42LszNgtTdKX32pRuVLGXSFy+b9BpcRZDTYE2DqlGdM="; + hash = "sha256-nUVIDnyBccZPodW+7iy9guaf6+kQ8M5ii4dqj+IUFTQ="; # hash from release email }; diff --git a/pkgs/by-name/me/mercure/package.nix b/pkgs/by-name/me/mercure/package.nix index e1aebcc85a63..822613780e9c 100644 --- a/pkgs/by-name/me/mercure/package.nix +++ b/pkgs/by-name/me/mercure/package.nix @@ -9,18 +9,18 @@ buildGoModule rec { pname = "mercure"; - version = "0.17.1"; + version = "0.18.1"; src = fetchFromGitHub { owner = "dunglas"; repo = "mercure"; rev = "v${version}"; - hash = "sha256-TRKlX4dNCvD9wBp+JNpmB9J1lt0Eyc0pQ/ucvtiDGto="; + hash = "sha256-BJVCVvz8AdkQwLD37oQc7YPaZ7l74o9Dik9u/ZBSRro="; }; sourceRoot = "${src.name}/caddy"; - vendorHash = "sha256-0tyvb11rBtrTbA+eAV1E5Y2tZeAwtrpONHBOLaVxuaQ="; + vendorHash = "sha256-QqG8rxGQW+Lmd2L+wKiKUV+GXcxoO04yhJhDvMqwTVc="; subPackages = [ "mercure" ]; excludedPackages = [ "../cmd/mercure" ]; diff --git a/pkgs/by-name/mq/mqtt-exporter/package.nix b/pkgs/by-name/mq/mqtt-exporter/package.nix index 898e3f5ab894..01715b67d838 100644 --- a/pkgs/by-name/mq/mqtt-exporter/package.nix +++ b/pkgs/by-name/mq/mqtt-exporter/package.nix @@ -6,14 +6,14 @@ python3.pkgs.buildPythonApplication rec { pname = "mqtt-exporter"; - version = "1.5.0"; + version = "1.6.1"; pyproject = true; src = fetchFromGitHub { owner = "kpetremann"; repo = "mqtt-exporter"; tag = "v${version}"; - hash = "sha256-3gUAiujfBXJpVailx8cMmSJS7l69XpE4UGK/aebcQqY="; + hash = "sha256-XTgnD3H48KKclPhfmBPiWQPaJkfiBxjq2YQusOPLFJQ="; }; pythonRelaxDeps = [ "prometheus-client" ]; diff --git a/pkgs/by-name/my/mysql-workbench/dont-search-for-antlr-jar.patch b/pkgs/by-name/my/mysql-workbench/dont-search-for-antlr-jar.patch index 2d5c3c648372..8cf10866dd82 100644 --- a/pkgs/by-name/my/mysql-workbench/dont-search-for-antlr-jar.patch +++ b/pkgs/by-name/my/mysql-workbench/dont-search-for-antlr-jar.patch @@ -1,5 +1,5 @@ diff --git a/CMakeLists.txt b/CMakeLists.txt -index b7320bb..d7169da 100644 +index 3dd3e19..4290041 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -143,25 +143,6 @@ check_function_exists (strtoull HAVE_STRTOULL) diff --git a/pkgs/by-name/my/mysql-workbench/hardcode-paths.patch b/pkgs/by-name/my/mysql-workbench/hardcode-paths.patch index 8f7b317fb6ca..9065355843cd 100644 --- a/pkgs/by-name/my/mysql-workbench/hardcode-paths.patch +++ b/pkgs/by-name/my/mysql-workbench/hardcode-paths.patch @@ -84,7 +84,7 @@ index 40ed515..00da327 100644 if to_spawn: command += ' &' - sudo_prefix += ' /usr/bin/nohup' -+ sudo_prefix += ' @nohup@' ++ sudo_prefix += ' @coreutils@/bin/nohup' # If as_user is the CURRENT then there's no need to sudo if as_user != Users.CURRENT: @@ -102,10 +102,10 @@ index 40ed515..00da327 100644 def get_file_owner(self, path, as_user = Users.CURRENT, user_password = None): if self.target_os == wbaOS.linux: - command = 'LC_ALL=C stat -c %U ' -+ command = 'LC_ALL=C @stat@ -c %U ' ++ command = 'LC_ALL=C @coreutils@/bin/stat -c %U ' else: - command = 'LC_ALL=C /usr/bin/stat -f "%Su" ' -+ command = 'LC_ALL=C @stat@ -f "%Su" ' ++ command = 'LC_ALL=C @coreutils@/bin/stat -f "%Su" ' output = io.StringIO() command = command + quote_path(path) @@ -114,10 +114,10 @@ index 40ed515..00da327 100644 raise PermissionDeniedError("Cannot set owner of directory %s" % path) else: - command = "/bin/mkdir %s && chown %s %s" % (quote_path(path), with_owner, quote_path(path)) -+ command = "@mkdir@ %s && chown %s %s" % (quote_path(path), with_owner, quote_path(path)) ++ command = "@coreutils@/bin/mkdir %s && chown %s %s" % (quote_path(path), with_owner, quote_path(path)) else: - command = "/bin/mkdir %s" % (quote_path(path)) -+ command = "@mkdir@ %s" % (quote_path(path)) ++ command = "@coreutils@/bin/mkdir %s" % (quote_path(path)) res = self.process_ops.exec_cmd(command, as_user = as_user, @@ -126,7 +126,7 @@ index 40ed515..00da327 100644 def remove_directory(self, path, as_user = Users.CURRENT, user_password = None): output = io.StringIO() - res = self.process_ops.exec_cmd('/bin/rmdir ' + quote_path(path), -+ res = self.process_ops.exec_cmd('@rmdir@ ' + quote_path(path), ++ res = self.process_ops.exec_cmd('@coreutils@/bin/rmdir ' + quote_path(path), as_user = as_user, user_password = user_password, output_handler = output.write, @@ -135,7 +135,7 @@ index 40ed515..00da327 100644 def remove_directory_recursive(self, path, as_user = Users.CURRENT, user_password = None): output = io.StringIO() - res = self.process_ops.exec_cmd('/bin/rm -R ' + quote_path(path), -+ res = self.process_ops.exec_cmd('@rm@ -R ' + quote_path(path), ++ res = self.process_ops.exec_cmd('@coreutils@/bin/rm -R ' + quote_path(path), as_user = as_user, user_password = user_password, output_handler = output.write, @@ -144,7 +144,7 @@ index 40ed515..00da327 100644 def delete_file(self, path, as_user = Users.CURRENT, user_password = None): output = io.StringIO() - res = self.process_ops.exec_cmd("/bin/rm " + quote_path(path), -+ res = self.process_ops.exec_cmd("@rm@ " + quote_path(path), ++ res = self.process_ops.exec_cmd("@coreutils@/bin/rm " + quote_path(path), as_user = as_user, user_password = user_password, output_handler = output.write, @@ -153,7 +153,7 @@ index 40ed515..00da327 100644 output = io.StringIO() - res = self.process_ops.exec_cmd("LC_ALL=C /bin/cp " + quote_path(source) + " " + quote_path(dest), -+ res = self.process_ops.exec_cmd("LC_ALL=C @cp@ " + quote_path(source) + " " + quote_path(dest), ++ res = self.process_ops.exec_cmd("LC_ALL=C @coreutils@/bin/cp " + quote_path(source) + " " + quote_path(dest), as_user = as_user, user_password = user_password, output_handler = output.write, @@ -162,10 +162,10 @@ index 40ed515..00da327 100644 # since both cases are possible, we need to handle both at the same time (1st line being total or not) # the good news is that if the line is there, then it will always start with total, regardless of the locale - command = 'LC_ALL=C /bin/ls -l -p %s' % quote_path(path) -+ command = 'LC_ALL=C @ls@ -l -p %s' % quote_path(path) ++ command = 'LC_ALL=C @coreutils@/bin/ls -l -p %s' % quote_path(path) else: - command = 'LC_ALL=C /bin/ls -1 -p %s' % quote_path(path) -+ command = 'LC_ALL=C @ls@ -1 -p %s' % quote_path(path) ++ command = 'LC_ALL=C @coreutils@/bin/ls -1 -p %s' % quote_path(path) output = io.StringIO() res = self.process_ops.exec_cmd(command, @@ -174,10 +174,10 @@ index 40ed515..00da327 100644 f = io.StringIO() if not self._need_sudo: - ret = self.server_helper.execute_command("/bin/dd if=%s ibs=1 skip=%i count=%i 2> /dev/null" % (quote_path(self.path), start, end-start), as_user = Users.CURRENT, user_password=None, output_handler=f.write) -+ ret = self.server_helper.execute_command("@dd@ if=%s ibs=1 skip=%i count=%i 2> /dev/null" % (quote_path(self.path), start, end-start), as_user = Users.CURRENT, user_password=None, output_handler=f.write) ++ ret = self.server_helper.execute_command("@coreutils@/bin/dd if=%s ibs=1 skip=%i count=%i 2> /dev/null" % (quote_path(self.path), start, end-start), as_user = Users.CURRENT, user_password=None, output_handler=f.write) else: - ret = self.server_helper.execute_command("/bin/dd if=%s ibs=1 skip=%i count=%i 2> /dev/null" % (quote_path(self.path), start, end-start), as_user = Users.ADMIN, user_password=self.get_password, output_handler=f.write) -+ ret = self.server_helper.execute_command("@dd@ if=%s ibs=1 skip=%i count=%i 2> /dev/null" % (quote_path(self.path), start, end-start), as_user = Users.ADMIN, user_password=self.get_password, output_handler=f.write) ++ ret = self.server_helper.execute_command("@coreutils@/bin/dd if=%s ibs=1 skip=%i count=%i 2> /dev/null" % (quote_path(self.path), start, end-start), as_user = Users.ADMIN, user_password=self.get_password, output_handler=f.write) if ret != 0: raise RuntimeError("Could not get data from file %s" % self.path) @@ -186,10 +186,10 @@ index 40ed515..00da327 100644 def read_task(self, offset, file): if not self._need_sudo: - self.server_helper.execute_command("/bin/dd if=%s ibs=1 skip=%i 2> /dev/null" % (quote_path(self.path), offset), as_user = Users.CURRENT, user_password=None, output_handler=file.write) -+ self.server_helper.execute_command("@dd@ if=%s ibs=1 skip=%i 2> /dev/null" % (quote_path(self.path), offset), as_user = Users.CURRENT, user_password=None, output_handler=file.write) ++ self.server_helper.execute_command("@coreutils@/bin/dd if=%s ibs=1 skip=%i 2> /dev/null" % (quote_path(self.path), offset), as_user = Users.CURRENT, user_password=None, output_handler=file.write) else: - self.server_helper.execute_command("/bin/dd if=%s ibs=1 skip=%i 2> /dev/null" % (quote_path(self.path), offset), as_user = Users.ADMIN, user_password=self.get_password, output_handler=file.write) -+ self.server_helper.execute_command("@dd@ if=%s ibs=1 skip=%i 2> /dev/null" % (quote_path(self.path), offset), as_user = Users.ADMIN, user_password=self.get_password, output_handler=file.write) ++ self.server_helper.execute_command("@coreutils@/bin/dd if=%s ibs=1 skip=%i 2> /dev/null" % (quote_path(self.path), offset), as_user = Users.ADMIN, user_password=self.get_password, output_handler=file.write) # this will signal the reader end that there's no more data file.close() @@ -198,10 +198,10 @@ index 40ed515..00da327 100644 f = io.StringIO() if not self._need_sudo: - self.server_helper.execute_command("/bin/dd if=%s ibs=1 skip=%i 2> /dev/null" % (quote_path(self.path), offset), as_user = Users.CURRENT, user_password=None, output_handler=f.write) -+ self.server_helper.execute_command("@dd@ if=%s ibs=1 skip=%i 2> /dev/null" % (quote_path(self.path), offset), as_user = Users.CURRENT, user_password=None, output_handler=f.write) ++ self.server_helper.execute_command("@coreutils@/bin/dd if=%s ibs=1 skip=%i 2> /dev/null" % (quote_path(self.path), offset), as_user = Users.CURRENT, user_password=None, output_handler=f.write) else: - self.server_helper.execute_command("/bin/dd if=%s ibs=1 skip=%i 2> /dev/null" % (quote_path(self.path), offset), as_user = Users.ADMIN, user_password=self._password, output_handler=f.write) -+ self.server_helper.execute_command("@dd@ if=%s ibs=1 skip=%i 2> /dev/null" % (quote_path(self.path), offset), as_user = Users.ADMIN, user_password=self._password, output_handler=f.write) ++ self.server_helper.execute_command("@coreutils@/bin/dd if=%s ibs=1 skip=%i 2> /dev/null" % (quote_path(self.path), offset), as_user = Users.ADMIN, user_password=self._password, output_handler=f.write) self.data = f self.data.seek(0) if self.skip_first_newline: diff --git a/pkgs/by-name/my/mysql-workbench/package.nix b/pkgs/by-name/my/mysql-workbench/package.nix index d59f60816cea..bffefc955f02 100644 --- a/pkgs/by-name/my/mysql-workbench/package.nix +++ b/pkgs/by-name/my/mysql-workbench/package.nix @@ -46,8 +46,6 @@ let }; }); - getCoreExe = lib.getExe' coreutils; - inherit (python3Packages) paramiko pycairo pyodbc; in stdenv.mkDerivation (finalAttrs: { @@ -63,14 +61,7 @@ stdenv.mkDerivation (finalAttrs: { (replaceVars ./hardcode-paths.patch { bash = lib.getExe bash; catchsegv = lib.getExe' glibc "catchsegv"; - cp = getCoreExe "cp"; - dd = getCoreExe "dd"; - ls = getCoreExe "ls"; - mkdir = getCoreExe "mkdir"; - nohup = getCoreExe "nohup"; - rm = getCoreExe "rm"; - rmdir = getCoreExe "rmdir"; - stat = getCoreExe "stat"; + coreutils = lib.getBin coreutils; sudo = lib.getExe sudo; }) diff --git a/pkgs/by-name/n8/n8n/package.nix b/pkgs/by-name/n8/n8n/package.nix index 90b969fd484a..a339597e2896 100644 --- a/pkgs/by-name/n8/n8n/package.nix +++ b/pkgs/by-name/n8/n8n/package.nix @@ -16,18 +16,18 @@ stdenv.mkDerivation (finalAttrs: { pname = "n8n"; - version = "1.72.1"; + version = "1.73.1"; src = fetchFromGitHub { owner = "n8n-io"; repo = "n8n"; tag = "n8n@${finalAttrs.version}"; - hash = "sha256-GIA2y81nuKWe1zuZQ99oczQtQWStyT1Qh3bZ1oe8me4="; + hash = "sha256-gPdJKVOZlizdS0o+2nBgCImnIhtHzRjE2xk0zJA52go="; }; pnpmDeps = pnpm.fetchDeps { inherit (finalAttrs) pname version src; - hash = "sha256-riuN7o+uUXS5G7fMgE7cZhGWHZtGwSHm4CP7G46R5Cw="; + hash = "sha256-Am9R2rfQiw1IPd22/UraqzEqvVeB5XuSrrLSYXWsWfU="; }; nativeBuildInputs = [ diff --git a/pkgs/by-name/ni/nixos-facter/package.nix b/pkgs/by-name/ni/nixos-facter/package.nix index 2e214e010a80..9f0304aa4a3c 100644 --- a/pkgs/by-name/ni/nixos-facter/package.nix +++ b/pkgs/by-name/ni/nixos-facter/package.nix @@ -24,16 +24,16 @@ let in buildGoModule rec { pname = "nixos-facter"; - version = "0.3.0"; + version = "0.3.1"; src = fetchFromGitHub { owner = "numtide"; repo = "nixos-facter"; rev = "v${version}"; - hash = "sha256-T7x9xU/Tr2BKfrHQHrP6Mm6rNUWYASjEPzHIKgyS7aE="; + hash = "sha256-HJt6FEQbzwlVMow47p1DtqXdmCxLYA6g3D1EgGnKcUo="; }; - vendorHash = "sha256-qDzd+aq08PN9kl1YkvNLGvWaFVh7xFXJhGdx/ELwYGY="; + vendorHash = "sha256-WCItbRbGgclXGtJyHCkDgaPe3Mobe4mT/4c16AEdF5o="; env.CGO_ENABLED = 1; diff --git a/pkgs/by-name/ni/nixos-render-docs/src/nixos_render_docs/options.py b/pkgs/by-name/ni/nixos-render-docs/src/nixos_render_docs/options.py index fcd5af4ffe31..75fbeadce1d0 100644 --- a/pkgs/by-name/ni/nixos-render-docs/src/nixos_render_docs/options.py +++ b/pkgs/by-name/ni/nixos-render-docs/src/nixos_render_docs/options.py @@ -21,7 +21,7 @@ from .html import HTMLRenderer from .manpage import ManpageRenderer, man_escape from .manual_structure import make_xml_id, XrefTarget from .md import Converter, md_escape, md_make_code -from .types import OptionLoc, Option, RenderedOption +from .types import OptionLoc, Option, RenderedOption, AnchorStyle def option_is(option: Option, key: str, typ: str) -> Optional[dict[str, str]]: if key not in option: @@ -317,10 +317,15 @@ class OptionsCommonMarkRenderer(OptionDocsRestrictions, CommonMarkRenderer): class CommonMarkConverter(BaseConverter[OptionsCommonMarkRenderer]): __option_block_separator__ = "" + _anchor_style: AnchorStyle + _anchor_prefix: str - def __init__(self, manpage_urls: Mapping[str, str], revision: str): + + def __init__(self, manpage_urls: Mapping[str, str], revision: str, anchor_style: AnchorStyle = AnchorStyle.NONE, anchor_prefix: str = ""): super().__init__(revision) self._renderer = OptionsCommonMarkRenderer(manpage_urls) + self._anchor_style = anchor_style + self._anchor_prefix = anchor_prefix def _parallel_render_prepare(self) -> Any: return (self._renderer._manpage_urls, self._revision) @@ -342,11 +347,21 @@ class CommonMarkConverter(BaseConverter[OptionsCommonMarkRenderer]): def _decl_def_footer(self) -> list[str]: return [] + def _make_anchor_suffix(self, loc: list[str]) -> str: + if self._anchor_style == AnchorStyle.NONE: + return "" + elif self._anchor_style == AnchorStyle.LEGACY: + sanitized = ".".join(map(make_xml_id, loc)) + return f" {{#{self._anchor_prefix}{sanitized}}}" + else: + raise RuntimeError("unhandled anchor style", self._anchor_style) + def finalize(self) -> str: result = [] for (name, opt) in self._sorted_options(): - result.append(f"## {md_escape(name)}\n") + anchor_suffix = self._make_anchor_suffix(opt.loc) + result.append(f"## {md_escape(name)}{anchor_suffix}\n") result += opt.lines result.append("\n\n") @@ -490,9 +505,30 @@ def _build_cli_manpage(p: argparse.ArgumentParser) -> None: p.add_argument("infile") p.add_argument("outfile") +def parse_anchor_style(value: str|AnchorStyle) -> AnchorStyle: + if isinstance(value, AnchorStyle): + # Used by `argparse.add_argument`'s `default` + return value + try: + return AnchorStyle(value.lower()) + except ValueError: + raise argparse.ArgumentTypeError(f"Invalid value {value}\nExpected one of {', '.join(style.value for style in AnchorStyle)}") + def _build_cli_commonmark(p: argparse.ArgumentParser) -> None: p.add_argument('--manpage-urls', required=True) p.add_argument('--revision', required=True) + p.add_argument( + '--anchor-style', + required=False, + default=AnchorStyle.NONE.value, + choices = [style.value for style in AnchorStyle], + help = "(default: %(default)s) Anchor style to use for links to options. \nOnly none is standard CommonMark." + ) + p.add_argument('--anchor-prefix', + required=False, + default="", + help="(default: no prefix) String to prepend to anchor ids. Not used when anchor style is none." + ) p.add_argument("infile") p.add_argument("outfile") @@ -527,7 +563,10 @@ def _run_cli_manpage(args: argparse.Namespace) -> None: def _run_cli_commonmark(args: argparse.Namespace) -> None: with open(args.manpage_urls, 'r') as manpage_urls: - md = CommonMarkConverter(json.load(manpage_urls), revision = args.revision) + md = CommonMarkConverter(json.load(manpage_urls), + revision = args.revision, + anchor_style = parse_anchor_style(args.anchor_style), + anchor_prefix = args.anchor_prefix) with open(args.infile, 'r') as f: md.add_options(json.load(f)) diff --git a/pkgs/by-name/ni/nixos-render-docs/src/nixos_render_docs/types.py b/pkgs/by-name/ni/nixos-render-docs/src/nixos_render_docs/types.py index 1d586ca240f7..b5c6e91a9b03 100644 --- a/pkgs/by-name/ni/nixos-render-docs/src/nixos_render_docs/types.py +++ b/pkgs/by-name/ni/nixos-render-docs/src/nixos_render_docs/types.py @@ -1,4 +1,5 @@ from collections.abc import Sequence +from enum import Enum from typing import Callable, Optional, NamedTuple from markdown_it.token import Token @@ -12,3 +13,7 @@ class RenderedOption(NamedTuple): links: Optional[list[str]] = None RenderFn = Callable[[Token, Sequence[Token], int], str] + +class AnchorStyle(Enum): + NONE = "none" + LEGACY = "legacy" diff --git a/pkgs/by-name/ni/nixos-render-docs/src/tests/sample_options_simple.json b/pkgs/by-name/ni/nixos-render-docs/src/tests/sample_options_simple.json new file mode 100644 index 000000000000..9b5f5d9ba1be --- /dev/null +++ b/pkgs/by-name/ni/nixos-render-docs/src/tests/sample_options_simple.json @@ -0,0 +1,17 @@ +{ + "services.frobnicator.types..enable": { + "declarations": [ + "nixos/modules/services/frobnicator.nix" + ], + "description": "Whether to enable the frobnication of this (``) type.", + "loc": [ + "services", + "frobnicator", + "types", + "", + "enable" + ], + "readOnly": false, + "type": "boolean" + } +} diff --git a/pkgs/by-name/ni/nixos-render-docs/src/tests/sample_options_simple_default.md b/pkgs/by-name/ni/nixos-render-docs/src/tests/sample_options_simple_default.md new file mode 100644 index 000000000000..3256b2acaf01 --- /dev/null +++ b/pkgs/by-name/ni/nixos-render-docs/src/tests/sample_options_simple_default.md @@ -0,0 +1,13 @@ +## services\.frobnicator\.types\.\\.enable + +Whether to enable the frobnication of this (` `) type\. + + + +*Type:* +boolean + +*Declared by:* + - [\](https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/services/frobnicator.nix) + + diff --git a/pkgs/by-name/ni/nixos-render-docs/src/tests/sample_options_simple_legacy.md b/pkgs/by-name/ni/nixos-render-docs/src/tests/sample_options_simple_legacy.md new file mode 100644 index 000000000000..3ae36bf2b762 --- /dev/null +++ b/pkgs/by-name/ni/nixos-render-docs/src/tests/sample_options_simple_legacy.md @@ -0,0 +1,13 @@ +## services\.frobnicator\.types\.\\.enable {#opt-services.frobnicator.types._name_.enable} + +Whether to enable the frobnication of this (` `) type\. + + + +*Type:* +boolean + +*Declared by:* + - [\](https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/services/frobnicator.nix) + + diff --git a/pkgs/by-name/ni/nixos-render-docs/src/tests/test_options.py b/pkgs/by-name/ni/nixos-render-docs/src/tests/test_options.py index 9499f83df525..5793b9c912b4 100644 --- a/pkgs/by-name/ni/nixos-render-docs/src/tests/test_options.py +++ b/pkgs/by-name/ni/nixos-render-docs/src/tests/test_options.py @@ -1,6 +1,9 @@ import nixos_render_docs +from nixos_render_docs.options import AnchorStyle +import json from markdown_it.token import Token +from pathlib import Path import pytest def test_option_headings() -> None: @@ -12,3 +15,27 @@ def test_option_headings() -> None: type='heading_open', tag='h1', nesting=1, attrs={}, map=[0, 1], level=0, children=None, content='', markup='#', info='', meta={}, block=True, hidden=False ) + +def test_options_commonmark() -> None: + c = nixos_render_docs.options.CommonMarkConverter({}, 'local') + with Path('tests/sample_options_simple.json').open() as f: + opts = json.load(f) + assert opts is not None + with Path('tests/sample_options_simple_default.md').open() as f: + expected = f.read() + + c.add_options(opts) + s = c.finalize() + assert s == expected + +def test_options_commonmark_legacy_anchors() -> None: + c = nixos_render_docs.options.CommonMarkConverter({}, 'local', anchor_style = AnchorStyle.LEGACY, anchor_prefix = 'opt-') + with Path('tests/sample_options_simple.json').open() as f: + opts = json.load(f) + assert opts is not None + with Path('tests/sample_options_simple_legacy.md').open() as f: + expected = f.read() + + c.add_options(opts) + s = c.finalize() + assert s == expected diff --git a/pkgs/by-name/op/opencomposite/package.nix b/pkgs/by-name/op/opencomposite/package.nix index 661b0025359a..5e74363d0773 100644 --- a/pkgs/by-name/op/opencomposite/package.nix +++ b/pkgs/by-name/op/opencomposite/package.nix @@ -26,13 +26,15 @@ stdenv.mkDerivation { hash = "sha256-SV8E+4qu5J7MueHmdsdTDKNx4CH085fidgIJyewj8RQ="; }; - nativeBuildInputs = [ cmake ]; + nativeBuildInputs = [ + cmake + python3 + ]; buildInputs = [ glm jsoncpp libGL - python3 vulkan-headers vulkan-loader xorg.libX11 diff --git a/pkgs/by-name/p2/p2pool/package.nix b/pkgs/by-name/p2/p2pool/package.nix index 3a957b7e0a3d..e0c94735fd54 100644 --- a/pkgs/by-name/p2/p2pool/package.nix +++ b/pkgs/by-name/p2/p2pool/package.nix @@ -20,13 +20,13 @@ let in stdenv.mkDerivation rec { pname = "p2pool"; - version = "4.2"; + version = "4.3"; src = fetchFromGitHub { owner = "SChernykh"; repo = "p2pool"; rev = "v${version}"; - hash = "sha256-zowRQeFrT0sY9L5XJQ10f8tRnEchjKVdBixtPbAQyvo="; + hash = "sha256-PHrmTkmpYOPKx9q+/mhjr8MIbFqmljKs2F26tqyCzcE="; fetchSubmodules = true; }; diff --git a/pkgs/by-name/pi/pigz/package.nix b/pkgs/by-name/pi/pigz/package.nix index 2636a6739478..8562b76e13bf 100644 --- a/pkgs/by-name/pi/pigz/package.nix +++ b/pkgs/by-name/pi/pigz/package.nix @@ -40,6 +40,7 @@ stdenv.mkDerivation rec { meta = with lib; { homepage = "https://www.zlib.net/pigz/"; description = "Parallel implementation of gzip for multi-core machines"; + mainProgram = "pigz"; maintainers = [ ]; license = licenses.zlib; platforms = platforms.unix; diff --git a/pkgs/by-name/po/poptracker/package.nix b/pkgs/by-name/po/poptracker/package.nix index 8020e5da4f60..b0b6f93f9d5e 100644 --- a/pkgs/by-name/po/poptracker/package.nix +++ b/pkgs/by-name/po/poptracker/package.nix @@ -12,20 +12,23 @@ makeWrapper, makeDesktopItem, copyDesktopItems, + nix-update-script, }: stdenv.mkDerivation (finalAttrs: { pname = "poptracker"; - version = "0.27.0"; + version = "0.29.0"; src = fetchFromGitHub { owner = "black-sliver"; repo = "PopTracker"; rev = "v${finalAttrs.version}"; - hash = "sha256-Tz3rVbaHw5RfFKuLih4BEEnn3uNeLrtDQpBD2yYUzkM="; + hash = "sha256-rkEaq8YLt0NhspXVgEqZ/9FF7GDlTU5fKgWGXeA6UX4="; fetchSubmodules = true; }; + passthru.updateScript = nix-update-script { }; + patches = [ ./assets-path.diff ]; postPatch = '' diff --git a/pkgs/by-name/re/readarr/package.nix b/pkgs/by-name/re/readarr/package.nix index 608ce91a76a5..5a6a9822fe2f 100644 --- a/pkgs/by-name/re/readarr/package.nix +++ b/pkgs/by-name/re/readarr/package.nix @@ -24,15 +24,15 @@ let ."${stdenv.hostPlatform.system}" or (throw "Unsupported system: ${stdenv.hostPlatform.system}"); hash = { - x64-linux_hash = "sha256-ijBsMc/37cpw1WJ36vIUm1d0wzHjpTsBX9mZRkL91BU="; - arm64-linux_hash = "sha256-oTA1O6M/P7kGI/YCoWzTw6kvmMg+QGhpn/jWrOc4rug="; - x64-osx_hash = "sha256-ZAZ0Y5O64llljc/NjnOHynEP7wXB/U4J5T1n5Pe+2A4="; + x64-linux_hash = "sha256-dYYvrsYR+xsS9N/btJPCaCg4mS2UVgZs5FaBbWU4ytM="; + arm64-linux_hash = "sha256-Vfdq6Mngr3Cbq844Upq84k6gH0SnbpdPK0dU7LBnJO8="; + x64-osx_hash = "sha256-7mtnnbEQ+70qY5iSfX7pDUYPqKQG2JdzGRFgm1CEhs4="; } ."${arch}-${os}_hash"; in stdenv.mkDerivation rec { pname = "readarr"; - version = "0.4.6.2711"; + version = "0.4.8.2726"; src = fetchurl { url = "https://github.com/Readarr/Readarr/releases/download/v${version}/Readarr.develop.${version}.${os}-core-${arch}.tar.gz"; diff --git a/pkgs/by-name/re/recordbox/Cargo.lock b/pkgs/by-name/re/recordbox/Cargo.lock index 164c6efadf6f..f2b5d165262c 100644 --- a/pkgs/by-name/re/recordbox/Cargo.lock +++ b/pkgs/by-name/re/recordbox/Cargo.lock @@ -1,6 +1,6 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. -version = 3 +version = 4 [[package]] name = "adler2" @@ -46,9 +46,9 @@ dependencies = [ [[package]] name = "ashpd" -version = "0.9.2" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d43c03d9e36dd40cab48435be0b09646da362c278223ca535493877b2c1dee9" +checksum = "e9c39d707614dbcc6bed00015539f488d8e3fe3e66ed60961efc0c90f4b380b3" dependencies = [ "async-fs", "async-net", @@ -59,21 +59,32 @@ dependencies = [ "serde", "serde_repr", "url", - "zbus", + "zbus 5.2.0", ] [[package]] name = "async-broadcast" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20cd0e2e25ea8e5f7e9df04578dc6cf5c83577fd09b1a46aaf5c85e1c33f2a7e" +checksum = "435a87a52755b8f27fcf321ac4f04b2802e337c8c4872923137471ec39c37532" dependencies = [ - "event-listener", + "event-listener 5.3.1", "event-listener-strategy", "futures-core", "pin-project-lite", ] +[[package]] +name = "async-channel" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35" +dependencies = [ + "concurrent-queue", + "event-listener 2.5.3", + "futures-core", +] + [[package]] name = "async-channel" version = "2.3.1" @@ -111,10 +122,25 @@ dependencies = [ ] [[package]] -name = "async-io" -version = "2.3.4" +name = "async-global-executor" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "444b0228950ee6501b3568d3c93bf1176a1fdbc3b758dcd9475046d30f4dc7e8" +checksum = "05b1b633a2115cd122d73b955eadd9916c18c8f510ec9cd1686404c60ad1c29c" +dependencies = [ + "async-channel 2.3.1", + "async-executor", + "async-io", + "async-lock", + "blocking", + "futures-lite", + "once_cell", +] + +[[package]] +name = "async-io" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43a2b323ccce0a1d90b449fd71f2a06ca7faa7c54c2751f06c9bd851fc061059" dependencies = [ "async-lock", "cfg-if", @@ -135,7 +161,7 @@ version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ff6e472cdea888a4bd64f342f09b3f50e1886d32afe8df3d663c01140b811b18" dependencies = [ - "event-listener", + "event-listener 5.3.1", "event-listener-strategy", "pin-project-lite", ] @@ -157,14 +183,14 @@ version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "63255f1dc2381611000436537bbedfe83183faa303a5a0edaf191edef06526bb" dependencies = [ - "async-channel", + "async-channel 2.3.1", "async-io", "async-lock", "async-signal", "async-task", "blocking", "cfg-if", - "event-listener", + "event-listener 5.3.1", "futures-lite", "rustix", "tracing", @@ -199,6 +225,33 @@ dependencies = [ "windows-sys 0.59.0", ] +[[package]] +name = "async-std" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c634475f29802fde2b8f0b505b1bd00dfe4df7d4a000f0b36f7671197d5c3615" +dependencies = [ + "async-channel 1.9.0", + "async-global-executor", + "async-io", + "async-lock", + "async-process", + "crossbeam-utils", + "futures-channel", + "futures-core", + "futures-io", + "futures-lite", + "gloo-timers", + "kv-log-macro", + "log", + "memchr", + "once_cell", + "pin-project-lite", + "pin-utils", + "slab", + "wasm-bindgen-futures", +] + [[package]] name = "async-task" version = "4.7.1" @@ -234,6 +287,12 @@ version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" +[[package]] +name = "base64" +version = "0.21.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" + [[package]] name = "bitflags" version = "1.3.2" @@ -267,7 +326,7 @@ version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "703f41c54fc768e63e091340b424302bb1c29ef4aa0c7f10fe849dfb114d29ea" dependencies = [ - "async-channel", + "async-channel 2.3.1", "async-task", "futures-io", "futures-lite", @@ -282,9 +341,9 @@ checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" [[package]] name = "bytemuck" -version = "1.19.0" +version = "1.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8334215b81e418a0a7bdb8ef0849474f40bb10c8b71f1c4ed315cff49f32494d" +checksum = "ef657dfab802224e671f5818e9a4935f9b1957ed18e58292690cc39e7a4092a3" [[package]] name = "byteorder" @@ -293,10 +352,36 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] -name = "cairo-rs" -version = "0.20.5" +name = "cacache" +version = "13.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7fa699e1d7ae691001a811dda5ef0e3e42e1d4119b26426352989df9e94e3e6" +checksum = "5c5063741c7b2e260bbede781cf4679632dd90e2718e99f7715e46824b65670b" +dependencies = [ + "async-std", + "digest", + "either", + "futures", + "hex", + "libc", + "memmap2", + "miette", + "reflink-copy", + "serde", + "serde_derive", + "serde_json", + "sha1", + "sha2", + "ssri", + "tempfile", + "thiserror 1.0.69", + "walkdir", +] + +[[package]] +name = "cairo-rs" +version = "0.20.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae50b5510d86cf96ac2370e66d8dc960882f3df179d6a5a1e52bd94a1416c0f7" dependencies = [ "bitflags 2.6.0", "cairo-sys-rs", @@ -306,9 +391,9 @@ dependencies = [ [[package]] name = "cairo-sys-rs" -version = "0.20.0" +version = "0.20.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "428290f914b9b86089f60f5d8a9f6e440508e1bcff23b25afd51502b0a2da88f" +checksum = "f18b6bb8e43c7eb0f2aac7976afe0c61b6f5fc2ab7bc4c139537ea56c92290df" dependencies = [ "glib-sys", "libc", @@ -317,18 +402,18 @@ dependencies = [ [[package]] name = "cc" -version = "1.1.35" +version = "1.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f57c4b4da2a9d619dd035f27316d7a426305b75be93d09e92f2b9229c34feaf" +checksum = "c31a0499c1dc64f458ad13872de75c0eb7e3fdb0e67964610c914b034fc5956e" dependencies = [ "shlex", ] [[package]] name = "cfg-expr" -version = "0.17.0" +version = "0.17.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0890061c4d3223e7267f3bad2ec40b997d64faac1c2815a4a9d95018e2b9e9c" +checksum = "8d4ba6e40bd1184518716a6e1a781bf9160e286d219ccdb8ab2612e74cfe4789" dependencies = [ "smallvec", "target-lexicon", @@ -348,14 +433,14 @@ checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" [[package]] name = "chrono" -version = "0.4.38" +version = "0.4.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401" +checksum = "7e36cc9d416881d2e24f9a963be5fb1cd90966419ac844274161d10488b3e825" dependencies = [ "android-tzdata", "iana-time-zone", "num-traits", - "windows-targets 0.52.6", + "windows-targets", ] [[package]] @@ -390,9 +475,9 @@ checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" [[package]] name = "cpufeatures" -version = "0.2.14" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "608697df725056feaccfa42cffdaeeec3fccc4ffc38358ecd19b243e716a78e0" +checksum = "16b80225097f2e5ae4e7179dd2266824648f3e2f49d9134d584b76389d31c4c3" dependencies = [ "libc", ] @@ -408,18 +493,27 @@ dependencies = [ [[package]] name = "crossbeam-channel" -version = "0.5.13" +version = "0.5.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33480d6946193aa8033910124896ca395333cae7e2d1113d1fef6c3272217df2" +checksum = "06ba6d68e24814cb8de6bb986db8222d3a027d15872cabc0d18817bc3c0e4471" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" dependencies = [ "crossbeam-utils", ] [[package]] name = "crossbeam-utils" -version = "0.8.20" +version = "0.8.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" +checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" [[package]] name = "crypto-common" @@ -499,14 +593,20 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" [[package]] name = "errno" -version = "0.3.9" +version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" +checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" dependencies = [ "libc", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] +[[package]] +name = "event-listener" +version = "2.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" + [[package]] name = "event-listener" version = "5.3.1" @@ -520,11 +620,11 @@ dependencies = [ [[package]] name = "event-listener-strategy" -version = "0.5.2" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f214dc438f977e6d4e3500aaa277f5ad94ca83fbbd9b1a15713ce2344ccc5a1" +checksum = "3c3e4e0dd3673c1139bf041f3008816d9cf2946bbfac2945c09e523b8d7b05b2" dependencies = [ - "event-listener", + "event-listener 5.3.1", "pin-project-lite", ] @@ -542,9 +642,9 @@ checksum = "7360491ce676a36bf9bb3c56c1aa791658183a54d2744120f27285738d90465a" [[package]] name = "fastrand" -version = "2.1.1" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8c02a5121d4ea3eb16a80748c74f5549a5665e4c21333c6098f283870fbdea6" +checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" [[package]] name = "field-offset" @@ -579,9 +679,9 @@ dependencies = [ [[package]] name = "flate2" -version = "1.0.34" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1b589b4dc103969ad3cf85c950899926ec64300a1a46d76c03a6072957036f0" +checksum = "c936bfdafb507ebbf50b8074c54fa31c5be9a1e7e5f467dd659697041407d07c" dependencies = [ "crc32fast", "miniz_oxide", @@ -589,15 +689,15 @@ dependencies = [ [[package]] name = "flexi_logger" -version = "0.29.6" +version = "0.29.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d26948e37cfcb1f2c2cd38e0602d3a8ab6b9472c0c6eff4516fc8def9a3124d7" +checksum = "88a5a6882b2e137c4f2664562995865084eb5a00611fba30c582ef10354c4ad8" dependencies = [ "chrono", "log", "nu-ansi-term", "regex", - "thiserror", + "thiserror 2.0.9", ] [[package]] @@ -609,12 +709,6 @@ dependencies = [ "percent-encoding", ] -[[package]] -name = "formatx" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db0f0c49aba98a3b2578315766960bd242885ff672fd62610c5557cd6c6efe03" - [[package]] name = "fsevent-sys" version = "4.1.0" @@ -674,9 +768,9 @@ checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" [[package]] name = "futures-lite" -version = "2.4.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f1fa2f9765705486b33fd2acf1577f8ec449c2ba1f318ae5447697b7c08d210" +checksum = "cef40d21ae2c515b51041df9ed313ed21e572df340ea58a922a0aefe7e8891a1" dependencies = [ "fastrand", "futures-core", @@ -727,10 +821,19 @@ dependencies = [ ] [[package]] -name = "gdk-pixbuf" -version = "0.20.4" +name = "fuzzy-matcher" +version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4c29071a9e92337d8270a85cb0510cda4ac478be26d09ad027cc1d081911b19" +checksum = "54614a3312934d066701a80f20f15fa3b56d67ac7722b39eea5b4c9dd1d66c94" +dependencies = [ + "thread_local", +] + +[[package]] +name = "gdk-pixbuf" +version = "0.20.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6efc7705f7863d37b12ad6974cbb310d35d054f5108cdc1e69037742f573c4c" dependencies = [ "gdk-pixbuf-sys", "gio", @@ -740,9 +843,9 @@ dependencies = [ [[package]] name = "gdk-pixbuf-sys" -version = "0.20.4" +version = "0.20.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "687343b059b91df5f3fbd87b4307038fa9e647fcc0461d0d3f93e94fee20bf3d" +checksum = "67f2587c9202bf997476bbba6aaed4f78a11538a2567df002a5f57f5331d0b5c" dependencies = [ "gio-sys", "glib-sys", @@ -753,9 +856,9 @@ dependencies = [ [[package]] name = "gdk4" -version = "0.9.3" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3fb4af2d606b0ac4e81f982f0d064bcb71ca73859ce5f30475f7eb2e2be4bc3" +checksum = "d0196720118f880f71fe7da971eff58cc43a89c9cf73f46076b7cb1e60889b15" dependencies = [ "cairo-rs", "gdk-pixbuf", @@ -768,9 +871,9 @@ dependencies = [ [[package]] name = "gdk4-sys" -version = "0.9.3" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3642625b384ad43c006871462e6c498488b503dbf219542591f4ddf0f5f2032b" +checksum = "60b0e1340bd15e7a78810cf39fed9e5d85f0a8f80b1d999d384ca17dcc452b60" dependencies = [ "cairo-sys-rs", "gdk-pixbuf-sys", @@ -826,9 +929,9 @@ dependencies = [ [[package]] name = "gio" -version = "0.20.5" +version = "0.20.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8569975884fdfdbed536b682448fbd8c70bafbd69cac2d45eb1a7a372702241" +checksum = "a517657589a174be9f60c667f1fec8b7ac82ed5db4ebf56cf073a3b5955d8e2e" dependencies = [ "futures-channel", "futures-core", @@ -843,22 +946,22 @@ dependencies = [ [[package]] name = "gio-sys" -version = "0.20.5" +version = "0.20.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "217f464cad5946ae4369c355155e2d16b488c08920601083cb4891e352ae777b" +checksum = "8446d9b475730ebef81802c1738d972db42fde1c5a36a627ebc4d665fc87db04" dependencies = [ "glib-sys", "gobject-sys", "libc", "system-deps", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] name = "glib" -version = "0.20.5" +version = "0.20.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "358431b0e0eb15b9d02db52e1f19c805b953c5c168099deb3de88beab761768c" +checksum = "f969edf089188d821a30cde713b6f9eb08b20c63fc2e584aba2892a7984a8cc0" dependencies = [ "bitflags 2.6.0", "futures-channel", @@ -877,9 +980,9 @@ dependencies = [ [[package]] name = "glib-macros" -version = "0.20.5" +version = "0.20.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7d21ca27acfc3e91da70456edde144b4ac7c36f78ee77b10189b3eb4901c156" +checksum = "715601f8f02e71baef9c1f94a657a9a77c192aea6097cf9ae7e5e177cd8cde68" dependencies = [ "heck", "proc-macro-crate", @@ -890,19 +993,31 @@ dependencies = [ [[package]] name = "glib-sys" -version = "0.20.5" +version = "0.20.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a5911863ab7ecd4a6f8d5976f12eeba076b23669c49b066d877e742544aa389" +checksum = "b360ff0f90d71de99095f79c526a5888c9c92fc9ee1b19da06c6f5e75f0c2a53" dependencies = [ "libc", "system-deps", ] [[package]] -name = "gobject-sys" -version = "0.20.4" +name = "gloo-timers" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4c674d2ff8478cf0ec29d2be730ed779fef54415a2fb4b565c52def62696462" +checksum = "bbb143cf96099802033e0d4f4963b19fd2e0b728bcf076cd9cf7f6634f092994" +dependencies = [ + "futures-channel", + "futures-core", + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "gobject-sys" +version = "0.20.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67a56235e971a63bfd75abb13ef70064e1346388723422a68580d8a6fbac6423" dependencies = [ "glib-sys", "libc", @@ -911,9 +1026,9 @@ dependencies = [ [[package]] name = "graphene-rs" -version = "0.20.4" +version = "0.20.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f53144c7fe78292705ff23935f1477d511366fb2f73c43d63b37be89076d2fe" +checksum = "f39d3bcd2e24fd9c2874a56f277b72c03e728de9bdc95a8d4ef4c962f10ced98" dependencies = [ "glib", "graphene-sys", @@ -922,9 +1037,9 @@ dependencies = [ [[package]] name = "graphene-sys" -version = "0.20.4" +version = "0.20.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e741797dc5081e59877a4d72c442c72d61efdd99161a0b1c1b29b6b988934b99" +checksum = "11a68d39515bf340e879b72cecd4a25c1332557757ada6e8aba8654b4b81d23a" dependencies = [ "glib-sys", "libc", @@ -934,9 +1049,9 @@ dependencies = [ [[package]] name = "gsk4" -version = "0.9.3" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3deb9ae5a7fb759b2405e248d52850d9ef733079b90af2d6b01638f5b9eeafe1" +checksum = "32b9188db0a6219e708b6b6e7225718e459def664023dbddb8395ca1486d8102" dependencies = [ "cairo-rs", "gdk4", @@ -949,9 +1064,9 @@ dependencies = [ [[package]] name = "gsk4-sys" -version = "0.9.3" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2226662e97948f3f241c9a6c432cd95eeca662daf4a327e201458bb540ad9590" +checksum = "bca10fc65d68528a548efa3d8747934adcbe7058b73695c9a7f43a25352fce14" dependencies = [ "cairo-sys-rs", "gdk4-sys", @@ -965,9 +1080,9 @@ dependencies = [ [[package]] name = "gstreamer" -version = "0.23.3" +version = "0.23.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "680006694e79692f831ca4f3ba6e147b8c23db289b2df1d33a4a97fd038145d7" +checksum = "700cb1b2e86dda424f85eb728102a111602317e40b4dd71cf1c0dc04e0cc5d95" dependencies = [ "cfg-if", "futures-channel", @@ -985,14 +1100,14 @@ dependencies = [ "paste", "pin-project-lite", "smallvec", - "thiserror", + "thiserror 2.0.9", ] [[package]] name = "gstreamer-audio" -version = "0.23.2" +version = "0.23.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36d39b07213f83055fc705a384fa32ad581776b8e5b04c86f3a419ec5dfc0f81" +checksum = "52a6009b5c9c942cab1089956a501bd63778e65a3e69310949d173e90e2cdda2" dependencies = [ "cfg-if", "glib", @@ -1006,9 +1121,9 @@ dependencies = [ [[package]] name = "gstreamer-audio-sys" -version = "0.23.3" +version = "0.23.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "980a205553927ec2167ad79b80819df79c3683632abefbe255baffe1b4112044" +checksum = "ef70a3d80e51ef9a45749a844cb8579d4cabe5ff59cb43a65d6f3a377943262f" dependencies = [ "glib-sys", "gobject-sys", @@ -1020,9 +1135,9 @@ dependencies = [ [[package]] name = "gstreamer-base" -version = "0.23.3" +version = "0.23.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a11df90e3abf1d9747111c41902338fc1bd13b1c23b27fb828d43e57bd190134" +checksum = "d152db7983f98d5950cf64e53805286548063475fb61a5e5450fba4cec05899b" dependencies = [ "atomic_refcell", "cfg-if", @@ -1034,9 +1149,9 @@ dependencies = [ [[package]] name = "gstreamer-base-sys" -version = "0.23.3" +version = "0.23.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d691b2bb51a9e5727fb33c3b53fb64ee5b80c40cbbd250941a6d44b142f7a6a0" +checksum = "d47cc2d15f2a3d5eb129e5dacbbeec9600432b706805c15dff57b6aa11b2791c" dependencies = [ "glib-sys", "gobject-sys", @@ -1046,10 +1161,37 @@ dependencies = [ ] [[package]] -name = "gstreamer-sys" -version = "0.23.3" +name = "gstreamer-play" +version = "0.23.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db89964774a97d5b092e2d124debc6bbcaf34b5c7cdef1759f4a9e1e3f8326ef" +checksum = "2d7a815750a28ac838bfd745d6da07cfd142bb2fa471397cd9992c8b6f235665" +dependencies = [ + "glib", + "gstreamer", + "gstreamer-play-sys", + "gstreamer-video", + "libc", +] + +[[package]] +name = "gstreamer-play-sys" +version = "0.23.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1f8ef790b8a697c759a9bbbaa7b0c061f529c4581e0cc72839ae753af533591" +dependencies = [ + "glib-sys", + "gobject-sys", + "gstreamer-sys", + "gstreamer-video-sys", + "libc", + "system-deps", +] + +[[package]] +name = "gstreamer-sys" +version = "0.23.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16cf1ae0a869aa7066ce3c685b76053b4b4f48f364a5b18c4b1f36ef57469719" dependencies = [ "glib-sys", "gobject-sys", @@ -1058,10 +1200,41 @@ dependencies = [ ] [[package]] -name = "gtk4" -version = "0.9.3" +name = "gstreamer-video" +version = "0.23.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d34465497f5a4c182c9c94a582a187db7d6af0863f28e87ccf4379f21f0e2a22" +checksum = "8fa41e40319e923236e96f0b691711d1504746ab9c89607d77d22aa84777f33f" +dependencies = [ + "cfg-if", + "futures-channel", + "glib", + "gstreamer", + "gstreamer-base", + "gstreamer-video-sys", + "libc", + "once_cell", + "thiserror 2.0.9", +] + +[[package]] +name = "gstreamer-video-sys" +version = "0.23.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31dc0f49c117f4867b0f98c712aa55ebf25580151d794be8f9179ec2d877fd14" +dependencies = [ + "glib-sys", + "gobject-sys", + "gstreamer-base-sys", + "gstreamer-sys", + "libc", + "system-deps", +] + +[[package]] +name = "gtk4" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b697ff938136625f6acf75f01951220f47a45adcf0060ee55b4671cf734dac44" dependencies = [ "cairo-rs", "field-offset", @@ -1080,9 +1253,9 @@ dependencies = [ [[package]] name = "gtk4-macros" -version = "0.9.3" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7c518d5dd41c57385c7cd30af52e261820c897fc1144e558bb88c303d048ae2" +checksum = "0ed1786c4703dd196baf7e103525ce0cf579b3a63a0570fe653b7ee6bac33999" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -1092,9 +1265,9 @@ dependencies = [ [[package]] name = "gtk4-sys" -version = "0.9.3" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f11c7812e28542edb4d0495a2fde1f4588899e2accfcebaa80115f27dc7358a3" +checksum = "3af4b680cee5d2f786a2f91f1c77e95ecf2254522f0ca4edf3a2dce6cb35cecf" dependencies = [ "cairo-sys-rs", "gdk-pixbuf-sys", @@ -1120,9 +1293,9 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.15.1" +version = "0.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a9bfc1af68b1726ea47d3d5109de126281def866b33970e10fbab11b5dafab3" +checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" [[package]] name = "hashlink" @@ -1162,7 +1335,7 @@ dependencies = [ "iana-time-zone-haiku", "js-sys", "wasm-bindgen", - "windows-core", + "windows-core 0.52.0", ] [[package]] @@ -1315,19 +1488,19 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.6.0" +version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "707907fe3c25f5424cce2cb7e1cbcafee6bdbe735ca90ef77c29e84591e5b9da" +checksum = "62f822373a4fe84d4bb149bf54e584a7f4abec90e072ed49cda0edea5b95471f" dependencies = [ "equivalent", - "hashbrown 0.15.1", + "hashbrown 0.15.2", ] [[package]] name = "inotify" -version = "0.9.6" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8069d3ec154eb856955c1c0fbffefbf5f3c40a104ec912d4797314c1801abff" +checksum = "fdd168d97690d0b8c412d6b6c10360277f4d7ee495c5d0d5d5fe0854923255cc" dependencies = [ "bitflags 1.3.2", "inotify-sys", @@ -1344,10 +1517,13 @@ dependencies = [ ] [[package]] -name = "intersection" -version = "1.0.0" +name = "instant" +version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "133d3551b09a5131c0ffc31eaefdafdd58b1cdd272f7d1bab4db623c245a266c" +checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" +dependencies = [ + "cfg-if", +] [[package]] name = "itertools" @@ -1359,11 +1535,18 @@ dependencies = [ ] [[package]] -name = "js-sys" -version = "0.3.72" +name = "itoa" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a88f1bda2bd75b0452a14784937d796722fdebfe50df998aeb3f0b7603019a9" +checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" + +[[package]] +name = "js-sys" +version = "0.3.76" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6717b6b5b077764fb5966237269cb3c64edddde4b14ce42647430a78ced9e7b7" dependencies = [ + "once_cell", "wasm-bindgen", ] @@ -1393,6 +1576,15 @@ dependencies = [ "libc", ] +[[package]] +name = "kv-log-macro" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0de8b303297635ad57c9f5059fd9cee7a47f8e8daa09df0fcd07dd39fb22977f" +dependencies = [ + "log", +] + [[package]] name = "lazy_static" version = "1.5.0" @@ -1432,9 +1624,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.161" +version = "0.2.169" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e9489c2807c139ffd9c1794f4af0ebe86a828db53ecdc7fea2111d0fed085d1" +checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" [[package]] name = "libredox" @@ -1465,9 +1657,9 @@ checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" [[package]] name = "litemap" -version = "0.7.3" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "643cb0b8d4fcc284004d5fd0d67ccf61dfffadb7f75e1e71bc420f4688a3a704" +checksum = "4ee93343901ab17bd981295f2cf0026d4ad018c7c31ba84549a4ddbb47a45104" [[package]] name = "locale_config" @@ -1523,6 +1715,9 @@ name = "log" version = "0.4.22" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" +dependencies = [ + "value-bag", +] [[package]] name = "malloc_buf" @@ -1539,6 +1734,15 @@ version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" +[[package]] +name = "memmap2" +version = "0.5.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83faa42c0a078c393f6b29d5db232d8be22776a891f8f56e5284faee4a20b327" +dependencies = [ + "libc", +] + [[package]] name = "memoffset" version = "0.9.1" @@ -1548,6 +1752,29 @@ dependencies = [ "autocfg", ] +[[package]] +name = "miette" +version = "5.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59bb584eaeeab6bd0226ccf3509a69d7936d148cf3d036ad350abe35e8c6856e" +dependencies = [ + "miette-derive", + "once_cell", + "thiserror 1.0.69", + "unicode-width", +] + +[[package]] +name = "miette-derive" +version = "5.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49e7bc1560b95a3c4a25d03de42fe76ca718ab92d1a22a55b9b4cf67b3ae635c" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "mime" version = "0.3.17" @@ -1566,23 +1793,47 @@ dependencies = [ [[package]] name = "miniz_oxide" -version = "0.8.0" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1" +checksum = "4ffbe83022cedc1d264172192511ae958937694cd57ce297164951b8b3568394" dependencies = [ "adler2", ] [[package]] name = "mio" -version = "0.8.11" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c" +checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" dependencies = [ "libc", "log", "wasi", - "windows-sys 0.48.0", + "windows-sys 0.52.0", +] + +[[package]] +name = "moka" +version = "0.12.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32cf62eb4dd975d2dde76432fb1075c49e3ee2331cf36f1f8fd4b66550d32b6f" +dependencies = [ + "async-lock", + "async-trait", + "crossbeam-channel", + "crossbeam-epoch", + "crossbeam-utils", + "event-listener 5.3.1", + "futures-util", + "once_cell", + "parking_lot", + "quanta", + "rustc_version", + "smallvec", + "tagptr", + "thiserror 1.0.69", + "triomphe", + "uuid", ] [[package]] @@ -1591,11 +1842,11 @@ version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "058bc2227727af394f34aa51da3e36aeecf2c808f39315d35f754872660750ae" dependencies = [ - "async-channel", + "async-channel 2.3.1", "futures-channel", "serde", "trait-variant", - "zbus", + "zbus 4.4.0", ] [[package]] @@ -1619,12 +1870,11 @@ dependencies = [ [[package]] name = "notify" -version = "6.1.1" +version = "7.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6205bd8bb1e454ad2e27422015fb5e4f2bcc7e08fa8f27058670d208324a4d2d" +checksum = "c533b4c39709f9ba5005d8002048266593c1cfaf3c5f0739d5b8ab0c6c504009" dependencies = [ "bitflags 2.6.0", - "crossbeam-channel", "filetime", "fsevent-sys", "inotify", @@ -1632,24 +1882,33 @@ dependencies = [ "libc", "log", "mio", + "notify-types", "walkdir", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] name = "notify-debouncer-full" -version = "0.3.2" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb7fd166739789c9ff169e654dc1501373db9d80a4c3f972817c8a4d7cf8f34e" +checksum = "9dcf855483228259b2353f89e99df35fc639b2b2510d1166e4858e3f67ec1afb" dependencies = [ - "crossbeam-channel", "file-id", "log", "notify", - "parking_lot", + "notify-types", "walkdir", ] +[[package]] +name = "notify-types" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "585d3cb5e12e01aed9e8a1f70d5c6b5e86fe2a6e48fc8cd0b3e0b8df6f6eb174" +dependencies = [ + "instant", +] + [[package]] name = "nu-ansi-term" version = "0.50.1" @@ -1752,9 +2011,9 @@ dependencies = [ [[package]] name = "pango" -version = "0.20.4" +version = "0.20.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa26aa54b11094d72141a754901cd71d9356432bb8147f9cace8d9c7ba95f356" +checksum = "9e89bd74250a03a05cec047b43465469102af803be2bf5e5a1088f8b8455e087" dependencies = [ "gio", "glib", @@ -1764,9 +2023,9 @@ dependencies = [ [[package]] name = "pango-sys" -version = "0.20.4" +version = "0.20.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84fd65917bf12f06544ae2bbc200abf9fc0a513a5a88a0fa81013893aef2b838" +checksum = "71787e0019b499a5eda889279e4adb455a4f3fdd6870cd5ab7f4a5aa25df6699" dependencies = [ "glib-sys", "gobject-sys", @@ -1800,7 +2059,7 @@ dependencies = [ "libc", "redox_syscall", "smallvec", - "windows-targets 0.52.6", + "windows-targets", ] [[package]] @@ -1846,9 +2105,9 @@ checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" [[package]] name = "polling" -version = "3.7.3" +version = "3.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc2790cd301dec6cd3b7a025e4815cf825724a51c98dccfe6a3e55f05ffb6511" +checksum = "a604568c3202727d1507653cb121dbd627a58684eb09a820fd746bee38b4442f" dependencies = [ "cfg-if", "concurrent-queue", @@ -1879,13 +2138,28 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.89" +version = "1.0.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f139b0662de085916d1fb67d2b4169d1addddda1919e696f3252b740b629986e" +checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" dependencies = [ "unicode-ident", ] +[[package]] +name = "quanta" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773ce68d0bb9bc7ef20be3536ffe94e223e1f365bd374108b2659fac0c65cfe6" +dependencies = [ + "crossbeam-utils", + "libc", + "once_cell", + "raw-cpuid", + "wasi", + "web-sys", + "winapi", +] + [[package]] name = "quote" version = "1.0.37" @@ -1895,6 +2169,28 @@ dependencies = [ "proc-macro2", ] +[[package]] +name = "r2d2" +version = "0.8.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51de85fb3fb6524929c8a2eb85e6b6d363de4e8c48f9e2c2eac4944abc181c93" +dependencies = [ + "log", + "parking_lot", + "scheduled-thread-pool", +] + +[[package]] +name = "r2d2_sqlite" +version = "0.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb14dba8247a6a15b7fdbc7d389e2e6f03ee9f184f87117706d509c092dfe846" +dependencies = [ + "r2d2", + "rusqlite", + "uuid", +] + [[package]] name = "rand" version = "0.8.5" @@ -1925,49 +2221,76 @@ dependencies = [ "getrandom", ] +[[package]] +name = "raw-cpuid" +version = "11.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ab240315c661615f2ee9f0f2cd32d5a7343a84d5ebcccb99d46e6637565e7b0" +dependencies = [ + "bitflags 2.6.0", +] + [[package]] name = "recordbox" -version = "0.8.3" +version = "0.9.0" dependencies = [ "ashpd", - "async-channel", + "async-channel 2.3.1", "async-lock", + "cacache", "color-thief", "common-path", "flexi_logger", - "formatx", "futures", + "fuzzy-matcher", "gettext-rs", "gstreamer", "gstreamer-audio", "gstreamer-base", + "gstreamer-play", "gtk4", - "intersection", "json", "lazy_static", "libadwaita", "lofty", "log", "mime_guess", + "moka", "mpris-server", "notify-debouncer-full", + "r2d2", + "r2d2_sqlite", "rand", "rusqlite", "rusqlite_migration", "search-provider", - "similar", + "strum", + "strum_macros", + "tr", + "urlencoding", "walkdir", ] [[package]] name = "redox_syscall" -version = "0.5.7" +version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b6dfecf2c74bce2466cabf93f6664d6998a69eb21e39f4207930065b27b771f" +checksum = "03a862b389f93e68874fbf580b9de08dd02facb9a788ebadaf4a3fd33cf58834" dependencies = [ "bitflags 2.6.0", ] +[[package]] +name = "reflink-copy" +version = "0.1.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17400ed684c3a0615932f00c271ae3eea13e47056a1455821995122348ab6438" +dependencies = [ + "cfg-if", + "rustix", + "windows", +] + [[package]] name = "regex" version = "1.11.1" @@ -1982,9 +2305,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.8" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "368758f23274712b504848e9d5a6f010445cc8b87a7cdb4d7cbee666c1288da3" +checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" dependencies = [ "aho-corasick", "memchr", @@ -2041,17 +2364,29 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.39" +version = "0.38.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "375116bee2be9ed569afe2154ea6a99dfdffd257f533f187498c2a8f5feaf4ee" +checksum = "f93dc38ecbab2eb790ff964bb77fa94faf256fd3e73285fd7ba0903b76bedb85" dependencies = [ "bitflags 2.6.0", "errno", "libc", "linux-raw-sys", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] +[[package]] +name = "rustversion" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e819f2bc632f285be6d7cd36e25940d45b2391dd6d9b939e79de557f7014248" + +[[package]] +name = "ryu" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" + [[package]] name = "same-file" version = "1.0.6" @@ -2061,6 +2396,15 @@ dependencies = [ "winapi-util", ] +[[package]] +name = "scheduled-thread-pool" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3cbc66816425a074528352f5789333ecff06ca41b36b0b0efdfbb29edc391a19" +dependencies = [ + "parking_lot", +] + [[package]] name = "scopeguard" version = "1.2.0" @@ -2076,35 +2420,47 @@ dependencies = [ "futures-channel", "futures-util", "serde", - "zbus", + "zbus 4.4.0", ] [[package]] name = "semver" -version = "1.0.23" +version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" +checksum = "3cb6eb87a131f756572d7fb904f6e7b68633f09cca868c5df1c4b8d1a694bbba" [[package]] name = "serde" -version = "1.0.214" +version = "1.0.216" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f55c3193aca71c12ad7890f1785d2b73e1b9f63a0bbc353c08ef26fe03fc56b5" +checksum = "0b9781016e935a97e8beecf0c933758c97a5520d32930e460142b4cd80c6338e" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.214" +version = "1.0.216" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de523f781f095e28fa605cdce0f8307e451cc0fd14e2eb4cd2e98a355b147766" +checksum = "46f859dbbf73865c6627ed570e78961cd3ac92407a2d117204c49232485da55e" dependencies = [ "proc-macro2", "quote", "syn", ] +[[package]] +name = "serde_json" +version = "1.0.134" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d00f4175c42ee48b15416f6193a959ba3a0d67fc699a0db9ad12df9f83991c7d" +dependencies = [ + "itoa", + "memchr", + "ryu", + "serde", +] + [[package]] name = "serde_repr" version = "0.1.19" @@ -2125,6 +2481,17 @@ dependencies = [ "serde", ] +[[package]] +name = "sha-1" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f5058ada175748e33390e40e872bd0fe59a19f265d0158daa551c5a88a76009c" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + [[package]] name = "sha1" version = "0.10.6" @@ -2136,6 +2503,17 @@ dependencies = [ "digest", ] +[[package]] +name = "sha2" +version = "0.10.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + [[package]] name = "shlex" version = "1.3.0" @@ -2151,12 +2529,6 @@ dependencies = [ "libc", ] -[[package]] -name = "similar" -version = "2.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1de1d4f81173b03af4c0cbed3c898f6bff5b870e4a7f5d6f4057d62a7a4b686e" - [[package]] name = "slab" version = "0.4.9" @@ -2172,6 +2544,23 @@ version = "1.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" +[[package]] +name = "ssri" +version = "9.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da7a2b3c2bc9693bcb40870c4e9b5bf0d79f9cb46273321bf855ec513e919082" +dependencies = [ + "base64", + "digest", + "hex", + "miette", + "serde", + "sha-1", + "sha2", + "thiserror 1.0.69", + "xxhash-rust", +] + [[package]] name = "stable_deref_trait" version = "1.2.0" @@ -2185,10 +2574,29 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" [[package]] -name = "syn" -version = "2.0.87" +name = "strum" +version = "0.26.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25aa4ce346d03a6dcd68dd8b4010bcb74e54e62c90c573f394c46eae99aba32d" +checksum = "8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06" + +[[package]] +name = "strum_macros" +version = "0.26.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "rustversion", + "syn", +] + +[[package]] +name = "syn" +version = "2.0.91" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d53cbcb5a243bd33b7858b1d7f4aca2153490815872d86d955d6ea29f743c035" dependencies = [ "proc-macro2", "quote", @@ -2219,6 +2627,12 @@ dependencies = [ "version-compare", ] +[[package]] +name = "tagptr" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b2093cf4c8eb1e67749a6762251bc9cd836b6fc171623bd0a9d324d37af2417" + [[package]] name = "target-lexicon" version = "0.12.16" @@ -2233,9 +2647,9 @@ checksum = "bc1ee6eef34f12f765cb94725905c6312b6610ab2b0940889cfe58dae7bc3c72" [[package]] name = "tempfile" -version = "3.13.0" +version = "3.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0f2c9fc62d0beef6951ccffd757e241266a2c833136efbe35af6cd2567dca5b" +checksum = "28cce251fcbc87fac86a866eeb0d6c2d536fc16d06f184bb61aeae11aa4cee0c" dependencies = [ "cfg-if", "fastrand", @@ -2246,24 +2660,54 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.68" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02dd99dc800bbb97186339685293e1cc5d9df1f8fae2d0aecd9ff1c77efea892" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" dependencies = [ - "thiserror-impl", + "thiserror-impl 1.0.69", +] + +[[package]] +name = "thiserror" +version = "2.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f072643fd0190df67a8bab670c20ef5d8737177d6ac6b2e9a236cb096206b2cc" +dependencies = [ + "thiserror-impl 2.0.9", ] [[package]] name = "thiserror-impl" -version = "1.0.68" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7c61ec9a6f64d2793d8a45faba21efbe3ced62a886d44c36a009b2b519b4c7e" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", "syn", ] +[[package]] +name = "thiserror-impl" +version = "2.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b50fa271071aae2e6ee85f842e2e28ba8cd2c5fb67f11fcb1fd70b276f9e7d4" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "thread_local" +version = "1.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" +dependencies = [ + "cfg-if", + "once_cell", +] + [[package]] name = "tinystr" version = "0.7.6" @@ -2309,10 +2753,20 @@ dependencies = [ ] [[package]] -name = "tracing" -version = "0.1.40" +name = "tr" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" +checksum = "a592877f7cb2e5a6327b8c908fa6d51098482b1c87d478abdd783e61218f8151" +dependencies = [ + "gettext-rs", + "lazy_static", +] + +[[package]] +name = "tracing" +version = "0.1.41" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" dependencies = [ "pin-project-lite", "tracing-attributes", @@ -2321,9 +2775,9 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.27" +version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" +checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" dependencies = [ "proc-macro2", "quote", @@ -2332,9 +2786,9 @@ dependencies = [ [[package]] name = "tracing-core" -version = "0.1.32" +version = "0.1.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" +checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" dependencies = [ "once_cell", ] @@ -2350,6 +2804,12 @@ dependencies = [ "syn", ] +[[package]] +name = "triomphe" +version = "0.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "859eb650cfee7434994602c3a68b25d77ad9e68c8a6cd491616ef86661382eb3" + [[package]] name = "typenum" version = "1.17.0" @@ -2375,15 +2835,21 @@ checksum = "7e51b68083f157f853b6379db119d1c1be0e6e4dec98101079dec41f6f5cf6df" [[package]] name = "unicode-ident" -version = "1.0.13" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe" +checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" + +[[package]] +name = "unicode-width" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" [[package]] name = "url" -version = "2.5.3" +version = "2.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d157f1b96d14500ffdc1f10ba712e780825526c03d9a49b4d0324b0d9113ada" +checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" dependencies = [ "form_urlencoded", "idna", @@ -2391,6 +2857,12 @@ dependencies = [ "serde", ] +[[package]] +name = "urlencoding" +version = "2.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da" + [[package]] name = "utf16_iter" version = "1.0.5" @@ -2403,6 +2875,22 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" +[[package]] +name = "uuid" +version = "1.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8c5f0a0af699448548ad1a2fbf920fb4bee257eae39953ba95cb84891a0446a" +dependencies = [ + "getrandom", + "rand", +] + +[[package]] +name = "value-bag" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ef4c4aa54d5d05a279399bfa921ec387b7aba77caf7a682ae8d86785b8fdad2" + [[package]] name = "vcpkg" version = "0.2.15" @@ -2439,9 +2927,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.95" +version = "0.2.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "128d1e363af62632b8eb57219c8fd7877144af57558fb2ef0368d0087bddeb2e" +checksum = "a474f6281d1d70c17ae7aa6a613c87fce69a127e2624002df63dcb39d6cf6396" dependencies = [ "cfg-if", "once_cell", @@ -2450,13 +2938,12 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.95" +version = "0.2.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb6dd4d3ca0ddffd1dd1c9c04f94b868c37ff5fac97c30b97cff2d74fce3a358" +checksum = "5f89bb38646b4f81674e8f5c3fb81b562be1fd936d84320f3264486418519c79" dependencies = [ "bumpalo", "log", - "once_cell", "proc-macro2", "quote", "syn", @@ -2464,10 +2951,23 @@ dependencies = [ ] [[package]] -name = "wasm-bindgen-macro" -version = "0.2.95" +name = "wasm-bindgen-futures" +version = "0.4.49" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e79384be7f8f5a9dd5d7167216f022090cf1f9ec128e6e6a482a2cb5c5422c56" +checksum = "38176d9b44ea84e9184eff0bc34cc167ed044f816accfe5922e54d84cf48eca2" +dependencies = [ + "cfg-if", + "js-sys", + "once_cell", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.99" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2cc6181fd9a7492eef6fef1f33961e3695e4579b9872a6f7c83aee556666d4fe" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -2475,9 +2975,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.95" +version = "0.2.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26c6ab57572f7a24a4985830b120de1594465e5d500f24afe89e16b4e833ef68" +checksum = "30d7a95b763d3c45903ed6c81f156801839e5ee968bb07e534c44df0fcd330c2" dependencies = [ "proc-macro2", "quote", @@ -2488,9 +2988,19 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.95" +version = "0.2.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65fc09f10666a9f147042251e0dda9c18f166ff7de300607007e96bdebc1068d" +checksum = "943aab3fdaaa029a6e0271b35ea10b72b943135afe9bffca82384098ad0e06a6" + +[[package]] +name = "web-sys" +version = "0.3.76" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04dd7223427d52553d3702c004d3b2fe07c148165faa56313cb00211e31c12bc" +dependencies = [ + "js-sys", + "wasm-bindgen", +] [[package]] name = "winapi" @@ -2523,22 +3033,77 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" +[[package]] +name = "windows" +version = "0.58.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd04d41d93c4992d421894c18c8b43496aa748dd4c081bac0dc93eb0489272b6" +dependencies = [ + "windows-core 0.58.0", + "windows-targets", +] + [[package]] name = "windows-core" version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" dependencies = [ - "windows-targets 0.52.6", + "windows-targets", ] [[package]] -name = "windows-sys" -version = "0.48.0" +name = "windows-core" +version = "0.58.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +checksum = "6ba6d44ec8c2591c134257ce647b7ea6b20335bf6379a27dac5f1641fcf59f99" dependencies = [ - "windows-targets 0.48.5", + "windows-implement", + "windows-interface", + "windows-result", + "windows-strings", + "windows-targets", +] + +[[package]] +name = "windows-implement" +version = "0.58.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "windows-interface" +version = "0.58.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "windows-result" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e" +dependencies = [ + "windows-targets", +] + +[[package]] +name = "windows-strings" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10" +dependencies = [ + "windows-result", + "windows-targets", ] [[package]] @@ -2547,7 +3112,7 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets 0.52.6", + "windows-targets", ] [[package]] @@ -2556,22 +3121,7 @@ version = "0.59.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" dependencies = [ - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-targets" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" -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", + "windows-targets", ] [[package]] @@ -2580,46 +3130,28 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" dependencies = [ - "windows_aarch64_gnullvm 0.52.6", - "windows_aarch64_msvc 0.52.6", - "windows_i686_gnu 0.52.6", + "windows_aarch64_gnullvm", + "windows_aarch64_msvc", + "windows_i686_gnu", "windows_i686_gnullvm", - "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", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc", ] -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" - [[package]] name = "windows_aarch64_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" -[[package]] -name = "windows_aarch64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" - [[package]] name = "windows_aarch64_msvc" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" -[[package]] -name = "windows_i686_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" - [[package]] name = "windows_i686_gnu" version = "0.52.6" @@ -2632,48 +3164,24 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" -[[package]] -name = "windows_i686_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" - [[package]] name = "windows_i686_msvc" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" -[[package]] -name = "windows_x86_64_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" - [[package]] name = "windows_x86_64_gnu" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" - [[package]] name = "windows_x86_64_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" -[[package]] -name = "windows_x86_64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" - [[package]] name = "windows_x86_64_msvc" version = "0.52.6" @@ -2712,10 +3220,16 @@ dependencies = [ ] [[package]] -name = "yoke" -version = "0.7.4" +name = "xxhash-rust" +version = "0.8.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c5b1314b079b0930c31e3af543d8ee1757b1951ae1e1565ec704403a7240ca5" +checksum = "d7d48f1b18be023c95e7b75f481cac649d74be7c507ff4a407c55cfb957f7934" + +[[package]] +name = "yoke" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" dependencies = [ "serde", "stable_deref_trait", @@ -2725,9 +3239,9 @@ dependencies = [ [[package]] name = "yoke-derive" -version = "0.7.4" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28cc31741b18cb6f1d5ff12f5b7523e3d6eb0852bbbad19d73905511d9849b95" +checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" dependencies = [ "proc-macro2", "quote", @@ -2752,7 +3266,7 @@ dependencies = [ "async-trait", "blocking", "enumflags2", - "event-listener", + "event-listener 5.3.1", "futures-core", "futures-sink", "futures-util", @@ -2768,9 +3282,45 @@ dependencies = [ "uds_windows", "windows-sys 0.52.0", "xdg-home", - "zbus_macros", - "zbus_names", - "zvariant", + "zbus_macros 4.4.0", + "zbus_names 3.0.0", + "zvariant 4.2.0", +] + +[[package]] +name = "zbus" +version = "5.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb67eadba43784b6fb14857eba0d8fc518686d3ee537066eb6086dc318e2c8a1" +dependencies = [ + "async-broadcast", + "async-executor", + "async-fs", + "async-io", + "async-lock", + "async-process", + "async-recursion", + "async-task", + "async-trait", + "blocking", + "enumflags2", + "event-listener 5.3.1", + "futures-core", + "futures-util", + "hex", + "nix", + "ordered-stream", + "serde", + "serde_repr", + "static_assertions", + "tracing", + "uds_windows", + "windows-sys 0.59.0", + "winnow", + "xdg-home", + "zbus_macros 5.2.0", + "zbus_names 4.1.0", + "zvariant 5.1.0", ] [[package]] @@ -2783,7 +3333,22 @@ dependencies = [ "proc-macro2", "quote", "syn", - "zvariant_utils", + "zvariant_utils 2.1.0", +] + +[[package]] +name = "zbus_macros" +version = "5.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c9d49ebc960ceb660f2abe40a5904da975de6986f2af0d7884b39eec6528c57" +dependencies = [ + "proc-macro-crate", + "proc-macro2", + "quote", + "syn", + "zbus_names 4.1.0", + "zvariant 5.1.0", + "zvariant_utils 3.0.2", ] [[package]] @@ -2794,7 +3359,19 @@ checksum = "4b9b1fef7d021261cc16cba64c351d291b715febe0fa10dc3a443ac5a5022e6c" dependencies = [ "serde", "static_assertions", - "zvariant", + "zvariant 4.2.0", +] + +[[package]] +name = "zbus_names" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "856b7a38811f71846fd47856ceee8bccaec8399ff53fb370247e66081ace647b" +dependencies = [ + "serde", + "static_assertions", + "winnow", + "zvariant 5.1.0", ] [[package]] @@ -2820,18 +3397,18 @@ dependencies = [ [[package]] name = "zerofrom" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91ec111ce797d0e0784a1116d0ddcdbea84322cd79e5d5ad173daeba4f93ab55" +checksum = "cff3ee08c995dee1859d998dea82f7374f2826091dd9cd47def953cae446cd2e" dependencies = [ "zerofrom-derive", ] [[package]] name = "zerofrom-derive" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ea7b4a3637ea8669cedf0f1fd5c286a17f3de97b8dd5a70a6c167a1730e63a5" +checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" dependencies = [ "proc-macro2", "quote", @@ -2866,13 +3443,28 @@ name = "zvariant" version = "4.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2084290ab9a1c471c38fc524945837734fbf124487e105daec2bb57fd48c81fe" +dependencies = [ + "endi", + "enumflags2", + "serde", + "static_assertions", + "zvariant_derive 4.2.0", +] + +[[package]] +name = "zvariant" +version = "5.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1200ee6ac32f1e5a312e455a949a4794855515d34f9909f4a3e082d14e1a56f" dependencies = [ "endi", "enumflags2", "serde", "static_assertions", "url", - "zvariant_derive", + "winnow", + "zvariant_derive 5.1.0", + "zvariant_utils 3.0.2", ] [[package]] @@ -2885,7 +3477,20 @@ dependencies = [ "proc-macro2", "quote", "syn", - "zvariant_utils", + "zvariant_utils 2.1.0", +] + +[[package]] +name = "zvariant_derive" +version = "5.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "687e3b97fae6c9104fbbd36c73d27d149abf04fb874e2efbd84838763daa8916" +dependencies = [ + "proc-macro-crate", + "proc-macro2", + "quote", + "syn", + "zvariant_utils 3.0.2", ] [[package]] @@ -2898,3 +3503,17 @@ dependencies = [ "quote", "syn", ] + +[[package]] +name = "zvariant_utils" +version = "3.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20d1d011a38f12360e5fcccceeff5e2c42a8eb7f27f0dcba97a0862ede05c9c6" +dependencies = [ + "proc-macro2", + "quote", + "serde", + "static_assertions", + "syn", + "winnow", +] diff --git a/pkgs/by-name/re/recordbox/package.nix b/pkgs/by-name/re/recordbox/package.nix index 57b68097a0ee..1708547a2b8a 100644 --- a/pkgs/by-name/re/recordbox/package.nix +++ b/pkgs/by-name/re/recordbox/package.nix @@ -24,14 +24,14 @@ stdenv.mkDerivation (finalAttrs: { pname = "recordbox"; - version = "0.8.3"; + version = "0.9.0"; src = fetchFromGitea { domain = "codeberg.org"; owner = "edestcroix"; repo = "Recordbox"; rev = "refs/tags/v${finalAttrs.version}"; - hash = "sha256-/yg/75LswCj3HhsUhMXgIDpx2tlNkdTuImkqMwU6uio="; + hash = "sha256-KfIlh9ORqjJ5V8mNOx7Q9jsYg4OJDX6q+ht+eckxMRU="; }; # Patch in our Cargo.lock and ensure AppStream tests don't use the network diff --git a/pkgs/by-name/se/seafile-server/package.nix b/pkgs/by-name/se/seafile-server/package.nix index f9510c3c5fb6..0c030b9d8e27 100644 --- a/pkgs/by-name/se/seafile-server/package.nix +++ b/pkgs/by-name/se/seafile-server/package.nix @@ -2,6 +2,7 @@ stdenv, lib, fetchFromGitHub, + fetchpatch, pkg-config, python3, autoreconfHook, @@ -69,6 +70,14 @@ stdenv.mkDerivation { oniguruma ]; + patches = [ + # https://github.com/haiwen/seafile-server/pull/658 + (fetchpatch { + url = "https://github.com/haiwen/seafile-server/commit/8029a11a731bfe142af43f230f47b93811ebaaaa.patch"; + hash = "sha256-AWNDXIyrKXgqgq3p0m8+s3YH8dKxWnf7uEMYzSsjmX4="; + }) + ]; + postInstall = '' mkdir -p $out/share/seafile/sql cp -r scripts/sql $out/share/seafile diff --git a/pkgs/by-name/si/simdutf/package.nix b/pkgs/by-name/si/simdutf/package.nix index 23bf0aa51313..d15bd3ffebd5 100644 --- a/pkgs/by-name/si/simdutf/package.nix +++ b/pkgs/by-name/si/simdutf/package.nix @@ -8,13 +8,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "simdutf"; - version = "5.7.2"; + version = "6.0.3"; src = fetchFromGitHub { owner = "simdutf"; repo = "simdutf"; rev = "v${finalAttrs.version}"; - hash = "sha256-rSEl5g9FZiOrYRoHkBAUbMWE1kZvl3pbhkskzoMbIb0="; + hash = "sha256-BTnj7SUKgbJ2LM2gzw+8bSJ4+Zd6Z/KZy9B46fxIvsg="; }; # Fix build on darwin diff --git a/pkgs/applications/gis/spatialite-gui/default.nix b/pkgs/by-name/sp/spatialite-gui/package.nix similarity index 72% rename from pkgs/applications/gis/spatialite-gui/default.nix rename to pkgs/by-name/sp/spatialite-gui/package.nix index c5257c9669a1..3db1671858c1 100644 --- a/pkgs/applications/gis/spatialite-gui/default.nix +++ b/pkgs/by-name/sp/spatialite-gui/package.nix @@ -23,9 +23,6 @@ wxGTK, xz, zstd, - Carbon, - Cocoa, - IOKit, }: stdenv.mkDerivation rec { @@ -41,33 +38,27 @@ stdenv.mkDerivation rec { pkg-config ] ++ lib.optional stdenv.hostPlatform.isDarwin desktopToDarwinBundle; - buildInputs = - [ - curl - freexl - geos - librasterlite2 - librttopo - libspatialite - libwebp - libxlsxwriter - libxml2 - lz4 - minizip - openjpeg - postgresql - proj - sqlite - virtualpg - wxGTK - xz - zstd - ] - ++ lib.optionals stdenv.hostPlatform.isDarwin [ - Carbon - Cocoa - IOKit - ]; + buildInputs = [ + curl + freexl + geos + librasterlite2 + librttopo + libspatialite + libwebp + libxlsxwriter + libxml2 + lz4 + minizip + openjpeg + postgresql + proj + sqlite + virtualpg + wxGTK + xz + zstd + ]; enableParallelBuilding = true; diff --git a/pkgs/by-name/sw/swiftlint/package.nix b/pkgs/by-name/sw/swiftlint/package.nix index cf2d6dcc76ef..e25f5de0714c 100644 --- a/pkgs/by-name/sw/swiftlint/package.nix +++ b/pkgs/by-name/sw/swiftlint/package.nix @@ -8,11 +8,11 @@ }: stdenvNoCC.mkDerivation rec { pname = "swiftlint"; - version = "0.57.1"; + version = "0.58.0"; src = fetchurl { url = "https://github.com/realm/SwiftLint/releases/download/${version}/portable_swiftlint.zip"; - hash = "sha256-qi4Pj4JyVF5Vk+vt14cttREy/OxOrXbQAbvhevaceuU="; + hash = "sha256-Mp8S0f/xn3XHF4/doLF5s/kvhE+X6KiswY+3lZ/J4wc="; }; dontPatch = true; diff --git a/pkgs/by-name/te/tempo/package.nix b/pkgs/by-name/te/tempo/package.nix index 2bb64950f8e5..e9c48eb9505f 100644 --- a/pkgs/by-name/te/tempo/package.nix +++ b/pkgs/by-name/te/tempo/package.nix @@ -1,21 +1,20 @@ { lib, - buildGo122Module, + buildGoModule, fetchFromGitHub, + nix-update-script, }: -# Does not build with Go 1.23 -# FIXME: check again for next release -buildGo122Module rec { +buildGoModule rec { pname = "tempo"; - version = "2.6.0"; + version = "2.7.0"; src = fetchFromGitHub { owner = "grafana"; repo = "tempo"; rev = "v${version}"; fetchSubmodules = true; - hash = "sha256-jWoGKY+kC9VAK7jPFaGMJQkC/JeAiUjzqKhE2XjuJio="; + hash = "sha256-aCtITq5qT0a1DuoSDK3F46cPvfVsvXOPkZELEuRYi5w="; }; vendorHash = null; @@ -39,6 +38,8 @@ buildGo122Module rec { # tests use docker doCheck = false; + passthru.updateScript = nix-update-script { }; + meta = with lib; { description = "High volume, minimal dependency trace storage"; license = licenses.asl20; diff --git a/pkgs/by-name/ti/ticktick/package.nix b/pkgs/by-name/ti/ticktick/package.nix index f0e4f357c749..d54dcdb2e53e 100644 --- a/pkgs/by-name/ti/ticktick/package.nix +++ b/pkgs/by-name/ti/ticktick/package.nix @@ -16,11 +16,11 @@ }: stdenv.mkDerivation (finalAttrs: { pname = "ticktick"; - version = "6.0.10"; + version = "6.0.20"; src = fetchurl { url = "https://d2atcrkye2ik4e.cloudfront.net/download/linux/linux_deb_x64/ticktick-${finalAttrs.version}-amd64.deb"; - hash = "sha256-/SaQJFaz8quuFk4bLmRrvfYpqyDNTV/dJBrAJpOT4S4="; + hash = "sha256-aKUK0/9Y/ac9ISYJnWDUdwmvN8UYKzTY0f94nd8ofGw="; }; nativeBuildInputs = [ diff --git a/pkgs/by-name/tr/traccar/package.nix b/pkgs/by-name/tr/traccar/package.nix index 590f65fddadc..6e758946fba3 100644 --- a/pkgs/by-name/tr/traccar/package.nix +++ b/pkgs/by-name/tr/traccar/package.nix @@ -6,13 +6,13 @@ }: stdenvNoCC.mkDerivation rec { pname = "traccar"; - version = "6.5"; + version = "6.6"; nativeBuildInputs = [ pkgs.makeWrapper ]; src = fetchzip { stripRoot = false; url = "https://github.com/traccar/traccar/releases/download/v${version}/traccar-other-${version}.zip"; - hash = "sha256-XCG3G24oe/qR6LiMJASb9STOnyTCtw+2HigaPawcQvU="; + hash = "sha256-NhsIp6u9XIMZC5PMTYBPAqpW4iNJWC0J4zxbG3c12cs="; }; installPhase = '' diff --git a/pkgs/by-name/vo/vokoscreen-ng/package.nix b/pkgs/by-name/vo/vokoscreen-ng/package.nix index f111fcdd31e2..07bf209d68ce 100644 --- a/pkgs/by-name/vo/vokoscreen-ng/package.nix +++ b/pkgs/by-name/vo/vokoscreen-ng/package.nix @@ -13,13 +13,13 @@ stdenv.mkDerivation rec { pname = "vokoscreen-ng"; - version = "4.3.0"; + version = "4.4.0"; src = fetchFromGitHub { owner = "vkohaupt"; repo = "vokoscreenNG"; tag = version; - hash = "sha256-efgvq/jl/ecjtINy5BdqtYRp2gxEvOsMzQVyCZ3ig+Q="; + hash = "sha256-5rESTLIvjc/Jztc7LAPl74fxgDsam9SfBa6B5yTXb8E="; }; qmakeFlags = [ "src/vokoscreenNG.pro" ]; diff --git a/pkgs/by-name/we/webdav/package.nix b/pkgs/by-name/we/webdav/package.nix index da51f09c5939..03606ad615cb 100644 --- a/pkgs/by-name/we/webdav/package.nix +++ b/pkgs/by-name/we/webdav/package.nix @@ -2,24 +2,24 @@ buildGo123Module rec { pname = "webdav"; - version = "5.7.0"; + version = "5.7.1"; src = fetchFromGitHub { owner = "hacdias"; repo = "webdav"; - rev = "v${version}"; - sha256 = "sha256-vQLYg7qqNO3b/93fO6/zydsakfvyfYSsCUGwNPF6PXY="; + tag = "v${version}"; + hash = "sha256-nLQ77RuOGYaL+U3X3yb4Kq47NA1A3SSUMKBbFnRP6o4="; }; vendorHash = "sha256-x5CUy46c4SunzMw/v2DWpdahuXFZnJdGInQ0lSho/es="; __darwinAllowLocalNetworking = true; - meta = with lib; { + meta = { description = "Simple WebDAV server"; homepage = "https://github.com/hacdias/webdav"; - license = licenses.mit; - maintainers = with maintainers; [ + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ pmy pbsds ]; diff --git a/pkgs/by-name/wl/wluma/package.nix b/pkgs/by-name/wl/wluma/package.nix index 0b782bf296a6..5e1f26096f7f 100644 --- a/pkgs/by-name/wl/wluma/package.nix +++ b/pkgs/by-name/wl/wluma/package.nix @@ -17,13 +17,13 @@ rustPlatform.buildRustPackage rec { pname = "wluma"; - version = "4.5.1"; + version = "4.6.0"; src = fetchFromGitHub { owner = "maximbaz"; repo = "wluma"; rev = version; - sha256 = "sha256-5uSExmh1a88kZDly4VrHzI8YwfTDB8wm2mMGZyvKsk4="; + sha256 = "sha256-Z4sd2v6Ukr0bLGMiG/oBi0uic87Y1Ag9C3ZgyrR4VmI="; }; postPatch = '' @@ -39,7 +39,7 @@ rustPlatform.buildRustPackage rec { 'ExecStart=/usr/bin/wluma' 'ExecStart=${placeholder "out"}/bin/wluma' ''; - cargoHash = "sha256-hKxKEs88tB05AiWC/LuC/0jJ1RxeUnpp35A6UTQK4xw="; + cargoHash = "sha256-QyRGKhKsCVt6ykzzr+WJdiLpIZHVvL5sRzNucg/3llk="; nativeBuildInputs = [ makeWrapper @@ -77,6 +77,7 @@ rustPlatform.buildRustPackage rec { yshym jmc-figueira atemu + Rishik-Y ]; platforms = platforms.linux; mainProgram = "wluma"; diff --git a/pkgs/by-name/xs/xssproxy/package.nix b/pkgs/by-name/xs/xssproxy/package.nix index cf80c18f1c0d..4ee27f971413 100644 --- a/pkgs/by-name/xs/xssproxy/package.nix +++ b/pkgs/by-name/xs/xssproxy/package.nix @@ -10,13 +10,13 @@ stdenv.mkDerivation rec { pname = "xssproxy"; - version = "1.1.0"; + version = "1.1.1"; src = fetchFromGitHub { owner = "vincentbernat"; repo = "xssproxy"; rev = "v${version}"; - sha256 = "sha256-BE/v1CJAwKwxlK3Xg3ezD+IXyT7ZFGz3bQzGxFQfEnU="; + sha256 = "sha256-OPzFI1ifbV/DJo0hC2xybHKaWTprictN0muKtuq1JaY="; }; nativeBuildInputs = [ pkg-config ]; diff --git a/pkgs/desktops/gnome/extensions/guillotine/default.nix b/pkgs/desktops/gnome/extensions/guillotine/default.nix index 947317b1fe93..29a7976c45a5 100644 --- a/pkgs/desktops/gnome/extensions/guillotine/default.nix +++ b/pkgs/desktops/gnome/extensions/guillotine/default.nix @@ -9,13 +9,13 @@ # https://gitlab.com/ente76/guillotine/-/issues/17 stdenv.mkDerivation (finalAttrs: { pname = "gnome-shell-extension-guillotine"; - version = "24"; + version = "25"; src = fetchFromGitLab { owner = "ente76"; repo = "guillotine"; rev = "v${finalAttrs.version}"; - hash = "sha256-eNhK3h9luPGXHR3lPkfu/mUN9+ixma64rbCk0cjF4Fc="; + hash = "sha256-HEk1owolLIea4kymoVVeviZ1Ms0kSuHWUda+u+uIh0A="; }; nativeBuildInputs = [ glib ]; diff --git a/pkgs/development/libraries/opencolorio/default.nix b/pkgs/development/libraries/opencolorio/default.nix index 66e0cf09e3ab..8797c2962fbc 100644 --- a/pkgs/development/libraries/opencolorio/default.nix +++ b/pkgs/development/libraries/opencolorio/default.nix @@ -49,7 +49,7 @@ stdenv.mkDerivation rec { --replace 'OCIO_ADD_TEST(Config, virtual_display_with_active_displays)' 'static void _skip_virtual_display_with_active_displays()' ''; - nativeBuildInputs = [ cmake ]; + nativeBuildInputs = [ cmake ] ++ lib.optionals pythonBindings [ python3Packages.python ]; buildInputs = [ expat diff --git a/pkgs/development/python-modules/pyrender/default.nix b/pkgs/development/python-modules/pyrender/default.nix index 5d78f9acd34f..1399a21b6fdb 100644 --- a/pkgs/development/python-modules/pyrender/default.nix +++ b/pkgs/development/python-modules/pyrender/default.nix @@ -39,6 +39,13 @@ buildPythonPackage rec { url = "https://github.com/mmatl/pyrender/commit/7c613e8aed7142df9ff40767a8f10b7a19b6255c.patch"; hash = "sha256-SXRV9RC3PfQGjjIQ+n97HZrSDPae3rAHnTBiHXSFLaY="; }) + # fix on numpy 2.0 (np.infty -> np.inf) + # https://github.com/mmatl/pyrender/pull/292 + (fetchpatch { + name = "fix-numpy2.patch"; + url = "https://github.com/mmatl/pyrender/commit/5408c7b45261473511d2399ab625efe11f0b6991.patch"; + hash = "sha256-RIv6lMpxMmops5Tb1itzYdT7GkhPScVWslBXITR3IBM="; + }) ]; # trimesh too new diff --git a/pkgs/development/python-modules/pyunpack/default.nix b/pkgs/development/python-modules/pyunpack/default.nix index 81319bbfb33b..3c0a2f30afad 100644 --- a/pkgs/development/python-modules/pyunpack/default.nix +++ b/pkgs/development/python-modules/pyunpack/default.nix @@ -45,6 +45,11 @@ buildPythonPackage rec { pythonImportsCheck = [ "pyunpack" ]; + disabledTests = [ + # pinning test of `--help` sensitive to python version + "test_help" + ]; + disabledTestPaths = [ # unfree "tests/test_rar.py" diff --git a/pkgs/development/python-modules/remi/default.nix b/pkgs/development/python-modules/remi/default.nix index 909523d7ffc8..b88ab282a6ad 100644 --- a/pkgs/development/python-modules/remi/default.nix +++ b/pkgs/development/python-modules/remi/default.nix @@ -2,9 +2,11 @@ lib, buildPythonPackage, fetchFromGitHub, + pythonOlder, setuptools, pytestCheckHook, matplotlib, + legacy-cgi, python-snap7, opencv4, }: @@ -43,9 +45,13 @@ buildPythonPackage rec { build-system = [ setuptools ]; - dependencies = [ - setuptools # pkg_resources is referenced at runtime - ]; + dependencies = + [ + setuptools # pkg_resources is referenced at runtime + ] + ++ lib.optionals (!pythonOlder "3.13") [ + legacy-cgi + ]; nativeCheckInputs = [ pytestCheckHook diff --git a/pkgs/os-specific/linux/trace-cmd/kernelshark.nix b/pkgs/os-specific/linux/trace-cmd/kernelshark.nix index 9c1ba81d8d07..f9e00616f0b1 100644 --- a/pkgs/os-specific/linux/trace-cmd/kernelshark.nix +++ b/pkgs/os-specific/linux/trace-cmd/kernelshark.nix @@ -17,6 +17,7 @@ freefont_ttf, wrapQtAppsHook, qtwayland, + fetchpatch, }: stdenv.mkDerivation (finalAttrs: { @@ -28,6 +29,13 @@ stdenv.mkDerivation (finalAttrs: { hash = "sha256-KV8ahV2koX7OL1C42H5If14e7m54jv0DlZ1dNsVRUWE="; }; + patches = [ + (fetchpatch { + url = "https://git.kernel.org/pub/scm/utils/trace-cmd/kernel-shark.git/patch/?id=9e33324644fff49b7aa15d34f836e72af8b32c78"; + hash = "sha256-2XtEQ4WscLlUiEQYG2HiHuysMzVzlG05PVreLRVM8Lc="; + }) + ]; + outputs = [ "out" ]; nativeBuildInputs = [ diff --git a/pkgs/os-specific/linux/zfs/2_1.nix b/pkgs/os-specific/linux/zfs/2_1.nix deleted file mode 100644 index bc2ada0a901c..000000000000 --- a/pkgs/os-specific/linux/zfs/2_1.nix +++ /dev/null @@ -1,30 +0,0 @@ -{ callPackage -, kernel ? null -, stdenv -, lib -, nixosTests -, ... -} @ args: - -let - stdenv' = if kernel == null then stdenv else kernel.stdenv; -in -callPackage ./generic.nix args { - # You have to ensure that in `pkgs/top-level/linux-kernels.nix` - # this attribute is the correct one for this package. - kernelModuleAttribute = "zfs_2_1"; - # check the release notes for compatible kernels - kernelCompatible = kernel: kernel.kernelOlder "6.8"; - - # This is a fixed version to the 2.1.x series, move only - # if the 2.1.x series moves. - version = "2.1.16"; - - hash = "sha256-egs7paAOdbRAJH4QwIjlK3jAL/le51kDQrdW4deHfAI="; - - tests = { - inherit (nixosTests.zfs) series_2_1; - }; - - maintainers = [ lib.maintainers.raitobezarius ]; -} diff --git a/pkgs/os-specific/linux/zfs/2_3.nix b/pkgs/os-specific/linux/zfs/2_3.nix new file mode 100644 index 000000000000..b39ebc52b0d8 --- /dev/null +++ b/pkgs/os-specific/linux/zfs/2_3.nix @@ -0,0 +1,33 @@ +{ + callPackage, + kernel ? null, + stdenv, + lib, + nixosTests, + ... +}@args: + +let + stdenv' = if kernel == null then stdenv else kernel.stdenv; +in +callPackage ./generic.nix args { + # You have to ensure that in `pkgs/top-level/linux-kernels.nix` + # this attribute is the correct one for this package. + kernelModuleAttribute = "zfs_2_3"; + # check the release notes for compatible kernels + kernelCompatible = kernel: kernel.kernelOlder "6.13"; + + # this package should point to the latest release. + version = "2.3.0"; + + tests = { + inherit (nixosTests.zfs) installer series_2_3; + }; + + maintainers = with lib.maintainers; [ + adamcstephens + amarshall + ]; + + hash = "sha256-ZWWrVwMP/DSSIxuXp6GuHCD0wiRekHbRXFGaclqd/ns="; +} diff --git a/pkgs/os-specific/linux/zfs/unstable.nix b/pkgs/os-specific/linux/zfs/unstable.nix index 967dcc54c607..92bec70aeb8a 100644 --- a/pkgs/os-specific/linux/zfs/unstable.nix +++ b/pkgs/os-specific/linux/zfs/unstable.nix @@ -21,14 +21,14 @@ callPackage ./generic.nix args { # IMPORTANT: Always use a tagged release candidate or commits from the # zfs--staging branch, because this is tested by the OpenZFS # maintainers. - version = "2.3.0-rc5"; + version = "2.3.0"; # rev = ""; tests = { inherit (nixosTests.zfs) unstable; }; - hash = "sha256-gTpj1hYEkx+f/VvvfgeZeqwUhBVQyOIMKic8AaiwYzg="; + hash = "sha256-ZWWrVwMP/DSSIxuXp6GuHCD0wiRekHbRXFGaclqd/ns="; extraLongDescription = '' This is "unstable" ZFS, and will usually be a pre-release version of ZFS. diff --git a/pkgs/servers/home-assistant/custom-lovelace-modules/bubble-card/package.nix b/pkgs/servers/home-assistant/custom-lovelace-modules/bubble-card/package.nix index 5b9421023a72..899e212232c4 100644 --- a/pkgs/servers/home-assistant/custom-lovelace-modules/bubble-card/package.nix +++ b/pkgs/servers/home-assistant/custom-lovelace-modules/bubble-card/package.nix @@ -6,7 +6,7 @@ stdenv.mkDerivation rec { pname = "bubble-card"; - version = "2.3.3"; + version = "2.3.4"; dontBuild = true; @@ -14,7 +14,7 @@ stdenv.mkDerivation rec { owner = "Clooos"; repo = "Bubble-Card"; rev = "v${version}"; - hash = "sha256-fBkiOhUwXa7Fy8Q7n2DBrTek7SQF37exQkvBREWx0Zk="; + hash = "sha256-90If8QKlxacJZoEG3+IFHPd9cuFJS5Ki9XMdTaq67IA="; }; installPhase = '' diff --git a/pkgs/servers/spicedb/zed.nix b/pkgs/servers/spicedb/zed.nix index 98364e026098..a2bc60293620 100644 --- a/pkgs/servers/spicedb/zed.nix +++ b/pkgs/servers/spicedb/zed.nix @@ -6,16 +6,16 @@ buildGoModule rec { pname = "zed"; - version = "0.21.2"; + version = "0.24.0"; src = fetchFromGitHub { owner = "authzed"; repo = "zed"; rev = "v${version}"; - hash = "sha256-nSvWNelmqzgwf7M+9drqahwwo+YoQLgEscnigsBUwdI="; + hash = "sha256-gaTTHkJkKO3MY5tAVJNHEq6ZkcS1iSBSEh1eyPzsXQY="; }; - vendorHash = "sha256-uTuI8rYmRUkbRf46+hZm1xHflFDcro6hVG8aI2C4eWs="; + vendorHash = "sha256-7UwpkmFwYT8XP00pTlOK25WDweaalQfA4zX7yvlFWow="; ldflags = [ "-X 'github.com/jzelinskie/cobrautil/v2.Version=${src.rev}'" diff --git a/pkgs/test/default.nix b/pkgs/test/default.nix index 5f5e1bc07ba5..78b1ad61ea8e 100644 --- a/pkgs/test/default.nix +++ b/pkgs/test/default.nix @@ -155,6 +155,8 @@ with pkgs; nixos-functions = callPackage ./nixos-functions { }; + nixosOptionsDoc = callPackage ../../nixos/lib/make-options-doc/tests.nix { }; + overriding = callPackage ./overriding.nix { }; texlive = callPackage ./texlive { }; diff --git a/pkgs/test/overriding.nix b/pkgs/test/overriding.nix index 8fc7274c27c2..9ccc84e03356 100644 --- a/pkgs/test/overriding.nix +++ b/pkgs/test/overriding.nix @@ -1,15 +1,47 @@ -{ lib, pkgs, stdenvNoCC }: +{ + lib, + pkgs, + stdenvNoCC, +}: let - tests = + tests = tests-stdenv // tests-go // tests-python; + + tests-stdenv = let - p = pkgs.python3Packages.xpybutil.overridePythonAttrs (_: { dontWrapPythonPrograms = true; }); + addEntangled = + origOverrideAttrs: f: + origOverrideAttrs ( + lib.composeExtensions f ( + self: super: { + passthru = super.passthru // { + entangled = super.passthru.entangled.overrideAttrs f; + overrideAttrs = addEntangled self.overrideAttrs; + }; + } + ) + ); + + entangle = + pkg1: pkg2: + pkg1.overrideAttrs ( + self: super: { + passthru = super.passthru // { + entangled = pkg2; + overrideAttrs = addEntangled self.overrideAttrs; + }; + } + ); + + example = entangle pkgs.hello pkgs.figlet; + + overrides1 = example.overrideAttrs (_: super: { pname = "a-better-${super.pname}"; }); + + repeatedOverrides = overrides1.overrideAttrs ( + _: super: { pname = "${super.pname}-with-blackjack"; } + ); in { - overridePythonAttrs = { - expr = !lib.hasInfix "wrapPythonPrograms" p.postFixup; - expected = true; - }; repeatedOverrides-pname = { expr = repeatedOverrides.pname == "a-better-hello-with-blackjack"; expected = true; @@ -24,31 +56,120 @@ let }; overriding-using-only-attrset-no-final-attrs = { name = "overriding-using-only-attrset-no-final-attrs"; - expr = ((stdenvNoCC.mkDerivation { pname = "hello-no-final-attrs"; }).overrideAttrs { pname = "hello-no-final-attrs-overridden"; }).pname == "hello-no-final-attrs-overridden"; + expr = + ((stdenvNoCC.mkDerivation { pname = "hello-no-final-attrs"; }).overrideAttrs { + pname = "hello-no-final-attrs-overridden"; + }).pname == "hello-no-final-attrs-overridden"; expected = true; }; + }; + + tests-go = + let + pet_0_3_4 = pkgs.buildGoModule rec { + pname = "pet"; + version = "0.3.4"; + + src = pkgs.fetchFromGitHub { + owner = "knqyf263"; + repo = "pet"; + rev = "v${version}"; + hash = "sha256-Gjw1dRrgM8D3G7v6WIM2+50r4HmTXvx0Xxme2fH9TlQ="; + }; + + vendorHash = "sha256-ciBIR+a1oaYH+H1PcC8cD8ncfJczk1IiJ8iYNM+R6aA="; + + meta = { + description = "Simple command-line snippet manager, written in Go"; + homepage = "https://github.com/knqyf263/pet"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ kalbasit ]; + }; + }; + + pet_0_4_0 = pkgs.buildGoModule rec { + pname = "pet"; + version = "0.4.0"; + + src = pkgs.fetchFromGitHub { + owner = "knqyf263"; + repo = "pet"; + rev = "v${version}"; + hash = "sha256-gVTpzmXekQxGMucDKskGi+e+34nJwwsXwvQTjRO6Gdg="; + }; + + vendorHash = "sha256-dUvp7FEW09V0xMuhewPGw3TuAic/sD7xyXEYviZ2Ivs="; + + meta = { + description = "Simple command-line snippet manager, written in Go"; + homepage = "https://github.com/knqyf263/pet"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ kalbasit ]; + }; + }; + + pet_0_4_0-overridden = pet_0_3_4.overrideAttrs ( + finalAttrs: previousAttrs: { + version = "0.4.0"; + + src = pkgs.fetchFromGitHub { + inherit (previousAttrs.src) owner repo; + rev = "v${finalAttrs.version}"; + hash = "sha256-gVTpzmXekQxGMucDKskGi+e+34nJwwsXwvQTjRO6Gdg="; + }; + + vendorHash = "sha256-dUvp7FEW09V0xMuhewPGw3TuAic/sD7xyXEYviZ2Ivs="; + } + ); + + pet-foo = pet_0_3_4.overrideAttrs ( + finalAttrs: previousAttrs: { + passthru = previousAttrs.passthru // { + overrideModAttrs = lib.composeExtensions previousAttrs.passthru.overrideModAttrs ( + finalModAttrs: previousModAttrs: { + FOO = "foo"; + } + ); + }; + } + ); + + pet-vendored = pet-foo.overrideAttrs { vendorHash = null; }; + in + { buildGoModule-overrideAttrs = { - expr = lib.all ( - attrPath: - let - attrPathPretty = lib.concatStringsSep "." attrPath; - valueNative = lib.getAttrFromPath attrPath pet_0_4_0; - valueOverridden = lib.getAttrFromPath attrPath pet_0_4_0-overridden; - in - lib.warnIfNot - (valueNative == valueOverridden) - "pet_0_4_0.${attrPathPretty} (${valueNative}) does not equal pet_0_4_0-overridden.${attrPathPretty} (${valueOverridden})" - true - ) [ - [ "drvPath" ] - [ "name" ] - [ "pname" ] - [ "version" ] - [ "vendorHash" ] - [ "goModules" "drvPath" ] - [ "goModules" "name" ] - [ "goModules" "outputHash" ] - ]; + expr = + lib.all + ( + attrPath: + let + attrPathPretty = lib.concatStringsSep "." attrPath; + valueNative = lib.getAttrFromPath attrPath pet_0_4_0; + valueOverridden = lib.getAttrFromPath attrPath pet_0_4_0-overridden; + in + lib.warnIfNot (valueNative == valueOverridden) + "pet_0_4_0.${attrPathPretty} (${valueNative}) does not equal pet_0_4_0-overridden.${attrPathPretty} (${valueOverridden})" + true + ) + [ + [ "drvPath" ] + [ "name" ] + [ "pname" ] + [ "version" ] + [ "vendorHash" ] + [ + "goModules" + "drvPath" + ] + [ + "goModules" + "name" + ] + [ + "goModules" + "outputHash" + ] + ]; expected = true; }; buildGoModule-goModules-overrideAttrs = { @@ -61,102 +182,29 @@ let }; }; - addEntangled = origOverrideAttrs: f: - origOverrideAttrs ( - lib.composeExtensions f (self: super: { - passthru = super.passthru // { - entangled = super.passthru.entangled.overrideAttrs f; - overrideAttrs = addEntangled self.overrideAttrs; - }; - }) - ); - - entangle = pkg1: pkg2: pkg1.overrideAttrs (self: super: { - passthru = super.passthru // { - entangled = pkg2; - overrideAttrs = addEntangled self.overrideAttrs; - }; - }); - - example = entangle pkgs.hello pkgs.figlet; - - overrides1 = example.overrideAttrs (_: super: { pname = "a-better-${super.pname}"; }); - - repeatedOverrides = overrides1.overrideAttrs (_: super: { pname = "${super.pname}-with-blackjack"; }); - - pet_0_3_4 = pkgs.buildGoModule rec { - pname = "pet"; - version = "0.3.4"; - - src = pkgs.fetchFromGitHub { - owner = "knqyf263"; - repo = "pet"; - rev = "v${version}"; - hash = "sha256-Gjw1dRrgM8D3G7v6WIM2+50r4HmTXvx0Xxme2fH9TlQ="; - }; - - vendorHash = "sha256-ciBIR+a1oaYH+H1PcC8cD8ncfJczk1IiJ8iYNM+R6aA="; - - meta = { - description = "Simple command-line snippet manager, written in Go"; - homepage = "https://github.com/knqyf263/pet"; - license = lib.licenses.mit; - maintainers = with lib.maintainers; [ kalbasit ]; - }; - }; - - pet_0_4_0 = pkgs.buildGoModule rec { - pname = "pet"; - version = "0.4.0"; - - src = pkgs.fetchFromGitHub { - owner = "knqyf263"; - repo = "pet"; - rev = "v${version}"; - hash = "sha256-gVTpzmXekQxGMucDKskGi+e+34nJwwsXwvQTjRO6Gdg="; - }; - - vendorHash = "sha256-dUvp7FEW09V0xMuhewPGw3TuAic/sD7xyXEYviZ2Ivs="; - - meta = { - description = "Simple command-line snippet manager, written in Go"; - homepage = "https://github.com/knqyf263/pet"; - license = lib.licenses.mit; - maintainers = with lib.maintainers; [ kalbasit ]; - }; - }; - - pet_0_4_0-overridden = pet_0_3_4.overrideAttrs (finalAttrs: previousAttrs: { - version = "0.4.0"; - - src = pkgs.fetchFromGitHub { - inherit (previousAttrs.src) owner repo; - rev = "v${finalAttrs.version}"; - hash = "sha256-gVTpzmXekQxGMucDKskGi+e+34nJwwsXwvQTjRO6Gdg="; - }; - - vendorHash = "sha256-dUvp7FEW09V0xMuhewPGw3TuAic/sD7xyXEYviZ2Ivs="; - }); - - pet-foo = pet_0_3_4.overrideAttrs ( - finalAttrs: previousAttrs: { - passthru = previousAttrs.passthru // { - overrideModAttrs = lib.composeExtensions previousAttrs.passthru.overrideModAttrs ( - finalModAttrs: previousModAttrs: { - FOO = "foo"; - } - ); + tests-python = + let + p = pkgs.python3Packages.xpybutil.overridePythonAttrs (_: { + dontWrapPythonPrograms = true; + }); + in + { + overridePythonAttrs = { + expr = !lib.hasInfix "wrapPythonPrograms" p.postFixup; + expected = true; }; - } - ); - - pet-vendored = pet-foo.overrideAttrs { vendorHash = null; }; + }; in stdenvNoCC.mkDerivation { name = "test-overriding"; passthru = { inherit tests; }; - buildCommand = '' - touch $out - '' + lib.concatMapAttrsStringSep "\n" (name: t: "([[ ${lib.boolToString t.expr} == ${lib.boolToString t.expected} ]] && echo '${name} success') || (echo '${name} fail' && exit 1)") tests; + buildCommand = + '' + touch $out + '' + + lib.concatMapAttrsStringSep "\n" ( + name: t: + "([[ ${lib.boolToString t.expr} == ${lib.boolToString t.expected} ]] && echo '${name} success') || (echo '${name} fail' && exit 1)" + ) tests; } diff --git a/pkgs/tools/networking/openvpn/openvpn-auth-ldap.nix b/pkgs/tools/networking/openvpn/openvpn-auth-ldap.nix index b5cbb8c3295e..385281b010ab 100644 --- a/pkgs/tools/networking/openvpn/openvpn-auth-ldap.nix +++ b/pkgs/tools/networking/openvpn/openvpn-auth-ldap.nix @@ -31,6 +31,13 @@ stdenv.mkDerivation rec { }) ]; + # clang > 17 dropped support for `-export-dynamic` but `-rdynamic` does the + # same thing + postPatch = '' + substituteInPlace platform.m4 \ + --replace-fail -export-dynamic -rdynamic + ''; + nativeBuildInputs = [ autoreconfHook gnustep.base diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index b98bd8233b3b..f812769a2a62 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -1228,6 +1228,7 @@ mapAliases { SP800-90B_EntropyAssessment = sp800-90b-entropyassessment; # Added on 2024-06-12 SPAdes = spades; # Added 2024-06-12 spark2014 = gnatprove; # Added 2024-02-25 + spatialite_gui = throw "spatialite_gui has been renamed to spatialite-gui"; # Added 2025-01-12 # Added 2020-02-10 sourceHanSansPackages = { @@ -1496,6 +1497,7 @@ mapAliases { zeromq4 = zeromq; # Added 2024-11-03 zfsStable = zfs; # Added 2024-02-26 zfsUnstable = zfs_unstable; # Added 2024-02-26 + zfs_2_1 = throw "zfs 2.1 has been removed as it is EOL. Please upgrade to a newer version"; # Added 2024-12-25 zinc = zincsearch; # Added 2023-05-28 zk-shell = throw "zk-shell has been removed as it was broken and unmaintained"; # Added 2024-08-10 zkg = throw "'zkg' has been replaced by 'zeek'"; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 8aac219ec99f..559667ee11b4 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -4539,7 +4539,7 @@ with pkgs; openvpn_learnaddress = callPackage ../tools/networking/openvpn/openvpn_learnaddress.nix { }; openvpn-auth-ldap = callPackage ../tools/networking/openvpn/openvpn-auth-ldap.nix { - inherit (llvmPackages_17) stdenv; + inherit (llvmPackages) stdenv; }; namespaced-openvpn = python3Packages.callPackage ../tools/networking/namespaced-openvpn { }; @@ -12545,18 +12545,18 @@ with pkgs; inherit ({ - zfs_2_1 = callPackage ../os-specific/linux/zfs/2_1.nix { + zfs_2_2 = callPackage ../os-specific/linux/zfs/2_2.nix { configFile = "user"; }; - zfs_2_2 = callPackage ../os-specific/linux/zfs/2_2.nix { + zfs_2_3 = callPackage ../os-specific/linux/zfs/2_3.nix { configFile = "user"; }; zfs_unstable = callPackage ../os-specific/linux/zfs/unstable.nix { configFile = "user"; }; }) - zfs_2_1 zfs_2_2 + zfs_2_3 zfs_unstable; zfs = zfs_2_2; @@ -12855,8 +12855,7 @@ with pkgs; qmapshack = libsForQt5.callPackage ../applications/gis/qmapshack { }; - spatialite_gui = callPackage ../applications/gis/spatialite-gui { - inherit (darwin.apple_sdk.frameworks) Carbon Cocoa IOKit; + spatialite-gui = callPackage ../by-name/sp/spatialite-gui/package.nix { wxGTK = wxGTK32; }; diff --git a/pkgs/top-level/linux-kernels.nix b/pkgs/top-level/linux-kernels.nix index 016964b09121..7939e8df371c 100644 --- a/pkgs/top-level/linux-kernels.nix +++ b/pkgs/top-level/linux-kernels.nix @@ -585,11 +585,11 @@ in { zenpower = callPackage ../os-specific/linux/zenpower { }; - zfs_2_1 = callPackage ../os-specific/linux/zfs/2_1.nix { + zfs_2_2 = callPackage ../os-specific/linux/zfs/2_2.nix { configFile = "kernel"; inherit pkgs kernel; }; - zfs_2_2 = callPackage ../os-specific/linux/zfs/2_2.nix { + zfs_2_3 = callPackage ../os-specific/linux/zfs/2_3.nix { configFile = "kernel"; inherit pkgs kernel; }; @@ -620,6 +620,7 @@ in { tsme-test = callPackage ../os-specific/linux/tsme-test { }; } // lib.optionalAttrs config.allowAliases { + zfs_2_1 = throw "zfs_2_1 has been removed"; # added 2024-12-25; ati_drivers_x11 = throw "ati drivers are no longer supported by any kernel >=4.1"; # added 2021-05-18; hid-nintendo = throw "hid-nintendo was added in mainline kernel version 5.16"; # Added 2023-07-30 sch_cake = throw "sch_cake was added in mainline kernel version 4.19"; # Added 2023-06-14