From 662cf493f0bbb6ceaaf32b96fea3636064e8d850 Mon Sep 17 00:00:00 2001 From: Yueh-Shun Li Date: Thu, 19 Dec 2024 22:30:30 +0800 Subject: [PATCH 01/65] tests.overriding: format with nixfmt-rfc-style --- pkgs/test/overriding.nix | 136 +++++++++++++++++++++++++-------------- 1 file changed, 86 insertions(+), 50 deletions(-) diff --git a/pkgs/test/overriding.nix b/pkgs/test/overriding.nix index 8fc7274c27c2..90b2519b121b 100644 --- a/pkgs/test/overriding.nix +++ b/pkgs/test/overriding.nix @@ -1,9 +1,15 @@ -{ lib, pkgs, stdenvNoCC }: +{ + lib, + pkgs, + stdenvNoCC, +}: let tests = let - p = pkgs.python3Packages.xpybutil.overridePythonAttrs (_: { dontWrapPythonPrograms = true; }); + p = pkgs.python3Packages.xpybutil.overridePythonAttrs (_: { + dontWrapPythonPrograms = true; + }); in { overridePythonAttrs = { @@ -24,31 +30,45 @@ 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; }; 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,28 +81,37 @@ let }; }; - addEntangled = origOverrideAttrs: f: + addEntangled = + origOverrideAttrs: f: origOverrideAttrs ( - lib.composeExtensions f (self: super: { - passthru = super.passthru // { - entangled = super.passthru.entangled.overrideAttrs f; - overrideAttrs = addEntangled self.overrideAttrs; - }; - }) + 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; - }; - }); + 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"; }); + repeatedOverrides = overrides1.overrideAttrs ( + _: super: { pname = "${super.pname}-with-blackjack"; } + ); pet_0_3_4 = pkgs.buildGoModule rec { pname = "pet"; @@ -126,17 +155,19 @@ let }; }; - pet_0_4_0-overridden = pet_0_3_4.overrideAttrs (finalAttrs: previousAttrs: { - version = "0.4.0"; + 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="; - }; + src = pkgs.fetchFromGitHub { + inherit (previousAttrs.src) owner repo; + rev = "v${finalAttrs.version}"; + hash = "sha256-gVTpzmXekQxGMucDKskGi+e+34nJwwsXwvQTjRO6Gdg="; + }; - vendorHash = "sha256-dUvp7FEW09V0xMuhewPGw3TuAic/sD7xyXEYviZ2Ivs="; - }); + vendorHash = "sha256-dUvp7FEW09V0xMuhewPGw3TuAic/sD7xyXEYviZ2Ivs="; + } + ); pet-foo = pet_0_3_4.overrideAttrs ( finalAttrs: previousAttrs: { @@ -156,7 +187,12 @@ 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; } From 9e66d6ce585636cd243c91a54e09cb7faae5c021 Mon Sep 17 00:00:00 2001 From: Yueh-Shun Li Date: Thu, 19 Dec 2024 22:33:07 +0800 Subject: [PATCH 02/65] tests.overriding: restructure and categorise by test targets Split tests in the let-in block into tests-stdenv, tests-go, and tests-python. Place the dependent variables into the let-in block of each category. This chore commit causes no rebuilds. --- pkgs/test/overriding.nix | 228 ++++++++++++++++++++------------------- 1 file changed, 120 insertions(+), 108 deletions(-) diff --git a/pkgs/test/overriding.nix b/pkgs/test/overriding.nix index 90b2519b121b..9ccc84e03356 100644 --- a/pkgs/test/overriding.nix +++ b/pkgs/test/overriding.nix @@ -5,17 +5,43 @@ }: 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; @@ -36,6 +62,81 @@ let }).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 @@ -81,107 +182,18 @@ 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="; + tests-python = + let + p = pkgs.python3Packages.xpybutil.overridePythonAttrs (_: { + dontWrapPythonPrograms = true; + }); + in + { + overridePythonAttrs = { + expr = !lib.hasInfix "wrapPythonPrograms" p.postFixup; + expected = true; }; - - 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 stdenvNoCC.mkDerivation { From e1213d79c0089a02633bbddf13ca1dec94784038 Mon Sep 17 00:00:00 2001 From: seth Date: Tue, 24 Dec 2024 01:28:16 -0500 Subject: [PATCH 03/65] recordbox: 0.8.3 -> 0.9.0 Changelog: https://codeberg.org/edestcroix/Recordbox/releases/tag/v0.9.0 Diff: https://codeberg.org/edestcroix/Recordbox/compare/v0.8.3...v0.9.0 --- pkgs/by-name/re/recordbox/Cargo.lock | 1209 +++++++++++++++++++------ pkgs/by-name/re/recordbox/package.nix | 4 +- 2 files changed, 916 insertions(+), 297 deletions(-) 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 From cbc50da11c2dfb45d3ddfe352f24d49c3be81822 Mon Sep 17 00:00:00 2001 From: Andrew Marshall Date: Wed, 30 Oct 2024 11:21:18 -0400 Subject: [PATCH 04/65] zfs_2_1: remove With the release of 2.3.0-rc, we know that 2.3.0 will be coming sometime soon. Per the [ZFS release policy][1], only the current and previous releases are expected to be supported, so 2.1.x will become unsupported. Unfortunately upstream does not have any specific timelines, so we do not know when it will become unsupported, but when it does we will likely backport the removal. As such, begin warning of imminent removal. [1]: https://github.com/openzfs/zfs/blob/6187b194349c5a728c9df8c6842f1866d5c9782a/RELEASES.md --- ci/OWNERS | 6 ------ nixos/tests/zfs.nix | 6 ------ pkgs/os-specific/linux/zfs/2_1.nix | 30 ------------------------------ pkgs/top-level/aliases.nix | 1 + pkgs/top-level/all-packages.nix | 4 ---- pkgs/top-level/linux-kernels.nix | 5 +---- 6 files changed, 2 insertions(+), 50 deletions(-) delete mode 100644 pkgs/os-specific/linux/zfs/2_1.nix diff --git a/ci/OWNERS b/ci/OWNERS index bf6e070d80e4..3bd3ce325345 100644 --- a/ci/OWNERS +++ b/ci/OWNERS @@ -391,12 +391,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/nixos/tests/zfs.nix b/nixos/tests/zfs.nix index 13db2c8e06be..75b41b7aac1d 100644 --- a/nixos/tests/zfs.nix +++ b/nixos/tests/zfs.nix @@ -191,12 +191,6 @@ let in { - # maintainer: @raitobezarius - series_2_1 = makeZfsTest { - zfsPackage = pkgs.zfs_2_1; - kernelPackages = pkgs.linuxPackages; - }; - series_2_2 = makeZfsTest { zfsPackage = pkgs.zfs_2_2; kernelPackages = pkgs.linuxPackages; 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/top-level/aliases.nix b/pkgs/top-level/aliases.nix index d7a6b1472926..a4e1f57a44b6 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -1458,6 +1458,7 @@ mapAliases { 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 0c10b76bbb51..d5e218b7417b 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -12717,9 +12717,6 @@ with pkgs; inherit ({ - zfs_2_1 = callPackage ../os-specific/linux/zfs/2_1.nix { - configFile = "user"; - }; zfs_2_2 = callPackage ../os-specific/linux/zfs/2_2.nix { configFile = "user"; }; @@ -12727,7 +12724,6 @@ with pkgs; configFile = "user"; }; }) - zfs_2_1 zfs_2_2 zfs_unstable; zfs = zfs_2_2; diff --git a/pkgs/top-level/linux-kernels.nix b/pkgs/top-level/linux-kernels.nix index 0eed40c970a8..b456e36e409d 100644 --- a/pkgs/top-level/linux-kernels.nix +++ b/pkgs/top-level/linux-kernels.nix @@ -583,10 +583,6 @@ in { zenpower = callPackage ../os-specific/linux/zenpower { }; - zfs_2_1 = callPackage ../os-specific/linux/zfs/2_1.nix { - configFile = "kernel"; - inherit pkgs kernel; - }; zfs_2_2 = callPackage ../os-specific/linux/zfs/2_2.nix { configFile = "kernel"; inherit pkgs kernel; @@ -616,6 +612,7 @@ in { msi-ec = callPackage ../os-specific/linux/msi-ec { }; } // 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 From f16ddd92f3da56b91781dbe16a7a64b6bcbb404c Mon Sep 17 00:00:00 2001 From: Rishik Yalamanchili <73787402+Rishik-Y@users.noreply.github.com> Date: Fri, 27 Dec 2024 22:01:40 +0530 Subject: [PATCH 05/65] wluma: 4.5.1 -> 4.6.0 --- pkgs/by-name/wl/wluma/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/wl/wluma/package.nix b/pkgs/by-name/wl/wluma/package.nix index 0b782bf296a6..7766c8fce366 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 From fce7ac3978c8dfa895c1f4ea55d9c2c3a30131b3 Mon Sep 17 00:00:00 2001 From: foundationkitty <45774850+foundationkitty@users.noreply.github.com> Date: Fri, 27 Dec 2024 11:01:25 -0800 Subject: [PATCH 06/65] ticktick: 6.0.10 -> 6.0.20 --- pkgs/by-name/ti/ticktick/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 = [ From 380056eeb5ddc2bb1b28829d656825a3067983b2 Mon Sep 17 00:00:00 2001 From: 0x5a4 <54070204+0x5a4@users.noreply.github.com> Date: Fri, 27 Dec 2024 20:05:08 +0100 Subject: [PATCH 07/65] greetd-mini-wl-greeter: init at 0-unstable-2024-12-27 --- .../gr/greetd-mini-wl-greeter/package.nix | 67 +++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 pkgs/by-name/gr/greetd-mini-wl-greeter/package.nix 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 ]; + }; +} From 2a7323bcd326e52bf929ec8a5fbf0d6c0927c341 Mon Sep 17 00:00:00 2001 From: Luna Perego Date: Fri, 27 Dec 2024 22:47:14 +0100 Subject: [PATCH 08/65] gnomeExtensions.guillotine: 24 -> 25 --- pkgs/desktops/gnome/extensions/guillotine/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 ]; From c00d7f39d6d5117236a2bc919259a543c469f385 Mon Sep 17 00:00:00 2001 From: Rishik Yalamanchili <73787402+Rishik-Y@users.noreply.github.com> Date: Fri, 27 Dec 2024 22:05:08 +0530 Subject: [PATCH 09/65] maintainers: add Rishik-Y --- maintainers/maintainer-list.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 8bb8e723ac7e..5435dc198acd 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -19226,6 +19226,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"; From 960ff3895f17718061a42dc3b8f029ca47397061 Mon Sep 17 00:00:00 2001 From: Rishik Yalamanchili <73787402+Rishik-Y@users.noreply.github.com> Date: Fri, 27 Dec 2024 22:07:31 +0530 Subject: [PATCH 10/65] wluma: add Rishik-Y to maintainers --- pkgs/by-name/wl/wluma/package.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/by-name/wl/wluma/package.nix b/pkgs/by-name/wl/wluma/package.nix index 7766c8fce366..5e1f26096f7f 100644 --- a/pkgs/by-name/wl/wluma/package.nix +++ b/pkgs/by-name/wl/wluma/package.nix @@ -77,6 +77,7 @@ rustPlatform.buildRustPackage rec { yshym jmc-figueira atemu + Rishik-Y ]; platforms = platforms.linux; mainProgram = "wluma"; From caab23e84594ba7ff791194605f57d0a8c5fdf9c Mon Sep 17 00:00:00 2001 From: Michal Sojka Date: Sat, 28 Dec 2024 23:30:53 +0100 Subject: [PATCH 11/65] kernelshark: fix build --- pkgs/os-specific/linux/trace-cmd/kernelshark.nix | 8 ++++++++ 1 file changed, 8 insertions(+) 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 = [ From a50278845b4b44f89ff437801eb67dd53720f964 Mon Sep 17 00:00:00 2001 From: Martin Wimpress Date: Mon, 30 Dec 2024 11:39:32 +0000 Subject: [PATCH 12/65] obs-studio-plugins.obs-transition-table: fix build failure Build from master branch that fixes deprecation warnings which were causing the build to fail. - Fixes #361849 --- .../video/obs-studio/plugins/obs-transition-table.nix | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) 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 = '' From 6a811e2e8d0a8b3e40106b34747b9068ced0a6d4 Mon Sep 17 00:00:00 2001 From: Brian Brunner Date: Mon, 30 Dec 2024 11:13:23 -0700 Subject: [PATCH 13/65] poptracker: add update script --- pkgs/by-name/po/poptracker/package.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkgs/by-name/po/poptracker/package.nix b/pkgs/by-name/po/poptracker/package.nix index 8020e5da4f60..3c5bef6af15c 100644 --- a/pkgs/by-name/po/poptracker/package.nix +++ b/pkgs/by-name/po/poptracker/package.nix @@ -12,6 +12,7 @@ makeWrapper, makeDesktopItem, copyDesktopItems, + nix-update-script, }: stdenv.mkDerivation (finalAttrs: { @@ -26,6 +27,8 @@ stdenv.mkDerivation (finalAttrs: { fetchSubmodules = true; }; + passthru.updateScript = nix-update-script { }; + patches = [ ./assets-path.diff ]; postPatch = '' From 2686a5a2d983fd929feeca0ef3841dc8a97c9553 Mon Sep 17 00:00:00 2001 From: Brian Brunner Date: Mon, 30 Dec 2024 11:21:56 -0700 Subject: [PATCH 14/65] poptracker: 0.27.0 -> 0.29.0 --- pkgs/by-name/po/poptracker/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/po/poptracker/package.nix b/pkgs/by-name/po/poptracker/package.nix index 3c5bef6af15c..b0b6f93f9d5e 100644 --- a/pkgs/by-name/po/poptracker/package.nix +++ b/pkgs/by-name/po/poptracker/package.nix @@ -17,13 +17,13 @@ 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; }; From f68d5c76fde4d28a78d0aee8012d6e981e01bbc1 Mon Sep 17 00:00:00 2001 From: TomaSajt <62384384+TomaSajt@users.noreply.github.com> Date: Mon, 30 Dec 2024 22:58:58 +0100 Subject: [PATCH 15/65] mysql-workbench: 8.0.38 -> 8.0.40 --- .../dont-search-for-antlr-jar.patch | 4 +-- .../my/mysql-workbench/hardcode-paths.patch | 34 +++++++++---------- pkgs/by-name/my/mysql-workbench/package.nix | 21 ++++-------- 3 files changed, 25 insertions(+), 34 deletions(-) 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 80e4a7620173..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,12 +1,12 @@ 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) check_function_exists (strtoimax HAVE_STRTOIMAX) check_function_exists (strtoumax HAVE_STRTOUMAX) --set(ANTLR_JAR_FILENAME "antlr-4.11.1-complete.jar") +-set(ANTLR_JAR_FILENAME "antlr-4.13.2-complete.jar") -get_filename_component(SOURCE_PARENT_DIR ${CMAKE_SOURCE_DIR} DIRECTORY) -set(LINUX_RES_BIN_DIR ${SOURCE_PARENT_DIR}/linux-res/bin) -message("WITH_ANTLR_JAR: ${WITH_ANTLR_JAR}") 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 9828074955f2..bffefc955f02 100644 --- a/pkgs/by-name/my/mysql-workbench/package.nix +++ b/pkgs/by-name/my/mysql-workbench/package.nix @@ -21,7 +21,7 @@ libiodbc, proj, - antlr4_12, + antlr4_13, gtkmm3, libxml2, libmysqlconnectorcpp, @@ -46,31 +46,22 @@ let }; }); - getCoreExe = lib.getExe' coreutils; - inherit (python3Packages) paramiko pycairo pyodbc; in stdenv.mkDerivation (finalAttrs: { pname = "mysql-workbench"; - version = "8.0.38"; + version = "8.0.40"; src = fetchurl { url = "https://cdn.mysql.com/Downloads/MySQLGUITools/mysql-workbench-community-${finalAttrs.version}-src.tar.gz"; - hash = "sha256-W2RsA2hIRUaNRK0Q5pN1YODbEiw6HE3cfeisPdUcYPY="; + hash = "sha256-/CrjHgZ3IFFvUB1IxeURme8Z6BoZx0b03MWk8QCe0Sg="; }; patches = [ (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; }) @@ -101,7 +92,7 @@ stdenv.mkDerivation (finalAttrs: { ]; buildInputs = [ - antlr4_12.runtime.cpp + antlr4_13.runtime.cpp gtkmm3 (libxml2.override { enableHttp = true; }) libmysqlconnectorcpp @@ -141,7 +132,7 @@ stdenv.mkDerivation (finalAttrs: { cmakeFlags = [ (lib.cmakeFeature "MySQL_CONFIG_PATH" (lib.getExe' mysql "mysql_config")) (lib.cmakeFeature "IODBC_CONFIG_PATH" (lib.getExe' libiodbc "iodbc-config")) - (lib.cmakeFeature "ANTLR_JAR_PATH" "${antlr4_12.jarLocation}") + (lib.cmakeFeature "ANTLR_JAR_PATH" "${antlr4_13.jarLocation}") # mysql-workbench 8.0.21 depends on libmysqlconnectorcpp 1.1.8. # Newer versions of connector still provide the legacy library when enabled # but the headers are in a different location. From 925dc2fe30dd76458a0d7a74e4eb5cb3509842bd Mon Sep 17 00:00:00 2001 From: Robert Hensing Date: Thu, 2 Jan 2025 18:56:42 +0100 Subject: [PATCH 16/65] nixosOptionsDoc/optionsCommonMark: Add extraFlags attr --- nixos/lib/make-options-doc/default.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/nixos/lib/make-options-doc/default.nix b/nixos/lib/make-options-doc/default.nix index a6ff4be92c80..25af32773a74 100644 --- a/nixos/lib/make-options-doc/default.nix +++ b/nixos/lib/make-options-doc/default.nix @@ -193,12 +193,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 ''; From 9e0b42e0f7891b692e1338a5f868922697c95add Mon Sep 17 00:00:00 2001 From: Robert Hensing Date: Thu, 2 Jan 2025 20:56:34 +0100 Subject: [PATCH 17/65] nixos-render-docs: Add anchor support to CommonMark options output --- .../src/nixos_render_docs/options.py | 47 +++++++++++++++++-- .../src/nixos_render_docs/types.py | 5 ++ .../src/tests/sample_options_simple.json | 17 +++++++ .../tests/sample_options_simple_default.md | 13 +++++ .../src/tests/sample_options_simple_legacy.md | 13 +++++ .../src/tests/test_options.py | 27 +++++++++++ 6 files changed, 118 insertions(+), 4 deletions(-) create mode 100644 pkgs/by-name/ni/nixos-render-docs/src/tests/sample_options_simple.json create mode 100644 pkgs/by-name/ni/nixos-render-docs/src/tests/sample_options_simple_default.md create mode 100644 pkgs/by-name/ni/nixos-render-docs/src/tests/sample_options_simple_legacy.md 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 From e2078ef31e1a02e23fe261a9a07fe419fd4a2192 Mon Sep 17 00:00:00 2001 From: Robert Hensing Date: Thu, 2 Jan 2025 22:38:08 +0100 Subject: [PATCH 18/65] tests.nixosOptionsDoc: init --- nixos/lib/make-options-doc/default.nix | 2 + nixos/lib/make-options-doc/tests.nix | 59 ++++++++++++++++++++++++++ pkgs/test/default.nix | 2 + 3 files changed, 63 insertions(+) create mode 100644 nixos/lib/make-options-doc/tests.nix diff --git a/nixos/lib/make-options-doc/default.nix b/nixos/lib/make-options-doc/default.nix index 25af32773a74..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). 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/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 { }; From a0011f2d22c953274d9bd8d88657378b93fa59c0 Mon Sep 17 00:00:00 2001 From: Peder Bergebakken Sundt Date: Sat, 4 Jan 2025 20:25:04 +0100 Subject: [PATCH 19/65] webdav: 5.7.0 -> 5.7.1 Diff: https://github.com/hacdias/webdav/compare/v5.7.0...v5.7.1 --- pkgs/by-name/we/webdav/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/we/webdav/package.nix b/pkgs/by-name/we/webdav/package.nix index da51f09c5939..122333189580 100644 --- a/pkgs/by-name/we/webdav/package.nix +++ b/pkgs/by-name/we/webdav/package.nix @@ -2,13 +2,13 @@ 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="; + sha256 = "sha256-nLQ77RuOGYaL+U3X3yb4Kq47NA1A3SSUMKBbFnRP6o4="; }; vendorHash = "sha256-x5CUy46c4SunzMw/v2DWpdahuXFZnJdGInQ0lSho/es="; From 70c268661111b943f38d4a7705cc08105ccb43e3 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 6 Jan 2025 15:26:23 +0000 Subject: [PATCH 20/65] vokoscreen-ng: 4.3.0 -> 4.4.0 --- pkgs/by-name/vo/vokoscreen-ng/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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" ]; From c0ff0651a9586de81f806334259f074fd726a542 Mon Sep 17 00:00:00 2001 From: Peder Bergebakken Sundt Date: Wed, 8 Jan 2025 01:38:05 +0100 Subject: [PATCH 21/65] webdav: modernize --- pkgs/by-name/we/webdav/package.nix | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pkgs/by-name/we/webdav/package.nix b/pkgs/by-name/we/webdav/package.nix index 122333189580..03606ad615cb 100644 --- a/pkgs/by-name/we/webdav/package.nix +++ b/pkgs/by-name/we/webdav/package.nix @@ -7,19 +7,19 @@ buildGo123Module rec { src = fetchFromGitHub { owner = "hacdias"; repo = "webdav"; - rev = "v${version}"; - sha256 = "sha256-nLQ77RuOGYaL+U3X3yb4Kq47NA1A3SSUMKBbFnRP6o4="; + 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 ]; From f36d622130f3a8346fb183d471f6e772cc0e0bd4 Mon Sep 17 00:00:00 2001 From: Peder Bergebakken Sundt Date: Wed, 8 Jan 2025 02:20:18 +0100 Subject: [PATCH 22/65] python313Packages.remi: unbreak by adding legacy-cgi to deps --- pkgs/development/python-modules/remi/default.nix | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) 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 From 171bb77a0c2a85f9a206041a94a87ce81cd15d5c Mon Sep 17 00:00:00 2001 From: Peder Bergebakken Sundt Date: Wed, 8 Jan 2025 02:27:21 +0100 Subject: [PATCH 23/65] python313Packages.pyrender: unbreak --- pkgs/development/python-modules/pyrender/default.nix | 7 +++++++ 1 file changed, 7 insertions(+) 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 From 7d8071ec73ac19641c322fc3d171b86ebe377d21 Mon Sep 17 00:00:00 2001 From: Peder Bergebakken Sundt Date: Wed, 8 Jan 2025 02:28:39 +0100 Subject: [PATCH 24/65] python313Packages.pyunpack: unbreak fixes https://hydra.nixos.org/build/283835130 --- pkgs/development/python-modules/pyunpack/default.nix | 5 +++++ 1 file changed, 5 insertions(+) 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" From b6d1b18c032a62b6cf05be775a669458eb27a4b8 Mon Sep 17 00:00:00 2001 From: Peder Bergebakken Sundt Date: Wed, 8 Jan 2025 02:46:59 +0100 Subject: [PATCH 25/65] curv: 0.5 -> 0.5-unstable-2025-01-06, unbreak fixes https://hydra.nixos.org/build/282651701 --- pkgs/by-name/cu/curv/package.nix | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) 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 = From e4469b7af2461e1068e82f710d4f0a092eb0e4a2 Mon Sep 17 00:00:00 2001 From: Matt Sturgeon Date: Tue, 7 Jan 2025 12:10:58 +0000 Subject: [PATCH 26/65] buildFHSEnv: allow specifying `executableName` explicitly --- doc/build-helpers/special/fhs-environments.section.md | 6 ++++-- pkgs/build-support/build-fhsenv-bubblewrap/default.nix | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) 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/pkgs/build-support/build-fhsenv-bubblewrap/default.nix b/pkgs/build-support/build-fhsenv-bubblewrap/default.nix index 12881e4a0bac..172713020e1f 100644 --- a/pkgs/build-support/build-fhsenv-bubblewrap/default.nix +++ b/pkgs/build-support/build-fhsenv-bubblewrap/default.nix @@ -15,6 +15,7 @@ runScript ? "bash", nativeBuildInputs ? [ ], extraInstallCommands ? "", + executableName ? args.pname or args.name, meta ? { }, passthru ? { }, extraPreBwrapCmds ? "", @@ -49,7 +50,6 @@ let 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: From 2a2c0bf46f890b985a750d52b58784819d8d6713 Mon Sep 17 00:00:00 2001 From: Matt Sturgeon Date: Tue, 7 Jan 2025 12:20:06 +0000 Subject: [PATCH 27/65] buildFHSEnv: simplify `pname`/`name` logic --- .../build-fhsenv-bubblewrap/default.nix | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/pkgs/build-support/build-fhsenv-bubblewrap/default.nix b/pkgs/build-support/build-fhsenv-bubblewrap/default.nix index 172713020e1f..c204628d1668 100644 --- a/pkgs/build-support/build-fhsenv-bubblewrap/default.nix +++ b/pkgs/build-support/build-fhsenv-bubblewrap/default.nix @@ -12,10 +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 args.name, + executableName ? args.pname or name, meta ? { }, passthru ? { }, extraPreBwrapCmds ? "", @@ -31,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) @@ -49,7 +57,6 @@ let # explicit about which package set it's coming from. inherit (pkgsHostTarget) pkgsi686Linux; - name = args.name or "${args.pname}-${args.version}"; # 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: From a327bdd5af64ed069a493f105d1d7228c57c439f Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 9 Jan 2025 12:17:03 +0000 Subject: [PATCH 28/65] k6: 0.55.2 -> 0.56.0 --- pkgs/by-name/k6/k6/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 = [ "./" ]; From 2d87fee385fd0630c0f20d03a19f2f06507a497e Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 9 Jan 2025 20:35:03 +0000 Subject: [PATCH 29/65] p2pool: 4.2 -> 4.3 --- pkgs/by-name/p2/p2pool/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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; }; From c7be64ae8bc8ad4ff26e4c8c46fb63ffd1a2ee94 Mon Sep 17 00:00:00 2001 From: FliegendeWurst Date: Wed, 8 Jan 2025 12:32:19 +0100 Subject: [PATCH 30/65] ladspaPlugins: fix cross build --- .../audio/ladspa-plugins/default.nix | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/pkgs/applications/audio/ladspa-plugins/default.nix b/pkgs/applications/audio/ladspa-plugins/default.nix index 3544d18878d0..1f89edf62e9a 100644 --- a/pkgs/applications/audio/ladspa-plugins/default.nix +++ b/pkgs/applications/audio/ladspa-plugins/default.nix @@ -22,21 +22,29 @@ 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 ]; buildInputs = [ fftw ladspaH libxml2 - perlPackages.perl - perlPackages.XMLParser ]; - patchPhase = '' - patchShebangs . - patchShebangs ./metadata/ + postPatch = '' + patchShebangs --build . ./metadata/ makestub.pl cp ${automake}/share/automake-*/mkinstalldirs . ''; From 01aa1e3212b6995b163f1be702974a419c7ed7dc Mon Sep 17 00:00:00 2001 From: parth Date: Sat, 11 Jan 2025 17:47:07 -0500 Subject: [PATCH 31/65] lockbook: 0.9.15 -> 0.9.16 --- pkgs/by-name/lo/lockbook/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) 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 = [ From 6b5bf05c07fd328d8925ff8a5af52c388e2ee6eb Mon Sep 17 00:00:00 2001 From: parth Date: Sat, 11 Jan 2025 17:55:34 -0500 Subject: [PATCH 32/65] lockbook-desktop: 0.9.15 -> 0.9.16 --- pkgs/by-name/lo/lockbook-desktop/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) 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 From 5e39850be9c30bbbfe959bd8dadb585c4eabcd22 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 12 Jan 2025 03:20:25 +0000 Subject: [PATCH 33/65] traccar: 6.5 -> 6.6 --- pkgs/by-name/tr/traccar/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 = '' From 02df639c2c34454eb260db2e6b9dd63cdbd8a689 Mon Sep 17 00:00:00 2001 From: Dimitar Nestorov <8790386+dimitarnestorov@users.noreply.github.com> Date: Sun, 12 Jan 2025 20:37:40 +0200 Subject: [PATCH 34/65] swiftlint: 0.57.1 -> 0.58.0 --- pkgs/by-name/sw/swiftlint/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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; From 152955b37e5830d9a352cf77e2a47b90bf87c605 Mon Sep 17 00:00:00 2001 From: Ingo Blechschmidt Date: Sun, 12 Jan 2025 22:33:00 +0100 Subject: [PATCH 35/65] dsniff: 2.4b1+debian-30 -> 2.4b1+debian-34 --- pkgs/by-name/ds/dsniff/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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"; }; From 95b0731f2caa4f5cbcf2e03546677a97184712ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20van=20Br=C3=BCgge?= Date: Mon, 13 Jan 2025 09:18:37 +0000 Subject: [PATCH 36/65] authentik,authentik.outposts.{radius,ldap,proxy}: 2024.12.1 -> 2024.12.2 --- pkgs/by-name/au/authentik/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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; { From 818f365315ed91c21c32703385160a690f83912b Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 13 Jan 2025 11:47:29 +0000 Subject: [PATCH 37/65] readarr: 0.4.6.2711 -> 0.4.8.2726 --- pkgs/by-name/re/readarr/package.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) 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"; From 7745cf2bb692e502f8eec6900df8e41ce71e3a90 Mon Sep 17 00:00:00 2001 From: Nobody_alias_N <165517462+Nobody-alias-N@users.noreply.github.com> Date: Mon, 13 Jan 2025 16:19:44 +0200 Subject: [PATCH 38/65] rofi-wayland-unwrapped: 1.7.5+wayland3 -> 1.7.7+wayland1 --- pkgs/applications/misc/rofi/wayland.nix | 15 ++------------- 1 file changed, 2 insertions(+), 13 deletions(-) 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 From 377ca5c199d282c9e2af5d87866a257a374c3c72 Mon Sep 17 00:00:00 2001 From: XBagon Date: Thu, 2 Jan 2025 22:06:42 +0100 Subject: [PATCH 39/65] ffizer: init at 2.13.1 ffizer: init at 2.13.0 Apply suggestions from review Co-authored-by: Arne Keller run tests consecutively to circumvent https://github.com/ffizer/ffizer/issues/779 --- pkgs/by-name/ff/ffizer/package.nix | 51 ++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 pkgs/by-name/ff/ffizer/package.nix 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"; + }; +} From 40e0f7233b33aabebc42167a5e16d386a45972c9 Mon Sep 17 00:00:00 2001 From: Andrew Marshall Date: Mon, 13 Jan 2025 20:16:55 -0500 Subject: [PATCH 40/65] zfs_unstable: 2.3.0-rc5 -> 2.3.0 Changelog: https://github.com/openzfs/zfs/releases/tag/zfs-2.3.0 Diff: https://github.com/openzfs/zfs/compare/zfs-2.3.0-rc5...zfs-2.3.0 --- pkgs/os-specific/linux/zfs/unstable.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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. From 6477277a79d19ac852b79d000bb6ce02c6f4adbb Mon Sep 17 00:00:00 2001 From: Andrew Marshall Date: Mon, 13 Jan 2025 20:18:24 -0500 Subject: [PATCH 41/65] zfs_2_3: init at 2.3.0 Changelog: https://github.com/openzfs/zfs/releases/tag/zfs-2.3.0 --- nixos/tests/zfs.nix | 5 +++++ pkgs/os-specific/linux/zfs/2_3.nix | 33 ++++++++++++++++++++++++++++++ pkgs/top-level/all-packages.nix | 4 ++++ pkgs/top-level/linux-kernels.nix | 4 ++++ 4 files changed, 46 insertions(+) create mode 100644 pkgs/os-specific/linux/zfs/2_3.nix diff --git a/nixos/tests/zfs.nix b/nixos/tests/zfs.nix index 13db2c8e06be..441b57689ef0 100644 --- a/nixos/tests/zfs.nix +++ b/nixos/tests/zfs.nix @@ -202,6 +202,11 @@ in { kernelPackages = pkgs.linuxPackages; }; + series_2_3 = makeZfsTest { + zfsPackage = pkgs.zfs_2_3; + kernelPackages = pkgs.linuxPackages; + }; + unstable = makeZfsTest rec { zfsPackage = pkgs.zfs_unstable; kernelPackages = pkgs.linuxPackages; 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/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index f3042065516b..c916da05cd00 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -12580,12 +12580,16 @@ with pkgs; zfs_2_2 = callPackage ../os-specific/linux/zfs/2_2.nix { configFile = "user"; }; + 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; diff --git a/pkgs/top-level/linux-kernels.nix b/pkgs/top-level/linux-kernels.nix index 266909d4dedf..01ef55bee374 100644 --- a/pkgs/top-level/linux-kernels.nix +++ b/pkgs/top-level/linux-kernels.nix @@ -591,6 +591,10 @@ in { configFile = "kernel"; inherit pkgs kernel; }; + zfs_2_3 = callPackage ../os-specific/linux/zfs/2_3.nix { + configFile = "kernel"; + inherit pkgs kernel; + }; zfs_unstable = callPackage ../os-specific/linux/zfs/unstable.nix { configFile = "kernel"; inherit pkgs kernel; From 661db7dc68c14d8260669647051b763fe91ab622 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Tue, 14 Jan 2025 04:07:50 +0000 Subject: [PATCH 42/65] keycloak: 26.0.7 -> 26.0.8 --- pkgs/by-name/ke/keycloak/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 = [ From 4deaf01a8886e1f15f763a08f7075943c431cc0d Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Tue, 14 Jan 2025 07:41:38 +0000 Subject: [PATCH 43/65] containerd: 2.0.1 -> 2.0.2 --- pkgs/by-name/co/containerd/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/co/containerd/package.nix b/pkgs/by-name/co/containerd/package.nix index dc27557d108e..2db01be8d86d 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 ."; From bd36be14ee3ce98617490e581c84657fefa4c9dc Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Tue, 14 Jan 2025 07:53:11 +0000 Subject: [PATCH 44/65] simdutf: 5.7.2 -> 6.0.3 --- pkgs/by-name/si/simdutf/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 From 4210a20cd04f76f22f6af916067369c91aa00d12 Mon Sep 17 00:00:00 2001 From: Ivan Mincik Date: Mon, 13 Jan 2025 12:53:07 +0100 Subject: [PATCH 45/65] spatialite_gui: rename package to spatialite-gui Co-authored-by: Arne Keller --- pkgs/top-level/aliases.nix | 1 + pkgs/top-level/all-packages.nix | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index 69c43cafe524..327279cfcbf4 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 = { diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 770d6c409fab..15465e23280c 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -12877,7 +12877,7 @@ with pkgs; qmapshack = libsForQt5.callPackage ../applications/gis/qmapshack { }; - spatialite_gui = callPackage ../applications/gis/spatialite-gui { + spatialite-gui = callPackage ../applications/gis/spatialite-gui { inherit (darwin.apple_sdk.frameworks) Carbon Cocoa IOKit; wxGTK = wxGTK32; }; From 3264ea8b39e869c7202044a6d755552cdb7438d6 Mon Sep 17 00:00:00 2001 From: Ivan Mincik Date: Mon, 13 Jan 2025 12:57:25 +0100 Subject: [PATCH 46/65] spatialite-gui: move to pkgs/by-name --- .../default.nix => by-name/sp/spatialite-gui/package.nix} | 0 pkgs/top-level/all-packages.nix | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) rename pkgs/{applications/gis/spatialite-gui/default.nix => by-name/sp/spatialite-gui/package.nix} (100%) diff --git a/pkgs/applications/gis/spatialite-gui/default.nix b/pkgs/by-name/sp/spatialite-gui/package.nix similarity index 100% rename from pkgs/applications/gis/spatialite-gui/default.nix rename to pkgs/by-name/sp/spatialite-gui/package.nix diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 15465e23280c..b718d8ebe689 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -12877,7 +12877,7 @@ with pkgs; qmapshack = libsForQt5.callPackage ../applications/gis/qmapshack { }; - spatialite-gui = callPackage ../applications/gis/spatialite-gui { + spatialite-gui = callPackage ../by-name/sp/spatialite-gui/package.nix { inherit (darwin.apple_sdk.frameworks) Carbon Cocoa IOKit; wxGTK = wxGTK32; }; From f64037af0a8a0afdcf465c04de725d8ed5b09c70 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Tue, 14 Jan 2025 11:06:44 +0000 Subject: [PATCH 47/65] n8n: 1.72.1 -> 1.73.1 --- pkgs/by-name/n8/n8n/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) 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 = [ From b8d93f472b9aef5f49f74b4ed624fd4c158380ff Mon Sep 17 00:00:00 2001 From: FliegendeWurst Date: Wed, 8 Jan 2025 12:32:19 +0100 Subject: [PATCH 48/65] opencolorio: fix cross build --- pkgs/development/libraries/opencolorio/default.nix | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pkgs/development/libraries/opencolorio/default.nix b/pkgs/development/libraries/opencolorio/default.nix index 8a2d452f7d3a..c300f8a0cd57 100644 --- a/pkgs/development/libraries/opencolorio/default.nix +++ b/pkgs/development/libraries/opencolorio/default.nix @@ -8,6 +8,7 @@ pystring, imath, minizip-ng, + zlib, # Only required on Linux glew, libglut, @@ -51,7 +52,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 @@ -59,6 +60,7 @@ stdenv.mkDerivation rec { pystring imath minizip-ng + zlib ] ++ lib.optionals stdenv.hostPlatform.isLinux [ glew From 4339438e3e81324bfcad7988a6d6d9eddb8bc1d5 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Tue, 14 Jan 2025 13:19:40 +0000 Subject: [PATCH 49/65] goperf: 0-unstable-2024-12-04 -> 0-unstable-2025-01-06 --- pkgs/by-name/go/goperf/package.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) 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 From 1c22128caa3b48882821a9228f3dd507c1c71d20 Mon Sep 17 00:00:00 2001 From: Moraxyc Date: Tue, 14 Jan 2025 22:16:52 +0800 Subject: [PATCH 50/65] cyrus-imapd: fix sieveshell --- pkgs/by-name/cy/cyrus-imapd/package.nix | 1 + 1 file changed, 1 insertion(+) 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; From f1eaa3de819f15a242de3bcea6e5950b04e78c4f Mon Sep 17 00:00:00 2001 From: Ivan Mincik Date: Tue, 14 Jan 2025 15:12:35 +0100 Subject: [PATCH 51/65] spatialite-gui: remove obsolete darwin tweaks Co-authored-by: Arne Keller Date: Tue, 14 Jan 2025 15:26:53 +0000 Subject: [PATCH 52/65] mercure: 0.17.1 -> 0.18.1 --- pkgs/by-name/me/mercure/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) 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" ]; From 403f98f7d277da1f551be8512f0c636a358c1d69 Mon Sep 17 00:00:00 2001 From: misuzu Date: Tue, 14 Jan 2025 17:27:50 +0200 Subject: [PATCH 53/65] containerd: fix meta.changelog --- pkgs/by-name/co/containerd/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/co/containerd/package.nix b/pkgs/by-name/co/containerd/package.nix index 2db01be8d86d..3c36629d4d69 100644 --- a/pkgs/by-name/co/containerd/package.nix +++ b/pkgs/by-name/co/containerd/package.nix @@ -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 From 83e2d111cf79fa6a2ed93a652fb2020c10538502 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Tue, 14 Jan 2025 16:07:18 +0000 Subject: [PATCH 54/65] mqtt-exporter: 1.5.0 -> 1.6.1 --- pkgs/by-name/mq/mqtt-exporter/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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" ]; From 80a034473fc3a4505d763131954b6d25c486c3ee Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Tue, 14 Jan 2025 16:13:01 +0000 Subject: [PATCH 55/65] justbuild: 1.4.1 -> 1.4.2 --- pkgs/by-name/ju/justbuild/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 { From 24c79d2bf58b10a8b3bfd022d48465d0c21ea065 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= Date: Tue, 14 Jan 2025 18:03:17 +0100 Subject: [PATCH 56/65] nixos-facter: 0.3.0 -> 0.3.1 Diff: https://github.com/numtide/nixos-facter/compare/v0.3.0...v0.3.1 --- pkgs/by-name/ni/nixos-facter/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) 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; From 19cc5ad13f115aa4b1df6e258c1a8cea8c18de51 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Tue, 14 Jan 2025 17:06:02 +0000 Subject: [PATCH 57/65] jawiki-all-titles-in-ns0: 0-unstable-2024-12-01 -> 0-unstable-2025-01-01 --- pkgs/by-name/ja/jawiki-all-titles-in-ns0/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) 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 = '' From 619f8388e13a37c34cb39363276f6eb15ed19287 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Tue, 14 Jan 2025 17:06:31 +0000 Subject: [PATCH 58/65] jp-zip-codes: 0-unstable-2024-12-01 -> 0-unstable-2025-01-01 --- pkgs/by-name/jp/jp-zip-codes/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) 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 = '' From 934768bf103f8bdb475ebbf1a0d60d37820b3d92 Mon Sep 17 00:00:00 2001 From: Sarah Clark Date: Sun, 12 Jan 2025 12:51:03 -0800 Subject: [PATCH 59/65] code-cursor: Add aarch64-linux --- pkgs/by-name/co/code-cursor/package.nix | 89 +++++++++++++++++-------- 1 file changed, 63 insertions(+), 26 deletions(-) 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"; }; } From edccf51c1cb9202ee43999fc02ce83e68dbecc36 Mon Sep 17 00:00:00 2001 From: Thomas Gerbet Date: Sat, 14 Dec 2024 23:03:27 +0100 Subject: [PATCH 60/65] rsync: apply patches for 6 vulnerabilities Fixes CVE-2024-12084, CVE-2024-12085, CVE-2024-12086, CVE-2024-12087, CVE-2024-12088 and CVE-2024-12747. https://www.kb.cert.org/vuls/id/952657 --- .../0001-Some-checksum-buffer-fixes.patch | 151 ++++++++++++++ ...other-cast-when-multiplying-integers.patch | 39 ++++ ...event-information-leak-off-the-stack.patch | 27 +++ ...uzzy-options-when-fuzzy-not-selected.patch | 37 ++++ .../0002-added-secure_relative_open.patch | 103 ++++++++++ ...-secure_relative_open-for-basis-file.patch | 103 ++++++++++ ...nts-in-relpath-for-secure_relative_o.patch | 37 ++++ .../0001-Refuse-a-duplicate-dirlist.patch | 45 +++++ .../0002-range-check-dir_ndx-before-use.patch | 27 +++ .../0001-make-safe-links-stricter.patch | 136 +++++++++++++ ...xed-symlink-race-condition-in-sender.patch | 187 ++++++++++++++++++ .../networking/sync/rsync/default.nix | 12 ++ .../rsync/raise-protocol-version-to-32.patch | 26 +++ 13 files changed, 930 insertions(+) create mode 100644 pkgs/applications/networking/sync/rsync/CVE-2024-12084/0001-Some-checksum-buffer-fixes.patch create mode 100644 pkgs/applications/networking/sync/rsync/CVE-2024-12084/0002-Another-cast-when-multiplying-integers.patch create mode 100644 pkgs/applications/networking/sync/rsync/CVE-2024-12085/0001-prevent-information-leak-off-the-stack.patch create mode 100644 pkgs/applications/networking/sync/rsync/CVE-2024-12086/0001-refuse-fuzzy-options-when-fuzzy-not-selected.patch create mode 100644 pkgs/applications/networking/sync/rsync/CVE-2024-12086/0002-added-secure_relative_open.patch create mode 100644 pkgs/applications/networking/sync/rsync/CVE-2024-12086/0003-receiver-use-secure_relative_open-for-basis-file.patch create mode 100644 pkgs/applications/networking/sync/rsync/CVE-2024-12086/0004-disallow-.-elements-in-relpath-for-secure_relative_o.patch create mode 100644 pkgs/applications/networking/sync/rsync/CVE-2024-12087/0001-Refuse-a-duplicate-dirlist.patch create mode 100644 pkgs/applications/networking/sync/rsync/CVE-2024-12087/0002-range-check-dir_ndx-before-use.patch create mode 100644 pkgs/applications/networking/sync/rsync/CVE-2024-12088/0001-make-safe-links-stricter.patch create mode 100644 pkgs/applications/networking/sync/rsync/CVE-2024-12747/0001-fixed-symlink-race-condition-in-sender.patch create mode 100644 pkgs/applications/networking/sync/rsync/raise-protocol-version-to-32.patch 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 + From bb3685425c85084c1fdc9742a87c651d2a72484c Mon Sep 17 00:00:00 2001 From: FliegendeWurst Date: Tue, 14 Jan 2025 20:00:44 +0100 Subject: [PATCH 61/65] opencomposite: fix cross build --- pkgs/by-name/op/opencomposite/package.nix | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) 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 From a8bbac6f1e5f72b3d116ed74ed15adef282c5a06 Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Wed, 15 Jan 2025 05:39:52 +1000 Subject: [PATCH 62/65] xssproxy: 1.1.0 -> 1.1.1 (#373773) --- pkgs/by-name/xs/xssproxy/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 ]; From 1342a23c67e71c33c65b895c2e6a96b57576d954 Mon Sep 17 00:00:00 2001 From: Reno Dakota Date: Tue, 14 Jan 2025 11:40:31 -0800 Subject: [PATCH 63/65] openvpn-auth-ldap: unpin LLVM17 (#373193) --- pkgs/tools/networking/openvpn/openvpn-auth-ldap.nix | 7 +++++++ pkgs/top-level/all-packages.nix | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) 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/all-packages.nix b/pkgs/top-level/all-packages.nix index 81379387137a..4ce1e3fcdf7b 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -4550,7 +4550,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 { }; From eb62e6aa39ea67e0b8018ba8ea077efe65807dc8 Mon Sep 17 00:00:00 2001 From: Jeremy Baxter Date: Tue, 14 Jan 2025 21:32:21 +1300 Subject: [PATCH 64/65] pigz: add meta.mainProgram --- pkgs/by-name/pi/pigz/package.nix | 1 + 1 file changed, 1 insertion(+) 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; From 88d21ba936848209f9f48755df3986ab861e2f11 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Tue, 14 Jan 2025 21:37:17 +0000 Subject: [PATCH 65/65] firefox-devedition-unwrapped: 133.0b1 -> 135.0b4 --- .../browsers/firefox/packages/firefox-devedition.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 = {