From 50fc446be16901047ac0efd55fdc77a287845ed5 Mon Sep 17 00:00:00 2001 From: Leona Maroni Date: Fri, 14 Mar 2025 16:44:34 +0100 Subject: [PATCH 01/70] nixos/gitlab: convert gitlab-registry-cert.service to oneshot docker-registry.service has a `After` dependency on gitlab-registry-cert. On the first start, docker-registry.service fails to start as it already runs when gitlab-registry-cert.service starts up, and not when it finished. --- nixos/modules/services/misc/gitlab.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/nixos/modules/services/misc/gitlab.nix b/nixos/modules/services/misc/gitlab.nix index f96c6f548b0b..bd714fd247cf 100644 --- a/nixos/modules/services/misc/gitlab.nix +++ b/nixos/modules/services/misc/gitlab.nix @@ -1231,6 +1231,7 @@ in { ConditionPathExists = "!${cfg.registry.certFile}"; }; serviceConfig = { + Type = "oneshot"; Slice = "system-gitlab.slice"; }; }; From cd7583a7d91ffedf4a69a97e9cf9286b3fc2ef34 Mon Sep 17 00:00:00 2001 From: Leona Maroni Date: Fri, 14 Mar 2025 16:44:34 +0100 Subject: [PATCH 02/70] nixosTests.gitlab: add minimal test for gitlab-container-registry --- nixos/tests/gitlab.nix | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/nixos/tests/gitlab.nix b/nixos/tests/gitlab.nix index da27cfbbc195..b04c93ea03aa 100644 --- a/nixos/tests/gitlab.nix +++ b/nixos/tests/gitlab.nix @@ -42,6 +42,10 @@ in environment.systemPackages = with pkgs; [ git ]; + networking.hosts."127.0.0.1" = [ + "registry.localhost" + "pages.localhost" + ]; virtualisation.memorySize = 6144; virtualisation.cores = 4; virtualisation.useNixStoreImage = true; @@ -59,6 +63,12 @@ in localhost = { locations."/".proxyPass = "http://unix:/run/gitlab/gitlab-workhorse.socket"; }; + "pages.localhost" = { + locations."/".proxyPass = "http://localhost:8090"; + }; + "registry.localhost" = { + locations."/".proxyPass = "http://localhost:4567"; + }; }; }; @@ -78,7 +88,7 @@ in smtp.enable = true; pages = { enable = true; - settings.pages-domain = "localhost"; + settings.pages-domain = "pages.localhost"; }; extraConfig = { incoming_email = { @@ -98,6 +108,14 @@ in jwsFile = pkgs.runCommand "oidcKeyBase" { } "${pkgs.openssl}/bin/openssl genrsa 2048 > $out"; }; + registry = { + enable = true; + certFile = "/var/lib/gitlab/registry_auth_cert"; + keyFile = "/var/lib/gitlab/registry_auth_key"; + externalAddress = "registry.localhost"; + externalPort = 443; + }; + # reduce memory usage sidekiq.concurrency = 1; puma.workers = 2; @@ -210,6 +228,7 @@ in gitlab.wait_for_unit("gitlab-sidekiq.service") gitlab.wait_for_file("${nodes.gitlab.services.gitlab.statePath}/tmp/sockets/gitlab.socket") gitlab.wait_until_succeeds("curl -sSf http://gitlab/users/sign_in") + gitlab.wait_for_unit("docker-registry.service") ''; # The actual test of GitLab. Only push data to GitLab if @@ -447,6 +466,10 @@ in """ ) gitlab.succeed("test -s /tmp/archive.tar.bz2") + '' + + '' + with subtest("Test docker registry http is available"): + gitlab.succeed("curl -sSf http://registry.localhost") ''; in From deebf9d077c4dc50ddb9564dfccd4f31a7afdf80 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dani=C3=ABl=20de=20Kok?= Date: Sat, 22 Mar 2025 08:25:16 +0100 Subject: [PATCH 03/70] asdbctl: init at 1.0.0 This is a utility to control brightness on Apple Studio Displays. --- pkgs/by-name/as/asdbctl/package.nix | 48 +++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 pkgs/by-name/as/asdbctl/package.nix diff --git a/pkgs/by-name/as/asdbctl/package.nix b/pkgs/by-name/as/asdbctl/package.nix new file mode 100644 index 000000000000..d6edeff45b59 --- /dev/null +++ b/pkgs/by-name/as/asdbctl/package.nix @@ -0,0 +1,48 @@ +{ + lib, + stdenv, + fetchFromGitHub, + rustPlatform, + pkg-config, + udev, +}: + +rustPlatform.buildRustPackage (finalAttrs: { + pname = "asdbctl"; + version = "1.0.0"; + + src = fetchFromGitHub { + owner = "juliuszint"; + repo = "asdbctl"; + tag = "v${finalAttrs.version}"; + hash = "sha256-S5m1iQlchGKc0PODQNDHpNzaNXRepmk5zfK5aXdiMiM="; + }; + + useFetchCargoVendor = true; + cargoHash = "sha256-OPmnGh6xN6XeREeIgyYB2aeHUpdQ5hFS5MivcTeY29E="; + + nativeBuildInputs = [ + pkg-config + ]; + + buildInputs = lib.optionals stdenv.hostPlatform.isLinux [ + udev + ]; + + postInstall = '' + install -Dm444 \ + rules.d/20-asd-backlight.rules \ + $out/lib/udev/rules.d/20-asd-backlight.rules + ''; + + meta = { + description = "Apple Studio Display brightness controll"; + mainProgram = "asdbctl"; + homepage = "https://github.com/juliuszint/asdbctl"; + changelog = "https://github.com/juliuszint/asdbctl/releases/tag/${finalAttrs.version}"; + license = lib.licenses.mit; + maintainers = [ + lib.maintainers.danieldk + ]; + }; +}) From 3c5342565b36cd6f1ba5815645eb3e58cab20cca Mon Sep 17 00:00:00 2001 From: Jordan Justen Date: Wed, 26 Mar 2025 02:34:29 -0700 Subject: [PATCH 04/70] vulkan-cts: Update vk-cts-sources.py for nixfmt Signed-off-by: Jordan Justen --- pkgs/by-name/vu/vulkan-cts/vk-cts-sources.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/vu/vulkan-cts/vk-cts-sources.py b/pkgs/by-name/vu/vulkan-cts/vk-cts-sources.py index f3e42bd82e7a..c987b7b6467d 100755 --- a/pkgs/by-name/vu/vulkan-cts/vk-cts-sources.py +++ b/pkgs/by-name/vu/vulkan-cts/vk-cts-sources.py @@ -74,7 +74,7 @@ def main(): f.write(f" hash = \"{hash}\";\n"); f.write(f" }};\n"); - f.write("\n\n prePatch = ''\n"); + f.write("\n prePatch = ''\n"); f.write(" mkdir -p"); for pkg in pkgs: if isinstance(pkg, fetch_sources.GitRepo): From e84cc9e86c0dd6f9fba9337887854611e44db38e Mon Sep 17 00:00:00 2001 From: Jordan Justen Date: Sun, 16 Mar 2025 03:00:10 -0700 Subject: [PATCH 05/70] vulkan-cts: Drop deqp-vksc from vulkan-cts package The Vulkan SC (Safety Critical) CTS has different release tags and build dependencies from the Vulkan CTS. When updating the vulkan-cts package version, I found that the newer version would fail to build if we attempted to build the deqp-vksc executable. I suspect that building the Vulkan SC CTS executable, deqp-vksc, may not be supported unless using a vulkansc-cts-* tag. This change adds cmake build define SELECTED_BUILD_TARGETS=deqp-vk, which was introduced in vulkan-cts-1.3.7.0, and reduces the amount of code built. Notably, it causes the build to no longer attempt to build deqp-vksc. Ref: vulkan-cts b22a8f06d ("Allow selecting a subset of targets at configuration time") Signed-off-by: Jordan Justen --- pkgs/by-name/vu/vulkan-cts/package.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkgs/by-name/vu/vulkan-cts/package.nix b/pkgs/by-name/vu/vulkan-cts/package.nix index 3312042202be..c58ba16ccb3b 100644 --- a/pkgs/by-name/vu/vulkan-cts/package.nix +++ b/pkgs/by-name/vu/vulkan-cts/package.nix @@ -107,6 +107,7 @@ stdenv.mkDerivation (finalAttrs: { # For vulkan-validation-layers "-DGLSLANG_INSTALL_DIR=${glslang}" "-DSPIRV_HEADERS_INSTALL_DIR=${spirv-headers}" + "-DSELECTED_BUILD_TARGETS=deqp-vk" ]; postInstall = '' @@ -114,7 +115,7 @@ stdenv.mkDerivation (finalAttrs: { ! test -e $out mkdir -p $out/bin $out/archive-dir - cp -a external/vulkancts/modules/vulkan/deqp-vk external/vulkancts/modules/vulkan/deqp-vksc $out/bin/ + cp -a external/vulkancts/modules/vulkan/deqp-vk $out/bin/ cp -a external/vulkancts/modules/vulkan/vulkan $out/archive-dir/ cp -a external/vulkancts/modules/vulkan/vk-default $out/ From 0b9ab0f71024c4168e2c128d92dac167f119b93a Mon Sep 17 00:00:00 2001 From: Jordan Justen Date: Tue, 11 Mar 2025 00:31:23 -0700 Subject: [PATCH 06/70] vulkan-cts: 1.3.10.0 -> 1.4.1.3 Note that the Vulkan SC executable deqp-vksc had to be dropped (previous patch) from the Vulkan CTS (vulkan-cts) package, or this update would lead to a build failure. Signed-off-by: Jordan Justen --- pkgs/by-name/vu/vulkan-cts/package.nix | 4 +-- pkgs/by-name/vu/vulkan-cts/sources.nix | 46 +++++++++++++++++--------- 2 files changed, 33 insertions(+), 17 deletions(-) diff --git a/pkgs/by-name/vu/vulkan-cts/package.nix b/pkgs/by-name/vu/vulkan-cts/package.nix index c58ba16ccb3b..03ae73b835ad 100644 --- a/pkgs/by-name/vu/vulkan-cts/package.nix +++ b/pkgs/by-name/vu/vulkan-cts/package.nix @@ -45,13 +45,13 @@ let in stdenv.mkDerivation (finalAttrs: { pname = "vulkan-cts"; - version = "1.3.10.0"; + version = "1.4.1.3"; src = fetchFromGitHub { owner = "KhronosGroup"; repo = "VK-GL-CTS"; rev = "vulkan-cts-${finalAttrs.version}"; - hash = "sha256-owa4Z/gu9+plPxeSfduS3gUk9WTOHSDoXLTBju6tTGc="; + hash = "sha256-44UGGeuKMCP4fLsZnIPdWDjozd87su9TUbFBnftVrNY="; }; prePatch = '' diff --git a/pkgs/by-name/vu/vulkan-cts/sources.nix b/pkgs/by-name/vu/vulkan-cts/sources.nix index e220164a5039..8442014d61ab 100644 --- a/pkgs/by-name/vu/vulkan-cts/sources.nix +++ b/pkgs/by-name/vu/vulkan-cts/sources.nix @@ -4,15 +4,15 @@ rec { amber = fetchFromGitHub { owner = "google"; repo = "amber"; - rev = "67fea651b886460d7b72295e680528c059bbbe40"; - hash = "sha256-oDN7UdyfNMG4r36nnRJmYdbd0wyd1titGQQNa9e/3tU="; + rev = "1ec5e96db7e0343d045a52c590e30eba154f74a8"; + hash = "sha256-4LoV7PfkwLrg+7GyuB1poC/9zE/3jy8nhs+uPe2U3lA="; }; glslang = fetchFromGitHub { owner = "KhronosGroup"; repo = "glslang"; - rev = "c5b76b78c9dec95251e9c1840a671e19bf61abe3"; - hash = "sha256-N7vGPqQieWnr+mbrmdbvzz7n9q3bbRKLxkYt6OiaJvU="; + rev = "3a2834e7702651043ca9f35d022739e740563516"; + hash = "sha256-hHmqvdgBS23bLGCzlKJtlElw79/WvxEbPSwpbQFHQYY="; }; jsoncpp = fetchFromGitHub { @@ -25,40 +25,54 @@ rec { nvidia-video-samples = fetchFromGitHub { owner = "Igalia"; repo = "vk_video_samples"; - rev = "6821adf11eb4f84a2168264b954c170d03237699"; - hash = "sha256-prshOzxUHLYi64Pbyytsp+XvmtIIyhx/3n5IVimYH64="; + rev = "45fe88b456c683120138f052ea81f0a958ff3ec4"; + hash = "sha256-U5IoiRKXsdletVlnHVz8rgMEwDOZFAuld5Bzs0rvcR4="; }; spirv-headers = fetchFromGitHub { owner = "KhronosGroup"; repo = "SPIRV-Headers"; - rev = "2a9b6f951c7d6b04b6c21fe1bf3f475b68b84801"; - hash = "sha256-o1yRTvP7a+XVwendTKBJKNnelVGWLD0gH258GGeUDhQ="; + rev = "36d5e2ddaa54c70d2f29081510c66f4fc98e5e53"; + hash = "sha256-8hx8/1vaY4mRnfNaBsghWqpzyzY4hkVkNFbQEFZif9g="; }; spirv-tools = fetchFromGitHub { owner = "KhronosGroup"; repo = "SPIRV-Tools"; - rev = "44936c4a9d42f1c67e34babb5792adf5bce7f76b"; - hash = "sha256-kSiP94hMlblFod2mQhlAQDAENGOvBh7v8bCxxaiYWq4="; + rev = "3fb52548bc8a68d349d31e21bd4e80e3d953e87c"; + hash = "sha256-RJ3Q3U4GjqvUXDy8Jd4NWgjhKOxYMMK1Jerj19dAqno="; + }; + + video_generator = fetchFromGitHub { + owner = "Igalia"; + repo = "video_generator"; + rev = "426300e12a5cc5d4676807039a1be237a2b68187"; + hash = "sha256-zdYYpX3hed7i5onY7c60LnM/e6PLa3VdrhXTV9oSlvg="; }; vulkan-docs = fetchFromGitHub { owner = "KhronosGroup"; repo = "Vulkan-Docs"; - rev = "486e4b289053a7d64784e7ce791711843c60c235"; - hash = "sha256-LGAHUeWF9X6Li1HcdD14pgnBUquWxA+bQpAL09JmwLQ="; + rev = "c7a3955e47d223c6a37fb29e2061c973eec98d0a"; + hash = "sha256-dTkLzENuEfe0TVvJAgYevJNPyI/lWbjx8Pzz3Lj76PY="; }; vulkan-validationlayers = fetchFromGitHub { owner = "KhronosGroup"; repo = "Vulkan-ValidationLayers"; - rev = "9a46ae006fa5c92e2d2af7944187f7794210844b"; - hash = "sha256-qVQy3kKkZRWHjtj2YxJTZqKg1kwnmLa3bgVathisfOc="; + rev = "902f3cf8d51e76be0c0deb4be39c6223abebbae2"; + hash = "sha256-p4DFlyU1jjfVFlEOE21aNHfqaTZ8QbSCFQfpsYS0KR0="; + }; + + vulkan-video-samples = fetchFromGitHub { + owner = "KhronosGroup"; + repo = "Vulkan-Video-Samples"; + rev = "0e87744edbb84c9c56c3fc8de9ea5150af5ee4ea"; + hash = "sha256-CZ1zoX9gI+Ac/jf2IxWk59NXPiW6qcMhj9laoZnQfd8="; }; prePatch = '' - mkdir -p external/amber external/glslang external/jsoncpp external/nvidia-video-samples external/spirv-headers external/spirv-tools external/vulkan-docs external/vulkan-validationlayers + mkdir -p external/amber external/glslang external/jsoncpp external/nvidia-video-samples external/spirv-headers external/spirv-tools external/video_generator external/vulkan-docs external/vulkan-validationlayers external/vulkan-video-samples cp -r ${amber} external/amber/src cp -r ${glslang} external/glslang/src @@ -66,7 +80,9 @@ rec { cp -r ${nvidia-video-samples} external/nvidia-video-samples/src cp -r ${spirv-headers} external/spirv-headers/src cp -r ${spirv-tools} external/spirv-tools/src + cp -r ${video_generator} external/video_generator/src cp -r ${vulkan-docs} external/vulkan-docs/src cp -r ${vulkan-validationlayers} external/vulkan-validationlayers/src + cp -r ${vulkan-video-samples} external/vulkan-video-samples/src ''; } From db7e660c40eedfcc0339c7855234f7f3787129be Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sat, 5 Apr 2025 09:51:09 +0000 Subject: [PATCH 07/70] python312Packages.rq: 2.2 -> 2.3.1 --- pkgs/development/python-modules/rq/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/rq/default.nix b/pkgs/development/python-modules/rq/default.nix index 16e0369c4061..f65474aad978 100644 --- a/pkgs/development/python-modules/rq/default.nix +++ b/pkgs/development/python-modules/rq/default.nix @@ -20,7 +20,7 @@ buildPythonPackage rec { pname = "rq"; - version = "2.2"; + version = "2.3.1"; pyproject = true; disabled = pythonOlder "3.7"; @@ -29,7 +29,7 @@ buildPythonPackage rec { owner = "rq"; repo = "rq"; tag = "v${version}"; - hash = "sha256-RuqLfPEwdwfJo+mdY4vB3lpyGkbP/GQDfRU+TmUur3s="; + hash = "sha256-RnnYO6gKhbcft61EhTFbfvhC+9SsVfDsu64GuNfGKvE="; }; build-system = [ hatchling ]; From 9d02f876c4326b06ada6ed11052357d7f355ecac Mon Sep 17 00:00:00 2001 From: Leona Maroni Date: Thu, 27 Mar 2025 23:20:14 +0100 Subject: [PATCH 08/70] nixosTests.discourse: fix after dovecot2 change --- nixos/tests/discourse.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/nixos/tests/discourse.nix b/nixos/tests/discourse.nix index 3accebe8f31f..58bbd961ede7 100644 --- a/nixos/tests/discourse.nix +++ b/nixos/tests/discourse.nix @@ -104,7 +104,6 @@ import ./make-test-python.nix ( services.dovecot2 = { enable = true; protocols = [ "imap" ]; - modules = [ pkgs.dovecot_pigeonhole ]; }; services.postfix = { From f2ebbabda07227ed0a3150124989d330caea457c Mon Sep 17 00:00:00 2001 From: Leona Maroni Date: Thu, 27 Mar 2025 23:20:14 +0100 Subject: [PATCH 09/70] discourse: 3.3.2 -> 3.4.2 https://meta.discourse.org/t/3-3-3-security-and-maintenance-release/343239 https://meta.discourse.org/t/3-3-4-security-and-maintenance-release/349301 https://blog.discourse.org/2025/02/unpacking-discourse-3-4/ https://meta.discourse.org/t/3-4-1-bug-fix-and-ux-release/353247 https://meta.discourse.org/t/3-4-2-security-and-bug-fix-release/358152 --- .../manual/release-notes/rl-2505.section.md | 1 + nixos/modules/services/web-apps/discourse.nix | 9 +- nixos/tests/discourse.nix | 2 +- pkgs/servers/web-apps/discourse/default.nix | 67 +- .../discourse/prebuild-theme-transpiler.patch | 34 +- .../web-apps/discourse/rubyEnv/Gemfile | 44 +- .../web-apps/discourse/rubyEnv/Gemfile.lock | 389 +++++----- .../web-apps/discourse/rubyEnv/gemset.nix | 707 +++++++++++------- pkgs/servers/web-apps/discourse/update.py | 46 +- 9 files changed, 738 insertions(+), 561 deletions(-) diff --git a/nixos/doc/manual/release-notes/rl-2505.section.md b/nixos/doc/manual/release-notes/rl-2505.section.md index 084e43f2792a..bf3bace1bbaa 100644 --- a/nixos/doc/manual/release-notes/rl-2505.section.md +++ b/nixos/doc/manual/release-notes/rl-2505.section.md @@ -354,6 +354,7 @@ - `programs.clash-verge.tunMode` was deprecated and removed because now service mode is necessary to start program. Without `programs.clash-verge.enable`, clash-verge-rev will refuse to start. +- `services.discourse` now requires PostgreSQL 15 per default. Please update before upgrading. - `services.netbird.tunnels` was renamed to [`services.netbird.clients`](#opt-services.netbird.clients), hardened (using dedicated less-privileged users) and significantly extended. diff --git a/nixos/modules/services/web-apps/discourse.nix b/nixos/modules/services/web-apps/discourse.nix index 1d7b3c2ff7be..b454ed97744f 100644 --- a/nixos/modules/services/web-apps/discourse.nix +++ b/nixos/modules/services/web-apps/discourse.nix @@ -13,8 +13,8 @@ let cfg = config.services.discourse; opt = options.services.discourse; - # Keep in sync with https://github.com/discourse/discourse_docker/blob/main/image/base/slim.Dockerfile#L5 - upstreamPostgresqlVersion = lib.getVersion pkgs.postgresql_13; + # Keep in sync with https://github.com/discourse/discourse_docker/blob/main/image/base/Dockerfile PG_MAJOR + upstreamPostgresqlVersion = lib.getVersion pkgs.postgresql_15; postgresqlPackage = if config.services.postgresql.enable then config.services.postgresql.package else pkgs.postgresql; @@ -676,6 +676,8 @@ in dns_query_timeout_secs = null; regex_timeout_seconds = 2; allow_impersonation = true; + log_line_max_chars = 160000; + yjit_enabled = false; }; services.redis.servers.discourse = @@ -901,6 +903,9 @@ in extraConfig + '' proxy_set_header X-Request-Start "t=''${msec}"; + proxy_set_header X-Sendfile-Type ""; + proxy_set_header X-Accel-Mapping ""; + proxy_set_header Client-Ip ""; ''; }; cache = time: '' diff --git a/nixos/tests/discourse.nix b/nixos/tests/discourse.nix index 58bbd961ede7..1f8d1b7bdf4c 100644 --- a/nixos/tests/discourse.nix +++ b/nixos/tests/discourse.nix @@ -59,7 +59,7 @@ import ./make-test-python.nix ( environment.systemPackages = [ pkgs.jq ]; - services.postgresql.package = pkgs.postgresql_13; + services.postgresql.package = pkgs.postgresql_15; services.discourse = { enable = true; diff --git a/pkgs/servers/web-apps/discourse/default.nix b/pkgs/servers/web-apps/discourse/default.nix index 347aefd22d28..dd7ff3e0f537 100644 --- a/pkgs/servers/web-apps/discourse/default.nix +++ b/pkgs/servers/web-apps/discourse/default.nix @@ -9,7 +9,7 @@ bundlerEnv, callPackage, - ruby_3_2, + ruby_3_3, replace, gzip, gnutar, @@ -34,11 +34,9 @@ procps, rsync, icu, - fetchYarnDeps, - yarn, - fixup-yarn-lock, + pnpm_9, nodePackages, - nodejs_18, + nodejs, jq, moreutils, terser, @@ -48,16 +46,16 @@ }@args: let - version = "3.3.2"; + version = "3.4.2"; src = fetchFromGitHub { owner = "discourse"; repo = "discourse"; rev = "v${version}"; - sha256 = "sha256-FaPcUta5z/8oasw+9zGBRZnUVYD8eCo1t/XwwsFoSM8="; + sha256 = "sha256-glTuY9aQ7wYvFZstOP579RkdSwKKh3q9mJt4wqg3zYk="; }; - ruby = ruby_3_2; + ruby = ruby_3_3; runtimeDeps = [ # For backups, themes and assets @@ -67,7 +65,7 @@ let gnutar git brotli - nodejs_18 + nodejs # Misc required system utils which @@ -189,9 +187,9 @@ let cd ../.. mkdir -p vendor/v8/${stdenv.hostPlatform.system}/libv8/obj/ - ln -s "${nodejs_18.libv8}/lib/libv8.a" vendor/v8/${stdenv.hostPlatform.system}/libv8/obj/libv8_monolith.a + ln -s "${nodejs.libv8}/lib/libv8.a" vendor/v8/${stdenv.hostPlatform.system}/libv8/obj/libv8_monolith.a - ln -s ${nodejs_18.libv8}/include vendor/v8/include + ln -s ${nodejs.libv8}/include vendor/v8/include mkdir -p ext/libv8-node echo '--- !ruby/object:Libv8::Node::Location::Vendor {}' >ext/libv8-node/.location.yml @@ -232,9 +230,10 @@ let pname = "discourse-assets"; inherit version src; - yarnOfflineCache = fetchYarnDeps { - yarnLock = src + "/yarn.lock"; - hash = "sha256-cSQofaULCmPuWGxS+hK4KlRq9lSkCPiYvhax9X6Dor8="; + pnpmDeps = pnpm_9.fetchDeps { + pname = "discourse-assets"; + inherit version src; + hash = "sha256-WyRBnuKCl5NJLtqy3HK/sJcrpMkh0PjbasGPNDV6+7Y="; }; nativeBuildInputs = runtimeDeps ++ [ @@ -242,10 +241,10 @@ let redis uglify-js terser - yarn jq moreutils - fixup-yarn-lock + nodejs + pnpm_9.configHook ]; outputs = [ @@ -281,31 +280,9 @@ let # run. This means that Redis and PostgreSQL has to be running and # database migrations performed. preBuild = '' - # Yarn wants a real home directory to write cache, config, etc to - export HOME=$NIX_BUILD_TOP/fake_home - - yarn_install() { - local offlineCache=$1 yarnLock=$2 - - # Make yarn install packages from our offline cache, not the registry - yarn config --offline set yarn-offline-mirror $offlineCache - - # Fixup "resolved"-entries in yarn.lock to match our offline cache - fixup-yarn-lock $yarnLock - - # Install while ignoring hook scripts - yarn --offline --ignore-scripts --cwd $(dirname $yarnLock) install - } - - # Install runtime and devDependencies. - # The dev deps are necessary for generating the theme-transpiler executed as dependent task - # assets:precompile:theme_transpiler before db:migrate and unfortunately also in the runtime - yarn_install $yarnOfflineCache yarn.lock - # Patch before running postinstall hook script patchShebangs node_modules/ patchShebangs --build app/assets/javascripts - yarn --offline --cwd app/assets/javascripts run postinstall export SSL_CERT_FILE=${cacert}/etc/ssl/certs/ca-bundle.crt redis-server >/dev/null & @@ -351,6 +328,10 @@ let runHook postInstall ''; + + # The node_modules output by design has broken symlinks, as it refers to the source code. + # They are resolved in the primary discourse derivation. + dontCheckForBrokenSymlinks = true; }; discourse = stdenv.mkDerivation { @@ -425,12 +406,11 @@ let ln -sf /var/lib/discourse/tmp $out/share/discourse/tmp ln -sf /run/discourse/config $out/share/discourse/config ln -sf /run/discourse/public $out/share/discourse/public - # This needs to be copied because of symlinks in node_modules - # Also this needs to be full node_modules (including dev deps) because without loader.js it just throws 500 - cp -r ${assets.node_modules} $out/share/discourse/node_modules + ln -sf ${assets.node_modules} $out/share/discourse/node_modules ln -sf ${assets} $out/share/discourse/public.dist/assets rm -r $out/share/discourse/app/assets/javascripts - ln -sf ${assets.javascripts} $out/share/discourse/app/assets/javascripts + # This needs to be copied because it contains symlinks to node_modules + cp -r ${assets.javascripts} $out/share/discourse/app/assets/javascripts ${lib.concatMapStringsSep "\n" ( p: "ln -sf ${p} $out/share/discourse/plugins/${p.pluginName or ""}" ) plugins} @@ -466,9 +446,6 @@ let maintainers = with maintainers; [ talyz ]; license = licenses.gpl2Plus; description = "Discourse is an open source discussion platform"; - # fails to compile mini_racer: - # mini_racer_v8.cc:316:45: error: no matching function for call to 'v8::ScriptOrigin::ScriptOrigin(v8::Local&)' - broken = true; }; }; in diff --git a/pkgs/servers/web-apps/discourse/prebuild-theme-transpiler.patch b/pkgs/servers/web-apps/discourse/prebuild-theme-transpiler.patch index bed44baee570..2e779fa26400 100644 --- a/pkgs/servers/web-apps/discourse/prebuild-theme-transpiler.patch +++ b/pkgs/servers/web-apps/discourse/prebuild-theme-transpiler.patch @@ -1,21 +1,23 @@ diff --git a/lib/discourse_js_processor.rb b/lib/discourse_js_processor.rb -index 26d142fa4d..6040aba6f4 100644 +index f1642386c5..5a672818da 100644 --- a/lib/discourse_js_processor.rb +++ b/lib/discourse_js_processor.rb -@@ -68,7 +68,7 @@ class DiscourseJsProcessor - TRANSPILER_PATH = - ( - if Rails.env.production? -- "tmp/theme-transpiler.js" -+ "app/assets/javascripts/theme-transpiler.js" - else - "tmp/theme-transpiler/#{Process.pid}.js" - end -@@ -87,6 +87,6 @@ class DiscourseJsProcessor - "node", - "app/assets/javascripts/theme-transpiler/build.js", - TRANSPILER_PATH, -- ) -+ ) if !Rails.env.production? or !File.file?(TRANSPILER_PATH) +@@ -54,7 +54,7 @@ class DiscourseJsProcessor + end + + class Transpiler +- TRANSPILER_PATH = "tmp/theme-transpiler.js" ++ TRANSPILER_PATH = "app/assets/javascripts/theme-transpiler.js" + + @mutex = Mutex.new + @ctx_init = Mutex.new +@@ -75,7 +75,9 @@ class DiscourseJsProcessor + end + + def self.build_production_theme_transpiler +- File.write(TRANSPILER_PATH, build_theme_transpiler) ++ if (!Rails.env.production? or !File.file?(TRANSPILER_PATH)) ++ File.write(TRANSPILER_PATH, build_theme_transpiler) ++ end TRANSPILER_PATH end diff --git a/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile b/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile index 4aa1e315536c..869b2d548b3d 100644 --- a/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile +++ b/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile @@ -6,13 +6,13 @@ source "https://rubygems.org" gem "bootsnap", require: false, platform: :mri -gem "actionmailer", "~> 7.1.0" -gem "actionpack", "~> 7.1.0" -gem "actionview", "~> 7.1.0" -gem "activemodel", "~> 7.1.0" -gem "activerecord", "~> 7.1.0" -gem "activesupport", "~> 7.1.0" -gem "railties", "~> 7.1.0" +gem "actionmailer", "~> 7.2.0" +gem "actionpack", "~> 7.2.0" +gem "actionview", "~> 7.2.0" +gem "activemodel", "~> 7.2.0" +gem "activerecord", "~> 7.2.0" +gem "activesupport", "~> 7.2.0" +gem "railties", "~> 7.2.0" gem "sprockets-rails" gem "json" @@ -99,7 +99,7 @@ gem "sidekiq" gem "mini_scheduler" gem "execjs", require: false -gem "mini_racer" +gem "mini_racer", "0.17.pre13" gem "highline", require: false @@ -158,6 +158,8 @@ group :test, :development do gem "syntax_tree" gem "syntax_tree-disable_ternary" + + gem "rspec-multi-mock" end group :development do @@ -241,8 +243,6 @@ if ENV["IMPORT"] == "1" gem "reverse_markdown" gem "tiny_tds" gem "csv" - - gem "parallel", require: false end group :generic_import, optional: true do @@ -269,10 +269,26 @@ gem "cgi", ">= 0.3.6", require: false gem "tzinfo-data" gem "csv", require: false -# TODO: Can be removed once we upgrade to Rails 7.1 -gem "mutex_m" -gem "drb" - # dependencies for the automation plugin gem "iso8601" gem "rrule" + +group :migrations, optional: true do + gem "extralite-bundle", require: "extralite" + + # auto-loading + gem "zeitwerk" + + # databases + gem "trilogy" + + # CLI + gem "ruby-progressbar" + + # non-cryptographic hashing algorithm for generating placeholder IDs + gem "digest-xxhash" +end + +gem "dry-initializer", "~> 3.1" + +gem "parallel" diff --git a/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile.lock b/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile.lock index 361daa0c7037..b492ec78ffed 100644 --- a/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile.lock +++ b/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile.lock @@ -1,28 +1,26 @@ GEM remote: https://rubygems.org/ specs: - actionmailer (7.1.3.4) - actionpack (= 7.1.3.4) - actionview (= 7.1.3.4) - activejob (= 7.1.3.4) - activesupport (= 7.1.3.4) - mail (~> 2.5, >= 2.5.4) - net-imap - net-pop - net-smtp + actionmailer (7.2.2.1) + actionpack (= 7.2.2.1) + actionview (= 7.2.2.1) + activejob (= 7.2.2.1) + activesupport (= 7.2.2.1) + mail (>= 2.8.0) rails-dom-testing (~> 2.2) - actionpack (7.1.3.4) - actionview (= 7.1.3.4) - activesupport (= 7.1.3.4) + actionpack (7.2.2.1) + actionview (= 7.2.2.1) + activesupport (= 7.2.2.1) nokogiri (>= 1.8.5) racc - rack (>= 2.2.4) + rack (>= 2.2.4, < 3.2) rack-session (>= 1.0.1) rack-test (>= 0.6.3) rails-dom-testing (~> 2.2) rails-html-sanitizer (~> 1.6) - actionview (7.1.3.4) - activesupport (= 7.1.3.4) + useragent (~> 0.16) + actionview (7.2.2.1) + activesupport (= 7.2.2.1) builder (~> 3.1) erubi (~> 1.11) rails-dom-testing (~> 2.2) @@ -31,25 +29,27 @@ GEM actionview (>= 6.0.a) active_model_serializers (0.8.4) activemodel (>= 3.0) - activejob (7.1.3.4) - activesupport (= 7.1.3.4) + activejob (7.2.2.1) + activesupport (= 7.2.2.1) globalid (>= 0.3.6) - activemodel (7.1.3.4) - activesupport (= 7.1.3.4) - activerecord (7.1.3.4) - activemodel (= 7.1.3.4) - activesupport (= 7.1.3.4) + activemodel (7.2.2.1) + activesupport (= 7.2.2.1) + activerecord (7.2.2.1) + activemodel (= 7.2.2.1) + activesupport (= 7.2.2.1) timeout (>= 0.4.0) - activesupport (7.1.3.4) + activesupport (7.2.2.1) base64 + benchmark (>= 0.3) bigdecimal - concurrent-ruby (~> 1.0, >= 1.0.2) + concurrent-ruby (~> 1.0, >= 1.3.1) connection_pool (>= 2.2.5) drb i18n (>= 1.6, < 2) + logger (>= 1.4.2) minitest (>= 5.1) - mutex_m - tzinfo (~> 2.0) + securerandom (>= 0.3) + tzinfo (~> 2.0, >= 2.0.5) addressable (2.8.7) public_suffix (>= 2.0.2, < 7.0) annotate (3.2.0) @@ -76,17 +76,18 @@ GEM aws-sigv4 (1.8.0) aws-eventstream (~> 1, >= 1.0.2) base64 (0.2.0) + benchmark (0.4.0) better_errors (2.10.1) erubi (>= 1.0.0) rack (>= 0.9.0) rouge (>= 1.0.0) - bigdecimal (3.1.8) + bigdecimal (3.1.9) binding_of_caller (1.0.1) debug_inspector (>= 1.2.0) - bootsnap (1.18.3) + bootsnap (1.18.4) msgpack (~> 1.2) builder (3.3.0) - bullet (7.2.0) + bullet (8.0.0) activesupport (>= 3.0.0) uniform_notifier (~> 1.11) byebug (11.1.3) @@ -104,26 +105,27 @@ GEM cgi (0.4.1) chunky_png (1.4.0) coderay (1.1.3) - colored2 (4.0.0) - concurrent-ruby (1.3.3) - connection_pool (2.4.1) - cose (1.3.0) + colored2 (4.0.3) + concurrent-ruby (1.3.5) + connection_pool (2.5.0) + cose (1.3.1) cbor (~> 0.5.9) openssl-signature_algorithm (~> 1.0) - cppjieba_rb (0.4.2) + cppjieba_rb (0.4.4) crack (1.0.0) bigdecimal rexml crass (1.0.6) - css_parser (1.17.1) + css_parser (1.21.0) addressable - csv (3.3.0) - date (3.3.4) + csv (3.3.2) + date (3.4.1) debug_inspector (1.2.0) diff-lcs (1.5.1) - diffy (3.4.2) - digest (3.1.1) - discourse-fonts (0.0.9) + diffy (3.4.3) + digest (3.2.0) + digest-xxhash (0.2.9) + discourse-fonts (0.0.18) discourse-seed-fu (2.3.12) activerecord (>= 3.1) activesupport (>= 3.1) @@ -132,50 +134,53 @@ GEM literate_randomizer docile (1.4.1) drb (2.2.1) - email_reply_trimmer (0.1.13) - erubi (1.13.0) - excon (0.111.0) - execjs (2.9.1) - exifr (1.4.0) + dry-initializer (3.2.0) + email_reply_trimmer (0.2.0) + erubi (1.13.1) + excon (1.2.3) + execjs (2.10.0) + exifr (1.4.1) + extralite-bundle (2.8.2) fabrication (2.31.0) faker (2.23.0) i18n (>= 1.8.11, < 2) fakeweb (1.3.0) - faraday (2.10.0) - faraday-net_http (>= 2.0, < 3.2) + faraday (2.12.2) + faraday-net_http (>= 2.0, < 3.5) + json logger - faraday-net_http (3.1.1) - net-http + faraday-net_http (3.4.0) + net-http (>= 0.5.0) faraday-retry (2.2.1) faraday (~> 2.0) fast_blank (1.0.1) fastimage (2.3.1) - ffi (1.17.0) - ffi (1.17.0-arm64-darwin) - ffi (1.17.0-x86_64-darwin) + ffi (1.17.1) + ffi (1.17.1-arm64-darwin) + ffi (1.17.1-x86_64-darwin) fspath (3.1.2) globalid (1.2.1) activesupport (>= 6.1) - google-protobuf (4.27.2) + google-protobuf (4.29.3) bigdecimal rake (>= 13) - google-protobuf (4.27.2-arm64-darwin) + google-protobuf (4.29.3-arm64-darwin) bigdecimal rake (>= 13) - google-protobuf (4.27.2-x86_64-darwin) + google-protobuf (4.29.3-x86_64-darwin) bigdecimal rake (>= 13) guess_html_encoding (0.0.11) hana (1.3.7) - hashdiff (1.1.0) + hashdiff (1.1.2) hashie (5.0.0) - highline (3.1.0) + highline (3.1.2) reline htmlentities (4.3.4) http_accept_language (2.1.1) - i18n (1.14.5) + i18n (1.14.7) concurrent-ruby (~> 1.0) - image_optim (0.31.3) + image_optim (0.31.4) exifr (~> 1.2, >= 1.2.2) fspath (~> 3.0) image_size (>= 1.5, < 4) @@ -183,32 +188,34 @@ GEM progress (~> 3.0, >= 3.0.1) image_size (3.4.0) in_threads (1.6.0) - io-console (0.7.2) - irb (1.14.0) + io-console (0.8.0) + irb (1.15.1) + pp (>= 0.6.0) rdoc (>= 4.0.0) reline (>= 0.4.2) iso8601 (0.13.0) jmespath (1.6.2) - json (2.7.2) - json-schema (4.3.1) - addressable (>= 2.8) - json_schemer (2.3.0) + json (2.9.1) + json-schema (5.1.1) + addressable (~> 2.8) + bigdecimal (~> 3.1) + json_schemer (2.4.0) bigdecimal hana (~> 1.3) regexp_parser (~> 2.0) simpleidn (~> 0.2) - jwt (2.8.2) + jwt (2.10.1) base64 kgio (2.11.4) - language_server-protocol (3.17.0.3) - libv8-node (18.19.0.0) - libv8-node (18.19.0.0-arm64-darwin) - libv8-node (18.19.0.0-x86_64-darwin) + language_server-protocol (3.17.0.4) + libv8-node (22.7.0.4) + libv8-node (22.7.0.4-arm64-darwin) + libv8-node (22.7.0.4-x86_64-darwin) listen (3.9.0) rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) literate_randomizer (0.4.0) - logger (1.6.0) + logger (1.6.5) lograge (0.14.0) actionpack (>= 4) activesupport (>= 4) @@ -216,7 +223,7 @@ GEM request_store (~> 1.0) logstash-event (1.2.02) logster (2.20.0) - loofah (2.22.0) + loofah (2.24.0) crass (~> 1.0.2) nokogiri (>= 1.12.0) lru_redux (1.1.0) @@ -228,34 +235,33 @@ GEM net-smtp matrix (0.4.2) maxminddb (0.1.22) - memory_profiler (1.0.2) + memory_profiler (1.1.0) message_bus (4.3.8) rack (>= 1.1.3) messageformat-wrapper (1.1.0) mini_racer (>= 0.6.3) method_source (1.1.0) mini_mime (1.1.5) - mini_portile2 (2.8.7) - mini_racer (0.14.1) - libv8-node (~> 18.19.0.0) - mini_scheduler (0.16.0) - sidekiq (>= 4.2.3, < 7.0) - mini_sql (1.5.0) + mini_portile2 (2.8.8) + mini_racer (0.17.0.pre13) + libv8-node (~> 22.7.0.4) + mini_scheduler (0.18.0) + sidekiq (>= 6.5, < 8.0) + mini_sql (1.6.0) mini_suffix (0.3.3) ffi (~> 1.9) minio_runner (0.1.2) - minitest (5.24.1) - mocha (2.4.5) + minitest (5.25.4) + mocha (2.7.1) ruby2_keywords (>= 0.0.5) - msgpack (1.7.2) + msgpack (1.7.5) multi_json (1.15.0) multi_xml (0.7.1) bigdecimal (~> 3.1) mustache (1.1.1) - mutex_m (0.2.0) - net-http (0.4.1) + net-http (0.6.0) uri - net-imap (0.4.14) + net-imap (0.5.5) date net-protocol net-pop (0.1.2) @@ -264,13 +270,13 @@ GEM timeout net-smtp (0.5.0) net-protocol - nio4r (2.7.3) - nokogiri (1.16.7) + nio4r (2.7.4) + nokogiri (1.18.2) mini_portile2 (~> 2.8.2) racc (~> 1.4) - nokogiri (1.16.7-arm64-darwin) + nokogiri (1.18.2-arm64-darwin) racc (~> 1.4) - nokogiri (1.16.7-x86_64-darwin) + nokogiri (1.18.2-x86_64-darwin) racc (~> 1.4) oauth (1.1.0) oauth-tty (~> 1.0, >= 1.0.1) @@ -284,8 +290,9 @@ GEM multi_json (~> 1.3) multi_xml (~> 0.5) rack (>= 1.2, < 4) - oj (3.16.4) + oj (3.16.9) bigdecimal (>= 3.0) + ostruct (>= 0.2) omniauth (1.9.2) hashie (>= 3.4.6) rack (>= 1.6.2, < 3) @@ -299,27 +306,32 @@ GEM oauth2 (~> 1.1) omniauth (~> 1.1) omniauth-oauth2 (>= 1.6) - omniauth-oauth (1.2.0) + omniauth-oauth (1.2.1) oauth omniauth (>= 1.0, < 3) + rack (>= 1.6.2, < 4) omniauth-oauth2 (1.7.3) oauth2 (>= 1.4, < 3) omniauth (>= 1.9, < 3) omniauth-twitter (1.4.0) omniauth-oauth (~> 1.1) rack - openssl (3.2.0) + openssl (3.3.0) openssl-signature_algorithm (1.3.0) openssl (> 2.0) - optimist (3.1.0) - parallel (1.25.1) - parallel_tests (4.7.1) + optimist (3.2.0) + ostruct (0.6.1) + parallel (1.26.3) + parallel_tests (4.9.0) parallel - parser (3.3.4.0) + parser (3.3.7.0) ast (~> 2.4.1) racc - pg (1.5.4) + pg (1.5.9) + pp (0.6.2) + prettyprint prettier_print (1.2.1) + prettyprint (0.2.0) progress (3.6.0) pry (0.14.2) coderay (~> 1.1) @@ -332,13 +344,14 @@ GEM pry-stack_explorer (0.6.1) binding_of_caller (~> 1.0) pry (~> 0.13) - psych (5.1.2) + psych (5.2.3) + date stringio public_suffix (6.0.1) - puma (6.4.2) + puma (6.6.0) nio4r (~> 2.0) - racc (1.8.0) - rack (2.2.9) + racc (1.8.1) + rack (2.2.10) rack-mini-profiler (3.3.1) rack (>= 1.2.0) rack-protection (3.2.0) @@ -346,29 +359,29 @@ GEM rack (~> 2.2, >= 2.2.4) rack-session (1.0.2) rack (< 3) - rack-test (2.1.0) + rack-test (2.2.0) rack (>= 1.3) - rackup (1.0.0) + rackup (1.0.1) rack (< 3) webrick rails-dom-testing (2.2.0) activesupport (>= 5.0.0) minitest nokogiri (>= 1.6) - rails-html-sanitizer (1.6.0) + rails-html-sanitizer (1.6.2) loofah (~> 2.21) - nokogiri (~> 1.14) - rails_failover (2.1.1) + nokogiri (>= 1.15.7, != 1.16.7, != 1.16.6, != 1.16.5, != 1.16.4, != 1.16.3, != 1.16.2, != 1.16.1, != 1.16.0.rc1, != 1.16.0) + rails_failover (2.2.0) activerecord (>= 6.1, < 8.0) concurrent-ruby railties (>= 6.1, < 8.0) - rails_multisite (6.0.0) + rails_multisite (6.1.0) activerecord (>= 6.0) railties (>= 6.0) - railties (7.1.3.4) - actionpack (= 7.1.3.4) - activesupport (= 7.1.3.4) - irb + railties (7.2.2.1) + actionpack (= 7.2.2.1) + activesupport (= 7.2.2.1) + irb (~> 1.13) rackup (>= 1.0.0) rake (>= 12.2) thor (~> 1.0, >= 1.2.2) @@ -383,23 +396,22 @@ GEM ffi (>= 1.0.6) msgpack (>= 0.4.3) optimist (>= 3.0.0) - rchardet (1.8.0) - rdoc (6.7.0) + rchardet (1.9.0) + rdoc (6.11.0) psych (>= 4.0.0) redcarpet (3.6.0) redis (4.8.1) redis-namespace (1.11.0) redis (>= 4) - regexp_parser (2.9.2) - reline (0.5.9) + regexp_parser (2.10.0) + reline (0.6.0) io-console (~> 0.5) request_store (1.7.0) rack (>= 1.4) - rexml (3.3.2) - strscan + rexml (3.4.0) rinku (2.0.6) rotp (6.3.0) - rouge (4.3.0) + rouge (4.5.1) rqrcode (2.2.0) chunky_png (~> 1.0) rqrcode_core (~> 1.0) @@ -410,51 +422,52 @@ GEM rspec-core (~> 3.13.0) rspec-expectations (~> 3.13.0) rspec-mocks (~> 3.13.0) - rspec-core (3.13.0) + rspec-core (3.13.2) rspec-support (~> 3.13.0) - rspec-expectations (3.13.1) + rspec-expectations (3.13.3) diff-lcs (>= 1.2.0, < 2.0) rspec-support (~> 3.13.0) rspec-html-matchers (0.10.0) nokogiri (~> 1) rspec (>= 3.0.0.a) - rspec-mocks (3.13.1) + rspec-mocks (3.13.2) diff-lcs (>= 1.2.0, < 2.0) rspec-support (~> 3.13.0) - rspec-rails (6.1.3) - actionpack (>= 6.1) - activesupport (>= 6.1) - railties (>= 6.1) + rspec-multi-mock (0.3.1) + rspec (>= 3.7.0) + rspec-rails (7.1.0) + actionpack (>= 7.0) + activesupport (>= 7.0) + railties (>= 7.0) rspec-core (~> 3.13) rspec-expectations (~> 3.13) rspec-mocks (~> 3.13) rspec-support (~> 3.13) - rspec-support (3.13.1) - rss (0.3.0) + rspec-support (3.13.2) + rss (0.3.1) rexml - rswag-specs (2.13.0) - activesupport (>= 3.1, < 7.2) - json-schema (>= 2.2, < 5.0) - railties (>= 3.1, < 7.2) + rswag-specs (2.16.0) + activesupport (>= 5.2, < 8.1) + json-schema (>= 2.2, < 6.0) + railties (>= 5.2, < 8.1) rspec-core (>= 2.14) rtlcss (0.2.1) mini_racer (>= 0.6.3) - rubocop (1.65.0) + rubocop (1.71.1) json (~> 2.3) language_server-protocol (>= 3.17.0) parallel (~> 1.10) parser (>= 3.3.0.2) rainbow (>= 2.2.2, < 4.0) - regexp_parser (>= 2.4, < 3.0) - rexml (>= 3.2.5, < 4.0) - rubocop-ast (>= 1.31.1, < 2.0) + regexp_parser (>= 2.9.3, < 3.0) + rubocop-ast (>= 1.38.0, < 2.0) ruby-progressbar (~> 1.7) - unicode-display_width (>= 2.4.0, < 3.0) - rubocop-ast (1.31.3) + unicode-display_width (>= 2.4.0, < 4.0) + rubocop-ast (1.38.0) parser (>= 3.3.1.0) rubocop-capybara (2.21.0) rubocop (~> 1.41) - rubocop-discourse (3.8.1) + rubocop-discourse (3.9.3) activesupport (>= 6.1) rubocop (>= 1.59.0) rubocop-capybara (>= 2.0.0) @@ -464,26 +477,26 @@ GEM rubocop-rspec_rails (>= 2.30.0) rubocop-factory_bot (2.26.1) rubocop (~> 1.61) - rubocop-rails (2.25.1) + rubocop-rails (2.29.1) activesupport (>= 4.2.0) rack (>= 1.1) - rubocop (>= 1.33.0, < 2.0) + rubocop (>= 1.52.0, < 2.0) rubocop-ast (>= 1.31.1, < 2.0) - rubocop-rspec (3.0.3) + rubocop-rspec (3.4.0) rubocop (~> 1.61) rubocop-rspec_rails (2.30.0) rubocop (~> 1.61) rubocop-rspec (~> 3, >= 3.0.1) - ruby-prof (1.7.0) + ruby-prof (1.7.1) ruby-progressbar (1.13.0) - ruby-readability (0.7.1) + ruby-readability (0.7.2) guess_html_encoding (>= 0.0.4) nokogiri (>= 1.6.0) ruby2_keywords (0.0.5) - rubyzip (2.3.2) - sanitize (6.1.2) + rubyzip (2.4.1) + sanitize (7.0.0) crass (~> 1.0.2) - nokogiri (>= 1.12.0) + nokogiri (>= 1.16.8) sass-embedded (1.77.5) google-protobuf (>= 3.25, < 5.0) rake (>= 13) @@ -493,15 +506,16 @@ GEM google-protobuf (>= 3.25, < 5.0) sassc-embedded (1.77.7) sass-embedded (~> 1.77) - selenium-devtools (0.126.0) + securerandom (0.4.1) + selenium-devtools (0.132.0) selenium-webdriver (~> 4.2) - selenium-webdriver (4.23.0) + selenium-webdriver (4.28.0) base64 (~> 0.2) logger (~> 1.4) rexml (~> 3.2, >= 3.2.5) rubyzip (>= 1.2.2, < 3.0) websocket (~> 1.0) - shoulda-matchers (6.2.0) + shoulda-matchers (6.4.0) activesupport (>= 5.2.0) sidekiq (6.5.12) connection_pool (>= 2.2.5, < 3) @@ -511,64 +525,65 @@ GEM docile (~> 1.1) simplecov-html (~> 0.11) simplecov_json_formatter (~> 0.1) - simplecov-html (0.12.3) + simplecov-html (0.13.1) simplecov_json_formatter (0.1.4) simpleidn (0.2.3) snaky_hash (2.0.1) hashie version_gem (~> 1.1, >= 1.1.1) - sprockets (3.7.3) + sprockets (3.7.5) base64 concurrent-ruby (~> 1.0) rack (> 1, < 3) - sprockets-rails (3.5.1) + sprockets-rails (3.5.2) actionpack (>= 6.1) activesupport (>= 6.1) sprockets (>= 3.0.0) - sqlite3 (2.0.2) + sqlite3 (2.5.0) mini_portile2 (~> 2.8.0) - sqlite3 (2.0.2-arm64-darwin) - sqlite3 (2.0.2-x86_64-darwin) + sqlite3 (2.5.0-arm64-darwin) + sqlite3 (2.5.0-x86_64-darwin) sshkey (3.0.0) - stackprof (0.2.26) - stringio (3.1.1) - strscan (3.1.0) + stackprof (0.2.27) + stringio (3.1.2) syntax_tree (6.2.0) prettier_print (>= 1.2.0) syntax_tree-disable_ternary (1.0.0) - test-prof (1.3.3.1) - thor (1.3.1) - timeout (0.4.1) + test-prof (1.4.4) + thor (1.3.2) + timeout (0.4.3) + trilogy (2.9.0) tzinfo (2.0.6) concurrent-ruby (~> 1.0) - tzinfo-data (1.2024.1) + tzinfo-data (1.2025.1) tzinfo (>= 1.0.0) - uglifier (4.2.0) + uglifier (4.2.1) execjs (>= 0.3.0, < 3) - unf (0.1.4) - unf_ext - unf_ext (0.0.9.1) - unicode-display_width (2.5.0) + unf (0.2.0) + unicode-display_width (3.1.4) + unicode-emoji (~> 4.0, >= 4.0.4) + unicode-emoji (4.0.4) unicorn (6.1.0) kgio (~> 2.6) raindrops (~> 0.7) uniform_notifier (1.16.0) - uri (0.13.0) + uri (1.0.2) + useragent (0.16.11) version_gem (1.1.4) web-push (3.0.1) jwt (~> 2.0) openssl (~> 3.0) - webmock (3.23.1) + webmock (3.24.0) addressable (>= 2.8.0) crack (>= 0.3.2) hashdiff (>= 0.4.0, < 2.0.0) - webrick (1.8.1) + webrick (1.9.1) websocket (1.2.11) xpath (3.2.0) nokogiri (~> 1.8) yaml-lint (0.1.2) - yard (0.9.36) - zeitwerk (2.6.16) + yard (0.9.37) + zeitwerk (2.7.1) PLATFORMS arm64-darwin-21 @@ -577,16 +592,18 @@ PLATFORMS arm64-darwin-24 ruby x86_64-darwin-22 + x86_64-darwin-23 + x86_64-darwin-24 DEPENDENCIES - actionmailer (~> 7.1.0) - actionpack (~> 7.1.0) - actionview (~> 7.1.0) + actionmailer (~> 7.2.0) + actionpack (~> 7.2.0) + actionview (~> 7.2.0) actionview_precompiler active_model_serializers (~> 0.8.3) - activemodel (~> 7.1.0) - activerecord (~> 7.1.0) - activesupport (~> 7.1.0) + activemodel (~> 7.2.0) + activerecord (~> 7.2.0) + activesupport (~> 7.2.0) addressable annotate aws-sdk-s3 @@ -607,13 +624,15 @@ DEPENDENCIES csv diffy digest + digest-xxhash discourse-fonts discourse-seed-fu discourse_dev_assets - drb + dry-initializer (~> 3.1) email_reply_trimmer excon execjs + extralite-bundle fabrication faker (~> 2.16) fakeweb @@ -641,7 +660,7 @@ DEPENDENCIES message_bus messageformat-wrapper mini_mime - mini_racer + mini_racer (= 0.17.pre13) mini_scheduler mini_sql mini_suffix @@ -649,7 +668,6 @@ DEPENDENCIES mocha multi_json mustache - mutex_m net-http net-imap net-pop @@ -662,6 +680,7 @@ DEPENDENCIES omniauth-google-oauth2 omniauth-oauth2 omniauth-twitter + parallel parallel_tests pg pry-byebug @@ -674,7 +693,7 @@ DEPENDENCIES rails-dom-testing rails_failover rails_multisite - railties (~> 7.1.0) + railties (~> 7.2.0) rake rb-fsevent rbtrace @@ -688,12 +707,14 @@ DEPENDENCIES rrule rspec rspec-html-matchers + rspec-multi-mock rspec-rails rss rswag-specs rtlcss rubocop-discourse ruby-prof + ruby-progressbar ruby-readability rubyzip sanitize @@ -712,6 +733,7 @@ DEPENDENCIES syntax_tree-disable_ternary test-prof thor + trilogy tzinfo-data uglifier unf @@ -720,6 +742,7 @@ DEPENDENCIES webmock yaml-lint yard + zeitwerk BUNDLED WITH - 2.4.22 + 2.5.22 diff --git a/pkgs/servers/web-apps/discourse/rubyEnv/gemset.nix b/pkgs/servers/web-apps/discourse/rubyEnv/gemset.nix index df6e08bb6e46..dc4a8595029d 100644 --- a/pkgs/servers/web-apps/discourse/rubyEnv/gemset.nix +++ b/pkgs/servers/web-apps/discourse/rubyEnv/gemset.nix @@ -6,19 +6,16 @@ "activejob" "activesupport" "mail" - "net-imap" - "net-pop" - "net-smtp" "rails-dom-testing" ]; groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0l835a50h95wlzcy76c2vg54ix3i55kqmnrmz67b11q5fjb6068z"; + sha256 = "07xjqxmwif57wxz28ch10c3c2261ydv1x56vsiidg2icqciyaamh"; type = "gem"; }; - version = "7.1.3.4"; + version = "7.2.2.1"; }; actionpack = { dependencies = [ @@ -31,6 +28,7 @@ "rack-test" "rails-dom-testing" "rails-html-sanitizer" + "useragent" ]; groups = [ "default" @@ -40,10 +38,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1lpd0lvn6abcq5k8g0qw8kmzx6igirlqxvd1hhwmr5vaxhdwgbyw"; + sha256 = "0d7pq6fsf041fvskzmqm12xcgk5m9d5fa6kbs1lsbmfbgc51dchp"; type = "gem"; }; - version = "7.1.3.4"; + version = "7.2.2.1"; }; actionview = { dependencies = [ @@ -61,10 +59,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0nv1ifjhm59abc52k2hwazl38r9cc4bkfgdsl00f24gc5ljgbz21"; + sha256 = "19arngl1nshasvbh90gzc23z1vpid2xzg3043grbmcfqyc68iz39"; type = "gem"; }; - version = "7.1.3.4"; + version = "7.2.2.1"; }; actionview_precompiler = { dependencies = [ "actionview" ]; @@ -97,10 +95,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0qhg0izdckgyqmrsgigh1vkqg8ccrkdjhf36k9gxcbgvzpqfx2iz"; + sha256 = "0nryqb19i3frxhanykf6lmrw0rb09863z114gi7sm55kff2mmygj"; type = "gem"; }; - version = "7.1.3.4"; + version = "7.2.2.1"; }; activemodel = { dependencies = [ "activesupport" ]; @@ -112,10 +110,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0wmdw440l4h75zk6c4ynbnv21bj26dh8kb1kwikqkjnzfvm3ij7l"; + sha256 = "1bzxvccj8349slymls7navb5y14anglkkasphcd6gi72kqgqd643"; type = "gem"; }; - version = "7.1.3.4"; + version = "7.2.2.1"; }; activerecord = { dependencies = [ @@ -131,21 +129,23 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1wihj9xhr7yj10hh8fqw6ralanbwlisncbam8pa92czjssjfqkkq"; + sha256 = "1fgscw775wj4l7f5pj274a984paz23zy0111giqkhl9dqdqiz8vr"; type = "gem"; }; - version = "7.1.3.4"; + version = "7.2.2.1"; }; activesupport = { dependencies = [ "base64" + "benchmark" "bigdecimal" "concurrent-ruby" "connection_pool" "drb" "i18n" + "logger" "minitest" - "mutex_m" + "securerandom" "tzinfo" ]; groups = [ @@ -156,10 +156,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0283wk1zxb76lg79dk501kcf5xy9h25qiw15m86s4nrfv11vqns5"; + sha256 = "1xa7hr4gp2p86ly6n1j2skyx8pfg6yi621kmnh7zhxr9m7wcnaw4"; type = "gem"; }; - version = "7.1.3.4"; + version = "7.2.2.1"; }; addressable = { dependencies = [ "public_suffix" ]; @@ -310,6 +310,20 @@ }; version = "0.2.0"; }; + benchmark = { + groups = [ + "default" + "development" + "test" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0jl71qcgamm96dzyqk695j24qszhcc7liw74qc83fpjljp2gh4hg"; + type = "gem"; + }; + version = "0.4.0"; + }; better_errors = { dependencies = [ "erubi" @@ -341,10 +355,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1gi7zqgmqwi5lizggs1jhc3zlwaqayy9rx2ah80sxy24bbnng558"; + sha256 = "1k6qzammv9r6b2cw3siasaik18i6wjc5m0gw5nfdc6jj64h79z1g"; type = "gem"; }; - version = "3.1.8"; + version = "3.1.9"; }; binding_of_caller = { dependencies = [ "debug_inspector" ]; @@ -373,10 +387,10 @@ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1srlq3gqirzdkhv12ljpnp5cb0f8jfrl3n8xs9iivyz2c7khvdyp"; + sha256 = "0mdgj9yw1hmx3xh2qxyjc31y8igmxzd9h0c245ay2zkz76pl4k5c"; type = "gem"; }; - version = "1.18.3"; + version = "1.18.4"; }; builder = { groups = [ @@ -401,10 +415,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "12gacycw1adsdjp14pm43619c6lcdaddhgbdizy7gnzmnjhwh0im"; + sha256 = "0kfyg2j6a4sg94sajnmy0scv9dxjh7jka9dlil1fzpx137g2zw3p"; type = "gem"; }; - version = "7.2.0"; + version = "8.0.0"; }; byebug = { groups = [ @@ -514,10 +528,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1zj06gjqwykgzxmbkp2hmg3wv5kv8zz5d77acxipzcgicdjgvfan"; + sha256 = "0drbrv5m3l3qpal7s87gvss81cbzl76gad1hqkpqfqlphf0h7qb3"; type = "gem"; }; - version = "4.0.0"; + version = "4.0.3"; }; concurrent-ruby = { groups = [ @@ -528,20 +542,24 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0skwdasxq7mnlcccn6aqabl7n9r3jd7k19ryzlzzip64cn4x572g"; + sha256 = "1ipbrgvf0pp6zxdk5ascp6i29aybz2bx9wdrlchjmpx6mhvkwfw1"; type = "gem"; }; - version = "1.3.3"; + version = "1.3.5"; }; connection_pool = { - groups = [ "default" ]; + groups = [ + "default" + "development" + "test" + ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1x32mcpm2cl5492kd6lbjbaf17qsssmpx9kdyr7z1wcif2cwyh0g"; + sha256 = "1z7bag6zb2vwi7wp2bkdkmk7swkj6zfnbsnc949qq0wfsgw94fr3"; type = "gem"; }; - version = "2.4.1"; + version = "2.5.0"; }; cose = { dependencies = [ @@ -552,20 +570,20 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "00c6x4ha7qiaaf88qdbyf240mk146zz78rbm4qwyaxmwlmk7q933"; + sha256 = "1rbdzl9n8ppyp38y75hw06s17kp922ybj6jfvhz52p83dg6xpm6m"; type = "gem"; }; - version = "1.3.0"; + version = "1.3.1"; }; cppjieba_rb = { groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0ijzvnm5jclyhf6ls30kv7dqy05f3hbha69f59jwbzdid7dndla5"; + sha256 = "1bzsr3k926cwz6r0sx6p60cjyhqls7n8fd123f6qmhkfgfspm6ii"; type = "gem"; }; - version = "0.4.2"; + version = "0.4.4"; }; crack = { dependencies = [ @@ -604,30 +622,34 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1rhqn05w27w2mjrf0a6ppb4fxpxbfvyhwgdxa8z886jr4qnhywzb"; + sha256 = "0625073hwx41c246v9dvkp0rk0xgh9d0sc0gm73dbmlxnjwgalv7"; type = "gem"; }; - version = "1.17.1"; + version = "1.21.0"; }; csv = { groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0zfn40dvgjk1xv1z8l11hr9jfg3jncwsc9yhzsz4l4rivkpivg8b"; + sha256 = "0kmx36jjh2sahd989vcvw74lrlv07dqc3rnxchc5sj2ywqsw3w3g"; type = "gem"; }; - version = "3.3.0"; + version = "3.3.2"; }; date = { - groups = [ "default" ]; + groups = [ + "default" + "development" + "test" + ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "149jknsq999gnhy865n33fkk22s0r447k76x9pmcnnwldfv2q7wp"; + sha256 = "0kz6mc4b9m49iaans6cbx031j9y7ldghpi5fzsdh0n3ixwa8w9mz"; type = "gem"; }; - version = "3.3.4"; + version = "3.4.1"; }; debug_inspector = { groups = [ @@ -661,30 +683,40 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1qcsv29ljfhy76gq4xi8zpn6dc6nv15c41r131bdr38kwpxjzd1n"; + sha256 = "19xaz5qmw0kg1rdsjh13vk7674bpcmjy6cnddx1cvl80vgkvjr22"; type = "gem"; }; - version = "3.4.2"; + version = "3.4.3"; }; digest = { groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "01qkpbkxq83ip3iysfh2kjrg9sh2n2q91prhyxh3vq10lcfzv9l1"; + sha256 = "149r5nnr76g0lp0iz7xiw0zf4civrbs5zpmd5zc6agv8xj970bps"; type = "gem"; }; - version = "3.1.1"; + version = "3.2.0"; + }; + digest-xxhash = { + groups = [ "migrations" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1mwqln5078r4arxzngbzvr82fshl1bn836ga9dm17i03khqdi2d9"; + type = "gem"; + }; + version = "0.2.9"; }; discourse-fonts = { groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1q1q9fmqc7dir2nj94nai58h26zsh6fqmbr6hfax5d6xpy4pm1yf"; + sha256 = "18bj5d0hf7bwy0pppah55aawg7yn61sjgjhh03j5lcnkxl9mrlm7"; type = "gem"; }; - version = "0.0.9"; + version = "0.0.18"; }; discourse-seed-fu = { dependencies = [ @@ -740,15 +772,25 @@ }; version = "2.2.1"; }; + dry-initializer = { + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1qy4cv0j0ahabprdbp02nc3r1606jd5dp90lzqg0mp0jz6c9gm9p"; + type = "gem"; + }; + version = "3.2.0"; + }; email_reply_trimmer = { groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1jgcxifm48xq5dz9k47q43pqm5bfnf14l62l3bqhmv8f6z8dw4ki"; + sha256 = "09f5sq41fb912jxsbzh68hmkwq9gj9p8fg0zbwikf80sxsjkz105"; type = "gem"; }; - version = "0.1.13"; + version = "0.2.0"; }; erubi = { groups = [ @@ -766,20 +808,20 @@ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0qnd6ff4az22ysnmni3730c41b979xinilahzg86bn7gv93ip9pw"; + sha256 = "1naaxsqkv5b3vklab5sbb9sdpszrjzlfsbqpy7ncbnw510xi10m0"; type = "gem"; }; - version = "1.13.0"; + version = "1.13.1"; }; excon = { groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0ala6123d3cv965ss48iyi0q4hcbzrznfwv2f1mr91sy98cigq4h"; + sha256 = "1am69fn9nzj2pa05fd02q4zbzn1g7c9w5g52yjzdsbhm1x9n9g95"; type = "gem"; }; - version = "0.111.0"; + version = "1.2.3"; }; execjs = { groups = [ @@ -789,20 +831,30 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1yywajqlpjhrj1m43s3lfg3i4lkb6pxwccmwps7qw37ndmphdzg8"; + sha256 = "03a590q16nhqvfms0lh42mp6a1i41w41qpdnf39zjbq5y3l8pjvb"; type = "gem"; }; - version = "2.9.1"; + version = "2.10.0"; }; exifr = { groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "11v201jljn327fwjqcsglrbdnyhivnj7j6nh6wym5zjqgrwxy3kn"; + sha256 = "155qqhai5z2742aqa4mwkxmqrpcv48siqz55rcx79wvgdg6790vn"; type = "gem"; }; - version = "1.4.0"; + version = "1.4.1"; + }; + extralite-bundle = { + groups = [ "migrations" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1x73a43hjw7f9vwlhfax4rmp7hpwaadvcamnbw31hh94bx3i71lv"; + type = "gem"; + }; + version = "2.8.2"; }; fabrication = { groups = [ @@ -844,16 +896,17 @@ faraday = { dependencies = [ "faraday-net_http" + "json" "logger" ]; groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1adx342h7s3imyrwwbda73g9ni1y07qj35br9lrzq4f5mh16qghs"; + sha256 = "1mls9g490k63rdmjc9shqshqzznfn1y21wawkxrwp2vvbk13jwqm"; type = "gem"; }; - version = "2.10.0"; + version = "2.12.2"; }; faraday-net_http = { dependencies = [ "net-http" ]; @@ -861,10 +914,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0f49frpfdr8czwm2mjkfny4pini6fy49b6hamw4jrppl4vsg14ys"; + sha256 = "0jp5ci6g40d6i50bsywp35l97nc2fpi9a592r2cibwicdb6y9wd1"; type = "gem"; }; - version = "3.1.1"; + version = "3.4.0"; }; faraday-retry = { dependencies = [ "faraday" ]; @@ -923,10 +976,10 @@ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "07139870npj59jnl8vmk39ja3gdk3fb5z9vc0lf32y2h891hwqsi"; + sha256 = "0fgwn1grxf4zxmyqmb9i4z2hr111585n9jnk17y6y7hhs7dv1xi6"; type = "gem"; }; - version = "1.17.0"; + version = "1.17.1"; }; fspath = { groups = [ "default" ]; @@ -958,10 +1011,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0vwnr6fmxig4pkag86yzbznpxk8ii7rhjz0rrprkqvnymhhfnscz"; + sha256 = "0rmmp533ypc5c2r3ks8zqxchqkf1g8laig87f7hdfmwz0p07cmcs"; type = "gem"; }; - version = "4.27.2"; + version = "4.29.3"; }; guess_html_encoding = { groups = [ "default" ]; @@ -991,10 +1044,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1jf9dxgjz6z7fvymyz2acyvn9iyvwkn6d9sk7y4fxwbmfc75yimm"; + sha256 = "0xqsnx25lm1wwgchvrl5xla5zzk3d6gbkdfj062cwggdsvgfwc1c"; type = "gem"; }; - version = "1.1.0"; + version = "1.1.2"; }; hashie = { groups = [ "default" ]; @@ -1012,10 +1065,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1sxqnaz6wvkwbwzsipwsqcg1zw2kn67x7l362whv87zl5133w60l"; + sha256 = "0jmvyhjp2v3iq47la7w6psrxbprnbnmzz0hxxski3vzn356x7jv7"; type = "gem"; }; - version = "3.1.0"; + version = "3.1.2"; }; htmlentities = { groups = [ "default" ]; @@ -1047,10 +1100,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1ffix518y7976qih9k1lgnc17i3v6yrlh0a3mckpxdb4wc2vrp16"; + sha256 = "03sx3ahz1v5kbqjwxj48msw3maplpp2iyzs22l4jrzrqh4zmgfnf"; type = "gem"; }; - version = "1.14.5"; + version = "1.14.7"; }; image_optim = { dependencies = [ @@ -1064,10 +1117,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "02iw1plldayr1l8bdw2gshq0h083h0fxwji1m1nfhzikz917c07p"; + sha256 = "1h3n8x1rlxz4mkk49lij22x1nn0qk5cvir3fsj4x3s382a4x1zsv"; type = "gem"; }; - version = "0.31.3"; + version = "0.31.4"; }; image_size = { groups = [ "default" ]; @@ -1098,13 +1151,14 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "08d2lx42pa8jjav0lcjbzfzmw61b8imxr9041pva8xzqabrczp7h"; + sha256 = "18pgvl7lfjpichdfh1g50rpz0zpaqrpr52ybn9liv1v9pjn9ysnd"; type = "gem"; }; - version = "0.7.2"; + version = "0.8.0"; }; irb = { dependencies = [ + "pp" "rdoc" "reline" ]; @@ -1116,10 +1170,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "05g6vpz3997q4j3xhrliswfx3g5flsn5cfn1p1s4h6dx7c0hbn2k"; + sha256 = "1478m97wiy6nwg6lnl0szy39p46acsvrhax552vsh1s2mi2sgg6r"; type = "gem"; }; - version = "1.14.0"; + version = "1.15.1"; }; iso8601 = { groups = [ "default" ]; @@ -1150,13 +1204,16 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0b4qsi8gay7ncmigr0pnbxyb17y3h8kavdyhsh7nrlqwr35vb60q"; + sha256 = "048danb0x10mpch6mf88mky35zjn6wk4hpbqq68ssbq58i3fzgfj"; type = "gem"; }; - version = "2.7.2"; + version = "2.9.1"; }; json-schema = { - dependencies = [ "addressable" ]; + dependencies = [ + "addressable" + "bigdecimal" + ]; groups = [ "default" "development" @@ -1165,10 +1222,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "09bq393nrxa7hmphc3li8idgxdnb5hwgj15d0q5qsh4l5g1qvrnm"; + sha256 = "1gzrf6q4d9kbixj6bpi2bp8dizmqxcmlq30ni86h3ifzpkcrm0mk"; type = "gem"; }; - version = "4.3.1"; + version = "5.1.1"; }; json_schemer = { dependencies = [ @@ -1181,10 +1238,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0dgbrps0ydiyxcgj5n4dny0cmzwj125x1s792l7m5jjrp1rs27wz"; + sha256 = "093wb42zyy0a7kk7zxdvs0jivm0knlaz9lrsncjxjj2ppcbn3jsn"; type = "gem"; }; - version = "2.3.0"; + version = "2.4.0"; }; jwt = { dependencies = [ "base64" ]; @@ -1192,10 +1249,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "04mw326i9vsdcqwm4bf0zvnqw237f8l7022nhlbmak92bqqpg62s"; + sha256 = "1i8wmzgb5nfhvkx1f6bhdwfm7v772172imh439v3xxhkv3hllhp6"; type = "gem"; }; - version = "2.8.2"; + version = "2.10.1"; }; kgio = { groups = [ "default" ]; @@ -1226,20 +1283,20 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0gvb1j8xsqxms9mww01rmdl78zkd72zgxaap56bhv8j45z05hp1x"; + sha256 = "0scnz2fvdczdgadvjn0j9d49118aqm3hj66qh8sd2kv6g1j65164"; type = "gem"; }; - version = "3.17.0.3"; + version = "3.17.0.4"; }; libv8-node = { groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "13gmrl4lq1rfpdn76v5nid2hsajhrw27s6n88j09v26f0axgp4vp"; + sha256 = "1ki1vjkq8nhmlz7rqi1ic0mjmbjsa7d1bgcvkzdl4q9vhaa5dzvn"; type = "gem"; }; - version = "18.19.0.0"; + version = "22.7.0.4"; }; listen = { dependencies = [ @@ -1274,15 +1331,16 @@ logger = { groups = [ "default" + "development" "test" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0gpg8gzi0xwymw4aaq2iafcbx31i3xzkg3fb30mdxn1d4qhc3dqa"; + sha256 = "0sz584vw17pwrrc5zg6yd8lqcgfpjf4qplq3s7fr0r3505nybky3"; type = "gem"; }; - version = "1.6.0"; + version = "1.6.5"; }; lograge = { dependencies = [ @@ -1333,10 +1391,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1zkjqf37v2d7s11176cb35cl83wls5gm3adnfkn2zcc61h3nxmqh"; + sha256 = "07pfa5kgl7k2hxlzzn89qna6bmiyrxlchgbzi0885frsi08agrk1"; type = "gem"; }; - version = "2.22.0"; + version = "2.24.0"; }; lru_redux = { groups = [ "default" ]; @@ -1419,10 +1477,10 @@ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1pv28xh8mss25fj4nd5r6zds1br8ssr2bpxr0md5pskv38m5qz0f"; + sha256 = "1y58ba08n4lx123c0hjcc752fc4x802mjy39qj1hq50ak3vpv8br"; type = "gem"; }; - version = "1.0.2"; + version = "1.1.0"; }; message_bus = { dependencies = [ "rack" ]; @@ -1483,10 +1541,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1q1f2sdw3y3y9mnym9dhjgsjr72sq975cfg5c4yx7gwv8nmzbvhk"; + sha256 = "0x8asxl83msn815lwmb2d7q5p29p7drhjv5va0byhk60v9n16iwf"; type = "gem"; }; - version = "2.8.7"; + version = "2.8.8"; }; mini_racer = { dependencies = [ "libv8-node" ]; @@ -1494,10 +1552,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1ling4ynn7na1cw69wzn8zn00jifwjrnprnynn05rcca1pzs58d1"; + sha256 = "168a3crdgakm9mk5yrqlqsrx587rm7sk1f2l7sfs9cg87f7xb7ji"; type = "gem"; }; - version = "0.14.1"; + version = "0.17.0.pre13"; }; mini_scheduler = { dependencies = [ "sidekiq" ]; @@ -1505,20 +1563,20 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "19c72wlr0zsrg1fiak61h0z1b3glv2l23041xvlwv2i71fw5xavy"; + sha256 = "00rmlcnwhi6gnrwpcv2yicm9ij8zs1mhsbx98ic6rmx8iprq9w6j"; type = "gem"; }; - version = "0.16.0"; + version = "0.18.0"; }; mini_sql = { groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0yrxjmwhfnvcwbj9vscyq0z67sq09zl8qhmzgakq2ywy4yvcpwgg"; + sha256 = "1vnn88gv935szjz2hndnisfgys19k9z07237w11vpxaad9zn75jj"; type = "gem"; }; - version = "1.5.0"; + version = "1.6.0"; }; mini_suffix = { dependencies = [ "ffi" ]; @@ -1550,10 +1608,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0jj629q3vw5yn90q4di4dyb87pil4a8qfm2srhgy5nc8j2n33v1i"; + sha256 = "0izrg03wn2yj3gd76ck7ifbm9h2kgy8kpg4fk06ckpy4bbicmwlw"; type = "gem"; }; - version = "5.24.1"; + version = "5.25.4"; }; mocha = { dependencies = [ "ruby2_keywords" ]; @@ -1564,10 +1622,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "04k1k9cmdv7q2p1b2z2y1k9dn1hhwjdlwkrp46gfq84v7887xhdl"; + sha256 = "0lgqyxxdxgfik77a7lk2hjkr6flimgxr4gcbg3y7bg1ybn6m6zcg"; type = "gem"; }; - version = "2.4.5"; + version = "2.7.1"; }; msgpack = { groups = [ "default" ]; @@ -1581,10 +1639,10 @@ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1a5adcb7bwan09mqhj3wi9ib52hmdzmqg7q08pggn3adibyn5asr"; + sha256 = "1a5fsgchkpcca4wf3pipbb2jbj523l7fbaq37j10cr0yymwlkc7z"; type = "gem"; }; - version = "1.7.2"; + version = "1.7.5"; }; multi_json = { groups = [ "default" ]; @@ -1617,26 +1675,16 @@ }; version = "1.1.1"; }; - mutex_m = { - groups = [ "default" ]; - platforms = [ ]; - source = { - remotes = [ "https://rubygems.org" ]; - sha256 = "1ma093ayps1m92q845hmpk0dmadicvifkbf05rpq9pifhin0rvxn"; - type = "gem"; - }; - version = "0.2.0"; - }; net-http = { dependencies = [ "uri" ]; groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "10n2n9aq00ih8v881af88l1zyrqgs5cl3njdw8argjwbl5ggqvm9"; + sha256 = "1ysrwaabhf0sn24jrp0nnp51cdv0jf688mh5i6fsz63q2c6b48cn"; type = "gem"; }; - version = "0.4.1"; + version = "0.6.0"; }; net-imap = { dependencies = [ @@ -1647,10 +1695,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0rc08fxm10vv73bg0nqyp5bdvl4cvzb3y4cdk4kwmxx414zln652"; + sha256 = "0ak8w6ypw4lba1y1mdmqwvkrh84ps6h9kd7hn029h9k85j9sirmb"; type = "gem"; }; - version = "0.4.14"; + version = "0.5.5"; }; net-pop = { dependencies = [ "net-protocol" ]; @@ -1690,10 +1738,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "017nbw87dpr4wyk81cgj8kxkxqgsgblrkxnmmadc77cg9gflrfal"; + sha256 = "1a9www524fl1ykspznz54i0phfqya4x45hqaz67in9dvw1lfwpfr"; type = "gem"; }; - version = "2.7.3"; + version = "2.7.4"; }; nokogiri = { dependencies = [ @@ -1708,10 +1756,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "15gysw8rassqgdq3kwgl4mhqmrgh7nk2qvrcqp4ijyqazgywn6gq"; + sha256 = "1gzqcs1kkykj8lrnbxc1iwr1wqmmaml8l6wyxdvy0vqq6gxiqyck"; type = "gem"; }; - version = "1.16.7"; + version = "1.18.2"; }; oauth = { dependencies = [ @@ -1757,15 +1805,18 @@ version = "1.4.11"; }; oj = { - dependencies = [ "bigdecimal" ]; + dependencies = [ + "bigdecimal" + "ostruct" + ]; groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0b2narmcw4723lfyy7j0l4pfyv5n0qnmkm4mqgi832p5cg31k090"; + sha256 = "091kbavd1rfiwr6kn1laladspyk67y6hdlsdilz752nqxm9w3ibg"; type = "gem"; }; - version = "3.16.4"; + version = "3.16.9"; }; omniauth = { dependencies = [ @@ -1826,15 +1877,16 @@ dependencies = [ "oauth" "omniauth" + "rack" ]; groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0yw2vzx633p9wpdkd4jxsih6mw604mj7f6myyfikmj4d95c8d9z7"; + sha256 = "1a4dqmlv3if6hb4ddyx4y5v7vkpi7zq901104nl0ya1l0b4j5gr5"; type = "gem"; }; - version = "1.2.0"; + version = "1.2.1"; }; omniauth-oauth2 = { dependencies = [ @@ -1869,10 +1921,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "054d6ybgjdzxw567m7rbnd46yp6gkdbc5ihr536vxd3p15vbhjrw"; + sha256 = "0ygfbbs3c61d32ymja2k6sznj5pr540cip9z91lhzcvsr4zmffpz"; type = "gem"; }; - version = "3.2.0"; + version = "3.3.0"; }; openssl-signature_algorithm = { dependencies = [ "openssl" ]; @@ -1897,10 +1949,20 @@ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0q4jqq3v1bxlfr9jgqmahnygkvl81lr6s1rhm8qg66c9xr9nz241"; + sha256 = "073pk2rhyjq2vhdiz3xh2s884r15cvprw1yfjs7h9bmwdf1f9j81"; type = "gem"; }; - version = "3.1.0"; + version = "3.2.0"; + }; + ostruct = { + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "05xqijcf80sza5pnlp1c8whdaay8x5dc13214ngh790zrizgp8q9"; + type = "gem"; + }; + version = "0.6.1"; }; parallel = { groups = [ @@ -1911,10 +1973,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "145bn5q7ysnjj02jdf1x4nc1f0xxrv7ihgz9yr1j7sinmawqkq0j"; + sha256 = "1vy7sjs2pgz4i96v5yk9b7aafbffnvq7nn419fgvw55qlavsnsyq"; type = "gem"; }; - version = "1.25.1"; + version = "1.26.3"; }; parallel_tests = { dependencies = [ "parallel" ]; @@ -1925,10 +1987,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0q5q38sfrpwgcqwf5sl6xals5w11xayh8i9nq1vxya2sbrzrgbcq"; + sha256 = "0nikqa0h9znbg31p3hl4y3280sqggjd7m47gmjydxw6iasm66l09"; type = "gem"; }; - version = "4.7.1"; + version = "4.9.0"; }; parser = { dependencies = [ @@ -1943,20 +2005,35 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "10ly2wind06nylyqa5724ld2l0l46d3ag4fm04ifjgw7qdlpf94d"; + sha256 = "16qi2qhpszm842awxghmsp64yvvawafq96w5jw98irz3f4bh2jbl"; type = "gem"; }; - version = "3.3.4.0"; + version = "3.3.7.0"; }; pg = { groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0pfj771p5a29yyyw58qacks464sl86d5m3jxjl5rlqqw2m3v5xq4"; + sha256 = "1p2gqqrm895fzr9vi8d118zhql67bm8ydjvgqbq1crdnfggzn7kn"; type = "gem"; }; - version = "1.5.4"; + version = "1.5.9"; + }; + pp = { + dependencies = [ "prettyprint" ]; + groups = [ + "default" + "development" + "test" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1zxnfxjni0r9l2x42fyq0sqpnaf5nakjbap8irgik4kg1h9c6zll"; + type = "gem"; + }; + version = "0.6.2"; }; prettier_print = { groups = [ @@ -1972,6 +2049,20 @@ }; version = "1.2.1"; }; + prettyprint = { + groups = [ + "default" + "development" + "test" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "14zicq3plqi217w6xahv7b8f7aj5kpxv1j1w98344ix9h5ay3j9b"; + type = "gem"; + }; + version = "0.2.0"; + }; progress = { groups = [ "default" ]; platforms = [ ]; @@ -2039,7 +2130,10 @@ version = "0.6.1"; }; psych = { - dependencies = [ "stringio" ]; + dependencies = [ + "date" + "stringio" + ]; groups = [ "default" "development" @@ -2048,10 +2142,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0s5383m6004q76xm3lb732bp4sjzb6mxb6rbgn129gy2izsj4wrk"; + sha256 = "1vjrx3yd596zzi42dcaq5xw7hil1921r769dlbz08iniaawlp9c4"; type = "gem"; }; - version = "5.1.2"; + version = "5.2.3"; }; public_suffix = { groups = [ @@ -2073,10 +2167,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0i2vaww6qcazj0ywva1plmjnj6rk23b01szswc5jhcq7s2cikd1y"; + sha256 = "11xd3207k5rl6bz0qxhcb3zcr941rhx7ig2f19gxxmdk7s3hcp7j"; type = "gem"; }; - version = "6.4.2"; + version = "6.6.0"; }; racc = { groups = [ @@ -2087,10 +2181,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "021s7maw0c4d9a6s07vbmllrzqsj2sgmrwimlh8ffkvwqdjrld09"; + sha256 = "0byn0c9nkahsl93y9ln5bysq4j31q8xkf2ws42swighxd4lnjzsa"; type = "gem"; }; - version = "1.8.0"; + version = "1.8.1"; }; rack = { groups = [ @@ -2108,10 +2202,10 @@ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0hj0rkw2z9r1lcg2wlrcld2n3phwrcgqcp7qd1g9a7hwgalh2qzx"; + sha256 = "0ax778fsfvlhj7c11n0d1wdcb8bxvkb190a9lha5d91biwzyx9g4"; type = "gem"; }; - version = "2.2.9"; + version = "2.2.10"; }; rack-mini-profiler = { dependencies = [ "rack" ]; @@ -2163,10 +2257,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1ysx29gk9k14a14zsp5a8czys140wacvp91fja8xcja0j1hzqq8c"; + sha256 = "0qy4ylhcfdn65a5mz2hly7g9vl0g13p5a0rmm6sc0sih5ilkcnh0"; type = "gem"; }; - version = "2.1.0"; + version = "2.2.0"; }; rackup = { dependencies = [ @@ -2181,10 +2275,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1wbr03334ba9ilcq25wh9913xciwj0j117zs60vsqm0zgwdkwpp9"; + sha256 = "0jf2ncj2nx56vh96hh2nh6h4r530nccxh87z7c2f37wq515611ms"; type = "gem"; }; - version = "1.0.0"; + version = "1.0.1"; }; rails-dom-testing = { dependencies = [ @@ -2218,10 +2312,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1pm4z853nyz1bhhqr7fzl44alnx4bjachcr6rh6qjj375sfz3sc6"; + sha256 = "0q55i6mpad20m2x1lg5pkqfpbmmapk0sjsrvr1sqgnj2hb5f5z1m"; type = "gem"; }; - version = "1.6.0"; + version = "1.6.2"; }; rails_failover = { dependencies = [ @@ -2233,10 +2327,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1yxbh9xim46jqv9ap63ygvwv9bglbkqssn5hvr065gqly32mi407"; + sha256 = "0pvwgm413fza8q1zc3mmzx504wiljm9d7b9qrkzfzsb2yzpidxs2"; type = "gem"; }; - version = "2.1.1"; + version = "2.2.0"; }; rails_multisite = { dependencies = [ @@ -2247,10 +2341,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1zlfmm19k0p19jzknimqhhzs1phswmfgispph9b5fkag0w3ajxci"; + sha256 = "1al624kvcxa5ijprali9gxp0bqv1w1573iswb5fkg4p2i4xvimvv"; type = "gem"; }; - version = "6.0.0"; + version = "6.1.0"; }; railties = { dependencies = [ @@ -2270,10 +2364,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1z0slb2dlwrwgqijbk37hl4r9bh4h8vzcyswz6a9srl8lzrljq3c"; + sha256 = "07zy8b88qxx493pc5sfkzvxqj3zcf363r1128n3hsvfx2vqipwg3"; type = "gem"; }; - version = "7.1.3.4"; + version = "7.2.2.1"; }; rainbow = { groups = [ @@ -2378,10 +2472,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1isj1b3ywgg2m1vdlnr41lpvpm3dbyarf1lla4dfibfmad9csfk9"; + sha256 = "1455yhd1arccrns3ghhvn4dl6gnrf4zn1xxsaa33ffyqrn399216"; type = "gem"; }; - version = "1.8.0"; + version = "1.9.0"; }; rdoc = { dependencies = [ "psych" ]; @@ -2393,10 +2487,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0ygk2zk0ky3d88v3ll7qh6xqvbvw5jin0hqdi1xkv1dhaw7myzdi"; + sha256 = "0h00mb8wcj937srrafpjzq0klfi8rfpd4b3xpbvn9ghrn2wnzimy"; type = "gem"; }; - version = "6.7.0"; + version = "6.11.0"; }; redcarpet = { groups = [ "generic_import" ]; @@ -2438,10 +2532,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0ik40vcv7mqigsfpqpca36hpmnx0536xa825ai5qlkv3mmkyf9ss"; + sha256 = "0qccah61pjvzyyg6mrp27w27dlv6vxlbznzipxjcswl7x3fhsvyb"; type = "gem"; }; - version = "2.9.2"; + version = "2.10.0"; }; reline = { dependencies = [ "io-console" ]; @@ -2453,10 +2547,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0y6kyz7kcilwdpfy3saqfgnar38vr5ys9sp40ndffy6h1znxfbax"; + sha256 = "1lirwlw59apc8m1wjk85y2xidiv0fkxjn6f7p84yqmmyvish6qjp"; type = "gem"; }; - version = "0.5.9"; + version = "0.6.0"; }; request_store = { dependencies = [ "rack" ]; @@ -2470,19 +2564,17 @@ version = "1.7.0"; }; rexml = { - dependencies = [ "strscan" ]; groups = [ "default" - "development" "test" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0zr5qpa8lampaqzhdcjcvyqnrqcjl7439mqjlkjz43wdhmpnh4s5"; + sha256 = "1ch4k2y80r4glr579kxliqnxld2qa91ydq8fiqam38bzpbps3gpg"; type = "gem"; }; - version = "3.3.2"; + version = "3.4.0"; }; rinku = { groups = [ "default" ]; @@ -2519,10 +2611,10 @@ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "072qvvrcqj0yfr3b0j932mlhvn41i38bq37z7z07i3ikagndkqwy"; + sha256 = "1pchwrkr0994v7mh054lcp0na3bk3mj2sk0dc33bn6bhxrnirj1a"; type = "gem"; }; - version = "4.3.0"; + version = "4.5.1"; }; rqrcode = { dependencies = [ @@ -2587,10 +2679,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0k252n7s80bvjvpskgfm285a3djjjqyjcarlh3aq7a4dx2s94xsm"; + sha256 = "001kazj244cb6fbkmh7ap74csbr78717qaskqzqpir1q8xpdmywl"; type = "gem"; }; - version = "3.13.0"; + version = "3.13.2"; }; rspec-expectations = { dependencies = [ @@ -2605,10 +2697,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0022nxs9gqfhx35n4klibig770n0j31pnkd8anz00yvrvkdghk41"; + sha256 = "0n3cyrhsa75x5wwvskrrqk56jbjgdi2q1zx0irllf0chkgsmlsqf"; type = "gem"; }; - version = "3.13.1"; + version = "3.13.3"; }; rspec-html-matchers = { dependencies = [ @@ -2640,10 +2732,24 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0f3vgp43hajw716vmgjv6f4ar6f97zf50snny6y3fy9kkj4qjw88"; + sha256 = "1vxxkb2sf2b36d8ca2nq84kjf85fz4x7wqcvb8r6a5hfxxfk69r3"; type = "gem"; }; - version = "3.13.1"; + version = "3.13.2"; + }; + rspec-multi-mock = { + dependencies = [ "rspec" ]; + groups = [ + "development" + "test" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0k3rafylxilq9jzdz450vgiwf3bvz4a9l3ppmgncv78xipr71518"; + type = "gem"; + }; + version = "0.3.1"; }; rspec-rails = { dependencies = [ @@ -2662,10 +2768,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0nqwvyma86zchh4ki416h7cms38h521ghyypaq27b6yvkmp3h8yw"; + sha256 = "0izfwfb9bfb5q3wjgjc85b9nlkribqn8vk75zadafv08qilmnn4l"; type = "gem"; }; - version = "6.1.3"; + version = "7.1.0"; }; rspec-support = { groups = [ @@ -2676,10 +2782,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "03z7gpqz5xkw9rf53835pa8a9vgj4lic54rnix9vfwmp2m7pv1s8"; + sha256 = "1v6v6xvxcpkrrsrv7v1xgf7sl0d71vcfz1cnrjflpf6r7x3a58yf"; type = "gem"; }; - version = "3.13.1"; + version = "3.13.2"; }; rss = { dependencies = [ "rexml" ]; @@ -2687,10 +2793,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1wv27axi39hhr0nmaffdl5bdjqiafcvp9xhfgnsgfczsblja50sn"; + sha256 = "0dv74a07j3ih5ykyszs1k2cjvgs5c1pzrvcb1wc2bfai8p038qml"; type = "gem"; }; - version = "0.3.0"; + version = "0.3.1"; }; rswag-specs = { dependencies = [ @@ -2706,10 +2812,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1iyqd95l8r8m6jna451xb20lsp0jiajk1gbw845qlyqf6d69xyx2"; + sha256 = "149apnslj99w2fvhlwk39k9wf5zlh1f03j0xs8pbvc08qj2n18lb"; type = "gem"; }; - version = "2.13.0"; + version = "2.16.0"; }; rtlcss = { dependencies = [ "mini_racer" ]; @@ -2730,7 +2836,6 @@ "parser" "rainbow" "regexp_parser" - "rexml" "rubocop-ast" "ruby-progressbar" "unicode-display_width" @@ -2743,10 +2848,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "18g462bccr0rvszc7kirr89laggdf6254p7pqsckk3izg901chv2"; + sha256 = "1ypwxjy2cp44278m9ljg3s937n2cd6x4yskcyzf1k9m3hkjd3pyk"; type = "gem"; }; - version = "1.65.0"; + version = "1.71.1"; }; rubocop-ast = { dependencies = [ "parser" ]; @@ -2758,10 +2863,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "063qgvqbyv354icl2sgx758z22wzq38hd9skc3n96sbpv0cdc1qv"; + sha256 = "1bi6pgnii77763dzwhafcp8lrmnh4n1bqbdimhc9lfj4zs96gpsg"; type = "gem"; }; - version = "1.31.3"; + version = "1.38.0"; }; rubocop-capybara = { dependencies = [ "rubocop" ]; @@ -2795,10 +2900,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1bcy1zl88f4fxjsda2nf6k13kqrj60z8nsqdv9z51fdkv0aj82wk"; + sha256 = "13n46107615lc8lkx4dh38hpzv4qxx4a0m6dvf0r21zxnvz7ysyl"; type = "gem"; }; - version = "3.8.1"; + version = "3.9.3"; }; rubocop-factory_bot = { dependencies = [ "rubocop" ]; @@ -2830,10 +2935,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "19g6m8ladix1dq8darrqnhbj6n3cgp2ivxnh48yj3nrgw0z97229"; + sha256 = "1ahpgc22shmkk1n96rz3islcpx5sgg4z3mblynjz8qjxipsgrhj1"; type = "gem"; }; - version = "2.25.1"; + version = "2.29.1"; }; rubocop-rspec = { dependencies = [ "rubocop" ]; @@ -2845,10 +2950,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0495y1bwv5j6r9dak7860i6qnm68c53vz2bx2js5lwm6p7py147f"; + sha256 = "11a89mzbby49hbd8nhkjrxpr8bq24fafl728mjkk15ccd8xw28c7"; type = "gem"; }; - version = "3.0.3"; + version = "3.4.0"; }; rubocop-rspec_rails = { dependencies = [ @@ -2880,10 +2985,10 @@ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0hnalxnvli6248g34n0bj8p3v35vpabak34qjg778bbaavbqg5h5"; + sha256 = "097ac9ns2j29zj5fw08libz8izibrlfgg6vkj55d4bzrii296qq2"; type = "gem"; }; - version = "1.7.0"; + version = "1.7.1"; }; ruby-progressbar = { groups = [ @@ -2908,10 +3013,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "11kqx5yp6syd99k1ksnw84b0sc3cr7icf63dibn2m025qg27ml2i"; + sha256 = "032qqqaj5v09a7r5jpblv7dc37f278qv3b1nag9wsbn6kb4dslbk"; type = "gem"; }; - version = "0.7.1"; + version = "0.7.2"; }; ruby2_keywords = { groups = [ @@ -2928,14 +3033,17 @@ version = "0.0.5"; }; rubyzip = { - groups = [ "default" ]; + groups = [ + "default" + "test" + ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0grps9197qyxakbpw02pda59v45lfgbgiyw48i0mq9f2bn9y6mrz"; + sha256 = "05an0wz87vkmqwcwyh5rjiaavydfn5f4q1lixcsqkphzvj7chxw5"; type = "gem"; }; - version = "2.3.2"; + version = "2.4.1"; }; sanitize = { dependencies = [ @@ -2946,10 +3054,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1c9j1rwdp87k7b7mawf8agpdycdr2dsl2wvjipmcy1c55kllp2qp"; + sha256 = "111r4xdcf6ihdnrs6wkfc6nqdzrjq0z69x9sf83r7ri6fffip796"; type = "gem"; }; - version = "6.1.2"; + version = "7.0.0"; }; sass-embedded = { dependencies = [ @@ -2976,16 +3084,30 @@ }; version = "1.77.7"; }; + securerandom = { + groups = [ + "default" + "development" + "test" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1cd0iriqfsf1z91qg271sm88xjnfd92b832z49p1nd542ka96lfc"; + type = "gem"; + }; + version = "0.4.1"; + }; selenium-devtools = { dependencies = [ "selenium-webdriver" ]; groups = [ "test" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0ph7b947h5cgqyhb5a4jk467bggx48xy619ggh6p38ys8bjszp1l"; + sha256 = "076vwy4x41hahcwni4bjkpc6fira79y1f9qbvx6w5ciwvn99k9qa"; type = "gem"; }; - version = "0.126.0"; + version = "0.132.0"; }; selenium-webdriver = { dependencies = [ @@ -2999,10 +3121,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "00dq3450kadsvxh1lpndasy0bab0ilrjhrnvlicfmkvrx3gfs2j9"; + sha256 = "1lw9b8gxr921akpc02zvwkig5m0m6y6xd438c6f1ysf3c8h75xsc"; type = "gem"; }; - version = "4.23.0"; + version = "4.28.0"; }; shoulda-matchers = { dependencies = [ "activesupport" ]; @@ -3013,10 +3135,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1pfq0w167v4055k0km64sxik1qslhsi32wl2jlidmfzkqmcw00m7"; + sha256 = "1c082vpfdf3865xq6xayxw2hwqswhnc9g030p1gi4hmk9dzvnmch"; type = "gem"; }; - version = "6.2.0"; + version = "6.4.0"; }; sidekiq = { dependencies = [ @@ -3056,10 +3178,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0yx01bxa8pbf9ip4hagqkp5m0mqfnwnw2xk8kjraiywz4lrss6jb"; + sha256 = "02zi3rwihp7rlnp9x18c9idnkx7x68w6jmxdhyc0xrhjwrz0pasx"; type = "gem"; }; - version = "0.12.3"; + version = "0.13.1"; }; simplecov_json_formatter = { groups = [ @@ -3108,10 +3230,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0lyc6mx4yalsnxc9yp4a5xra4nz1nwwbk5634wlfncml0ll1bnnw"; + sha256 = "10ykzsa76cf8kvbfkszlvbyn4ckcx1mxjhfvwxzs7y28cljhzhkj"; type = "gem"; }; - version = "3.7.3"; + version = "3.7.5"; }; sprockets-rails = { dependencies = [ @@ -3123,10 +3245,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0j7gwm749b3ff6544wxa878fpd1kvf2qc9fafassi8c7735jcin4"; + sha256 = "17hiqkdpcjyyhlm997mgdcr45v35j5802m5a979i5jgqx5n8xs59"; type = "gem"; }; - version = "3.5.1"; + version = "3.5.2"; }; sqlite3 = { dependencies = [ "mini_portile2" ]; @@ -3134,10 +3256,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0k8myqn1g7sfmxs1h0x7jijh5ybszxw5153l0aq0w1cxp3zm6vij"; + sha256 = "0sqshkafxa1r34yj4yxisd4kddmjq9jrhx6azqy3z71nwqv01yl7"; type = "gem"; }; - version = "2.0.2"; + version = "2.5.0"; }; sshkey = { groups = [ "default" ]; @@ -3161,10 +3283,10 @@ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1gdqqwnampxmc54nf6zfy9apkmkpdavzipvfssmjlhnrrjy8qh7f"; + sha256 = "03788mbipmihq2w7rznzvv0ks0s9z1321k1jyr6ffln8as3d5xmg"; type = "gem"; }; - version = "0.2.26"; + version = "0.2.27"; }; stringio = { groups = [ @@ -3175,24 +3297,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "07mfqb40b2wh53k33h91zva78f9zwcdnl85jiq74wnaw2wa6wiak"; + sha256 = "0cd1kdrf62p2ya3ia4rz49d5012bqinvqjmcgkakknswz0l1hkr0"; type = "gem"; }; - version = "3.1.1"; - }; - strscan = { - groups = [ - "default" - "development" - "test" - ]; - platforms = [ ]; - source = { - remotes = [ "https://rubygems.org" ]; - sha256 = "0mamrl7pxacbc79ny5hzmakc9grbjysm3yy6119ppgsg44fsif01"; - type = "gem"; - }; - version = "3.1.0"; + version = "3.1.2"; }; syntax_tree = { dependencies = [ "prettier_print" ]; @@ -3226,10 +3334,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0lxik4ngvbphivyhss9i59c67zxkc0z7k0r683qshw1gdkfxzd8f"; + sha256 = "1vsk2ca9kfrxhyd2xiiyr28hmxkh9vd8j2vwl5f1yfnkv4z52n8s"; type = "gem"; }; - version = "1.3.3.1"; + version = "1.4.4"; }; thor = { groups = [ @@ -3240,20 +3348,34 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1vq1fjp45az9hfp6fxljhdrkv75cvbab1jfrwcw738pnsiqk8zps"; + sha256 = "1nmymd86a0vb39pzj2cwv57avdrl6pl3lf5bsz58q594kqxjkw7f"; type = "gem"; }; - version = "1.3.1"; + version = "1.3.2"; }; timeout = { - groups = [ "default" ]; + groups = [ + "default" + "development" + "test" + ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "16mvvsmx90023wrhf8dxc1lpqh0m8alk65shb7xcya6a9gflw7vg"; + sha256 = "03p31w5ghqfsbz5mcjzvwgkw3h9lbvbknqvrdliy8pxmn9wz02cm"; type = "gem"; }; - version = "0.4.1"; + version = "0.4.3"; + }; + trilogy = { + groups = [ "migrations" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0zq6yrp1074yd5lflz7yqzpicpcg4bxrl7sxw5c4g2m67dk3pmm2"; + type = "gem"; + }; + version = "2.9.0"; }; tzinfo = { dependencies = [ "concurrent-ruby" ]; @@ -3276,10 +3398,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1rg1dmx6mknjazb8qq0j9sb9fah470my5sbjb6f3pa6si5018682"; + sha256 = "02yz3x0qxnnwbf7k18yck5pggbnyy43rq0d5w2r6rwlk3981m31d"; type = "gem"; }; - version = "1.2024.1"; + version = "1.2025.1"; }; uglifier = { dependencies = [ "execjs" ]; @@ -3287,33 +3409,23 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0wgh7bzy68vhv9v68061519dd8samcy8sazzz0w3k8kqpy3g4s5f"; + sha256 = "1apmqsad2y1avffh79f4lfysfppz94fvpyi7lkkj3z8bn60jpm3m"; type = "gem"; }; - version = "4.2.0"; + version = "4.2.1"; }; unf = { - dependencies = [ "unf_ext" ]; groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0bh2cf73i2ffh4fcpdn9ir4mhq8zi50ik0zqa1braahzadx536a9"; + sha256 = "1aq4bfddln9kx4lycqdgmahsssljsm3vfgbmb6a3y3nq07hw5g76"; type = "gem"; }; - version = "0.1.4"; - }; - unf_ext = { - groups = [ "default" ]; - platforms = [ ]; - source = { - remotes = [ "https://rubygems.org" ]; - sha256 = "1sf6bxvf6x8gihv6j63iakixmdddgls58cpxpg32chckb2l18qcj"; - type = "gem"; - }; - version = "0.0.9.1"; + version = "0.2.0"; }; unicode-display_width = { + dependencies = [ "unicode-emoji" ]; groups = [ "default" "development" @@ -3322,10 +3434,24 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1d0azx233nags5jx3fqyr23qa2rhgzbhv8pxp46dgbg1mpf82xky"; + sha256 = "1has87asspm6m9wgqas8ghhhwyf2i1yqrqgrkv47xw7jq3qjmbwc"; type = "gem"; }; - version = "2.5.0"; + version = "3.1.4"; + }; + unicode-emoji = { + groups = [ + "default" + "development" + "test" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0ajk6rngypm3chvl6r0vwv36q1931fjqaqhjjya81rakygvlwb1c"; + type = "gem"; + }; + version = "4.0.4"; }; unicorn = { dependencies = [ @@ -3369,10 +3495,24 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "094gk72ckazf495qc76gk09b5i318d5l9m7bicg2wxlrjcm3qm96"; + sha256 = "09qyg6a29cfgd46qid8qvx4sjbv596v19ym73xvhanbyxd6500xk"; type = "gem"; }; - version = "0.13.0"; + version = "1.0.2"; + }; + useragent = { + groups = [ + "default" + "development" + "test" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0i1q2xdjam4d7gwwc35lfnz0wyyzvnca0zslcfxm9fabml9n83kh"; + type = "gem"; + }; + version = "0.16.11"; }; version_gem = { groups = [ "default" ]; @@ -3408,10 +3548,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "158d2ikjfzw43kgm095klp43ihphk0cv5xjprk44w73xfv03i9qg"; + sha256 = "08kixkdp41dw39kqfxf2wp5m4z9b6fxg6yfa6xin0wy7dxzka0dy"; type = "gem"; }; - version = "3.23.1"; + version = "3.24.0"; }; webrick = { groups = [ @@ -3422,10 +3562,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "13qm7s0gr2pmfcl7dxrmq38asaza4w0i2n9my4yzs499j731wh8r"; + sha256 = "12d9n8hll67j737ym2zw4v23cn4vxyfkb6vyv1rzpwv6y6a3qbdl"; type = "gem"; }; - version = "1.8.1"; + version = "1.9.1"; }; websocket = { groups = [ @@ -3469,23 +3609,24 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1r0b8w58p7gy06wph1qdjv2p087hfnmhd9jk23vjdj803dn761am"; + sha256 = "14k9lb9a60r9z2zcqg08by9iljrrgjxdkbd91gw17rkqkqwi1sd6"; type = "gem"; }; - version = "0.9.36"; + version = "0.9.37"; }; zeitwerk = { groups = [ "default" "development" + "migrations" "test" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "08cfb35232p9s1r4jqv8wacv38vxh699mgbr9y03ga89gx9lipqp"; + sha256 = "0mi7b90hvc6nqv37q27df4i2m27yy56yfy2ki5073474a1h9hi89"; type = "gem"; }; - version = "2.6.16"; + version = "2.7.1"; }; } diff --git a/pkgs/servers/web-apps/discourse/update.py b/pkgs/servers/web-apps/discourse/update.py index 65e97ec5b212..84b61349eda6 100755 --- a/pkgs/servers/web-apps/discourse/update.py +++ b/pkgs/servers/web-apps/discourse/update.py @@ -1,5 +1,5 @@ #!/usr/bin/env nix-shell -#! nix-shell -i python3 -p "python3.withPackages (ps: with ps; [ requests click click-log packaging ])" bundix bundler nix-update nurl prefetch-yarn-deps +#! nix-shell -i python3 -p "python3.withPackages (ps: with ps; [ requests click click-log packaging ])" bundix bundler nix-update nurl from __future__ import annotations import click @@ -86,13 +86,6 @@ class DiscourseRepo: return self._latest_commit_sha - def get_yarn_lock_hash(self, rev: str, path: str): - yarnLockText = self.get_file(path, rev) - with tempfile.NamedTemporaryFile(mode='w') as lockFile: - lockFile.write(yarnLockText) - hash = subprocess.check_output(['prefetch-yarn-deps', lockFile.name]).decode().strip() - return subprocess.check_output(["nix", "hash", "to-sri", "--type", "sha256", hash]).decode().strip() - def get_file(self, filepath, rev): """Return file contents at a given rev. @@ -105,6 +98,24 @@ class DiscourseRepo: return r.text +def _get_build_lock_hash(): + nixpkgs_path = Path(__file__).parent / '../../../../' + output = subprocess.run(['nix-build', '-A', 'discourse'], text=True, cwd=nixpkgs_path, capture_output=True) + # The line is of the form " got: sha256-xxx" + lines = [i.strip() for i in output.stderr.splitlines()] + new_hash_lines = [i.strip("got:").strip() for i in lines if i.startswith("got:")] + if len(new_hash_lines) == 0: + if output.returncode != 0: + print("Error while fetching new hash with nix build") + print(output.stderr) + print("No hash change is needed") + return None + if len(new_hash_lines) > 1: + print(new_hash_lines) + raise Exception("Got an unexpected number of new hash lines:") + return new_hash_lines[0] + + def _call_nix_update(pkg, version): """Call nix-update from nixpkgs root dir.""" nixpkgs_path = Path(__file__).parent / '../../../../' @@ -233,16 +244,17 @@ def update(rev): _call_nix_update('discourse', version.version) - old_yarn_hash = _nix_eval('discourse.assets.yarnOfflineCache.outputHash') - new_yarn_hash = repo.get_yarn_lock_hash(version.tag, "yarn.lock") - click.echo(f"Updating yarn lock hash: {old_yarn_hash} -> {new_yarn_hash}") + old_pnpm_hash = _nix_eval('discourse.assets.pnpmDeps.outputHash') + new_pnpm_hash = _get_build_lock_hash() + if new_pnpm_hash is not None: + click.echo(f"Updating yarn lock hash: {old_pnpm_hash} -> {new_pnpm_hash}") - with open(Path(__file__).parent / "default.nix", 'r+') as f: - content = f.read() - content = content.replace(old_yarn_hash, new_yarn_hash) - f.seek(0) - f.write(content) - f.truncate() + with open(Path(__file__).parent / "default.nix", 'r+') as f: + content = f.read() + content = content.replace(old_pnpm_hash, new_pnpm_hash) + f.seek(0) + f.write(content) + f.truncate() @cli.command() From 9522ab87ff7e1509a85717ebc872116da66e0dcc Mon Sep 17 00:00:00 2001 From: Leona Maroni Date: Tue, 8 Apr 2025 22:16:13 +0200 Subject: [PATCH 10/70] discourse.plugins: update for 3.4.2 versions --- .../plugins/discourse-assign/default.nix | 4 +- .../discourse-bbcode-color/default.nix | 4 +- .../plugins/discourse-calendar/default.nix | 4 +- .../discourse-chat-integration/default.nix | 4 +- .../discourse-data-explorer/default.nix | 4 +- .../plugins/discourse-docs/default.nix | 4 +- .../plugins/discourse-github/Gemfile.lock | 18 +++---- .../plugins/discourse-github/default.nix | 4 +- .../plugins/discourse-github/gemset.nix | 24 ++++----- .../plugins/discourse-ldap-auth/Gemfile | 3 +- .../plugins/discourse-ldap-auth/Gemfile.lock | 17 ++---- .../plugins/discourse-ldap-auth/default.nix | 4 +- .../plugins/discourse-ldap-auth/gemset.nix | 54 +------------------ .../plugins/discourse-math/default.nix | 4 +- .../discourse-openid-connect/default.nix | 4 +- .../plugins/discourse-prometheus/Gemfile | 3 +- .../plugins/discourse-prometheus/Gemfile.lock | 9 ++-- .../plugins/discourse-prometheus/default.nix | 4 +- .../plugins/discourse-prometheus/gemset.nix | 8 +-- .../spec-import-fix-abi-version.patch | 24 ++++----- .../plugins/discourse-reactions/default.nix | 4 +- .../discourse-saved-searches/default.nix | 4 +- .../plugins/discourse-solved/default.nix | 4 +- .../plugins/discourse-voting/default.nix | 6 +-- .../discourse-yearly-review/default.nix | 4 +- pkgs/servers/web-apps/discourse/update.py | 9 ++-- 26 files changed, 84 insertions(+), 151 deletions(-) diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-assign/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-assign/default.nix index e90a8e494856..16f470709b89 100644 --- a/pkgs/servers/web-apps/discourse/plugins/discourse-assign/default.nix +++ b/pkgs/servers/web-apps/discourse/plugins/discourse-assign/default.nix @@ -9,8 +9,8 @@ mkDiscoursePlugin { src = fetchFromGitHub { owner = "discourse"; repo = "discourse-assign"; - rev = "6472f4593e1a4abbb457288db012ddb10f0b16f5"; - sha256 = "sha256-+jcL/6ddXldUG0VvcWiEMaFk0f37HyOf+bOFEMzuoXo="; + rev = "bf2a4bdb3ea4e26ec493d8dbc1f4cc8680f6c543"; + sha256 = "sha256-inoANPG7xlKdhnuyoRay7Oyz7OSZWzphWS599kNP4Uo="; }; meta = with lib; { homepage = "https://github.com/discourse/discourse-docs"; diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-bbcode-color/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-bbcode-color/default.nix index b07422f3a58b..d1a09684cea5 100644 --- a/pkgs/servers/web-apps/discourse/plugins/discourse-bbcode-color/default.nix +++ b/pkgs/servers/web-apps/discourse/plugins/discourse-bbcode-color/default.nix @@ -9,8 +9,8 @@ mkDiscoursePlugin { src = fetchFromGitHub { owner = "discourse"; repo = "discourse-bbcode-color"; - rev = "6a26e5937b48bbf3ca9bd19e4f40adc513bcd774"; - sha256 = "sha256-dWXvCZLxhCxte/88EnYOsy1gjBWjk24BjUM01s55CaU="; + rev = "ecd4befeb4eae48aa0a37a88e5aca60e59730411"; + sha256 = "sha256-enpeXc6pE9+5EdbMIFsnWd++ixlHBKFRxbXmvJYJftg="; }; meta = with lib; { homepage = "https://github.com/discourse/discourse-bbcode-color"; diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-calendar/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-calendar/default.nix index 4c162508575e..d760afafba29 100644 --- a/pkgs/servers/web-apps/discourse/plugins/discourse-calendar/default.nix +++ b/pkgs/servers/web-apps/discourse/plugins/discourse-calendar/default.nix @@ -10,8 +10,8 @@ mkDiscoursePlugin { src = fetchFromGitHub { owner = "discourse"; repo = "discourse-calendar"; - rev = "908ad614bc412f831f929ca726a4bda0b9ccaab6"; - sha256 = "sha256-ZzzcmTY/w9wa5wTR7ofJiNVmXwoKTKaKN202O80DO9g="; + rev = "c1031224a552ea01958d153350c2d1254b323579"; + sha256 = "sha256-xwaYoJpBBvbmuPsDLxczLPXU862OVcirxeYpW5sfy5A="; }; meta = with lib; { homepage = "https://github.com/discourse/discourse-calendar"; diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-chat-integration/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-chat-integration/default.nix index 75c022b66250..d64aea099066 100644 --- a/pkgs/servers/web-apps/discourse/plugins/discourse-chat-integration/default.nix +++ b/pkgs/servers/web-apps/discourse/plugins/discourse-chat-integration/default.nix @@ -9,8 +9,8 @@ mkDiscoursePlugin { src = fetchFromGitHub { owner = "discourse"; repo = "discourse-chat-integration"; - rev = "e19808d4ad3f7d16cd9b93f315ca586f694e6288"; - sha256 = "sha256-EplT9bQFtOvraSkFpBpe7TyNLROsdcRXz79j4MNPEs4="; + rev = "29ad813cd04812786780e1706cbc043810dea7d8"; + sha256 = "sha256-5mGnHLlw3qIGi8et3WV1RXnrPB+bySi3wQryKTa5wNg="; }; meta = with lib; { homepage = "https://github.com/discourse/discourse-chat-integration"; diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-data-explorer/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-data-explorer/default.nix index 51e565b143e3..d5b4a95b5c66 100644 --- a/pkgs/servers/web-apps/discourse/plugins/discourse-data-explorer/default.nix +++ b/pkgs/servers/web-apps/discourse/plugins/discourse-data-explorer/default.nix @@ -9,8 +9,8 @@ mkDiscoursePlugin { src = fetchFromGitHub { owner = "discourse"; repo = "discourse-data-explorer"; - rev = "2d0dc39767f0c68d333f113c550731a5546c3137"; - sha256 = "sha256-3eQDMzTjfcSip94BXy1/VcbulsTsL1EHjRs41c27+ns="; + rev = "2ba204a1de2638a7959e588b88f3b6c7fcf7a70f"; + sha256 = "sha256-u8yGKANEyqm63/ZnJLe3u1nkNGZyX0wFUBIKU5GgjzY="; }; meta = with lib; { homepage = "https://github.com/discourse/discourse-data-explorer"; diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-docs/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-docs/default.nix index b87cf87d990f..573bffa7808a 100644 --- a/pkgs/servers/web-apps/discourse/plugins/discourse-docs/default.nix +++ b/pkgs/servers/web-apps/discourse/plugins/discourse-docs/default.nix @@ -9,8 +9,8 @@ mkDiscoursePlugin { src = fetchFromGitHub { owner = "discourse"; repo = "discourse-docs"; - rev = "7721b1646dead4719c02868ef7965f1b27c74eb3"; - sha256 = "sha256-k2m88wsUmxAXC2LLvElwHVlMp6UzGSLDzEB+HJmKm5g="; + rev = "4e42539cda9a54d7827bcdf51b6dfbcf56d24cc9"; + sha256 = "sha256-sv9Q0qEQVncQw3QLiro5YfVcHJAG8sJ0GTjduCZ0iP4="; }; meta = with lib; { homepage = "https://github.com/discourse/discourse-docs"; diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-github/Gemfile.lock b/pkgs/servers/web-apps/discourse/plugins/discourse-github/Gemfile.lock index 46511cf34da4..f2931a5d4ad1 100644 --- a/pkgs/servers/web-apps/discourse/plugins/discourse-github/Gemfile.lock +++ b/pkgs/servers/web-apps/discourse/plugins/discourse-github/Gemfile.lock @@ -3,15 +3,15 @@ GEM specs: addressable (2.8.7) public_suffix (>= 2.0.2, < 7.0) - faraday (2.12.0) - faraday-net_http (>= 2.0, < 3.4) + faraday (2.12.3) + faraday-net_http (>= 2.0, < 3.5) json logger - faraday-net_http (3.3.0) - net-http - json (2.7.3) - logger (1.6.1) - net-http (0.4.1) + faraday-net_http (3.4.0) + net-http (>= 0.5.0) + json (2.10.2) + logger (1.7.0) + net-http (0.6.0) uri octokit (5.6.1) faraday (>= 1, < 3) @@ -20,7 +20,7 @@ GEM sawyer (0.9.2) addressable (>= 2.3.5) faraday (>= 0.17.3, < 3) - uri (0.13.1) + uri (1.0.3) PLATFORMS ruby @@ -30,4 +30,4 @@ DEPENDENCIES sawyer (= 0.9.2) BUNDLED WITH - 2.4.22 + 2.5.22 diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-github/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-github/default.nix index 8809625fd6df..972a06f778c0 100644 --- a/pkgs/servers/web-apps/discourse/plugins/discourse-github/default.nix +++ b/pkgs/servers/web-apps/discourse/plugins/discourse-github/default.nix @@ -10,8 +10,8 @@ mkDiscoursePlugin { src = fetchFromGitHub { owner = "discourse"; repo = "discourse-github"; - rev = "e24de3f5cd6ec5cef17dc3e07dfb3bfac8867e08"; - sha256 = "sha256-MbVYIsO2m0O5FriF5HphNhLcazgAJzIsl0aVd2YQGaA="; + rev = "59e5fc5692959c6c564ab0e09de364ccfedd6702"; + sha256 = "sha256-b+8eSw8Kbz2CZN16Rd7c8uyH5P1iYhOJmdXu1C5UclU="; }; meta = with lib; { homepage = "https://github.com/discourse/discourse-github"; diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-github/gemset.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-github/gemset.nix index b7faea9c8a6a..36d463ebb5c5 100644 --- a/pkgs/servers/web-apps/discourse/plugins/discourse-github/gemset.nix +++ b/pkgs/servers/web-apps/discourse/plugins/discourse-github/gemset.nix @@ -20,10 +20,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "05s5pyxh7y68jphb0lgrh0ksxbp4lmbsc6a6qg0ahj15pjqx01ni"; + sha256 = "0dxalpc0ldvjjmd7z95na9lm99d2baz48sf9axk3a6x3pn50ibdi"; type = "gem"; }; - version = "2.12.0"; + version = "2.12.3"; }; faraday-net_http = { dependencies = [ "net-http" ]; @@ -31,30 +31,30 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0rg54k4skaz8z7j358p6pdzc9pr84fjq7sdlpicf7s5ig7vb1rlk"; + sha256 = "0jp5ci6g40d6i50bsywp35l97nc2fpi9a592r2cibwicdb6y9wd1"; type = "gem"; }; - version = "3.3.0"; + version = "3.4.0"; }; json = { groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1prbjd8r4rq6hjc6d5hn8hlpf4g9h62swxj7absjac7qqnzwrhvw"; + sha256 = "01lbdaizhkxmrw4y8j3wpvsryvnvzmg0pfs56c52laq2jgdfmq1l"; type = "gem"; }; - version = "2.7.3"; + version = "2.10.2"; }; logger = { groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0lwncq2rf8gm79g2rcnnyzs26ma1f4wnfjm6gs4zf2wlsdz5in9s"; + sha256 = "00q2zznygpbls8asz5knjvvj2brr3ghmqxgr83xnrdj4rk3xwvhr"; type = "gem"; }; - version = "1.6.1"; + version = "1.7.0"; }; net-http = { dependencies = [ "uri" ]; @@ -62,10 +62,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "10n2n9aq00ih8v881af88l1zyrqgs5cl3njdw8argjwbl5ggqvm9"; + sha256 = "1ysrwaabhf0sn24jrp0nnp51cdv0jf688mh5i6fsz63q2c6b48cn"; type = "gem"; }; - version = "0.4.1"; + version = "0.6.0"; }; octokit = { dependencies = [ @@ -110,9 +110,9 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "07ndgxyhzd02cg94s6rnfhkb9rwx9z72lzk368sa9j78wc9qnbfz"; + sha256 = "04bhfvc25b07jaiaf62yrach7khhr5jlr5bx6nygg8pf11329wp9"; type = "gem"; }; - version = "0.13.1"; + version = "1.0.3"; }; } diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-ldap-auth/Gemfile b/pkgs/servers/web-apps/discourse/plugins/discourse-ldap-auth/Gemfile index e140770e4e6a..682c291aaa79 100644 --- a/pkgs/servers/web-apps/discourse/plugins/discourse-ldap-auth/Gemfile +++ b/pkgs/servers/web-apps/discourse/plugins/discourse-ldap-auth/Gemfile @@ -5,5 +5,4 @@ source "https://rubygems.org" # gem "rails" gem 'pyu-ruby-sasl', '0.0.3.3', require: false gem 'rubyntlm', '0.3.4', require: false -gem 'net-ldap', '0.17.1' -gem 'omniauth-ldap', '1.0.5' +gem 'net-ldap', '0.18.0' diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-ldap-auth/Gemfile.lock b/pkgs/servers/web-apps/discourse/plugins/discourse-ldap-auth/Gemfile.lock index f131626f7c45..51ffb630f73a 100644 --- a/pkgs/servers/web-apps/discourse/plugins/discourse-ldap-auth/Gemfile.lock +++ b/pkgs/servers/web-apps/discourse/plugins/discourse-ldap-auth/Gemfile.lock @@ -1,28 +1,17 @@ GEM remote: https://rubygems.org/ specs: - hashie (5.0.0) - net-ldap (0.17.1) - omniauth (1.9.2) - hashie (>= 3.4.6) - rack (>= 1.6.2, < 3) - omniauth-ldap (1.0.5) - net-ldap (~> 0.12) - omniauth (~> 1.0) - pyu-ruby-sasl (~> 0.0.3.2) - rubyntlm (~> 0.3.4) + net-ldap (0.18.0) pyu-ruby-sasl (0.0.3.3) - rack (2.2.7) rubyntlm (0.3.4) PLATFORMS ruby DEPENDENCIES - net-ldap (= 0.17.1) - omniauth-ldap (= 1.0.5) + net-ldap (= 0.18.0) pyu-ruby-sasl (= 0.0.3.3) rubyntlm (= 0.3.4) BUNDLED WITH - 2.4.10 + 2.5.22 diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-ldap-auth/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-ldap-auth/default.nix index 52b7dbc093fe..898806d4b8f0 100644 --- a/pkgs/servers/web-apps/discourse/plugins/discourse-ldap-auth/default.nix +++ b/pkgs/servers/web-apps/discourse/plugins/discourse-ldap-auth/default.nix @@ -10,8 +10,8 @@ mkDiscoursePlugin { src = fetchFromGitHub { owner = "jonmbake"; repo = "discourse-ldap-auth"; - rev = "edcf06957090e8d978a89fe7b07a6ba56fe35214"; - sha256 = "sha256-VxBBip8QEXDQGDOsU5cXjUZe2HThJn20BPsNr33KhKI="; + rev = "fa1d661004ca99036ff628a9c4be12a81265d784"; + sha256 = "sha256-2DYrYgC3H+e8USoo1MbJin1f5tshIUsQa6J7avnpvEc="; }; meta = with lib; { homepage = "https://github.com/jonmbake/discourse-ldap-auth"; diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-ldap-auth/gemset.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-ldap-auth/gemset.nix index 97d9bac530d8..e18f7f428066 100644 --- a/pkgs/servers/web-apps/discourse/plugins/discourse-ldap-auth/gemset.nix +++ b/pkgs/servers/web-apps/discourse/plugins/discourse-ldap-auth/gemset.nix @@ -1,53 +1,13 @@ { - hashie = { - groups = [ "default" ]; - platforms = [ ]; - source = { - remotes = [ "https://rubygems.org" ]; - sha256 = "1nh3arcrbz1rc1cr59qm53sdhqm137b258y8rcb4cvd3y98lwv4x"; - type = "gem"; - }; - version = "5.0.0"; - }; net-ldap = { groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1ycw0qsw3hap8svakl0i30jkj0ffd4lpyrn17a1j0w8mz5ainmsj"; + sha256 = "0xqcffn3c1564c4fizp10dzw2v5g2pabdzrcn25hq05bqhsckbar"; type = "gem"; }; - version = "0.17.1"; - }; - omniauth = { - dependencies = [ - "hashie" - "rack" - ]; - groups = [ "default" ]; - platforms = [ ]; - source = { - remotes = [ "https://rubygems.org" ]; - sha256 = "1jn9j54l5h7xcba2vjq74l1dk0xrwvsjxam4qhylpi52nw0h5502"; - type = "gem"; - }; - version = "1.9.2"; - }; - omniauth-ldap = { - dependencies = [ - "net-ldap" - "omniauth" - "pyu-ruby-sasl" - "rubyntlm" - ]; - groups = [ "default" ]; - platforms = [ ]; - source = { - remotes = [ "https://rubygems.org" ]; - sha256 = "1ld3mx46xa1qhc0cpnck1n06xcxs0ag4n41zgabxri27a772f9wz"; - type = "gem"; - }; - version = "1.0.5"; + version = "0.18.0"; }; pyu-ruby-sasl = { groups = [ "default" ]; @@ -59,16 +19,6 @@ }; version = "0.0.3.3"; }; - rack = { - groups = [ "default" ]; - platforms = [ ]; - source = { - remotes = [ "https://rubygems.org" ]; - sha256 = "16w217k9z02c4hqizym8dkj6bqmmzx4qdvqpnskgzf174a5pwdxk"; - type = "gem"; - }; - version = "2.2.7"; - }; rubyntlm = { groups = [ "default" ]; platforms = [ ]; diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-math/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-math/default.nix index 9fec32d7f749..db65b1d07a59 100644 --- a/pkgs/servers/web-apps/discourse/plugins/discourse-math/default.nix +++ b/pkgs/servers/web-apps/discourse/plugins/discourse-math/default.nix @@ -9,8 +9,8 @@ mkDiscoursePlugin { src = fetchFromGitHub { owner = "discourse"; repo = "discourse-math"; - rev = "19ab34b62ab75589419ee39af7d6ba2fec1bdc4a"; - sha256 = "sha256-Z6+Bx1DKEE+s1flt5K/HfevzXsA+mA0YfQxmg7JQMfA="; + rev = "90a56a5b463546cba5017cf25168bae759bcbf77"; + sha256 = "sha256-q8cNRIHYEkaE6QkdsHu4tPwSw3LnCNgKjbyESBXheE0="; }; meta = with lib; { homepage = "https://github.com/discourse/discourse-math"; diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-openid-connect/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-openid-connect/default.nix index 3a2c9e026a1f..df9095c817d6 100644 --- a/pkgs/servers/web-apps/discourse/plugins/discourse-openid-connect/default.nix +++ b/pkgs/servers/web-apps/discourse/plugins/discourse-openid-connect/default.nix @@ -10,8 +10,8 @@ mkDiscoursePlugin { src = fetchFromGitHub { owner = "discourse"; repo = "discourse-openid-connect"; - rev = "07e30e59bf5ca3925328e936359a5564d7f5b0af"; - sha256 = "sha256-uqxwUjbkS2o9r9pvnTgv+3jzFhUOb8KmorT3ody2d3o="; + rev = "e08efecc012a5ab8fa95084be93d4fd07ccebab9"; + sha256 = "sha256-v4UWFDdOFON+nHkH490kBQ4sXX7Mrp7KVhN1x9HML7w="; }; meta = with lib; { homepage = "https://github.com/discourse/discourse-openid-connect"; diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/Gemfile b/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/Gemfile index 3d802617c347..d8ec2847bb04 100644 --- a/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/Gemfile +++ b/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/Gemfile @@ -3,5 +3,4 @@ source "https://rubygems.org" # gem "rails" -gem "webrick", "1.8.1" -gem "prometheus_exporter", "2.0.6" +gem "prometheus_exporter", "2.2.0" diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/Gemfile.lock b/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/Gemfile.lock index 69a3881ccabf..2d35b3f3cead 100644 --- a/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/Gemfile.lock +++ b/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/Gemfile.lock @@ -1,16 +1,15 @@ GEM remote: https://rubygems.org/ specs: - prometheus_exporter (2.0.6) + prometheus_exporter (2.2.0) webrick - webrick (1.8.1) + webrick (1.9.1) PLATFORMS ruby DEPENDENCIES - prometheus_exporter (= 2.0.6) - webrick (= 1.8.1) + prometheus_exporter (= 2.2.0) BUNDLED WITH - 2.4.22 + 2.5.22 diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/default.nix index 6ad453601be4..349057769dd8 100644 --- a/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/default.nix +++ b/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/default.nix @@ -10,8 +10,8 @@ mkDiscoursePlugin { src = fetchFromGitHub { owner = "discourse"; repo = "discourse-prometheus"; - rev = "b1b899ca995783ef5eba90c35dbfc120a2949c38"; - sha256 = "sha256-tSU1aba8EadObOsb/nRM4jAdQ6D1F9QiIaGoHi2GGDk="; + rev = "f46906e1d555f6838d74ea38d5037264cc1020b0"; + sha256 = "sha256-czrxhH0L+vCZA8DKN6acW///iWJs9GIppEeaP2MOJBQ="; }; patches = [ diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/gemset.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/gemset.nix index d4e5472420b5..56611e62a6d6 100644 --- a/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/gemset.nix +++ b/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/gemset.nix @@ -5,19 +5,19 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0pb4k6px8b36bvnw3d14j31s33ns60dcwxixbcgvhpzavd7fparb"; + sha256 = "15vl8fw8vjnaj9g129dzrwk9nlrdqgffaj3rys4ba9ns2bqim9rq"; type = "gem"; }; - version = "2.0.6"; + version = "2.2.0"; }; webrick = { groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "13qm7s0gr2pmfcl7dxrmq38asaza4w0i2n9my4yzs499j731wh8r"; + sha256 = "12d9n8hll67j737ym2zw4v23cn4vxyfkb6vyv1rzpwv6y6a3qbdl"; type = "gem"; }; - version = "1.8.1"; + version = "1.9.1"; }; } diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/spec-import-fix-abi-version.patch b/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/spec-import-fix-abi-version.patch index de3a5c718f00..bcb73ffd1088 100644 --- a/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/spec-import-fix-abi-version.patch +++ b/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/spec-import-fix-abi-version.patch @@ -1,20 +1,16 @@ diff --git a/bin/collector b/bin/collector -index 6bd04a8caffb..119526fc6ea3 100644 +index 4bdce08178..5edc0a4aee 100755 --- a/bin/collector +++ b/bin/collector -@@ -3,12 +3,14 @@ - +@@ -3,9 +3,11 @@ + Process.setproctitle("discourse prometheus-collector") - + +# We need the ABI version {MAJOR}.{MINOR}.0 here. +abi_version = ENV['GEM_PATH'].split("/")[-1] - [ - "webrick-#{ENV["WEBRICK_VERSION"]}", - "prometheus_exporter-#{ENV["PROMETHEUS_EXPORTER_VERSION"]}", - ].each do |spec_name| - spec_file = -- File.expand_path("../../gems/#{RUBY_VERSION}/specifications/#{spec_name}.gemspec", __FILE__) -+ File.expand_path("../../gems/#{abi_version}/specifications/#{spec_name}.gemspec", __FILE__) - spec = Gem::Specification.load(spec_file) - spec.activate - end + spec_file = + File.expand_path( +- "../../gems/#{RUBY_VERSION}/specifications/#{"prometheus_exporter-#{ENV["PROMETHEUS_EXPORTER_VERSION"]}"}.gemspec", ++ "../../gems/#{abi_version}/specifications/#{"prometheus_exporter-#{ENV["PROMETHEUS_EXPORTER_VERSION"]}"}.gemspec", + __FILE__, + ) diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-reactions/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-reactions/default.nix index 50881d6782fb..8a1e2551666c 100644 --- a/pkgs/servers/web-apps/discourse/plugins/discourse-reactions/default.nix +++ b/pkgs/servers/web-apps/discourse/plugins/discourse-reactions/default.nix @@ -9,8 +9,8 @@ mkDiscoursePlugin { src = fetchFromGitHub { owner = "discourse"; repo = "discourse-reactions"; - rev = "c4cde3bb12841733d1f2ac4df1bb099aae15cece"; - sha256 = "sha256-JXyXBJX7PBYmVylZ7PE+14RnlgR4EA1XBSue1ek0P/g="; + rev = "4844fe7afc2fc6a809ed0249a6b42a4c92384461"; + sha256 = "sha256-iudlFK+U+FwjNbduNTdwnT7oHww+xPz0+rZgzFUKT/8="; }; meta = with lib; { homepage = "https://github.com/discourse/discourse-reactions"; diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-saved-searches/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-saved-searches/default.nix index 4d9fe87853a2..3c69b86189e0 100644 --- a/pkgs/servers/web-apps/discourse/plugins/discourse-saved-searches/default.nix +++ b/pkgs/servers/web-apps/discourse/plugins/discourse-saved-searches/default.nix @@ -9,8 +9,8 @@ mkDiscoursePlugin { src = fetchFromGitHub { owner = "discourse"; repo = "discourse-saved-searches"; - rev = "16bde9b0bcb3b517cfabc0ea740c10b091157799"; - sha256 = "sha256-tn1AKiRPaunqlrtcC/6NETUnNxJq1uNi+IIF0TZPbDg="; + rev = "b78aae086e95255b1a1e91a01e2d56b45b7aead2"; + sha256 = "sha256-Wai+oZR+Pzjre6Th0kQDgvFOwfPRHlZkpKYYOUKNlx4="; }; meta = with lib; { homepage = "https://github.com/discourse/discourse-saved-searches"; diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-solved/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-solved/default.nix index 14aac40df9bd..9c919190dad6 100644 --- a/pkgs/servers/web-apps/discourse/plugins/discourse-solved/default.nix +++ b/pkgs/servers/web-apps/discourse/plugins/discourse-solved/default.nix @@ -9,8 +9,8 @@ mkDiscoursePlugin { src = fetchFromGitHub { owner = "discourse"; repo = "discourse-solved"; - rev = "1bbdfd8f5681171dc3f0e9ea93cd56997dc7938a"; - sha256 = "sha256-nuF/tCoHgsKE+wjQ3BRV1s1X77vjQiASLRCWErh64C4="; + rev = "e82c6ae1ca38ccebb34669148f8de93a3028906e"; + sha256 = "sha256-KwpBCk4fjkZlSzgtc0OXvQupPd+aPb9nONyyALpEZhg="; }; meta = with lib; { homepage = "https://github.com/discourse/discourse-solved"; diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-voting/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-voting/default.nix index 1fe9b05ccadc..f5408d01c320 100644 --- a/pkgs/servers/web-apps/discourse/plugins/discourse-voting/default.nix +++ b/pkgs/servers/web-apps/discourse/plugins/discourse-voting/default.nix @@ -8,9 +8,9 @@ mkDiscoursePlugin { name = "discourse-voting"; src = fetchFromGitHub { owner = "discourse"; - repo = "discourse-voting"; - rev = "4ebcd1187b59290b79db8c61c89df9f72bf1363c"; - sha256 = "sha256-aDJKy7Qpsj1n+HrumoORUo+R9HF3gQ0juJBKXj7GHsY="; + repo = "discourse-topic-voting"; + rev = "b31bc6e037af776d2cea3f34c44b02a105b34d24"; + sha256 = "sha256-835xFg2NnhE4HPju2j3w+N5rtRYinOBbBMerRJpnpxQ="; }; meta = with lib; { homepage = "https://github.com/discourse/discourse-voting"; diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-yearly-review/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-yearly-review/default.nix index f9fa3c755931..9b738112afa9 100644 --- a/pkgs/servers/web-apps/discourse/plugins/discourse-yearly-review/default.nix +++ b/pkgs/servers/web-apps/discourse/plugins/discourse-yearly-review/default.nix @@ -9,8 +9,8 @@ mkDiscoursePlugin { src = fetchFromGitHub { owner = "discourse"; repo = "discourse-yearly-review"; - rev = "bb124c211c37873c1d54e96e7063f1868c65d0ad"; - sha256 = "sha256-xAFpt/uVW8+Y2wwL20u/rMixcFgygwrarsdRsywsbmQ="; + rev = "5229931ace1ee19ef2d1b7ed2469911f315669bb"; + sha256 = "sha256-2xgHtXB7F5XP2OmB1QswrnPk5Sf32DFoUhlU4RMEZhI="; }; meta = with lib; { homepage = "https://github.com/discourse/discourse-yearly-review"; diff --git a/pkgs/servers/web-apps/discourse/update.py b/pkgs/servers/web-apps/discourse/update.py index 84b61349eda6..13dbf283c881 100755 --- a/pkgs/servers/web-apps/discourse/update.py +++ b/pkgs/servers/web-apps/discourse/update.py @@ -298,7 +298,7 @@ def update_plugins(): {'name': 'discourse-saved-searches'}, {'name': 'discourse-solved'}, {'name': 'discourse-spoiler-alert'}, - {'name': 'discourse-voting'}, + {'name': 'discourse-voting', 'repo_name': "discourse-topic-voting"}, {'name': 'discourse-yearly-review'}, ] @@ -319,8 +319,9 @@ def update_plugins(): # https://meta.discourse.org/t/pinning-plugin-and-theme-versions-for-older-discourse-installs/156971 # this makes sure we don't upgrade plugins to revisions that # are incompatible with the packaged Discourse version + repo_latest_commit = repo.latest_commit_sha try: - compatibility_spec = repo.get_file('.discourse-compatibility', repo.latest_commit_sha) + compatibility_spec = repo.get_file('.discourse-compatibility', repo_latest_commit) versions = [(DiscourseVersion(discourse_version), plugin_rev.strip(' ')) for [discourse_version, plugin_rev] in [line.lstrip("< ").split(':') @@ -329,12 +330,12 @@ def update_plugins(): discourse_version = DiscourseVersion(_get_current_package_version('discourse')) versions = list(filter(lambda ver: ver[0] >= discourse_version, versions)) if versions == []: - rev = repo.latest_commit_sha + rev = repo_latest_commit else: rev = versions[0][1] print(rev) except requests.exceptions.HTTPError: - rev = repo.latest_commit_sha + rev = repo_latest_commit filename = _nix_eval(f'builtins.unsafeGetAttrPos "src" discourse.plugins.{name}') if filename is None: From c2c0c7186ca6d8a52b2df7d3d0c9edcbb6291350 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 13 Apr 2025 11:31:50 +0000 Subject: [PATCH 11/70] amnezia-vpn: 4.8.5.0 -> 4.8.6.0 --- pkgs/by-name/am/amnezia-vpn/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/am/amnezia-vpn/package.nix b/pkgs/by-name/am/amnezia-vpn/package.nix index 8994558d2c03..3bf1bd2b3e41 100644 --- a/pkgs/by-name/am/amnezia-vpn/package.nix +++ b/pkgs/by-name/am/amnezia-vpn/package.nix @@ -54,13 +54,13 @@ let in stdenv.mkDerivation (finalAttrs: { pname = "amnezia-vpn"; - version = "4.8.5.0"; + version = "4.8.6.0"; src = fetchFromGitHub { owner = "amnezia-vpn"; repo = "amnezia-client"; tag = finalAttrs.version; - hash = "sha256-k0BroQYrmJzM0+rSZMf20wHba5NbOK/xm5lbUFBNEHI="; + hash = "sha256-WQbay3dtGNPPpcK1O7bfs/HKO4ytfmQo60firU/9o28="; fetchSubmodules = true; }; From 9d31665a93772512aef9ed3bdd4a34e1a2f4bda1 Mon Sep 17 00:00:00 2001 From: awwpotato Date: Mon, 14 Apr 2025 19:04:24 -0700 Subject: [PATCH 12/70] clean-css-cli: unbreak, refactor --- pkgs/by-name/cl/clean-css-cli/package.nix | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/pkgs/by-name/cl/clean-css-cli/package.nix b/pkgs/by-name/cl/clean-css-cli/package.nix index 195aa7537d1b..4141f0731390 100644 --- a/pkgs/by-name/cl/clean-css-cli/package.nix +++ b/pkgs/by-name/cl/clean-css-cli/package.nix @@ -3,30 +3,29 @@ buildNpmPackage, fetchFromGitHub, }: - -let +buildNpmPackage (finalAttrs: { + pname = "clean-css-cli"; version = "5.6.3"; + src = fetchFromGitHub { owner = "clean-css"; repo = "clean-css-cli"; - rev = "v${version}"; + tag = "v${finalAttrs.version}"; hash = "sha256-tsFNcQg55uY2gL5xLLLS6INLlYzbsU6M3hnsYeOFGEw="; }; -in -buildNpmPackage { - pname = "clean-css-cli"; - inherit version src; npmDepsHash = "sha256-uvI9esVVOE18syHUCJpoiDY+Vh3hJO+GsMOTZSYJaxg="; dontNpmBuild = true; + dontCheckForBrokenSymlinks = true; + meta = { - changelog = "https://github.com/clean-css/clean-css-cli/blob/${src.rev}/History.md"; description = "Command-line interface to the clean-css CSS optimization library"; homepage = "https://github.com/clean-css/clean-css-cli"; + changelog = "https://github.com/clean-css/clean-css-cli/blob/v${finalAttrs.version}/History.md"; license = lib.licenses.mit; mainProgram = "cleancss"; maintainers = with lib.maintainers; [ momeemt ]; }; -} +}) From 27665c04d3e0399bbebb7ec09468b2f650620838 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 17 Apr 2025 03:52:45 +0000 Subject: [PATCH 13/70] proton-pass: 1.30.1 -> 1.31.1 --- pkgs/by-name/pr/proton-pass/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/pr/proton-pass/package.nix b/pkgs/by-name/pr/proton-pass/package.nix index 78b3f2f62bb5..b719eb868920 100644 --- a/pkgs/by-name/pr/proton-pass/package.nix +++ b/pkgs/by-name/pr/proton-pass/package.nix @@ -9,11 +9,11 @@ }: stdenvNoCC.mkDerivation (finalAttrs: { pname = "proton-pass"; - version = "1.30.1"; + version = "1.31.1"; src = fetchurl { url = "https://proton.me/download/pass/linux/x64/proton-pass_${finalAttrs.version}_amd64.deb"; - hash = "sha256-0IEQAzK3Pu195kjpo9l2HdLUCySR0HKSl1M8Z9URgJA="; + hash = "sha256-OYd26KTq2uoZzqyb2ntk3bS5cKcJJ7od0VIHfSK8lqs="; }; dontConfigure = true; From 4bf62759694ddc065f7da86d4c0c47a608839c8f Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 17 Apr 2025 11:56:26 +0000 Subject: [PATCH 14/70] stargazer: 1.3.1 -> 1.3.2 --- pkgs/by-name/st/stargazer/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/st/stargazer/package.nix b/pkgs/by-name/st/stargazer/package.nix index 8da7c0576d5d..d825ba5dfd83 100644 --- a/pkgs/by-name/st/stargazer/package.nix +++ b/pkgs/by-name/st/stargazer/package.nix @@ -10,17 +10,17 @@ rustPlatform.buildRustPackage rec { pname = "stargazer"; - version = "1.3.1"; + version = "1.3.2"; src = fetchFromSourcehut { owner = "~zethra"; repo = "stargazer"; rev = version; - hash = "sha256-0vbQDHuLrgrsWiOb2hb6lYylJm5o/wOzoDIw85H8Eh0="; + hash = "sha256-Yulm0XkVaN+yBKj8LDsn8pBYXEqTOSGLqbpIKDN0G2U="; }; useFetchCargoVendor = true; - cargoHash = "sha256-KdHYyuH1RMLRueqYbfADUktBx9aL8yTagB0KxEGQsCs="; + cargoHash = "sha256-MtpJTLKhlVF5AE3huL0JRWXtNCtc0Z5b/S28ekzirPA="; passthru = { tests.basic-functionality = nixosTests.stargazer; From bd3eb021c16412f8f70ff7f35a19e5844f54bd92 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 17 Apr 2025 11:57:34 +0000 Subject: [PATCH 15/70] sysdig-cli-scanner: 1.22.0 -> 1.22.1 --- .../sysdig-cli-scanner.versions.nix | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/pkgs/by-name/sy/sysdig-cli-scanner/sysdig-cli-scanner.versions.nix b/pkgs/by-name/sy/sysdig-cli-scanner/sysdig-cli-scanner.versions.nix index f45c1852f4a0..979f7616ab4a 100644 --- a/pkgs/by-name/sy/sysdig-cli-scanner/sysdig-cli-scanner.versions.nix +++ b/pkgs/by-name/sy/sysdig-cli-scanner/sysdig-cli-scanner.versions.nix @@ -1,23 +1,23 @@ { - version = "1.22.0"; + version = "1.22.1"; x86_64-linux = { - url = "https://download.sysdig.com/scanning/bin/sysdig-cli-scanner/1.22.0/linux/amd64/sysdig-cli-scanner"; - hash = "sha256-qGbQRiUvoynxUeYSmjrz5r9bunthcmQWDzLtTqPu4IU="; + url = "https://download.sysdig.com/scanning/bin/sysdig-cli-scanner/1.22.1/linux/amd64/sysdig-cli-scanner"; + hash = "sha256-ogQ7NhpU0KZkcZXWSBX4VaTWwXz5WWMXhqZ9abHX6+Y="; }; aarch64-linux = { - url = "https://download.sysdig.com/scanning/bin/sysdig-cli-scanner/1.22.0/linux/arm64/sysdig-cli-scanner"; - hash = "sha256-bfY5FRPU7rEVN0o/nf39q8qFP7zgffoEX1iPXbZ22pw="; + url = "https://download.sysdig.com/scanning/bin/sysdig-cli-scanner/1.22.1/linux/arm64/sysdig-cli-scanner"; + hash = "sha256-apj4GqN7sdZSzpk+FvqcYJLgh+UlcJgPUdXhhurFENQ="; }; x86_64-darwin = { - url = "https://download.sysdig.com/scanning/bin/sysdig-cli-scanner/1.22.0/darwin/amd64/sysdig-cli-scanner"; - hash = "sha256-F5br4BJnB9yRWfpqEJgy79csjfYY/St1a/rPGXdvj6A="; + url = "https://download.sysdig.com/scanning/bin/sysdig-cli-scanner/1.22.1/darwin/amd64/sysdig-cli-scanner"; + hash = "sha256-o5AYd3/8Ot7+EtQ2SXaV72JbR/hI/5Pu7g2jdHZYepo="; }; aarch64-darwin = { - url = "https://download.sysdig.com/scanning/bin/sysdig-cli-scanner/1.22.0/darwin/arm64/sysdig-cli-scanner"; - hash = "sha256-CsMZ8m9eJNcOxq77IVLuW1COOa2+mABoMGJ+xk/NARI="; + url = "https://download.sysdig.com/scanning/bin/sysdig-cli-scanner/1.22.1/darwin/arm64/sysdig-cli-scanner"; + hash = "sha256-FDkqWstWMTtF0QLWk+iadJr7aRHRnpiatqAeoHftVDk="; }; } From 9a6908649588382f17c2bda64cb3cdbcebb80a3d Mon Sep 17 00:00:00 2001 From: teutat3s <10206665+teutat3s@users.noreply.github.com> Date: Thu, 17 Apr 2025 14:36:11 +0200 Subject: [PATCH 16/70] grafanaPlugin.grafana-lokiexplore-app: init at 1.0.10 --- .../plugins/grafana-lokiexplore-app/default.nix | 13 +++++++++++++ pkgs/servers/monitoring/grafana/plugins/plugins.nix | 1 + 2 files changed, 14 insertions(+) create mode 100644 pkgs/servers/monitoring/grafana/plugins/grafana-lokiexplore-app/default.nix diff --git a/pkgs/servers/monitoring/grafana/plugins/grafana-lokiexplore-app/default.nix b/pkgs/servers/monitoring/grafana/plugins/grafana-lokiexplore-app/default.nix new file mode 100644 index 000000000000..0b2e0a09aa33 --- /dev/null +++ b/pkgs/servers/monitoring/grafana/plugins/grafana-lokiexplore-app/default.nix @@ -0,0 +1,13 @@ +{ grafanaPlugin, lib }: + +grafanaPlugin { + pname = "grafana-lokiexplore-app"; + version = "1.0.10"; + zipHash = "sha256-1+5xil0XmcLCDKpObuxpnoMnQZaT1I62zL6xatlyKc4="; + meta = with lib; { + description = "The Grafana Logs Drilldown app offers a queryless experience for browsing Loki logs without the need for writing complex queries."; + license = licenses.agpl3Only; + maintainers = lib.teams.fslabs.members; + platforms = platforms.unix; + }; +} diff --git a/pkgs/servers/monitoring/grafana/plugins/plugins.nix b/pkgs/servers/monitoring/grafana/plugins/plugins.nix index dd1eb386cbcf..a5dd4d52a893 100644 --- a/pkgs/servers/monitoring/grafana/plugins/plugins.nix +++ b/pkgs/servers/monitoring/grafana/plugins/plugins.nix @@ -14,6 +14,7 @@ grafana-discourse-datasource = callPackage ./grafana-discourse-datasource { }; grafana-github-datasource = callPackage ./grafana-github-datasource { }; grafana-googlesheets-datasource = callPackage ./grafana-googlesheets-datasource { }; + grafana-lokiexplore-app = callPackage ./grafana-lokiexplore-app { }; grafana-mqtt-datasource = callPackage ./grafana-mqtt-datasource { }; grafana-oncall-app = callPackage ./grafana-oncall-app { }; grafana-opensearch-datasource = callPackage ./grafana-opensearch-datasource { }; From b17b17382e771aa6e6043e109b071ecc57a13a44 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 17 Apr 2025 20:47:42 +0000 Subject: [PATCH 17/70] source-meta-json-schema: 8.0.0 -> 9.1.0 --- pkgs/by-name/so/source-meta-json-schema/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/so/source-meta-json-schema/package.nix b/pkgs/by-name/so/source-meta-json-schema/package.nix index afcf8fdd2273..ed8ab7021c7e 100644 --- a/pkgs/by-name/so/source-meta-json-schema/package.nix +++ b/pkgs/by-name/so/source-meta-json-schema/package.nix @@ -5,7 +5,7 @@ cmake, }: let - version = "8.0.0"; + version = "9.1.0"; in stdenv.mkDerivation (finalAttrs: { pname = "source-meta-json-schema"; @@ -15,7 +15,7 @@ stdenv.mkDerivation (finalAttrs: { owner = "sourcemeta"; repo = "jsonschema"; rev = "v${version}"; - hash = "sha256-EH+wi8MAgAxTy7OPQK/faX6OVY38/Z5fXhaK92xKkyA="; + hash = "sha256-YxIRDTAAvkltT4HGUvPt/davarGRfE808OoI9UheqCA="; }; nativeBuildInputs = [ From 487a002c6387b95fc65aeb4a056ef208cba7a72b Mon Sep 17 00:00:00 2001 From: Mikael Voss Date: Fri, 18 Apr 2025 13:41:53 +0200 Subject: [PATCH 18/70] =?UTF-8?q?lib/strings:=20Zero=E2=80=90pad=20hex=20d?= =?UTF-8?q?igits=20in=20escapeC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit lib.strings.escapeC produces single‐digit hexadecimal strings for character values ≤ 15, which results in an ambiguity. If the following character is a hex digit, it will be interpreted as being part of the escape sequence. systemd, which also relies on C‐style escape sequences, does not decode single‐digit sequences at all, even if unambiguous. Padding the hexadecimal string with "0" avoids this problem. --- lib/strings.nix | 6 +++++- lib/tests/misc.nix | 4 ++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/lib/strings.nix b/lib/strings.nix index f8b01ec1ebc5..7142a156e393 100644 --- a/lib/strings.nix +++ b/lib/strings.nix @@ -998,7 +998,11 @@ rec { ::: */ - escapeC = list: replaceStrings list (map (c: "\\x${toLower (lib.toHexString (charToInt c))}") list); + escapeC = + list: + replaceStrings list ( + map (c: "\\x${fixedWidthString 2 "0" (toLower (lib.toHexString (charToInt c)))}") list + ); /** Escape the `string` so it can be safely placed inside a URL diff --git a/lib/tests/misc.nix b/lib/tests/misc.nix index d17231061d69..b072f058d727 100644 --- a/lib/tests/misc.nix +++ b/lib/tests/misc.nix @@ -851,8 +851,8 @@ runTests { }; testEscapeC = { - expr = strings.escapeC [ " " ] "Hello World"; - expected = "Hello\\x20World"; + expr = strings.escapeC [ "\n" " " ] "Hello World\n"; + expected = "Hello\\x20World\\x0a"; }; testEscapeURL = testAllTrue [ From 7fbf79c4aca9b510e7785cc6a9673cabc57a613d Mon Sep 17 00:00:00 2001 From: Luana Date: Wed, 16 Apr 2025 09:45:55 -0300 Subject: [PATCH 19/70] nixos/cook-cli: init module --- .../manual/release-notes/rl-2505.section.md | 2 + nixos/modules/services/web-apps/cook-cli.nix | 113 ++++++++++++++++++ 2 files changed, 115 insertions(+) create mode 100644 nixos/modules/services/web-apps/cook-cli.nix diff --git a/nixos/doc/manual/release-notes/rl-2505.section.md b/nixos/doc/manual/release-notes/rl-2505.section.md index 3978772d32d8..15c49ef2d0a3 100644 --- a/nixos/doc/manual/release-notes/rl-2505.section.md +++ b/nixos/doc/manual/release-notes/rl-2505.section.md @@ -217,6 +217,8 @@ - [GoDNS](https://github.com/TimothyYe/godns), a dynamic DNS client written in Go, which supports multiple DNS providers. Available as [services.godns](option.html#opt-services.godns.enable). +- [CookCLI](https://cooklang.org/cli/) Server, a web UI for cooklang recipes. + ## Backward Incompatibilities {#sec-release-25.05-incompatibilities} diff --git a/nixos/modules/services/web-apps/cook-cli.nix b/nixos/modules/services/web-apps/cook-cli.nix new file mode 100644 index 000000000000..e1addb21318e --- /dev/null +++ b/nixos/modules/services/web-apps/cook-cli.nix @@ -0,0 +1,113 @@ +{ + config, + pkgs, + lib, + ... +}: + +let + cfg = config.services.cook-cli; + inherit (lib) + mkIf + mkEnableOption + mkPackageOption + mkOption + getExe + types + ; +in +{ + options = { + services.cook-cli = { + enable = lib.mkEnableOption "cook-cli"; + + package = lib.mkPackageOption pkgs "cook-cli" { }; + + autoStart = lib.mkOption { + type = lib.types.bool; + default = true; + description = '' + Whether to start cook-cli server automatically. + ''; + }; + + port = lib.mkOption { + type = lib.types.port; + default = 9080; + description = '' + Which port cook-cli server will use. + ''; + }; + + basePath = lib.mkOption { + type = lib.types.str; + default = "/var/lib/cook-cli"; + description = '' + Path to the directory cook-cli will look for recipes. + ''; + }; + + openFirewall = lib.mkOption { + type = lib.types.bool; + default = false; + description = '' + Whether to open the cook-cli server port in the firewall. + ''; + }; + }; + }; + + config = lib.mkIf cfg.enable { + environment.systemPackages = [ cfg.package ]; + + systemd.tmpfiles.rules = [ + "d ${cfg.basePath} 0770 cook-cli users" + ]; + + users.users.cook-cli = { + home = "${cfg.basePath}"; + group = "cook-cli"; + isSystemUser = true; + }; + users.groups.cook-cli.members = [ + "cook-cli" + ]; + + systemd.services.cook-cli = { + description = "cook-cli server"; + serviceConfig = { + ExecStart = "${getExe cfg.package} server --host --port ${toString cfg.port} ${cfg.basePath}"; + WorkingDirectory = cfg.basePath; + User = "cook-cli"; + Group = "cook-cli"; + # Hardening options + CapabilityBoundingSet = [ "CAP_SYS_NICE" ]; + AmbientCapabilities = [ "CAP_SYS_NICE" ]; + LockPersonality = true; + NoNewPrivileges = true; + PrivateTmp = true; + ProtectControlGroups = true; + ProtectKernelLogs = true; + ProtectKernelModules = true; + ProtectKernelTunables = true; + ProtectSystem = "strict"; + ReadWritePaths = cfg.basePath; + RestrictNamespaces = true; + RestrictSUIDSGID = true; + Restart = "on-failure"; + RestartSec = 5; + }; + wantedBy = mkIf cfg.autoStart [ "multi-user.target" ]; + wants = [ "network.target" ]; + }; + + networking.firewall = lib.mkIf cfg.openFirewall { + allowedTCPPorts = [ cfg.port ]; + }; + }; + + meta.maintainers = [ + lib.maintainers.luNeder + lib.maintainers.emilioziniades + ]; +} From 29b535c2fc17b76df663ac3dbaf22325e8d1425a Mon Sep 17 00:00:00 2001 From: Laurent Arnoud Date: Fri, 18 Apr 2025 15:23:57 +0200 Subject: [PATCH 20/70] php84Extensions.blackfire: available on linux system --- pkgs/by-name/bl/blackfire/php-probe.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkgs/by-name/bl/blackfire/php-probe.nix b/pkgs/by-name/bl/blackfire/php-probe.nix index b2122e397bd0..0b545d374d58 100644 --- a/pkgs/by-name/bl/blackfire/php-probe.nix +++ b/pkgs/by-name/bl/blackfire/php-probe.nix @@ -25,6 +25,7 @@ let "8.1" = "sha256-oRd6PbBLOboH9EVRfZl5u71ZoVMFO4K/uftxlL/vm18="; "8.2" = "sha256-95qBidNHIGLGCb3QbUIzBMHsRi2GTPhwAjJg+JTteDk="; "8.3" = "sha256-8TO28o4YYFK1r2tInjXKenki/izHzZL0Dblaippekl8="; + "8.4" = "sha256-Dg+Q0W6Rh2L4J7hmxLxuM3l/dKYHT499Mix4Zpu2Vno="; }; }; "i686-linux" = { @@ -33,6 +34,7 @@ let "8.1" = "sha256-mXJ1hO8NcODG7Wj3lQ+5lkSjcbkKLN5OOzcobigScKI="; "8.2" = "sha256-P5fQTVfE/DvLD4E3kUPE+eeOM9YVNNixgWVRq3Ca5M4="; "8.3" = "sha256-rMUv2EUlepBahMaEvs60i7RFTmaBe4P4qB1hcARqP9Y="; + "8.4" = "sha256-g7v7oN7wfrER9VPk6bGhr+l6GMh2iYHUihcXF9T4GOc="; }; }; "aarch64-linux" = { @@ -41,6 +43,7 @@ let "8.1" = "sha256-Tj7LHXS4m9hF9gY/9vfOQPJVP+vHM1h8XdBY9vyRhFo="; "8.2" = "sha256-6kfotMptfVLPL414mr6LeJZ3ODnjepYQYnKvg4fHIAg="; "8.3" = "sha256-M/GTdinOi3Em7GJOm1iUKkuDNg8La3iQpG+wGHp0ycE="; + "8.4" = "sha256-/wwgP76liAb6//uvDLGD5l+skh4P22Q8KdZN7nlEbXI="; }; }; "aarch64-darwin" = { From 28e1e76a7253bc5265519278b6a5e2b6e0fb808f Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Sat, 19 Apr 2025 17:23:50 +0800 Subject: [PATCH 21/70] pantheon.elementary-settings-daemon: 8.2.0 -> 8.3.0 https://github.com/elementary/settings-daemon/compare/8.2.0...8.3.0 --- .../pantheon/services/elementary-settings-daemon/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/desktops/pantheon/services/elementary-settings-daemon/default.nix b/pkgs/desktops/pantheon/services/elementary-settings-daemon/default.nix index 5e93b90feb9d..d745f672478c 100644 --- a/pkgs/desktops/pantheon/services/elementary-settings-daemon/default.nix +++ b/pkgs/desktops/pantheon/services/elementary-settings-daemon/default.nix @@ -26,13 +26,13 @@ stdenv.mkDerivation rec { pname = "elementary-settings-daemon"; - version = "8.2.0"; + version = "8.3.0"; src = fetchFromGitHub { owner = "elementary"; repo = "settings-daemon"; rev = version; - sha256 = "sha256-mLchzYp2HB4QEJS/Jz9o7ZSKUJtbUUUbFCTHwHZYCEE="; + sha256 = "sha256-0/G5h1eZi3qnjesrvWF6MiMX+FmpW4ys2tRUMBiUCS0="; }; nativeBuildInputs = [ From ce6b63de06e83b3d908777e4f4dd0a15cca2cd72 Mon Sep 17 00:00:00 2001 From: Neyts Zupan Date: Sun, 6 Apr 2025 18:38:56 +0100 Subject: [PATCH 22/70] paretosecurity: 0.1.3 -> 0.1.9 Also some modernization/gardening package and tests, thanks @tfc! --- .../services/security/paretosecurity.nix | 31 +++++----- nixos/tests/paretosecurity.nix | 59 ++++++++----------- pkgs/by-name/pa/paretosecurity/package.nix | 36 ++++++----- 3 files changed, 63 insertions(+), 63 deletions(-) diff --git a/nixos/modules/services/security/paretosecurity.nix b/nixos/modules/services/security/paretosecurity.nix index a1080ede8431..822fe76ec6af 100644 --- a/nixos/modules/services/security/paretosecurity.nix +++ b/nixos/modules/services/security/paretosecurity.nix @@ -4,6 +4,9 @@ pkgs, ... }: +let + cfg = config.services.paretosecurity; +in { options.services.paretosecurity = { @@ -12,9 +15,9 @@ trayIcon = lib.mkEnableOption "tray icon for ParetoSecurity"; }; - config = lib.mkIf config.services.paretosecurity.enable { - environment.systemPackages = [ config.services.paretosecurity.package ]; - systemd.packages = [ config.services.paretosecurity.package ]; + config = lib.mkIf cfg.enable { + environment.systemPackages = [ cfg.package ]; + systemd.packages = [ cfg.package ]; # In traditional Linux distributions, systemd would read the [Install] section from # unit files and automatically create the appropriate symlinks to enable services. @@ -36,19 +39,17 @@ ]; # Enable the tray icon and timer services if the trayIcon option is enabled - systemd.user = lib.mkIf config.services.paretosecurity.trayIcon { - services.paretosecurity-trayicon = { - wantedBy = [ "graphical-session.target" ]; - }; - services.paretosecurity-user = { - wantedBy = [ "graphical-session.target" ]; - serviceConfig.Environment = [ - "PATH=${config.system.path}/bin:${config.system.path}/sbin" - ]; - }; - timers.paretosecurity-user = { - wantedBy = [ "timers.target" ]; + systemd.user = lib.mkIf cfg.trayIcon { + services = { + paretosecurity-trayicon.wantedBy = [ "graphical-session.target" ]; + paretosecurity-user = { + wantedBy = [ "graphical-session.target" ]; + serviceConfig.Environment = [ + "PATH=${config.system.path}/bin:${config.system.path}/sbin" + ]; + }; }; + timers.paretosecurity-user.wantedBy = [ "timers.target" ]; }; }; } diff --git a/nixos/tests/paretosecurity.nix b/nixos/tests/paretosecurity.nix index bf9af17e2f5e..051903696119 100644 --- a/nixos/tests/paretosecurity.nix +++ b/nixos/tests/paretosecurity.nix @@ -4,53 +4,45 @@ meta.maintainers = [ lib.maintainers.zupo ]; nodes.terminal = - { - config, - pkgs, - lib, - ... - }: - let - # Create a patched version of the package that points to the local dashboard - # for easier testing - patchedPareto = pkgs.paretosecurity.overrideAttrs (oldAttrs: { - postPatch = '' - substituteInPlace team/report.go \ - --replace-warn 'const reportURL = "https://dash.paretosecurity.com"' \ - 'const reportURL = "http://dashboard"' - ''; - }); - in + { pkgs, ... }: { imports = [ ./common/user-account.nix ]; + networking.firewall.enable = true; services.paretosecurity = { enable = true; - package = patchedPareto; - }; - networking.firewall.enable = true; + # Create a patched version of the package that points to the local dashboard + # for easier testing + package = pkgs.paretosecurity.overrideAttrs (oldAttrs: { + postPatch = + oldAttrs.postPatch or "" + + '' + substituteInPlace team/report.go \ + --replace-warn 'const reportURL = "https://dash.paretosecurity.com"' \ + 'const reportURL = "http://dashboard"' + ''; + }); + }; }; - nodes.dashboard = - { config, pkgs, ... }: - { - networking.firewall.allowedTCPPorts = [ 80 ]; + nodes.dashboard = { + networking.firewall.allowedTCPPorts = [ 80 ]; - services.nginx = { - enable = true; - virtualHosts."dashboard" = { - locations."/api/v1/team/".extraConfig = '' - add_header Content-Type application/json; - return 200 '{"message": "Linked device."}'; - ''; - }; + services.nginx = { + enable = true; + virtualHosts."dashboard" = { + locations."/api/v1/team/".extraConfig = '' + add_header Content-Type application/json; + return 200 '{"message": "Linked device."}'; + ''; }; }; + }; nodes.xfce = - { config, pkgs, ... }: + { pkgs, ... }: { imports = [ ./common/user-account.nix ]; @@ -76,7 +68,6 @@ environment.systemPackages = [ pkgs.xdotool ]; environment.variables.XAUTHORITY = "/home/alice/.Xauthority"; - }; enableOCR = true; diff --git a/pkgs/by-name/pa/paretosecurity/package.nix b/pkgs/by-name/pa/paretosecurity/package.nix index 25728d4e32a3..65101cc442fd 100644 --- a/pkgs/by-name/pa/paretosecurity/package.nix +++ b/pkgs/by-name/pa/paretosecurity/package.nix @@ -5,49 +5,57 @@ testers, paretosecurity, nixosTests, + pkg-config, + gtk3, + webkitgtk_4_1, }: -buildGoModule rec { +buildGoModule (finalAttrs: { + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + gtk3 + webkitgtk_4_1 + ]; pname = "paretosecurity"; - version = "0.1.3"; + version = "0.1.9"; src = fetchFromGitHub { owner = "ParetoSecurity"; repo = "agent"; - rev = version; - hash = "sha256-ovyfHqLCf5U3UR1HfoA+UQhqLZ6IaILcpqptPRQsb60="; + rev = finalAttrs.version; + hash = "sha256-KJs4xC3EtGG4116UE+oIEwAMcuDWIm9gqgZY+Bv14ac="; }; - vendorHash = "sha256-7mKAFkKGpBOjXc3J/sfF3k3pJF53tFybXZgbfJInuSY="; + vendorHash = "sha256-3plpvwLe32AsGuVzdM2fSmTPkKwRFmhi651NEIRdOxw="; proxyVendor = true; ldflags = [ "-s" - "-X=github.com/ParetoSecurity/agent/shared.Version=${version}" - "-X=github.com/ParetoSecurity/agent/shared.Commit=${src.rev}" + "-X=github.com/ParetoSecurity/agent/shared.Version=${finalAttrs.version}" + "-X=github.com/ParetoSecurity/agent/shared.Commit=${finalAttrs.src.rev}" "-X=github.com/ParetoSecurity/agent/shared.Date=1970-01-01T00:00:00Z" ]; postInstall = '' # Install global systemd files - install -Dm400 ${src}/apt/paretosecurity.socket $out/lib/systemd/system/paretosecurity.socket - install -Dm400 ${src}/apt/paretosecurity.service $out/lib/systemd/system/paretosecurity.service + install -Dm400 ${finalAttrs.src}/apt/paretosecurity.socket $out/lib/systemd/system/paretosecurity.socket + install -Dm400 ${finalAttrs.src}/apt/paretosecurity.service $out/lib/systemd/system/paretosecurity.service substituteInPlace $out/lib/systemd/system/paretosecurity.service \ --replace-fail "/usr/bin/paretosecurity" "$out/bin/paretosecurity" # Install user systemd files - install -Dm444 ${src}/apt/paretosecurity-user.timer $out/lib/systemd/user/paretosecurity-user.timer - install -Dm444 ${src}/apt/paretosecurity-user.service $out/lib/systemd/user/paretosecurity-user.service + install -Dm444 ${finalAttrs.src}/apt/paretosecurity-user.timer $out/lib/systemd/user/paretosecurity-user.timer + install -Dm444 ${finalAttrs.src}/apt/paretosecurity-user.service $out/lib/systemd/user/paretosecurity-user.service substituteInPlace $out/lib/systemd/user/paretosecurity-user.service \ --replace-fail "/usr/bin/paretosecurity" "$out/bin/paretosecurity" - install -Dm444 ${src}/apt/paretosecurity-trayicon.service $out/lib/systemd/user/paretosecurity-trayicon.service + install -Dm444 ${finalAttrs.src}/apt/paretosecurity-trayicon.service $out/lib/systemd/user/paretosecurity-trayicon.service substituteInPlace $out/lib/systemd/user/paretosecurity-trayicon.service \ --replace-fail "/usr/bin/paretosecurity" "$out/bin/paretosecurity" ''; passthru.tests = { version = testers.testVersion { - version = "${version}"; + inherit (finalAttrs) version; package = paretosecurity; }; integration_test = nixosTests.paretosecurity; @@ -80,4 +88,4 @@ buildGoModule rec { maintainers = with lib.maintainers; [ zupo ]; mainProgram = "paretosecurity"; }; -} +}) From 3eeec77d119f29f6a02e63c631ab39e5ab45d0aa Mon Sep 17 00:00:00 2001 From: BirdeeHub Date: Fri, 18 Apr 2025 22:28:42 -0700 Subject: [PATCH 23/70] vimPlugins.lzextras: 0.4.0 -> 0.4.2 --- pkgs/development/lua-modules/generated-packages.nix | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pkgs/development/lua-modules/generated-packages.nix b/pkgs/development/lua-modules/generated-packages.nix index 44c8d6d993ee..c85e85277468 100644 --- a/pkgs/development/lua-modules/generated-packages.nix +++ b/pkgs/development/lua-modules/generated-packages.nix @@ -3625,15 +3625,15 @@ final: prev: { }: buildLuarocksPackage { pname = "lzextras"; - version = "0.4.0-1"; + version = "0.4.2-1"; knownRockspec = (fetchurl { - url = "mirror://luarocks/lzextras-0.4.0-1.rockspec"; - sha256 = "12s4jy3xqzb1dcan0gmgza6c9wyh44h348f4m3zzj29icffx4vyv"; + url = "mirror://luarocks/lzextras-0.4.2-1.rockspec"; + sha256 = "1awxr7bmf5hfgvn5vjra1rdn57dcsmv9v33b5pgp13q6yjhr750s"; }).outPath; src = fetchzip { - url = "https://github.com/BirdeeHub/lzextras/archive/v0.4.0.zip"; - sha256 = "1c92vm5q9vrr1imc3h9z9vvpkhlayywgk1n3wfkqbfi37ni066kw"; + url = "https://github.com/BirdeeHub/lzextras/archive/v0.4.2.zip"; + sha256 = "1apgv3g9blwh25hqjhz1b7la3m2c3pfzalg42kg7y0x66ga78qf0"; }; disabled = luaOlder "5.1"; From ef8404fe70ae519fb78e96e0dc406877c5ab1cd5 Mon Sep 17 00:00:00 2001 From: awwpotato Date: Sat, 19 Apr 2025 19:53:23 -0700 Subject: [PATCH 24/70] zee: modernize --- pkgs/applications/editors/zee/default.nix | 27 ++++++++++------------- pkgs/top-level/all-packages.nix | 4 +--- 2 files changed, 13 insertions(+), 18 deletions(-) diff --git a/pkgs/applications/editors/zee/default.nix b/pkgs/applications/editors/zee/default.nix index 43c63bb95260..8d9a9f0c382f 100644 --- a/pkgs/applications/editors/zee/default.nix +++ b/pkgs/applications/editors/zee/default.nix @@ -4,21 +4,21 @@ fetchFromGitHub, pkg-config, openssl, - stdenv, - Security, }: -rustPlatform.buildRustPackage rec { +rustPlatform.buildRustPackage (finalAttrs: { pname = "zee"; version = "0.3.2"; src = fetchFromGitHub { owner = "zee-editor"; - repo = pname; - rev = "v${version}"; - sha256 = "sha256-/9SogKOaXdFDB+e0//lrenTTbfmXqNFGr23L+6Pnm8w="; + repo = "zee"; + tag = "v${finalAttrs.version}"; + hash = "sha256-/9SogKOaXdFDB+e0//lrenTTbfmXqNFGr23L+6Pnm8w="; }; + cargoHash = "sha256-auwbpavF/WZQIE/htYXJ4di6xoRtXkBBkP/Bj4lFp6U="; + cargoPatches = [ # fixed upstream but unreleased ./update-ropey-for-rust-1.65.diff @@ -26,21 +26,18 @@ rustPlatform.buildRustPackage rec { nativeBuildInputs = [ pkg-config ]; - buildInputs = [ openssl ] ++ lib.optional stdenv.hostPlatform.isDarwin Security; + buildInputs = [ openssl ]; # disable downloading and building the tree-sitter grammars at build time # grammars can be configured in a config file and installed with `zee --build` # see https://github.com/zee-editor/zee#syntax-highlighting - ZEE_DISABLE_GRAMMAR_BUILD = 1; + env.ZEE_DISABLE_GRAMMAR_BUILD = 1; - useFetchCargoVendor = true; - cargoHash = "sha256-auwbpavF/WZQIE/htYXJ4di6xoRtXkBBkP/Bj4lFp6U="; - - meta = with lib; { + meta = { description = "Modern text editor for the terminal written in Rust"; homepage = "https://github.com/zee-editor/zee"; - license = licenses.mit; - maintainers = with maintainers; [ booklearner ]; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ booklearner ]; mainProgram = "zee"; }; -} +}) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 548a6291147d..36d07a6f5e41 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -3295,9 +3295,7 @@ with pkgs; xkcdpass = with python3Packages; toPythonApplication xkcdpass; - zee = callPackage ../applications/editors/zee { - inherit (darwin.apple_sdk.frameworks) Security; - }; + zee = callPackage ../applications/editors/zee { }; zeek = darwin.apple_sdk_11_0.callPackage ../applications/networking/ids/zeek { }; From 8c785010bd8cdd484fc04b67618085b3cd7c76c9 Mon Sep 17 00:00:00 2001 From: awwpotato Date: Sat, 19 Apr 2025 19:54:12 -0700 Subject: [PATCH 25/70] zee: move to by-name --- .../editors/zee/default.nix => by-name/ze/zee/package.nix} | 0 .../editors => by-name/ze}/zee/update-ropey-for-rust-1.65.diff | 0 pkgs/top-level/all-packages.nix | 2 -- 3 files changed, 2 deletions(-) rename pkgs/{applications/editors/zee/default.nix => by-name/ze/zee/package.nix} (100%) rename pkgs/{applications/editors => by-name/ze}/zee/update-ropey-for-rust-1.65.diff (100%) diff --git a/pkgs/applications/editors/zee/default.nix b/pkgs/by-name/ze/zee/package.nix similarity index 100% rename from pkgs/applications/editors/zee/default.nix rename to pkgs/by-name/ze/zee/package.nix diff --git a/pkgs/applications/editors/zee/update-ropey-for-rust-1.65.diff b/pkgs/by-name/ze/zee/update-ropey-for-rust-1.65.diff similarity index 100% rename from pkgs/applications/editors/zee/update-ropey-for-rust-1.65.diff rename to pkgs/by-name/ze/zee/update-ropey-for-rust-1.65.diff diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 36d07a6f5e41..798cc1f4f64b 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -3295,8 +3295,6 @@ with pkgs; xkcdpass = with python3Packages; toPythonApplication xkcdpass; - zee = callPackage ../applications/editors/zee { }; - zeek = darwin.apple_sdk_11_0.callPackage ../applications/networking/ids/zeek { }; zonemaster-cli = perlPackages.ZonemasterCLI; From 9642abde75968308074c4c8f28766f198a1bf322 Mon Sep 17 00:00:00 2001 From: awwpotato Date: Sat, 19 Apr 2025 19:46:12 -0700 Subject: [PATCH 26/70] textadept: modernize --- .../editors/textadept/default.nix | 25 ++++++++++--------- pkgs/top-level/all-packages.nix | 2 +- 2 files changed, 14 insertions(+), 13 deletions(-) diff --git a/pkgs/applications/editors/textadept/default.nix b/pkgs/applications/editors/textadept/default.nix index da5ffb192a3f..44632c5797dd 100644 --- a/pkgs/applications/editors/textadept/default.nix +++ b/pkgs/applications/editors/textadept/default.nix @@ -5,12 +5,11 @@ fetchurl, cmake, withQt ? true, - qtbase, - wrapQtAppsHook, + libsForQt5, withCurses ? false, ncurses, }: -stdenv.mkDerivation rec { +stdenv.mkDerivation (finalAttrs: { version = "12.4"; pname = "textadept"; @@ -18,13 +17,13 @@ stdenv.mkDerivation rec { name = "textadept11"; owner = "orbitalquark"; repo = "textadept"; - rev = "textadept_${version}"; - sha256 = "sha256-nPgpQeBq5Stv2o0Ke4W2Ltnx6qLe5TIC5a8HSYVkmfI="; + tag = "textadept_${finalAttrs.version}"; + hash = "sha256-nPgpQeBq5Stv2o0Ke4W2Ltnx6qLe5TIC5a8HSYVkmfI="; }; - nativeBuildInputs = [ cmake ] ++ lib.optionals withQt [ wrapQtAppsHook ]; + nativeBuildInputs = [ cmake ] ++ lib.optionals withQt [ libsForQt5.wrapQtAppsHook ]; - buildInputs = lib.optionals withQt [ qtbase ] ++ lib.optionals withCurses ncurses; + buildInputs = lib.optionals withQt [ libsForQt5.qtbase ] ++ lib.optionals withCurses ncurses; cmakeFlags = lib.optional withQt [ "-DQT=ON" ] @@ -44,16 +43,18 @@ stdenv.mkDerivation rec { ) (import ./deps.nix) ); - meta = with lib; { + meta = { description = "Extensible text editor based on Scintilla with Lua scripting"; homepage = "http://foicica.com/textadept"; - license = licenses.mit; - maintainers = with maintainers; [ + downloadPage = "https://github.com/orbitalquark/textadept"; + changelog = "https://github.com/orbitalquark/textadept/releases/tag/textadept_${finalAttrs.version}"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ raskin mirrexagon arcuru ]; - platforms = platforms.linux; + platforms = lib.platforms.linux; mainProgram = "textadept"; }; -} +}) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 548a6291147d..a26aeb132c88 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -5307,7 +5307,7 @@ with pkgs; texmaker = qt6Packages.callPackage ../applications/editors/texmaker { }; - textadept = libsForQt5.callPackage ../applications/editors/textadept { }; + textadept = callPackage ../applications/editors/textadept { }; texworks = qt6Packages.callPackage ../applications/editors/texworks { }; From a291b0d572578731460b8fad0d84f3bee39463da Mon Sep 17 00:00:00 2001 From: awwpotato Date: Sat, 19 Apr 2025 19:47:16 -0700 Subject: [PATCH 27/70] textadept: move to by-name --- pkgs/{applications/editors => by-name/te}/textadept/deps.nix | 0 .../textadept/default.nix => by-name/te/textadept/package.nix} | 0 pkgs/top-level/all-packages.nix | 2 -- 3 files changed, 2 deletions(-) rename pkgs/{applications/editors => by-name/te}/textadept/deps.nix (100%) rename pkgs/{applications/editors/textadept/default.nix => by-name/te/textadept/package.nix} (100%) diff --git a/pkgs/applications/editors/textadept/deps.nix b/pkgs/by-name/te/textadept/deps.nix similarity index 100% rename from pkgs/applications/editors/textadept/deps.nix rename to pkgs/by-name/te/textadept/deps.nix diff --git a/pkgs/applications/editors/textadept/default.nix b/pkgs/by-name/te/textadept/package.nix similarity index 100% rename from pkgs/applications/editors/textadept/default.nix rename to pkgs/by-name/te/textadept/package.nix diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index a26aeb132c88..bd36fb61ce1a 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -5307,8 +5307,6 @@ with pkgs; texmaker = qt6Packages.callPackage ../applications/editors/texmaker { }; - textadept = callPackage ../applications/editors/textadept { }; - texworks = qt6Packages.callPackage ../applications/editors/texworks { }; theLoungePlugins = From f5df5eaba6494ddffb2063f38a48ab73f390f97b Mon Sep 17 00:00:00 2001 From: Morgan Jones Date: Sun, 13 Oct 2024 18:35:59 -0700 Subject: [PATCH 28/70] dwarf-fortress: purge minor versions and add autoupdate Since DF saves are compatible within the same major version, we can simply keep the latest of each major version. From Dwarf Therapist 42.1.7 onward, dfhack-generated memory maps work in place of Therapist's builtin memory maps. Allow this to happen. --- doc/release-notes/rl-2505.section.md | 2 + pkgs/games/dwarf-fortress/README.md | 9 + pkgs/games/dwarf-fortress/default.nix | 75 ++- pkgs/games/dwarf-fortress/df.lock.json | 107 +++ pkgs/games/dwarf-fortress/dfhack/default.nix | 70 +- .../dwarf-therapist/default.nix | 14 +- .../dwarf-therapist/wrapper.nix | 110 ++- pkgs/games/dwarf-fortress/game.json | 151 ----- pkgs/games/dwarf-fortress/game.nix | 29 +- .../legends-browser/default.nix | 11 +- pkgs/games/dwarf-fortress/themes/default.nix | 1 - pkgs/games/dwarf-fortress/twbt/default.nix | 31 +- pkgs/games/dwarf-fortress/unfuck.nix | 32 - pkgs/games/dwarf-fortress/update.rb | 626 ++++++++++++++++++ pkgs/games/dwarf-fortress/update.sh | 40 -- pkgs/games/dwarf-fortress/wrapper/default.nix | 23 +- .../wrapper/dwarf-fortress-init.in | 2 +- .../dwarf-fortress/wrapper/dwarf-fortress.in | 2 +- 18 files changed, 928 insertions(+), 407 deletions(-) create mode 100644 pkgs/games/dwarf-fortress/README.md create mode 100644 pkgs/games/dwarf-fortress/df.lock.json delete mode 100644 pkgs/games/dwarf-fortress/game.json create mode 100755 pkgs/games/dwarf-fortress/update.rb delete mode 100755 pkgs/games/dwarf-fortress/update.sh diff --git a/doc/release-notes/rl-2505.section.md b/doc/release-notes/rl-2505.section.md index 5fcced82fd4d..7667e0912816 100644 --- a/doc/release-notes/rl-2505.section.md +++ b/doc/release-notes/rl-2505.section.md @@ -207,6 +207,8 @@ - `pnpm` was updated to version 10. If your project is incompatible, you can install the previous version from the package attribute `pnpm_9`. +- `dwarf-fortress-packages` now only contains one minor version for each major version since version 0.44. Saves should still be compatible, but you may have to change which minor version you were using if it was one other than the newest. + - `zig_0_9` and `zig_0_10` have been removed, you should upgrade to `zig_0_13` (also available as just `zig`), `zig_0_12` or `zig_0_11` instead. - `webpack-cli` was updated to major version 6, which has breaking changes from the previous version 5.1.4. See the [upstream release notes](https://github.com/webpack/webpack-cli/releases/tag/webpack-cli%406.0.0) for details on these changes. diff --git a/pkgs/games/dwarf-fortress/README.md b/pkgs/games/dwarf-fortress/README.md new file mode 100644 index 000000000000..210e1f0d0e88 --- /dev/null +++ b/pkgs/games/dwarf-fortress/README.md @@ -0,0 +1,9 @@ +# dwarf-fortress + +Maintainers, please read me! + +The policy for updates is currently keeping one major version of DF around since 0.44. +See [Save Compatibility](https://dwarffortresswiki.org/index.php/Save_compatibility) +on the DF wiki. Note that saves are backwards compatible, but not forwards-compatible. + +This policy has been in effect since Nixpkgs 25.05. diff --git a/pkgs/games/dwarf-fortress/default.nix b/pkgs/games/dwarf-fortress/default.nix index 1929319cf911..492274092554 100644 --- a/pkgs/games/dwarf-fortress/default.nix +++ b/pkgs/games/dwarf-fortress/default.nix @@ -61,12 +61,14 @@ let # out, ensure that (unfuck|dfhack|twbt) are all up to date before changing # this. Note that unfuck and twbt are not required for 50. latestVersion = - if stdenv.hostPlatform.isLinux then - "50.13" - else if stdenv.hostPlatform.isDarwin then - "0.47.05" - else - throw "Unsupported system"; + self.dfVersions.game.latest.${ + if stdenv.hostPlatform.isLinux then + "linux" + else if stdenv.hostPlatform.isDarwin then + "darwin" + else + throw "Unsupported system" + }; # Converts a version to a package name. versionToName = version: "dwarf-fortress_${replaceStrings [ "." ] [ "_" ] version}"; @@ -96,33 +98,50 @@ let stdenv = gccStdenv; }; - dwarf-therapist = libsForQt5.callPackage ./dwarf-therapist/wrapper.nix { - inherit dwarf-fortress; - dwarf-therapist = (libsForQt5.callPackage ./dwarf-therapist { }).override ( - optionalAttrs (!isAtLeast50) { - # 41.2.5 is the last version to support Dwarf Fortress 0.47. - version = "41.2.5"; - hash = "sha256-xfYBtnO1n6OcliVt07GsQ9alDJIfWdVhtuyWwuvXSZs="; + mkDfWrapper = + { + dwarf-fortress, + dfhack, + dwarf-therapist ? null, + ... + }@args: + callPackage ./wrapper ( + { + inherit (self) themes; + inherit + dwarf-fortress + twbt + dfhack + dwarf-therapist + ; + + jdk = jdk8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731 } + // args ); + + dwarf-therapist = libsForQt5.callPackage ./dwarf-therapist/wrapper.nix { + inherit dwarf-fortress dfhack mkDfWrapper; + dwarf-therapist = + (libsForQt5.callPackage ./dwarf-therapist { + inherit (self) dfVersions; + }).override + ( + optionalAttrs (!isAtLeast50) { + # 41.2.5 is the last version to support Dwarf Fortress 0.47. + version = "41.2.5"; + maxDfVersion = "0.47.05"; + hash = "sha256-xfYBtnO1n6OcliVt07GsQ9alDJIfWdVhtuyWwuvXSZs="; + } + ); }; in - callPackage ./wrapper { - inherit (self) themes; - inherit - dwarf-fortress - twbt - dfhack - dwarf-therapist - ; - - jdk = jdk8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731 - }; - }) (attrNames self.df-hashes) + mkDfWrapper { inherit dwarf-fortress dfhack dwarf-therapist; }; + }) (attrNames self.dfVersions.game.versions) ); self = rec { - df-hashes = importJSON ./game.json; + dfVersions = importJSON ./df.lock.json; # Aliases for the latest Dwarf Fortress and the selected Therapist install dwarf-fortress = getAttr (versionToName latestVersion) df-games; @@ -135,9 +154,7 @@ let soundSense = callPackage ./soundsense.nix { }; - legends-browser = callPackage ./legends-browser { - jre = jre8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731 - }; + legends-browser = callPackage ./legends-browser { }; themes = recurseIntoAttrs ( callPackage ./themes { diff --git a/pkgs/games/dwarf-fortress/df.lock.json b/pkgs/games/dwarf-fortress/df.lock.json new file mode 100644 index 000000000000..ff5d22df9714 --- /dev/null +++ b/pkgs/games/dwarf-fortress/df.lock.json @@ -0,0 +1,107 @@ +{ + "game": { + "latest": { + "linux": "51.10", + "darwin": "0.47.05" + }, + "versions": { + "51.10": { + "df": { + "version": "51.10", + "urls": { + "linux": { + "url": "https://www.bay12games.com/dwarves/df_51_10_linux.tar.bz2", + "outputHash": "sha256-r4dadc/nch2smNHt4Ixa2FG2Sc1NFmY88iSnFFeMcz0=" + } + } + }, + "hack": { + "version": "51.10-r1", + "git": { + "url": "https://github.com/DFHack/dfhack.git", + "revision": "51.10-r1", + "outputHash": "sha256-TsgafCiLX/IZXgBdqQaRt7hmATwKz80x2xclCwdE3fM=" + }, + "xmlRev": "ec3ab067aef716817d9c5b84a6fb85bc22516caa" + } + }, + "50.15": { + "df": { + "version": "50.15", + "urls": { + "linux": { + "url": "https://www.bay12games.com/dwarves/df_50_15_linux.tar.bz2", + "outputHash": "sha256-KkKcXfXjD7dUjQDfKtXiaKfoieRN8wJSYxyN6liBwU4=" + } + } + }, + "hack": { + "version": "50.15-r2", + "git": { + "url": "https://github.com/DFHack/dfhack.git", + "revision": "50.15-r2", + "outputHash": "sha256-6T1RXdBJdo/tvHXwYATS8emLIfDg7/0cGL4i982iHdY=" + }, + "xmlRev": "c6c8f15afec05d457813c003a869509901993af4" + } + }, + "0.47.05": { + "df": { + "version": "0.47.05", + "urls": { + "linux": { + "url": "https://www.bay12games.com/dwarves/df_47_05_linux.tar.bz2", + "outputHash": "sha256-rHSm27fX2WIfQwQFCAMiq1DDX2YyNS/y6pI/bcWv/KM=" + }, + "darwin": { + "url": "https://www.bay12games.com/dwarves/df_47_05_osx.tar.bz2", + "outputHash": "sha256-vHmpKtuWSX1ZVGN46MmrLvZ8oiq/vZdjYW3pwuAOXyQ=" + } + } + }, + "hack": { + "version": "0.47.05-r8", + "git": { + "url": "https://github.com/DFHack/dfhack.git", + "revision": "0.47.05-r8", + "outputHash": "sha256-y5XluaNU0ewUg2uAd77+h80CYDwNr1rsxB8IslZWip8=" + }, + "xmlRev": "afe7e908e9e7e863412e8983f9feb2b999fae498" + } + }, + "0.44.12": { + "df": { + "version": "0.44.12", + "urls": { + "linux": { + "url": "https://www.bay12games.com/dwarves/df_44_12_linux.tar.bz2", + "outputHash": "sha256-Wi0Vcw0htBpo2gnOPDtww+Km/RW5XGy/toV47S0tuXk=" + }, + "darwin": { + "url": "https://www.bay12games.com/dwarves/df_44_12_osx.tar.bz2", + "outputHash": "sha256-IY1TGZ9+ufWMA146XUTYgvG2ngfvY/mKZZDWGm/IptU=" + } + } + }, + "hack": { + "version": "0.44.12-r3", + "git": { + "url": "https://github.com/DFHack/dfhack.git", + "revision": "0.44.12-r3", + "outputHash": "sha256-8ChD4P7SpSNlhhOsrbIxoJ/T/CWobwvOY7QswxP0KK0=" + }, + "xmlRev": "4053321b202a29f667d64d824ba8339ec1b1df4f" + } + } + } + }, + "therapist": { + "version": "42.1.12", + "maxDfVersion": "51.10", + "git": { + "url": "https://github.com/Dwarf-Therapist/Dwarf-Therapist.git", + "revision": "v42.1.12", + "outputHash": "sha256-/6tiFjfrAziw7XeEzPoNFgrsXk8Z7ea2PGjCvJlRt+A=" + } + } +} diff --git a/pkgs/games/dwarf-fortress/dfhack/default.nix b/pkgs/games/dwarf-fortress/dfhack/default.nix index 2caa6b9b85af..50f5ec2c9803 100644 --- a/pkgs/games/dwarf-fortress/dfhack/default.nix +++ b/pkgs/games/dwarf-fortress/dfhack/default.nix @@ -24,6 +24,7 @@ binutils, gnused, dfVersion, + dfVersions, }: let @@ -40,77 +41,20 @@ let versionAtLeast ; - dfhack-releases = { - "0.44.10" = { - dfHackRelease = "0.44.10-r2"; - hash = "sha256-0RikMwFv/eJk26Hptnam6J97flekapQhjWvw3+HTfaU="; - xmlRev = "321bd48b10c4c3f694cc801a7dee6be392c09b7b"; - }; - "0.44.11" = { - dfHackRelease = "0.44.11-beta2.1"; - hash = "sha256-Yi/8BdoluickbcQQRbmuhcfrvrl02vf12MuHmh5m/Mk="; - xmlRev = "f27ebae6aa8fb12c46217adec5a812cd49a905c8"; - prerelease = true; - }; - "0.44.12" = { - dfHackRelease = "0.44.12-r1"; - hash = "sha256-3j83wgRXbfcrwPRrJVHFGcLD+tXy1M3MR2dwIw2mA0g="; - xmlRev = "23500e4e9bd1885365d0a2ef1746c321c1dd5094"; - }; - "0.47.02" = { - dfHackRelease = "0.47.02-alpha0"; - hash = "sha256-ScrFcfyiimuLgEaFjN5DKKRaFuKfdJjaTlGDit/0j6Y="; - xmlRev = "23500e4e9bd1885365d0a2ef1746c321c1dd509a"; - prerelease = true; - }; - "0.47.04" = { - dfHackRelease = "0.47.04-r5"; - hash = "sha256-0s+/LKbqsS/mrxKPDeniqykE5+Gy3ZzCa8yEDzMyssY="; - xmlRev = "be0444cc165a1abff053d5893dc1f780f06526b7"; - }; - "0.47.05" = { - dfHackRelease = "0.47.05-r7"; - hash = "sha256-vBKUTSjfCnalkBzfjaIKcxUuqsGGOTtoJC1RHJIDlNc="; - xmlRev = "f5019a5c6f19ef05a28bd974c3e8668b78e6e2a4"; - }; - "50.10" = { - dfHackRelease = "50.10-r1.1"; - hash = "sha256-k2j8G4kJ/RYE8W0YDOxcsRb5qjjn4El+rigf0v3AqZU="; - xmlRev = "041493b221e0799c106abeac1f86df4535ab80d3"; - needsPatches = true; - }; - "50.11" = { - dfHackRelease = "50.11-r7"; - hash = "sha256-3KsFc0i4XkzoeRvcl5GUlx/fJB1HyqfZm+xL6T4oT/A="; - xmlRev = "cca87907c1cbfcf4af957b0bea3a961a345b1581"; - needsPatches = true; - }; - "50.12" = { - dfHackRelease = "50.12-r3"; - hash = "sha256-2mO8DpNmZRCV7IRY0arf3SMvlO4Pxs61Kxfh3q3k3HU="; - xmlRev = "980b1af13acc31660dce632f913c968f52e2b275"; - }; - "50.13" = { - dfHackRelease = "50.13-r3"; - hash = "sha256-WbkJ8HmLT5GdZgDmcuFh+1uzhloKM9um0b9YO//uR7Y="; - xmlRev = "f0530a22149606596e97e3e17d941df3aafe29b9"; - }; - }; - release = if isAttrs dfVersion then dfVersion - else if hasAttr dfVersion dfhack-releases then - getAttr dfVersion dfhack-releases + else if hasAttr dfVersion dfVersions.game.versions then + (getAttr dfVersion dfVersions.game.versions).hack else throw "[DFHack] Unsupported Dwarf Fortress version: ${dfVersion}"; - version = release.dfHackRelease; + inherit (release) version; isAtLeast50 = versionAtLeast version "50.0"; needs50Patches = isAtLeast50 && (release.needsPatches or false); # revision of library/xml submodule - xmlRev = release.xmlRev; + inherit (release) xmlRev; arch = if stdenv.hostPlatform.system == "x86_64-linux" then @@ -149,8 +93,8 @@ stdenv.mkDerivation { src = fetchFromGitHub { owner = "DFHack"; repo = "dfhack"; - rev = release.dfHackRelease; - inherit (release) hash; + tag = release.git.revision; + hash = release.git.outputHash; fetchSubmodules = true; }; diff --git a/pkgs/games/dwarf-fortress/dwarf-therapist/default.nix b/pkgs/games/dwarf-fortress/dwarf-therapist/default.nix index 05cc82297acb..ce41cd2c3398 100644 --- a/pkgs/games/dwarf-fortress/dwarf-therapist/default.nix +++ b/pkgs/games/dwarf-fortress/dwarf-therapist/default.nix @@ -6,8 +6,12 @@ qtdeclarative, cmake, ninja, - version ? "42.1.6", - hash ? "sha256-VjCXT4sl3HsFILrqTc3JJSeRedZaOXUbf4KvSzTo0uc=", + dfVersions, + + # see: https://github.com/Dwarf-Therapist/Dwarf-Therapist/releases + version ? dfVersions.therapist.version, + maxDfVersion ? dfVersions.therapist.maxDfVersion, + hash ? dfVersions.therapist.git.outputHash, }: stdenv.mkDerivation rec { @@ -18,7 +22,7 @@ stdenv.mkDerivation rec { src = fetchFromGitHub { owner = "Dwarf-Therapist"; repo = "Dwarf-Therapist"; - rev = "v${version}"; + tag = "v${version}"; inherit hash; }; @@ -46,6 +50,10 @@ stdenv.mkDerivation rec { dontWrapQtApps = true; + passthru = { + inherit maxDfVersion; + }; + meta = with lib; { mainProgram = "dwarftherapist"; description = "Tool to manage dwarves in a running game of Dwarf Fortress"; diff --git a/pkgs/games/dwarf-fortress/dwarf-therapist/wrapper.nix b/pkgs/games/dwarf-fortress/dwarf-therapist/wrapper.nix index 42da0604567b..62f4b3bdaf91 100644 --- a/pkgs/games/dwarf-fortress/dwarf-therapist/wrapper.nix +++ b/pkgs/games/dwarf-fortress/dwarf-therapist/wrapper.nix @@ -1,10 +1,16 @@ { + lib, stdenv, + writeText, dwarf-therapist, dwarf-fortress, + dfhack, + mkDfWrapper, replaceVars, coreutils, wrapQtAppsHook, + expect, + xvfb-run, }: let @@ -15,12 +21,26 @@ let in prefix + base; inifile = "linux/v0.${builtins.toString dwarf-fortress.baseVersion}.${dwarf-fortress.patchVersion}${platformSlug}.ini"; + unsupportedVersion = lib.versionOlder dwarf-therapist.maxDfVersion dwarf-fortress.dfVersion; + # Used to run dfhack to produce a Therapist ini file for the current memory map. + # See: http://www.bay12forums.com/smf/index.php?topic=168411.msg8532557#msg8532557 + dfHackExpectScript = writeText "dfhack.exp" '' + spawn xvfb-run dfhack +devel/export-dt-ini + expect "DFHack is ready. Have a nice day!" + send "die\r" + ''; + + dfHackWrapper = mkDfWrapper { + inherit dwarf-fortress dfhack; + enableDFHack = true; + }; in stdenv.mkDerivation { pname = "dwarf-therapist"; - inherit (dwarf-therapist) version meta; + inherit (dwarf-therapist) version meta maxDfVersion; + inherit (dwarf-fortress) dfVersion; wrapper = replaceVars ./dwarf-therapist.in { stdenv_shell = "${stdenv.shell}"; @@ -36,37 +56,79 @@ stdenv.mkDerivation { paths = [ dwarf-therapist ]; - nativeBuildInputs = [ wrapQtAppsHook ]; + nativeBuildInputs = + [ wrapQtAppsHook ] + ++ lib.optionals unsupportedVersion [ + expect + xvfb-run + dfHackWrapper + ]; passthru = { inherit dwarf-fortress dwarf-therapist; }; - buildCommand = '' - mkdir -p $out/bin + buildCommand = + lib.optionalString unsupportedVersion '' + fixupMemoryMaps() ( + local output="$1" + local orig_md5="$2" + local patched_md5="$3" + echo "It doesn't support DF $dfVersion out of the box, so we're doing it the hard way." + export NIXPKGS_DF_HOME="$(mktemp -dt dfhack.XXXXXX)" + expect ${dfHackExpectScript} + local ini="$NIXPKGS_DF_HOME/therapist.ini" + if [ -f "$ini" ]; then + if grep -q "$patched_md5" "$ini"; then + cp -v "$ini" "$output" + else + echo "Couldn't find MD5 ($patched_md5) in $ini" + exit 1 + fi + else + echo "Couldn't find $ini!" + exit 1 + fi + ) + '' + + lib.optionalString (!unsupportedVersion) '' + fixupMemoryMaps() { + echo "It should support DF $dfVersion, but we couldn't find any memory maps." + echo "This is a nixpkgs bug, please report it!" + exit 1 + } + '' + + '' + mkdir -p $out/bin - install -Dm755 $wrapper $out/bin/dwarftherapist - ln -s $out/bin/dwarftherapist $out/bin/DwarfTherapist + install -Dm755 $wrapper $out/bin/dwarftherapist + ln -s $out/bin/dwarftherapist $out/bin/DwarfTherapist - substituteInPlace $out/bin/dwarftherapist \ - --subst-var-by install $out - wrapQtApp $out/bin/dwarftherapist + substituteInPlace $out/bin/dwarftherapist \ + --subst-var-by install $out + wrapQtApp $out/bin/dwarftherapist - # Fix up memory layouts - ini_path="$out/share/dwarftherapist/memory_layouts/${inifile}" - rm -f "$ini_path" - mkdir -p "$(dirname -- "$ini_path")" - orig_md5=$(cat "${dwarf-fortress}/hash.md5.orig" | cut -c1-8) - patched_md5=$(cat "${dwarf-fortress}/hash.md5" | cut -c1-8) - input_file="${dwarf-therapist}/share/dwarftherapist/memory_layouts/${inifile}" - output_file="$out/share/dwarftherapist/memory_layouts/${inifile}" + # Fix up memory layouts + input_file="${dwarf-therapist}/share/dwarftherapist/memory_layouts/${inifile}" + output_file="$out/share/dwarftherapist/memory_layouts/${inifile}" + rm -f "$output_file" + mkdir -p "$(dirname -- "$output_file")" - echo "[Dwarf Therapist Wrapper] Fixing Dwarf Fortress MD5 prefix:" - echo " Input: $input_file" - echo " Search: $orig_md5" - echo " Output: $output_file" - echo " Replace: $patched_md5" + orig_md5=$(cat "${dwarf-fortress}/hash.md5.orig" | cut -c1-8) + patched_md5=$(cat "${dwarf-fortress}/hash.md5" | cut -c1-8) - substitute "$input_file" "$output_file" --replace-fail "$orig_md5" "$patched_md5" - ''; + if [ -f "$input_file" ]; then + echo "[Dwarf Therapist Wrapper] Fixing Dwarf Fortress MD5 prefix:" + echo " Input: $input_file" + echo " Search: $orig_md5" + echo " Output: $output_file" + echo " Replace: $patched_md5" + + substitute "$input_file" "$output_file" --replace-fail "$orig_md5" "$patched_md5" + else + echo "[Dwarf Therapist Wrapper] OH NO! No memory maps found!" + echo "This version of Therapist ($dfVersion) has max DF version $maxDfVersion." + fixupMemoryMaps "$output_file" "$orig_md5" "$patched_md5" + fi + ''; preferLocalBuild = true; } diff --git a/pkgs/games/dwarf-fortress/game.json b/pkgs/games/dwarf-fortress/game.json deleted file mode 100644 index 4fb341c350e9..000000000000 --- a/pkgs/games/dwarf-fortress/game.json +++ /dev/null @@ -1,151 +0,0 @@ -{ - "0.43.05": { - "linux": "1r0b96yrdf24m9476k5x7rmp3faxr0kfwwdf35agpvlb1qbi6v45", - "linux32": "16l1lydpkbnl3zhz4i2snmjk7pps8vmw3zv0bjgr8dncbsrycd03", - "osx": "1j2zdkjnmxy8yn599pm0qmbi4zjp1m8h4ggqjxhyzp135h0lqqf9", - "osx32": "09ym4mflp5z78pk5mvj7b44xihnsvrxmh0b5kix6h1m6z3cc90l4", - "win": "0m337wh4c47ij1f3zrimvy7baff7nzrmgjbmrwdy89d0z90xpnx8", - "win_s": "0bjk5m1qkn3ldhqiwbq24y2m9fz9r574d54ngdb8b4ri2xfl1fbp", - "win32": "162rl9ygpj66pis87bqc5bwc0mk75hxv6ianhn87pbl4rh7g8ax8", - "win32_s": "0gv1jyw5fdskjjs27pr41grbmkk7ipqn0ry615f5g79k3mhl200i", - "legacy": "09lvbmg1gq257qchlbmq7hxc5nl9r39jpf73zhmwb5xfbpprn0zs", - "legacy_s": "023a5b27fm65w7gmzjssyyci70fdjk2zbv965y4n0f23kc4rj9gl", - "legacy32": "1m75arxj1q82l2dkk8qcargm3xczxlqi8krwvg3iimddky34gipq", - "legacy32_s": "1hgzsk66isfr5vcraxwgl7cvycl14kwf8w9kzxr8jyp5z7k24q29" - }, - "0.44.05": { - "linux": "18bjyhjp5458bfbizm8vq4s00pqpfs097qp6pv76m84kgbc4ghg3", - "linux32": "1b9i4kf4c8s6bhqwn8jx100mg7fqp8nmswrai5w8dsma01py4amr", - "osx": "1ssc8vq3ad38x9c04j8gg96kxv0g2npi3jwcg40676byx5nrx7b6", - "osx32": "12i7x8idcbvp5h62jyc7b7j98jf4lrisnwglvnrms6jclj0b3g0q", - "win": "1kaifarjx0akg7s5a2ngfw0vm0vyr4jnax5rrbv96dliqn5knddz", - "win_s": "1a1xikrjdv4b0yfgnp5s8d6xn0njylynsqd8zixdc01vccl5kqm6", - "win32": "1j3cq0h7jdvxbsbpfxa7bli45smvy9m4fji0j6849kj7x0vcpwq4", - "win32_s": "10cw1n48ffkrv9ms07ka5b5370d9k2fm051cnnq03lkcvlwrq145", - "legacy": "0y7xpgmwn4nshhc7apyf8mj5ycl0q5vckdaviwzz6w1x31s3dp6n", - "legacy_s": "0j8rbw9ww1avmh8zhyzljjj6in87q4qffpffdl394fsi74n8px0d", - "legacy32": "0d3l4jvx53a01fjf1lf20ar9lfyykfhk05dlrfwz3w4k7vj4vvlf", - "legacy32_s": "1c5x9x44bblz7anhmk4y9a7p1b39b9k7gzvj4pi55jzfq0k60kl7" - }, - "0.44.09": { - "linux": "1haikynkg1pqyrzzqk1qxm19p36ww58qp8brh3fjxssp4x71rcdy", - "linux32": "0lmbrdf7wjdwj5yx0khnq871yxvhfwqxjjyfkqcdy5ik18lvlkj8", - "osx": "01dss8g9lmi8majp6lxcfw166ydz4himkz6am5pi29gixaf4vfqs", - "osx32": "1iwlvmz1ir9k0kzn6726frmkznvsg9a99bbqnxvwcnq3nnnjxw3s", - "win": "08g5irgp59dfjgj3jxc8ixwzgnz2wghcl8cg1b1g4088dsf2x3x8", - "win_s": "1xyb4msn9wfrh7x136r8xn3sjz6z8c4zksbzifa0z0bpa3pdviap", - "win32": "0m8bs2mnyi1r4x84fwnfgd1ijdcf08xsq5zy84476svci932g5kz", - "win32_s": "0pl319qmyy96ibzlgj4wfj19dv1wzyg8ig6q11l4c7rivzc9286i", - "legacy": "0l8nrvppfzazhjsfkd5nd0bxnc6ljk8fs6yg8qh69g7q7zvzgnd3", - "legacy_s": "1c49z539a31czzq0rnhg6yrv1zbaja35sd0ssr4k7lsghjv84k1z", - "legacy32": "155xg6dpb8frlw7d9h7m1y0spw55wl4nkn7zrm70bpyp39pydlqp", - "legacy32_s": "05qkzjfx1ybrv96wya1dirdfxdkhj6a440sjpzwbqpkqgr8z57a3" - }, - "0.44.10": { - "linux": "1cqm43hn3ar9d8a7y7dwq48ajp72cirn1gclh8r2fykkypprxmp2", - "linux32": "0gdb6sq8725nwdisxwha8f5b6arq570s73aj4gdrh611gxh13r6n", - "osx": "1wpa45d81q8f5mhqmaxvdkz93k6cm3pg7vpsqjjjsp5s961gd74g", - "osx32": "0rsy1n19n12gh8rddgi3db32in488f2nizq8kw25hga03hsh4r6x", - "win": "04i0ka12hmn3chsyfmk2pbknr1pdf3p8yaz7kv82ri4g6dvsjfv6", - "win_s": "01m6nqcrz4rhdc8wb31azj3vmjid8bdpqaf9wkz4g4vvjyy7xiyz", - "win32": "1nymin8wbzbh8gm2702dy7h5spdijdxnysdz71ldyl0xx4vw68d9", - "win32_s": "1skz0jpfm6j9bins04kn96f3v3k0kvjqlh25x3129r3hh8xacnd3", - "legacy": "0s84vpfr2b5y1kda9allqjrpkaxw15mkblk9dq08syhsj19vspa7", - "legacy_s": "18b7ikp7xy2y071h3ydfh5mq9hw9y303rdqyikvra5ji3n5p96cm", - "legacy32": "1yh2fl3qwpy6wrxavhn75grbjygymnfh746hxbmc60la7y5flrpy", - "legacy32_s": "0j65w2hxgpccg9qsaz14r82qvnvfd0pbl2gyx9fv8d77kxhkc4pw" - }, - "0.44.11": { - "linux": "1qizfkxl2k6pn70is4vz94q4k55bc3pm13b2r6yqi6lw1cnna4sf", - "linux32": "11m39lfyrsxlw1g7f269q7fzwichg06l21fxhqzgvlvmzmxsf8q5", - "osx": "073hmcj7bm323m3xqi42605rkvmgmv83bnxz1byymgs8aqyfykkx", - "osx32": "0w5avnj86wprk8q0rb5qm9kxbigzk6dk0akqbw4m76jgg2jdmir7", - "win": "1yxyv1sycn5jc3g1y02d82154xydg3kbghis7l3xi28n3bh8387b", - "win_s": "1xzwl6c362wqgps911y9q8vndp8zyd20fc2p7pkzzmw2hrgfqi6q", - "win32": "16x2rg3gm3lh2akg7n057kkxxigb2ljz0nk685lmn4j0adq8l31p", - "win32_s": "1a2y220111d94mzj5y3jwpy062k8fw25akyp7yn3fwa17vwvn8zq", - "legacy": "0gfjmsfqj21hs4d1hm7fvppbdjspc4r2qnnp6mwcbgh67i5p5rdb", - "legacy_s": "1wr4hpzmhgl8haric3jpfd3kwqv1fi4vkb1gvaax5f7kplvfqfac", - "legacy32": "1cpzckwvqkxqn0c498mmh4papsjdi3mcvcp2vzlvj46kvdl3n0f0", - "legacy32_s": "024vzwfcrx7ms4dip0ccwd0vizzck2pwz2ryyvlz4rpjzhswj5gi" - }, - "0.44.12": { - "win32": "0bxrc7zj4vgcgdwc130g6f5jnp13vgx9a2kn2l1jcc958x8a367g", - "linux32": "0fmr8diskmbh12s0bpfn5gky9lmrc7xxj6va5adjm6ahxv9jwr06", - "osx": "1md6r1pimmlhcn5gjqzg0ygbdwc2v125sfjy0f6gbfbykwcm7391", - "osx32": "1dbg7pavxw20r8iqc566fn558avgj5glsycvi6ggbvsh0rpw6n5v", - "win": "0zb5ximqi5j7vyvgjzfz7ycadh5sgb7jlyaa68x0sjlbybdr1min", - "win_s": "1ncf5zr1fggr5knf30l0wh7spp376v1jcc6m9c86zim8azcfx0y7", - "linux": "0ydr5lnysy45nsznqp5r2pysdqn3f0xkrkh9v9l1md111mriabas", - "win32_s": "1mxbjkikf010skrpng51r86jmv4nal51j5n1y9kyhv344bq6chr9", - "legacy": "11a212ynhx18p3k8hvdjx199din14wggxiwz191b4309fznzpprz", - "legacy_s": "05madj529y18ndxrih96mivbzng1vz2zbzicrcnj58i2084zm23f", - "legacy32": "0rapcydiic2nq6idjf7fg53xsxk8dxzyi1vflpz554ghdrnsmwjv", - "legacy32_s": "16fgbd3lx4r270dxqj6gr1g1iqjj8cv389h2hw1l646xx28g8d2m" - }, - "0.47.01": { - "linux": "1wbybkfpgvpd2yliy8mfgddnz806ac4rv4j0lhlsqwpk8jj0mx81", - "linux32": "1fnz1mydqgybcm8kzranvjzc2x9g6bcalxv3fsjngvpv13x6izzv", - "osx": "18wdffidasbrsbhqjwds08ckbrjhcw0759aynz7zggyy5is9q8iw", - "osx32": "1b4kf3vg0zd5w5s0rdhzfz0rswkl6sq0j1f8qmimnw7qd09h43wx", - "win": "1v3v2z7g67d6926h9lxakznvbddyxyr85i1ym34y2wywnc886z7r", - "win_s": "0yahynimhz4nvdi5qp5a612vf7ikg87w2aj2r8s1lhdw6xwdkpyc", - "win32": "07mqhm64c1ddjc3vpyhf9qf14lp19xwz3pgg4c2pvcwy4yyrys22", - "win32_s": "07acbxai8g04yxg7n68nyx4jwcqqkgjn7n96q2lzxdvc988kiivz", - "legacy32_s": "1gxmc3rsl9glai3wb4wzsda3qyhdimd8s5kbr5m753n8lmzasafx" - }, - "0.47.02": { - "linux": "1zbsygbfiqxxs767qxkxjp3ayywi5q0d8xlrqlbd0l8a3ccg5avw", - "linux32": "1ddc9s4n408j8gidgign51bgv2wgy5z4cy74jzx00pvnhsfp2mpy", - "osx": "1mwy88yxip1wys1kxpfsbg7wlvfrkc4lg04gqw0d266a88dj7a30", - "osx32": "08ssnzl52gqqgcqhl0ynyikbxz76825kpcg1d6yx8g7ifjndf19n", - "win": "08g7fy18y8q32l0158314bny0qg57xz37qj9fri9r4xbhci67ldk", - "win_s": "0x56s1md62yk661aqcdgnz8k0zir0zr8qwan5vrqc0q9yh069yl1", - "win32": "0ww64mymbilb235n93d7w4c9axq3ww2mxa0f7bl4x8yrxwc8k942", - "win32_s": "0r801vip807v88icf47i3s82v7lshx67q4ilzfjirqfslh1x00bs", - "legacy": "14f4d6r7swfjnlaalg4l5916ihj6wvhlsgjp7cygamzp4c2wgng8", - "legacy_s": "1jxf52kaijf4crwxj30a4f6z7rzs6xa91y6vn5s8jr0cvbr5pz64", - "legacy32": "0j7shqdv3gimacj03cil2y0fmr0j0fp57cwmdjwnxwx3m96k3xwm", - "legacy32_s": "1wc7pcp9dwz0q1na3i5pbqknya595qdkmr7hsmgh2kk8rsp3g9g2" - }, - "0.47.04": { - "linux": "1ri82c5hja6n0wv538srf2nbcyb8ip49w4l201m90cmcycmqgr8x", - "linux32": "00yz8gl75sbx15d7vl22ij0a5qd325kpc9mgm1lh5g7i065vgzn8", - "osx": "0c1g655bn5n4pbzxw3v83gmy54va5y87m7ksi6iryfal0m9lshhv", - "osx32": "1knfgqbwa7v9va1w6i8yzz6xp3dj633dbs50izx6ldszm0ra42pg", - "win": "0j7ixr3rf9900zzfw3nd3vg97kdkspm530cmf9dkwhf6klmpks7s", - "win_s": "11amw5gjhi753mvf17wifcjiyikjx0qwa16787gfhj9jfp0yw764", - "win32": "1xw9f49n85c31kbzkm5zh81kccjx9msjyy3xwr0klak5w398a59l", - "win32_s": "0s26hrgfk2b5wg4dvg90wgw1mvrrvbyjhmsys9f5fl7zn1pjbxxr", - "legacy": "103bcnn8gxi2rkpjmjfgv5a5kxmh1zd7vagrsscv55sppd7fcl7n", - "legacy_s": "19ai7lvxx0y3iha9qrbl5krric547rzs6vm4ibk8x61vv97jrbd8", - "legacy32": "0lli6s1g7yj3p3h26ajgq3h619n88qn6s7amyz6z8w7hyzfi7wij", - "legacy32_s": "1wzxbzgln9pmsk2nchrl94d2yd09xdgynmjl4qwcaqzkrnf3sfqc" - }, - "0.47.05": { - "linux": "18zwmz2nsgwjxbr2yd9jcrgw6l5b481hh1848cgn5nfpnzdscx5c", - "linux32": "1jbav7ghsjsxd6cdp6f2x5qn83zc8707dqan5sp73fp6mbj2jasl", - "osx": "092z1vhc5sbdc5irggdz5ai7rxifmg4yhy33aicpsjcnvcmajydw", - "osx32": "0lpbwfiagp0zp280aw3fmj8938w5fc5r9gibzk2h86jy63ps29ww", - "win": "0bbk7j3d4h2wn9hmbsbbbbr0ajf3ddlprxfaajfbnbiyv72cpn9s", - "win_s": "0nl7c9dpfx7jjpy7y52z8h3kiy4cpax1m58apbcfyy95an4jz8s4", - "win32": "08ka1lklly82h4mr770y9p0a21x9dx6jqvjgxdsxj5979f26il1v", - "win32_s": "06w844zxzx3lfykibgkk4gbg4xymnqraj1ikv4mzlv31l727a1x4", - "legacy": "042a0gbad3cp5dwhnrzg3vr9w48b8ybqgxgw5i9rk4c1i0gjjpw2", - "legacy_s": "1rb7h8lzlsjs08rvhhl3nwbrpj54zijijp4y0qdp4vyzsig6nisk", - "legacy32": "0ayw09x9smihh8qp5pdvr6vvhwkvcqz36h3lh4g1b5kzxj7g9cyf", - "legacy32_s": "10gfxlysfs9gyi1mv52idp5xk45g9h517g2jq4a8cqp2j7594v9c" - }, - "50.10": { - "linux": "13s5p7205r9ha2j5n7carrwd0y7krq34bcdl08khp0kh2v4470a3" - }, - "50.11": { - "linux": "0iz2d88gzvn0vjxlr99f13j4awhvh2lggjmipdwpbxhfsqih7dx0" - }, - "50.12": { - "linux": "070014fzwszfgjyxjyij0k0hadah6s62lpi91ykp3vs220azya1m" - }, - "50.13": { - "linux": "19wzgsdgv0vq7v2dxhypr9hayky3nm3lbra1kk9vn8ri96jdkfkw" - } -} diff --git a/pkgs/games/dwarf-fortress/game.nix b/pkgs/games/dwarf-fortress/game.nix index b394cd991635..61a0ee31039c 100644 --- a/pkgs/games/dwarf-fortress/game.nix +++ b/pkgs/games/dwarf-fortress/game.nix @@ -15,7 +15,7 @@ gcc, dfVersion, - df-hashes, + dfVersions, }: let @@ -35,14 +35,9 @@ let ; # Map Dwarf Fortress platform names to Nixpkgs platform names. - # Other srcs are available like 32-bit mac & win, but I have only - # included the ones most likely to be needed by Nixpkgs users. platforms = { x86_64-linux = "linux"; - i686-linux = "linux32"; - x86_64-darwin = "osx"; - x86_64-cygwin = "win"; - i686-cygwin = "win32"; + x86_64-darwin = "darwin"; }; dfVersionTuple = splitVersion dfVersion; @@ -61,8 +56,8 @@ let && (dwarf-fortress-unfuck.dfVersion or null) == dfVersion; game = - if hasAttr dfVersion df-hashes then - getAttr dfVersion df-hashes + if hasAttr dfVersion dfVersions.game.versions then + (getAttr dfVersion dfVersions.game.versions).df else throw "Unknown Dwarf Fortress version: ${dfVersion}"; dfPlatform = @@ -70,9 +65,9 @@ let getAttr stdenv.hostPlatform.system platforms else throw "Unsupported system: ${stdenv.hostPlatform.system}"; - sha256 = - if hasAttr dfPlatform game then - getAttr dfPlatform game + url = + if hasAttr dfPlatform game.urls then + getAttr dfPlatform game.urls else throw "Unsupported dfPlatform: ${dfPlatform}"; exe = @@ -87,8 +82,8 @@ stdenv.mkDerivation { version = dfVersion; src = fetchurl { - url = "https://www.bay12games.com/dwarves/df_${toString baseVersion}_${toString patchVersion}_${dfPlatform}.tar.bz2"; - inherit sha256; + inherit (url) url; + hash = url.outputHash; }; sourceRoot = "."; @@ -184,7 +179,11 @@ stdenv.mkDerivation { dfVersion exe ; - updateScript = ./update.sh; + updateScript = { + command = [ ./update.rb ]; + attrPath = "dwarf-fortress-packages"; + supportedFeatures = [ "commit" ]; + }; }; meta = { diff --git a/pkgs/games/dwarf-fortress/legends-browser/default.nix b/pkgs/games/dwarf-fortress/legends-browser/default.nix index f6fdfc4c5c6c..a4aab7863c26 100644 --- a/pkgs/games/dwarf-fortress/legends-browser/default.nix +++ b/pkgs/games/dwarf-fortress/legends-browser/default.nix @@ -8,11 +8,11 @@ let name = "legends-browser-${version}"; - version = "1.17.1"; + version = "1.19.2"; jar = fetchurl { url = "https://github.com/robertjanetzko/LegendsBrowser/releases/download/${version}/legendsbrowser-${version}.jar"; - sha256 = "05b4ksbl4481rh3ykfirbp6wvxhppcd5mvclhn9995gsrcaj8gx9"; + hash = "sha256-jkv7InwaRn0K3VAa0LqkYpH6TnrT/tGYBtbvNGM6t98="; }; script = writeShellScriptBin "legends-browser" '' @@ -24,7 +24,7 @@ let echo 'Creating initial configuration for legends-browser' echo "last=$(cd ..; pwd)" > legendsbrowser.properties fi - ${jre}/bin/java -jar ${jar} + exec ${jre}/bin/java -jar ${jar} ''; in @@ -34,7 +34,10 @@ buildEnv { meta = with lib; { description = "Multi-platform, open source, java-based legends viewer for dwarf fortress"; - maintainers = with maintainers; [ Baughn ]; + maintainers = with maintainers; [ + Baughn + numinit + ]; sourceProvenance = with sourceTypes; [ binaryBytecode ]; license = licenses.mit; platforms = platforms.all; diff --git a/pkgs/games/dwarf-fortress/themes/default.nix b/pkgs/games/dwarf-fortress/themes/default.nix index befcd224a060..a37e07557a23 100644 --- a/pkgs/games/dwarf-fortress/themes/default.nix +++ b/pkgs/games/dwarf-fortress/themes/default.nix @@ -7,7 +7,6 @@ let listToAttrs maintainers platforms - readFile ; in diff --git a/pkgs/games/dwarf-fortress/twbt/default.nix b/pkgs/games/dwarf-fortress/twbt/default.nix index 7b56ab310e8b..85cca0998fbc 100644 --- a/pkgs/games/dwarf-fortress/twbt/default.nix +++ b/pkgs/games/dwarf-fortress/twbt/default.nix @@ -16,37 +16,16 @@ let ; twbt-releases = { - "0.44.10" = { - twbtRelease = "6.49"; - sha256 = "1qjkc7k33qhxj2g18njzasccjqsis5y8zrw5vl90h4rs3i8ld9xz"; - prerelease = false; - }; - "0.44.11" = { - twbtRelease = "6.51"; - sha256 = "1yclqmarjd97ch054h425a12r8a5ailmflsd7b39cg4qhdr1nii5"; - prerelease = true; - }; "0.44.12" = { twbtRelease = "6.54"; - sha256 = "10gfd6vv0vk4v1r5hjbz7vf1zqys06dsad695gysc7fbcik2dakh"; + hash = "sha256-cKomZmTLHab9K8k0pZsB2uMf3D5/SVhy2GRusLdp7oE="; prerelease = false; }; - "0.47.02" = { - twbtRelease = "6.61"; - sha256 = "07bqy9rkd64h033sxdpigp5zq4xrr0xd36wdr1b21g649mv8j6yw"; - prerelease = false; - }; - "0.47.04" = { - twbtRelease = "6.xx"; - dfhackRelease = "0.47.04-r5"; - sha256 = "sha256-+C3g4KJShCb2VXGQ4mtkDOufXZQ1P+ebDTmUzL3tNyU="; - prerelease = true; - }; "0.47.05" = { twbtRelease = "6.xx"; - dfhackRelease = "0.47.05-r7"; - sha256 = "sha256-4xMKuSP5J6pMK+hwjTAcTI0gsLJfw+Xt+vh9CopR4tk="; - prerelease = true; + dfhackRelease = "0.47.05-r8"; + hash = "sha256-qiNs6iMAUNGiq0kpXqEs4u4Wcrjf6/qA/dzBe947Trc="; + prerelease = false; }; }; @@ -67,7 +46,7 @@ stdenvNoCC.mkDerivation rec { "https://github.com/thurin/df-twbt/releases/download/${release.dfhackRelease}/twbt-${version}-linux64-${release.dfhackRelease}.zip" else "https://github.com/mifki/df-twbt/releases/download/v${version}/twbt-${version}-linux.zip"; - sha256 = release.sha256; + inherit (release) hash; }; sourceRoot = "."; diff --git a/pkgs/games/dwarf-fortress/unfuck.nix b/pkgs/games/dwarf-fortress/unfuck.nix index b04c2132cec6..d679eb4d0a3a 100644 --- a/pkgs/games/dwarf-fortress/unfuck.nix +++ b/pkgs/games/dwarf-fortress/unfuck.nix @@ -32,42 +32,10 @@ let ; unfuck-releases = { - "0.43.05" = { - unfuckRelease = "0.43.05"; - hash = "sha256-4iLVrKmlVdvBICb8NLe/U7pHtL372CGDkxt/2lf2bZw="; - }; - "0.44.05" = { - unfuckRelease = "0.44.05"; - hash = "sha256-iwR9st4VsPJBn7cKH/cy8YS6Tcw8J+lMJK9/9Qgl0gM="; - }; - "0.44.09" = { - unfuckRelease = "0.44.09"; - hash = "sha256-9W9qON0QEjfXe2XzRvseixc+YznPzDQdcId08dEGF40="; - }; - "0.44.10" = { - unfuckRelease = "0.44.10"; - hash = "sha256-8ldEFcf5zPRdC/yXgMByeCC0pqZprreITIetKDpOYW0="; - }; - "0.44.11" = { - unfuckRelease = "0.44.11.1"; - hash = "sha256-f9vDe3Q3Vl2hFLCPSzYtqyv9rLKBKEnARZTu0MKaX88="; - }; "0.44.12" = { unfuckRelease = "0.44.12"; hash = "sha256-f9vDe3Q3Vl2hFLCPSzYtqyv9rLKBKEnARZTu0MKaX88="; }; - "0.47.01" = { - unfuckRelease = "0.47.01"; - hash = "sha256-k8yrcJVHlHNlmOL2kEPTftSfx4mXO35TcS0zAvFYu4c="; - }; - "0.47.02" = { - unfuckRelease = "0.47.01"; - hash = "sha256-k8yrcJVHlHNlmOL2kEPTftSfx4mXO35TcS0zAvFYu4c="; - }; - "0.47.04" = { - unfuckRelease = "0.47.04"; - hash = "sha256-KRr0A/2zANAOSDeP8V9tYe7tVO2jBLzU+TF6vTpISfE="; - }; "0.47.05" = { unfuckRelease = "0.47.05-final"; hash = "sha256-kBdzU6KDpODOBP9XHM7lQRIEWUGOj838vXF1FbSr0Xw="; diff --git a/pkgs/games/dwarf-fortress/update.rb b/pkgs/games/dwarf-fortress/update.rb new file mode 100755 index 000000000000..d722d7a4b326 --- /dev/null +++ b/pkgs/games/dwarf-fortress/update.rb @@ -0,0 +1,626 @@ +#!/usr/bin/env nix-shell +#!nix-shell -i ruby -p "ruby.withPackages (ps: with ps; [ curb nokogiri ])" nix-prefetch-git + +require 'set' +require 'json' +require 'uri' +require 'shellwords' +require 'erb' +require 'rubygems' +require 'curb' +require 'nokogiri' + +# Performs a GET to an arbitrary address. +# +url+:: the URL +def get url, &block + curl = Curl::Easy.new(url) do |http| + http.follow_location = false + http.headers['User-Agent'] = 'nixpkgs dwarf fortress update bot' + yield http if block_given? + end + + curl.perform + curl.body_str +end + +# Performs a GET on the Github API. +# +url+:: the relative URL to api.github.com +def get_gh url, &block + ret = get URI.join('https://api.github.com/', url) do |http| + http.headers['Accept'] = 'application/vnd.github+json' + http.headers['Authorization'] = "Bearer #{ENV['GH_TOKEN']}" if ENV.include?('GH_TOKEN') + http.headers['X-GitHub-Api-Version'] = '2022-11-28' + yield http if block_given? + end + JSON.parse(ret, symbolize_names: true) +end + +def normalize_keys hash + Hash[hash.map { + [ + _1.to_s, + _2.is_a?(Hash) ? normalize_keys(_2) : _2 + ] + }] +end + +module Mergeable + # Merges this Mergeable with something else. + # +other+:: The other Mergeable. + def merge other + if !other + return self + end + + if !other.is_a?(Mergeable) || self.members != other.members + raise "invalid right-hand operand for merge: #{other.members}" + end + + hash = {} + self.members.each do |member| + if @@expensive && @@expensive.include?(member) + # Already computed + hash[member] = self[member] + elsif self[member] && self[member].is_a?(Mergeable) + # Merge it + hash[member] = self[member].merge(other[member]) + elsif self[member] && self[member].is_a?(Hash) + hash[member] = Hash[other[member].map { + [_1, self[member][_1] && self[member][_1].is_a?(Mergeable) ? self[member][_1].merge(_2) : _2] + }] + else + # Compute it + hash[member] = other[member] + end + end + self.class.new(**hash) + end + + # Marks some attributes as expensive. + def expensive *attrs + @@expensive ||= Set.new + attrs.each {@@expensive << _1} + self + end +end + +module Versionable + # Parses the version. + def parsed_version + @version ||= Gem::Version.create(self.version.partition('-').first) + end + + # Drops the last component of the version for chunking. + def major_version + @major_version ||= Gem::Version.create(self.parsed_version.canonical_segments[..-2].join('.')) + end + + # Compares the major version. + def =~ other + self.major_version == other.major_version + end + + # Negation of the above. + def !~ other + !(self =~ other) + end + + # Compares two versions. + def <=> other + other.parsed_version <=> self.parsed_version + end +end + +class DFUrl < Struct.new(:url, :output_hash, keyword_init: true) + include Mergeable + extend Mergeable + + expensive :output_hash + + # Converts this DFUrl to a hash. + def to_h + { + url: self.url, + outputHash: self.output_hash + } + end + + # Returns or computes the output hash. + def output_hash + return super if super + self.output_hash = `nix-prefetch-url #{Shellwords.escape(self.url.to_s)} | xargs nix-hash --to-sri --type sha256`.strip + super + end + + # Converts this DFUrl from a hash. + # +hash+:: The hash + def self.from_hash hash + DFUrl.new( + url: hash.fetch(:url), + output_hash: hash[:outputHash] + ) + end +end + +class DFGithub < Struct.new(:url, :revision, :output_hash, keyword_init: true) + include Mergeable + extend Mergeable + + expensive :output_hash + + # Converts this DFGithub to a hash. + def to_h + { + url: self.url, + revision: self.revision, + outputHash: self.output_hash + } + end + + # Returns or computes the output hash. + def output_hash + return super if super + url = URI.parse(self.url.to_s) + if ENV['GH_TOKEN'] + url.userinfo = ENV['GH_TOKEN'] + end + self.output_hash = JSON.parse(`nix-prefetch-git --no-deepClone --fetch-submodules #{Shellwords.escape(url.to_s)} #{Shellwords.escape(self.revision.to_s)}`, symbolize_names: true).fetch(:hash) + super + end + + # Converts a hash to a DFGithub. + # +hash+:: The hash + def self.from_hash hash + DFGithub.new( + url: hash.fetch(:url), + revision: hash.fetch(:revision), + output_hash: hash[:outputHash] + ) + end +end + +class DFVersion < Struct.new(:version, :urls, keyword_init: true) + include Mergeable + extend Mergeable + include Versionable + + # Converts a DFVersion to a hash. + def to_h + { + version: self.version, + urls: Hash[self.urls.map { + [_1, _2.to_h] + }] + } + end + + # Converts a hash to a DFVersion. + # +hash+:: The hash + def self.from_hash hash + DFVersion.new( + version: hash.fetch(:version), + urls: Hash[hash.fetch(:urls).map { + [_1, DFUrl.from_hash(_2)] + }] + ) + end + + # Converts an HTML node to a DFVersion. + # +base+:: The base URL for DF downloads. + # +node+:: The HTML node + def self.from_node base, node + match = node.text.match(/DF\s+(\d+\.\d+(?:\.\d+)?)/) + if match + systems = {} + node.css('a').each do |a| + case a['href'] + when /osx\.tar/ then systems[:darwin] = DFUrl.new(url: URI.join(base, a['href']).to_s) + when /linux\.tar/ then systems[:linux] = DFUrl.new(url: URI.join(base, a['href']).to_s) + end + end + + if systems.empty? + nil + else + DFVersion.new(version: match[1], urls: systems) + end + else + nil + end + end + + # Returns all DFVersions from the download page. + # +cutoff+:: The minimum version + def self.all cutoff: + cutoff = Gem::Version.create(cutoff) + + base = 'https://www.bay12games.com/dwarves/' + res = get URI.join(base, 'older_versions.html') + parsed = Nokogiri::HTML(res) + + # Figure out which versions we care about. + parsed.css('p.menu').map {DFVersion.from_node(base, _1)}.select { + _1 && _1.parsed_version >= cutoff + }.sort.chunk { + _1.major_version + }.map {|*, versions| + versions.max_by {_1.parsed_version} + }.to_a + end +end + +class DFHackVersion < Struct.new(:version, :git, :xml_rev, keyword_init: true) + include Mergeable + extend Mergeable + include Versionable + + expensive :xml_rev + + # Returns the download URL. + def git + return super if super + self.git = DFGithub.new( + url: "https://github.com/DFHack/dfhack.git", + revision: self.version + ) + super + end + + # Converts this DFHackVersion to a hash. + def to_h + { + version: self.version, + git: self.git.to_h, + xmlRev: self.xml_rev, + } + end + + # Returns the revision number in the version. Defaults to 0. + def rev + return @rev if @rev + rev = self.version.match(/-r([\d\.]+)\z/) + @rev = rev[1].to_f if rev + @rev ||= 0 + @rev + end + + # Returns the XML revision, fetching it if necessary. + def xml_rev + return super if super + url = "repos/dfhack/dfhack/contents/library/xml?ref=#{URI.encode_uri_component(self.git.revision)}" + body = get_gh url + self.xml_rev = body.fetch(:sha) + super + end + + # Compares two DFHack versions. + # +other+:: the other dfhack version + def <=> other + ret = super + ret = other.rev <=> self.rev if ret == 0 + ret + end + + # Returns a version from a hash. + # +hash+:: the hash + def self.from_hash hash + DFHackVersion.new( + version: hash.fetch(:version), + git: DFGithub.from_hash(hash.fetch(:git)), + xml_rev: hash[:xmlRev] + ) + end + + # Returns a release from a github object. + # +github_obj+:: The github object. Returns null for prereleases. + def self.from_github github_obj + if github_obj.fetch(:prerelease) + return nil + end + version = github_obj.fetch(:tag_name) + DFHackVersion.new(version: version) + end + + # Returns all dfhack versions. + # +cutoff+:: The cutoff version. + def self.all cutoff: + cutoff = Gem::Version.create(cutoff) + ret = {} + (1..).each do |page| + url = "repos/dfhack/dfhack/releases?per_page=100&page=#{page}" + releases = get_gh url + + releases.each do |release| + release = DFHackVersion.from_github(release) + if release && release.parsed_version >= cutoff + ret[release.major_version] ||= {} + ret[release.major_version][release.parsed_version] ||= [] + ret[release.major_version][release.parsed_version] << release + end + end + + break if releases.length < 1 + end + + ret.each do |_, dfhack_major_versions| + dfhack_major_versions.each do |_, dfhack_minor_versions| + dfhack_minor_versions.sort! + end + end + + ret + end +end + +class DFWithHackVersion < Struct.new(:df, :hack, keyword_init: true) + include Mergeable + extend Mergeable + + # Converts this DFWithHackVersion to a hash. + def to_h + { + df: self.df.to_h, + hack: self.hack.to_h + } + end + + # Converts a hash to a DFWithHackVersion. + # +hash+:: the hash to convert + def self.from_hash hash + DFWithHackVersion.new( + df: DFVersion.from_hash(hash.fetch(:df)), + hack: DFHackVersion.from_hash(hash.fetch(:hack)) + ) + end +end + +class DFWithHackVersions < Struct.new(:latest, :versions, keyword_init: true) + include Mergeable + extend Mergeable + + # Initializes this DFWithHackVersions. + def initialize *args, **kw + super *args, **kw + self.latest ||= {} + self.versions ||= {} + end + + # Converts this DFWithHackVersions to a hash. + def to_h + { + latest: self.latest, + versions: Hash[self.versions.map { + [_1.to_s, _2.to_h] + }] + } + end + + # Loads this DFWithHackVersions. + # +cutoff+:: The minimum version to load. + def load! cutoff: + df_versions = DFVersion.all(cutoff: cutoff) + dfhack_versions = DFHackVersion.all(cutoff: cutoff) + + df_versions.each do |df_version| + latest_dfhack_version = nil + corresponding_dfhack_versions = dfhack_versions.dig(df_version.major_version, df_version.parsed_version) + if corresponding_dfhack_versions + latest_dfhack_version = corresponding_dfhack_versions.first + end + + if latest_dfhack_version + df_version.urls.each do |platform, url| + if !self.latest[platform] || df_version.parsed_version > Gem::Version.create(self.latest[platform]) + self.latest[platform] = df_version.version + end + end + self.versions[df_version.version] = DFWithHackVersion.new(df: df_version, hack: latest_dfhack_version) + end + end + end + + # Converts a hash to a DFWithHackVersions. + # +hash+:: The hash + def self.from_hash hash + DFWithHackVersions.new( + latest: hash.fetch(:latest), + versions: Hash[hash.fetch(:versions).map { + [_1.to_s, DFWithHackVersion.from_hash(_2)] + }] + ) + end +end + +class Therapist < Struct.new(:version, :max_df_version, :git, keyword_init: true) + include Mergeable + extend Mergeable + include Versionable + + expensive :max_df_version + + # Converts this Therapist instance to a hash. + def to_h + { + version: self.version, + maxDfVersion: self.max_df_version, + git: self.git.to_h + } + end + + # Returns the max supported DF version. + def max_df_version + return super if super + url = "repos/Dwarf-Therapist/Dwarf-Therapist/contents/share/memory_layouts/linux?ref=#{URI.encode_uri_component(self.git.revision)}" + body = get_gh url + + # Figure out the max supported memory layout. + max_version = nil + max_version_str = nil + body.each do |item| + name = item[:name] || "" + match = name.match(/\Av(?:0\.)?(\d+\.\d+)-classic_linux\d*\.ini/) + if match + version = Gem::Version.create(match[1]) + if !max_version || version > max_version + max_version = version + max_version_str = match[1] + end + end + end + + self.max_df_version = max_version_str + + super + end + + # Returns a Github URL. + def git + return super if super + self.git = DFGithub.new( + url: "https://github.com/Dwarf-Therapist/Dwarf-Therapist.git", + revision: 'v' + self.version + ) + super + end + + # Loads this therapist instance from Github. + def load! + latest = self.class.latest + self.version = latest.version + self.max_df_version = latest.max_df_version + self.git = nil + self + end + + # Loads a hash into this Therapist instance. + # +hash+: the hash + def self.from_hash hash + Therapist.new( + version: hash.fetch(:version), + max_df_version: hash[:maxDfVersion], + git: DFGithub.from_hash(hash.fetch(:git)) + ) + end + + # Returns a release from a github object. + # +github_obj+:: The github object. Returns null for prereleases. + def self.from_github github_obj + if github_obj.fetch(:prerelease) + return nil + end + + version = github_obj.fetch(:tag_name) + match = version.match(/\Av([\d\.]+)\z/) + if match + Therapist.new(version: match[1]) + else + nil + end + end + + # Returns the latest Therapist version. + def self.latest + url = "repos/Dwarf-Therapist/Dwarf-Therapist/releases" + releases = get_gh url + + releases.each do |release| + release = Therapist.from_github(release) + if release + return release + end + end + + nil + end +end + +class DFLock < Struct.new(:game, :therapist, keyword_init: true) + include Mergeable + extend Mergeable + + # Initializes this DFLock. + def initialize *args, **kw + super *args, **kw + self.game ||= DFWithHackVersions.new + self.therapist ||= Therapist.new + end + + # Converts this DFLock to a hash. + def to_h + { + game: self.game.to_h, + therapist: self.therapist.to_h + } + end + + # Returns an array containing all versions. + def all_versions + self.game.versions.keys.map {"DF #{_1}"}.to_a + ["DT #{self.therapist.version}"] + end + + # Loads this DFLock. + # +cutoff+:: The minimum DF version to load. + def load! cutoff: + self.game.load! cutoff: cutoff + self.therapist.load! + end + + # Converts a hash to a DFLock. + # +hash+:: The hash + def self.from_hash hash + DFLock.new( + game: DFWithHackVersions.from_hash(hash.fetch(:game)), + therapist: Therapist.from_hash(hash.fetch(:therapist)) + ) + end +end + +# 0.43 and below has a broken dfhack. +new_df_lock = DFLock.new +new_df_lock.load! cutoff: '0.44' + +df_lock_file = File.join(__dir__, 'df.lock.json') +df_lock, df_lock_json = if File.file?(df_lock_file) + json = JSON.parse(File.read(df_lock_file), symbolize_names: true) + [DFLock.from_hash(json), json] + else + [DFLock.new, {}] + end + +new_df_lock_json = df_lock.merge(new_df_lock).to_h +json = JSON.pretty_generate(new_df_lock_json) +json << "\n" +STDERR.puts json +File.write(df_lock_file, json) + +# See if there were any changes. +changed_paths = [] +if normalize_keys(df_lock_json) != normalize_keys(new_df_lock_json) + all_old_versions = df_lock.all_versions + all_new_versions = new_df_lock.all_versions + just_old_versions = all_old_versions - all_new_versions + just_new_versions = all_new_versions - all_old_versions + changes = just_old_versions.zip(just_new_versions) + + template = ERB.new(<<-EOF, trim_mode: '<>-') +dwarf-fortress-packages: <%= changes.map {|old, new| '%s -> %s' % [old, new]}.join('; ') %> + +Performed the following automatic DF updates: + +<% changes.each do |old, new| %> +- <%= old -%> -> <%= new -%> +<% end %> +EOF + + changed_paths << { + attrPath: 'dwarf-fortress-packages', + oldVersion: just_old_versions.join('; '), + newVersion: just_new_versions.join('; '), + files: [ + File.realpath(df_lock_file) + ], + commitMessage: template.result(binding) + } +end + +STDOUT.puts JSON.pretty_generate(changed_paths) diff --git a/pkgs/games/dwarf-fortress/update.sh b/pkgs/games/dwarf-fortress/update.sh deleted file mode 100755 index 892e031f7883..000000000000 --- a/pkgs/games/dwarf-fortress/update.sh +++ /dev/null @@ -1,40 +0,0 @@ -#!/usr/bin/env nix-shell -#! nix-shell -i bash -p jq nix coreutils curl - -# systems to generate hashes for -systems='linux osx' - -if [ $# -eq 0 ]; then - versions="$(curl http://www.bay12games.com/dwarves/ \ - | grep 'DWARF FORTRESS CLASSIC ' \ - | sed 's/.*DWARF FORTRESS CLASSIC \([0-9.]*\) .*/\1/')" -else - versions="$@" -fi - -tmp1="$(mktemp)" -tmp2="$(mktemp)" -for version in $versions; do - for system in $systems; do - echo -n $version,$system, - ver=$(echo $version | sed -e s,^0\.,, | tr . _) - if [[ "$system" = *win* ]] || [[ "$system" = *legacy* ]]; then - ext=zip - else - ext=tar.bz2 - fi - nix-prefetch-url \ - http://www.bay12games.com/dwarves/df_${ver}_${system}.${ext} - done -done | jq --slurp --raw-input \ - 'split("\n") | .[:-1] | map(split(",")) | - map({ "version": .[0], "platform": .[1], "sha256": .[2] }) | - group_by(.version) | - map(map({"version": .version, (.platform): .sha256}) | add | - {(.version): .} | map_values(del(.version))) | add' \ - > "$tmp1" - -# Append $tmp1 to game.json. There should be a better way to handle -# this but all other attempts failed for me. -jq -M --slurpfile a "$tmp1" '. + $a[]' < "$(dirname "$0")/game.json" > "$tmp2" -cat "$tmp2" > "$(dirname "$0")/game.json" diff --git a/pkgs/games/dwarf-fortress/wrapper/default.nix b/pkgs/games/dwarf-fortress/wrapper/default.nix index 55f08c328558..372467475321 100644 --- a/pkgs/games/dwarf-fortress/wrapper/default.nix +++ b/pkgs/games/dwarf-fortress/wrapper/default.nix @@ -246,28 +246,17 @@ lib.throwIf (enableTWBT' && !enableDFHack) "dwarf-fortress: TWBT requires DFHack installCheckPhase = let - commonExpectStatements = - fmod: - lib.optionalString isAtLeast50 '' - expect "Loading audio..." - '' - + lib.optionalString (!fmod && isAtLeast50) '' - expect "Failed to load fmod, trying SDL_mixer" - '' - + lib.optionalString isAtLeast50 '' - expect "Audio loaded successfully!" - '' - + '' - expect "Loading bindings from data/init/interface.txt" - ''; + commonExpectStatements = '' + expect "Loading bindings from data/init/interface.txt" + ''; dfHackExpectScript = writeText "dfhack-test.exp" ( '' spawn env NIXPKGS_DF_OPTS=debug xvfb-run $env(out)/bin/dfhack '' - + commonExpectStatements false + + commonExpectStatements + '' expect "DFHack is ready. Have a nice day!" - expect "DFHack version ${version}" + expect "DFHack version ${dfhack'.version}" expect "\[DFHack\]#" send -- "lua print(os.getenv('out'))\r" expect "$env(out)" @@ -281,7 +270,7 @@ lib.throwIf (enableTWBT' && !enableDFHack) "dwarf-fortress: TWBT requires DFHack '' spawn env NIXPKGS_DF_OPTS=debug,${lib.optionalString fmod "fmod"} xvfb-run $env(out)/bin/dwarf-fortress '' - + commonExpectStatements fmod + + commonExpectStatements + '' exit 0 '' diff --git a/pkgs/games/dwarf-fortress/wrapper/dwarf-fortress-init.in b/pkgs/games/dwarf-fortress/wrapper/dwarf-fortress-init.in index 1c739a1afbbf..363585fac293 100644 --- a/pkgs/games/dwarf-fortress/wrapper/dwarf-fortress-init.in +++ b/pkgs/games/dwarf-fortress/wrapper/dwarf-fortress-init.in @@ -114,7 +114,7 @@ go() { # If we make it past here, we want to log. # shellcheck disable=SC2093 - exec -a "$NIXPKGS_DF_EXE" "$NIXPKGS_DF_HOME/$NIXPKGS_DF_EXE" + exec -a "$NIXPKGS_DF_EXE" "$NIXPKGS_DF_HOME/$NIXPKGS_DF_EXE" "$@" log "Execution of $NIXPKGS_DF_HOME/$NIXPKGS_DF_EXE failed!" exit 1 } diff --git a/pkgs/games/dwarf-fortress/wrapper/dwarf-fortress.in b/pkgs/games/dwarf-fortress/wrapper/dwarf-fortress.in index 29db9c128f4c..9616936f0705 100644 --- a/pkgs/games/dwarf-fortress/wrapper/dwarf-fortress.in +++ b/pkgs/games/dwarf-fortress/wrapper/dwarf-fortress.in @@ -32,4 +32,4 @@ else done fi -go +go "$@" From 2a395d5dd51674f0af5f8bde487a8d73d789fa07 Mon Sep 17 00:00:00 2001 From: Morgan Jones Date: Sat, 19 Apr 2025 22:13:48 -0700 Subject: [PATCH 29/70] dwarf-fortress: fix audio on v50 --- pkgs/games/dwarf-fortress/wrapper/default.nix | 4 +- .../wrapper/dwarf-fortress-init.in | 40 +++++++++++++------ 2 files changed, 30 insertions(+), 14 deletions(-) diff --git a/pkgs/games/dwarf-fortress/wrapper/default.nix b/pkgs/games/dwarf-fortress/wrapper/default.nix index 372467475321..4c7b1c286800 100644 --- a/pkgs/games/dwarf-fortress/wrapper/default.nix +++ b/pkgs/games/dwarf-fortress/wrapper/default.nix @@ -9,6 +9,7 @@ gawk, dwarf-fortress, dwarf-therapist, + SDL2_mixer, enableDFHack ? false, dfhack, enableSoundSense ? false, @@ -181,7 +182,7 @@ lib.throwIf (enableTWBT' && !enableDFHack) "dwarf-fortress: TWBT requires DFHack "dwarf-fortress: text mode and TWBT are mutually exclusive" stdenv.mkDerivation - rec { + { pname = "dwarf-fortress"; version = dwarf-fortress.dfVersion; @@ -195,6 +196,7 @@ lib.throwIf (enableTWBT' && !enableDFHack) "dwarf-fortress: TWBT requires DFHack mkdir = "${coreutils}/bin/mkdir"; printf = "${coreutils}/bin/printf"; uname = "${coreutils}/bin/uname"; + SDL2_mixer = "${SDL2_mixer}/lib/libSDL2_mixer.so"; }; runDF = ./dwarf-fortress.in; diff --git a/pkgs/games/dwarf-fortress/wrapper/dwarf-fortress-init.in b/pkgs/games/dwarf-fortress/wrapper/dwarf-fortress-init.in index 363585fac293..4aaa0dc684a4 100644 --- a/pkgs/games/dwarf-fortress/wrapper/dwarf-fortress-init.in +++ b/pkgs/games/dwarf-fortress/wrapper/dwarf-fortress-init.in @@ -112,6 +112,27 @@ go() { cd "$NIXPKGS_DF_HOME" debug "Executing: $NIXPKGS_DF_HOME/$NIXPKGS_DF_EXE" + # Handle library paths on Darwin. + if [ "$os_name" == Darwin ]; then + if [ "${os_rev%%.*}" -ge 11 ]; then + export DYLD_LIBRARY_PATH="$NIXPKGS_DF_ENV/libs" + export DYLD_FRAMEWORK_PATH="$NIXPKGS_DF_ENV/libs" + else + export DYLD_FALLBACK_LIBRARY_PATH="$NIXPKGS_DF_ENV/libs" + export DYLD_FALLBACK_FRAMEWORK_PATH="$NIXPKGS_DF_ENV/libs" + fi + fi + + if [ "$os_name" == Linux ]; then + # We have to preload the audio plugin for audio to work. See Nix Pill #12 for this pattern: + # https://nixos.org/guides/nix-pills/12-inputs-design-pattern.html + if [ "${_NIXPKGS_DF_OPTS[fmod]}" -eq 0 ] && [ -f "$NIXPKGS_DF_HOME/libfmod.so.13" ]; then + export LD_PRELOAD="$NIXPKGS_DF_HOME/libfmod.so.13${LD_PRELOAD:+:}${LD_PRELOAD:-}" + else + export LD_PRELOAD="@SDL2_mixer@${LD_PRELOAD:+:}${LD_PRELOAD:-}" + fi + fi + # If we make it past here, we want to log. # shellcheck disable=SC2093 exec -a "$NIXPKGS_DF_EXE" "$NIXPKGS_DF_HOME/$NIXPKGS_DF_EXE" "$@" @@ -168,9 +189,13 @@ EOF cd "$NIXPKGS_DF_ENV" # All potential important files in DF 50 and below. -for path in dwarfort dwarfort.exe df *.so libs raw data/init/* data/!(init|index|announcement); do +for path in dwarfort dwarfort.exe df *.so* libs raw data/init/* data/!(init|index|announcement); do force_delete=0 - if [[ "$path" == libfmod*.so* ]] && [ "${_NIXPKGS_DF_OPTS[fmod]}" -eq 0 ]; then + if [[ "$path" == *fmod*.so* ]] && [ "${_NIXPKGS_DF_OPTS[fmod]}" -eq 0 ]; then + # Delete fmod plugins if we're using SDL_mixer. + force_delete=1 + elif [[ "$path" == *mixer*.so* ]] && [ "${_NIXPKGS_DF_OPTS[fmod]}" -ne 0 ]; then + # Delete SDL_mixer plugins if we're using fmod. force_delete=1 fi @@ -185,14 +210,3 @@ done for path in index announcement help dipscript; do forcecopy_path "data/$path" done - -# Handle library paths on Darwin. -if [ "$os_name" == Darwin ]; then - if [ "${os_rev%%.*}" -ge 11 ]; then - export DYLD_LIBRARY_PATH="$NIXPKGS_DF_ENV/libs" - export DYLD_FRAMEWORK_PATH="$NIXPKGS_DF_ENV/libs" - else - export DYLD_FALLBACK_LIBRARY_PATH="$NIXPKGS_DF_ENV/libs" - export DYLD_FALLBACK_FRAMEWORK_PATH="$NIXPKGS_DF_ENV/libs" - fi -fi From 8a3441a11243b2d20ebb7283fde6dd4173f29230 Mon Sep 17 00:00:00 2001 From: Morgan Jones Date: Sat, 19 Apr 2025 22:27:28 -0700 Subject: [PATCH 30/70] dwarf-fortress: expose dwarf-fortress-full and dfhack --- pkgs/top-level/all-packages.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 83f48cfe8b1f..151a61e8ab07 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -17182,9 +17182,9 @@ with pkgs; dwarf-fortress-packages = recurseIntoAttrs (callPackage ../games/dwarf-fortress { }); - dwarf-fortress = dwarf-fortress-packages.dwarf-fortress; + inherit (dwarf-fortress-packages) dwarf-fortress dwarf-fortress-full dwarf-therapist; - dwarf-therapist = dwarf-fortress-packages.dwarf-therapist; + dfhack = dwarf-fortress-packages.dwarf-fortress-full; dxx-rebirth = callPackage ../games/dxx-rebirth { }; From 9d7246e04697c8009f0d70edcc60834645cbc78d Mon Sep 17 00:00:00 2001 From: Morgan Jones Date: Sat, 19 Apr 2025 22:14:31 -0700 Subject: [PATCH 31/70] release-notes: doc dwarf fortress improvements --- doc/release-notes/rl-2505.section.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/doc/release-notes/rl-2505.section.md b/doc/release-notes/rl-2505.section.md index 7667e0912816..621b4a3d3e61 100644 --- a/doc/release-notes/rl-2505.section.md +++ b/doc/release-notes/rl-2505.section.md @@ -349,6 +349,8 @@ - Many androidenv packages are now searchable on [search.nixos.org](https://search.nixos.org). - We now use the latest Google repositories, which should improve aarch64-darwin compatibility. The SDK now additionally evaluates on aarch64-linux, though not all packages are functional. +- `dwarf-fortress` audio now works again. Additionally, the `dfhack` and `dwarf-fortress-full` packages are now exposed at toplevel, making it easier to install and play Dwarf Fortress. Note that `dwarf-fortress-full` is the Nixpkgs equivalent of the Dwarf Fortress Lazy Pack. + - `gerbera` now has wavpack support. - GOverlay has been updated to 1.2, please check the [upstream changelog](https://github.com/benjamimgois/goverlay/releases) for more details. From ab31da0235eb0acf77da93a99a9cdd85a9024572 Mon Sep 17 00:00:00 2001 From: Morgan Jones Date: Sun, 20 Apr 2025 01:40:52 -0700 Subject: [PATCH 32/70] dwarf-fortress-packages.soundSense: fix initialization and drop JDK 8 We don't need the JDK 8 override anymore; soundsense works fine without it if we use an --add-opens. --- pkgs/games/dwarf-fortress/default.nix | 4 -- pkgs/games/dwarf-fortress/soundsense.nix | 19 ++++-- pkgs/games/dwarf-fortress/wrapper/default.nix | 4 +- .../wrapper/dwarf-fortress-init.in | 68 +++++++------------ .../dwarf-fortress/wrapper/dwarf-fortress.in | 24 +++++++ .../dwarf-fortress/wrapper/soundSense.in | 3 +- 6 files changed, 67 insertions(+), 55 deletions(-) diff --git a/pkgs/games/dwarf-fortress/default.nix b/pkgs/games/dwarf-fortress/default.nix index 492274092554..bc28480a125c 100644 --- a/pkgs/games/dwarf-fortress/default.nix +++ b/pkgs/games/dwarf-fortress/default.nix @@ -7,8 +7,6 @@ libsForQt5, newScope, perlPackages, - jdk8, - jre8, }: # To whomever it may concern: @@ -114,8 +112,6 @@ let dfhack dwarf-therapist ; - - jdk = jdk8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731 } // args ); diff --git a/pkgs/games/dwarf-fortress/soundsense.nix b/pkgs/games/dwarf-fortress/soundsense.nix index 2ec8361a20f5..fdb25bd10598 100644 --- a/pkgs/games/dwarf-fortress/soundsense.nix +++ b/pkgs/games/dwarf-fortress/soundsense.nix @@ -1,12 +1,13 @@ { + lib, stdenv, fetchzip, dos2unix, soundPack ? stdenv.mkDerivation { name = "soundsense-soundpack"; src = fetchzip { - url = "http://df.zweistein.cz/soundsense/soundpack.zip"; - sha256 = "0qz0mjkp7wp0gxk3ws2x760awv8c9lkacj2fn9bz3gqqnq262ffa"; + url = "https://df.zweistein.cz/soundsense/soundpack.zip"; + hash = "sha256-yjlhBLYYv/FXsk5IpiZNDG2ugDldaD5mf+Dyc6es4GM="; }; installPhase = '' cp -r . $out @@ -20,8 +21,8 @@ stdenv.mkDerivation rec { inherit soundPack; pname = "soundsense"; src = fetchzip { - url = "http://df.zweistein.cz/soundsense/soundSense_${version}.zip"; - sha256 = "1gkrs69l3xsh858yjp204ddp29m668j630akm7arssc9359wxqkk"; + url = "https://df.zweistein.cz/soundsense/soundSense_${version}.zip"; + hash = "sha256-c+LOUxmJaZ3VqVOBYSQypiZxWyNAXOlRQVD3QZPReb4="; }; nativeBuildInputs = [ dos2unix ]; buildPhase = '' @@ -35,4 +36,14 @@ stdenv.mkDerivation rec { ln -s $soundPack $out/soundsense/packs ''; passthru = { inherit version dfVersion; }; + meta = { + description = "Plays sound based on Dwarf Fortress game logs"; + maintainers = with lib.maintainers; [ + numinit + ]; + sourceProvenance = with lib.sourceTypes; [ binaryBytecode ]; + license = lib.licenses.gpl3Only; + platforms = lib.platforms.all; + homepage = "https://df.zweistein.cz/soundsense"; + }; } diff --git a/pkgs/games/dwarf-fortress/wrapper/default.nix b/pkgs/games/dwarf-fortress/wrapper/default.nix index 4c7b1c286800..8fe83273dc4a 100644 --- a/pkgs/games/dwarf-fortress/wrapper/default.nix +++ b/pkgs/games/dwarf-fortress/wrapper/default.nix @@ -14,7 +14,7 @@ dfhack, enableSoundSense ? false, soundSense, - jdk, + jre, expect, xvfb-run, writeText, @@ -235,7 +235,7 @@ lib.throwIf (enableTWBT' && !enableDFHack) "dwarf-fortress: TWBT requires DFHack + lib.optionalString enableSoundSense '' substitute $runSoundSense $out/bin/soundsense \ --subst-var-by stdenv_shell ${stdenv.shell} \ - --subst-var-by jre ${jdk.jre} \ + --subst-var-by jre ${jre} \ --subst-var dfInit chmod 755 $out/bin/soundsense ''; diff --git a/pkgs/games/dwarf-fortress/wrapper/dwarf-fortress-init.in b/pkgs/games/dwarf-fortress/wrapper/dwarf-fortress-init.in index 4aaa0dc684a4..278186a02949 100644 --- a/pkgs/games/dwarf-fortress/wrapper/dwarf-fortress-init.in +++ b/pkgs/games/dwarf-fortress/wrapper/dwarf-fortress-init.in @@ -112,24 +112,27 @@ go() { cd "$NIXPKGS_DF_HOME" debug "Executing: $NIXPKGS_DF_HOME/$NIXPKGS_DF_EXE" - # Handle library paths on Darwin. - if [ "$os_name" == Darwin ]; then - if [ "${os_rev%%.*}" -ge 11 ]; then - export DYLD_LIBRARY_PATH="$NIXPKGS_DF_ENV/libs" - export DYLD_FRAMEWORK_PATH="$NIXPKGS_DF_ENV/libs" - else - export DYLD_FALLBACK_LIBRARY_PATH="$NIXPKGS_DF_ENV/libs" - export DYLD_FALLBACK_FRAMEWORK_PATH="$NIXPKGS_DF_ENV/libs" + # Only mess with the library paths if we're starting Dwarf Fortress (not Soundsense). + if [ "$NIXPKGS_DF_GAME" -eq 1 ]; then + # Handle library paths on Darwin. + if [ "$NIXPKGS_DF_PLATFORM" == df_osx ]; then + if [ "${NIXPKGS_DF_PLATFORM_REV%%.*}" -ge 11 ]; then + export DYLD_LIBRARY_PATH="$NIXPKGS_DF_ENV/libs" + export DYLD_FRAMEWORK_PATH="$NIXPKGS_DF_ENV/libs" + else + export DYLD_FALLBACK_LIBRARY_PATH="$NIXPKGS_DF_ENV/libs" + export DYLD_FALLBACK_FRAMEWORK_PATH="$NIXPKGS_DF_ENV/libs" + fi fi - fi - if [ "$os_name" == Linux ]; then - # We have to preload the audio plugin for audio to work. See Nix Pill #12 for this pattern: - # https://nixos.org/guides/nix-pills/12-inputs-design-pattern.html - if [ "${_NIXPKGS_DF_OPTS[fmod]}" -eq 0 ] && [ -f "$NIXPKGS_DF_HOME/libfmod.so.13" ]; then - export LD_PRELOAD="$NIXPKGS_DF_HOME/libfmod.so.13${LD_PRELOAD:+:}${LD_PRELOAD:-}" - else - export LD_PRELOAD="@SDL2_mixer@${LD_PRELOAD:+:}${LD_PRELOAD:-}" + if [ "$NIXPKGS_DF_PLATFORM" == df_linux ]; then + # We have to preload the audio plugin for audio to work. See Nix Pill #12 for this pattern: + # https://nixos.org/guides/nix-pills/12-inputs-design-pattern.html + if [ "${_NIXPKGS_DF_OPTS[fmod]}" -eq 0 ] && [ -f "$NIXPKGS_DF_HOME/libfmod.so.13" ]; then + export LD_PRELOAD="$NIXPKGS_DF_HOME/libfmod.so.13${LD_PRELOAD:+:}${LD_PRELOAD:-}" + else + export LD_PRELOAD="@SDL2_mixer@${LD_PRELOAD:+:}${LD_PRELOAD:-}" + fi fi fi @@ -140,17 +143,17 @@ go() { exit 1 } +# Figure out the Dwarf Fortress directory (df_linux or df_osx). os_name="$(@uname@)" -os_rev="$(@uname@ -r)" - if [ "$os_name" == Linux ]; then - df_dir="df_linux" + export NIXPKGS_DF_PLATFORM="df_linux" elif [ "$os_name" == Darwin ]; then - df_dir="df_osx" + export NIXPKGS_DF_PLATFORM="df_osx" else log "Unknown platform: $os_name" exit 1 fi +export NIXPKGS_DF_PLATFORM_REV="$(@uname@ -r)" if [[ -v DF_DIR ]] && [ -n "$DF_DIR" ] && { [[ ! -v NIXPKGS_DF_HOME ]] || [ -z "$NIXPKGS_DF_HOME" ]; }; then # Compatibility for users that were using DF_DIR, since the dfhack script clobbers this variable. @@ -158,7 +161,7 @@ if [[ -v DF_DIR ]] && [ -n "$DF_DIR" ] && { [[ ! -v NIXPKGS_DF_HOME ]] || [ -z " fi if [[ ! -v NIXPKGS_DF_HOME ]] || [ -z "$NIXPKGS_DF_HOME" ]; then - export NIXPKGS_DF_HOME="${XDG_DATA_HOME:-$HOME/.local/share}/$df_dir" + export NIXPKGS_DF_HOME="${XDG_DATA_HOME:-$HOME/.local/share}/$NIXPKGS_DF_PLATFORM" fi # Compatibility. @@ -187,26 +190,3 @@ export DF_DIR="$NIXPKGS_DF_HOME" EOF cd "$NIXPKGS_DF_ENV" - -# All potential important files in DF 50 and below. -for path in dwarfort dwarfort.exe df *.so* libs raw data/init/* data/!(init|index|announcement); do - force_delete=0 - if [[ "$path" == *fmod*.so* ]] && [ "${_NIXPKGS_DF_OPTS[fmod]}" -eq 0 ]; then - # Delete fmod plugins if we're using SDL_mixer. - force_delete=1 - elif [[ "$path" == *mixer*.so* ]] && [ "${_NIXPKGS_DF_OPTS[fmod]}" -ne 0 ]; then - # Delete SDL_mixer plugins if we're using fmod. - force_delete=1 - fi - - if [ -e "$path" ] && [ "$force_delete" -eq 0 ]; then - update_path "$path" - else - cleanup_path "$path" - fi -done - -# These need to be copied due to read only flags on older versions of DF. -for path in index announcement help dipscript; do - forcecopy_path "data/$path" -done diff --git a/pkgs/games/dwarf-fortress/wrapper/dwarf-fortress.in b/pkgs/games/dwarf-fortress/wrapper/dwarf-fortress.in index 9616936f0705..484dd16ad275 100644 --- a/pkgs/games/dwarf-fortress/wrapper/dwarf-fortress.in +++ b/pkgs/games/dwarf-fortress/wrapper/dwarf-fortress.in @@ -1,8 +1,32 @@ #!@stdenv_shell@ -e export NIXPKGS_DF_EXE="@dfExe@" +export NIXPKGS_DF_GAME=1 source @dfInit@ +# All potential important files in DF 50 and below. +for path in dwarfort dwarfort.exe df *.so* libs raw data/init/* data/!(init|index|announcement); do + force_delete=0 + if [[ "$path" == *fmod*.so* ]] && [ "${_NIXPKGS_DF_OPTS[fmod]}" -eq 0 ]; then + # Delete fmod plugins if we're using SDL_mixer. + force_delete=1 + elif [[ "$path" == *mixer*.so* ]] && [ "${_NIXPKGS_DF_OPTS[fmod]}" -ne 0 ]; then + # Delete SDL_mixer plugins if we're using fmod. + force_delete=1 + fi + + if [ -e "$path" ] && [ "$force_delete" -eq 0 ]; then + update_path "$path" + else + cleanup_path "$path" + fi +done + +# These need to be copied due to read only flags on older versions of DF. +for path in index announcement help dipscript; do + forcecopy_path "data/$path" +done + # If we're switching back from dfhack to vanilla, cleanup all dfhack # links so Dwarf Fortress doesn't autoload its leftover libdfhooks.so. # Otherwise, populate them. diff --git a/pkgs/games/dwarf-fortress/wrapper/soundSense.in b/pkgs/games/dwarf-fortress/wrapper/soundSense.in index 16818156934a..09f74c71a4ea 100644 --- a/pkgs/games/dwarf-fortress/wrapper/soundSense.in +++ b/pkgs/games/dwarf-fortress/wrapper/soundSense.in @@ -1,10 +1,11 @@ #!@stdenv_shell@ -e export NIXPKGS_DF_EXE="soundsense/soundSense.sh" +export NIXPKGS_DF_GAME=0 source @dfInit@ for path in soundsense/*; do update_path "$path" done -PATH="@jre@/bin:$PATH" go +JDK_JAVA_OPTIONS='--add-opens=java.xml/com.sun.org.apache.xerces.internal.parsers=ALL-UNNAMED' PATH="@jre@/bin:$PATH" go "$@" From fb105b1eb14fe1876c98d543c682f2238c338fdb Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 20 Apr 2025 23:43:34 +0000 Subject: [PATCH 33/70] q2pro: 0-unstable-2025-04-03 -> 0-unstable-2025-04-18 --- pkgs/by-name/q2/q2pro/package.nix | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pkgs/by-name/q2/q2pro/package.nix b/pkgs/by-name/q2/q2pro/package.nix index dc58f31322c4..b4cc6047b1b7 100644 --- a/pkgs/by-name/q2/q2pro/package.nix +++ b/pkgs/by-name/q2/q2pro/package.nix @@ -32,18 +32,18 @@ stdenv.mkDerivation (finalAttrs: rec { pname = "q2pro"; - version = "0-unstable-2025-04-03"; + version = "0-unstable-2025-04-18"; src = fetchFromGitHub { owner = "skullernet"; repo = "q2pro"; - rev = "0e00beedaa892fd5f6e50d33231978846ab2d5de"; - hash = "sha256-xw09M7EtXJ7i6myj/Em0Rtg5CmZtpbyRWmkPhCApu7I="; + rev = "1cc95be8bb967f4274e54a6d7251e4cd7f5ed9c1"; + hash = "sha256-7dsFzCnWiVNioyRIW0KjicfgGTxjozicUpDJG5jGvB0="; }; # build date and rev number is displayed in the game's console - revCount = "3749"; # git rev-list --count ${src.rev} - SOURCE_DATE_EPOCH = "1743706497"; # git show -s --format=%ct ${src.rev} + revCount = "3782"; # git rev-list --count ${src.rev} + SOURCE_DATE_EPOCH = "1744997502"; # git show -s --format=%ct ${src.rev} nativeBuildInputs = [ From 0b8c148bd2d7e2460f296bd16e301854dd3a7b6a Mon Sep 17 00:00:00 2001 From: awwpotato Date: Sat, 19 Apr 2025 22:22:48 -0700 Subject: [PATCH 34/70] slint-lsp: modernize --- pkgs/by-name/sl/slint-lsp/package.nix | 64 +++++++++++---------------- pkgs/top-level/all-packages.nix | 11 ----- 2 files changed, 25 insertions(+), 50 deletions(-) diff --git a/pkgs/by-name/sl/slint-lsp/package.nix b/pkgs/by-name/sl/slint-lsp/package.nix index 001996294a8d..e9796901dbf4 100644 --- a/pkgs/by-name/sl/slint-lsp/package.nix +++ b/pkgs/by-name/sl/slint-lsp/package.nix @@ -10,17 +10,20 @@ xorg, libxkbcommon, wayland, - # Darwin Frameworks - AppKit, - CoreGraphics, - CoreServices, - CoreText, - Foundation, - libiconv, - OpenGL, + versionCheckHook, + nix-update-script, }: +rustPlatform.buildRustPackage (finalAttrs: { + pname = "slint-lsp"; + version = "1.10.0"; + + src = fetchCrate { + inherit (finalAttrs) pname version; + hash = "sha256-5LDEjJx+PC6pOem06DKFkPcjpIkF20gbxi/PAVZT1ns="; + }; + + cargoHash = "sha256-1/4dOlhByJDpduExu9ZOjb7JYFKehnLiLCboWUnmfp8="; -let rpathLibs = [ fontconfig @@ -34,52 +37,35 @@ let libxkbcommon wayland ]; -in -rustPlatform.buildRustPackage rec { - pname = "slint-lsp"; - version = "1.10.0"; - - src = fetchCrate { - inherit pname version; - hash = "sha256-5LDEjJx+PC6pOem06DKFkPcjpIkF20gbxi/PAVZT1ns="; - }; - - useFetchCargoVendor = true; - cargoHash = "sha256-1/4dOlhByJDpduExu9ZOjb7JYFKehnLiLCboWUnmfp8="; nativeBuildInputs = [ cmake pkg-config fontconfig ]; - buildInputs = - rpathLibs - ++ [ xorg.libxcb.dev ] - ++ lib.optionals stdenv.hostPlatform.isDarwin [ - AppKit - CoreGraphics - CoreServices - CoreText - Foundation - libiconv - OpenGL - ]; + buildInputs = finalAttrs.rpathLibs ++ [ xorg.libxcb.dev ]; # Tests requires `i_slint_backend_testing` which is only a dev dependency doCheck = false; postInstall = lib.optionalString stdenv.hostPlatform.isLinux '' - patchelf --set-rpath ${lib.makeLibraryPath rpathLibs} $out/bin/slint-lsp + patchelf --set-rpath ${lib.makeLibraryPath finalAttrs.rpathLibs} $out/bin/slint-lsp ''; dontPatchELF = true; - meta = with lib; { + doInstallCheck = true; + nativeInstallCheckInputs = [ versionCheckHook ]; + + passthru.updateScript = nix-update-script { }; + + meta = { description = "Language Server Protocol (LSP) for Slint UI language"; mainProgram = "slint-lsp"; homepage = "https://slint-ui.com/"; - changelog = "https://github.com/slint-ui/slint/blob/v${version}/CHANGELOG.md"; - license = with licenses; [ gpl3Plus ]; - maintainers = with maintainers; [ xgroleau ]; + downloadPage = "https://github.com/slint-ui/slint/"; + changelog = "https://github.com/slint-ui/slint/blob/v${finalAttrs.version}/CHANGELOG.md"; + license = with lib.licenses; [ gpl3Plus ]; + maintainers = with lib.maintainers; [ xgroleau ]; }; -} +}) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index e695a90ed900..2a92cc5a5e46 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -8712,17 +8712,6 @@ with pkgs; # pandoc takes long to build and documentation isn't needed for just running the cli shellcheck-minimal = haskell.lib.compose.justStaticExecutables shellcheck.unwrapped; - slint-lsp = callPackage ../by-name/sl/slint-lsp/package.nix { - inherit (darwin.apple_sdk_11_0.frameworks) - AppKit - CoreGraphics - CoreServices - CoreText - Foundation - OpenGL - ; - }; - sloc = nodePackages.sloc; slurm = callPackage ../by-name/sl/slurm/package.nix { From 480ad8d96b3585d9881a08b24b945d50dead16e0 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 21 Apr 2025 05:32:57 +0000 Subject: [PATCH 35/70] hydralauncher: 3.4.0 -> 3.4.4 --- pkgs/by-name/hy/hydralauncher/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/hy/hydralauncher/package.nix b/pkgs/by-name/hy/hydralauncher/package.nix index e2b8a72ee143..f020a7951433 100644 --- a/pkgs/by-name/hy/hydralauncher/package.nix +++ b/pkgs/by-name/hy/hydralauncher/package.nix @@ -6,10 +6,10 @@ }: let pname = "hydralauncher"; - version = "3.4.0"; + version = "3.4.4"; src = fetchurl { url = "https://github.com/hydralauncher/hydra/releases/download/v${version}/hydralauncher-${version}.AppImage"; - hash = "sha256-d2ZtCAbj7xYkLhsuTPi9/ORb+Nkk5KbGvaDSaawqGcU="; + hash = "sha256-7mYwjxfef9uiBI2idLUqQxJ4hiWiPVCdMnw1MaovUEM="; }; appimageContents = appimageTools.extractType2 { inherit pname src version; }; From 1f0e93aa19ca2fbd95f64057e28ae25173306717 Mon Sep 17 00:00:00 2001 From: dramforever Date: Mon, 21 Apr 2025 15:48:22 +0800 Subject: [PATCH 36/70] kdePackages.krohnkite: Add dramforever to maintainers --- pkgs/kde/third-party/krohnkite/default.nix | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pkgs/kde/third-party/krohnkite/default.nix b/pkgs/kde/third-party/krohnkite/default.nix index 75c3b01995a8..2107958a53bb 100644 --- a/pkgs/kde/third-party/krohnkite/default.nix +++ b/pkgs/kde/third-party/krohnkite/default.nix @@ -50,7 +50,10 @@ buildNpmPackage rec { description = "Dynamic Tiling Extension for KWin 6"; homepage = "https://github.com/anametologin/krohnkite"; license = lib.licenses.mit; - maintainers = with lib.maintainers; [ ben9986 ]; + maintainers = with lib.maintainers; [ + ben9986 + dramforever + ]; platforms = lib.platforms.all; }; } From 3cd35a8bd6be898abc2ce35ff897a5fe22e77559 Mon Sep 17 00:00:00 2001 From: dramforever Date: Mon, 21 Apr 2025 15:34:34 +0800 Subject: [PATCH 37/70] kdePackages.krohnkite: Use nix-update-script --- pkgs/kde/third-party/krohnkite/default.nix | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/pkgs/kde/third-party/krohnkite/default.nix b/pkgs/kde/third-party/krohnkite/default.nix index 2107958a53bb..5777b5360af6 100644 --- a/pkgs/kde/third-party/krohnkite/default.nix +++ b/pkgs/kde/third-party/krohnkite/default.nix @@ -1,5 +1,6 @@ { lib, + nix-update-script, buildNpmPackage, fetchFromGitHub, nodejs_22, @@ -7,14 +8,14 @@ kpackage, zip, }: -buildNpmPackage rec { +buildNpmPackage (finalAttrs: { pname = "krohnkite"; version = "0.9.8.5"; src = fetchFromGitHub { owner = "anametologin"; repo = "krohnkite"; - tag = version; + tag = finalAttrs.version; hash = "sha256-DcNU0nx6KHztfMPFs5PZtZIeu4hDxNYIJa5E1fwMa0Q="; }; @@ -46,9 +47,12 @@ buildNpmPackage rec { runHook postInstall ''; + passthru.updateScript = nix-update-script { }; + meta = { description = "Dynamic Tiling Extension for KWin 6"; homepage = "https://github.com/anametologin/krohnkite"; + changelog = "https://github.com/anametologin/krohnkite/releases/tag/${finalAttrs.version}"; license = lib.licenses.mit; maintainers = with lib.maintainers; [ ben9986 @@ -56,4 +60,4 @@ buildNpmPackage rec { ]; platforms = lib.platforms.all; }; -} +}) From bde63e100a082870aca354991fd50899d261c931 Mon Sep 17 00:00:00 2001 From: dramforever Date: Mon, 21 Apr 2025 15:47:21 +0800 Subject: [PATCH 38/70] kdePackages.krohnkite: 0.9.8.5 -> 0.9.9.0 --- pkgs/kde/third-party/krohnkite/default.nix | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/pkgs/kde/third-party/krohnkite/default.nix b/pkgs/kde/third-party/krohnkite/default.nix index 5777b5360af6..346c8f43c6b4 100644 --- a/pkgs/kde/third-party/krohnkite/default.nix +++ b/pkgs/kde/third-party/krohnkite/default.nix @@ -10,13 +10,13 @@ }: buildNpmPackage (finalAttrs: { pname = "krohnkite"; - version = "0.9.8.5"; + version = "0.9.9.0"; src = fetchFromGitHub { owner = "anametologin"; repo = "krohnkite"; tag = finalAttrs.version; - hash = "sha256-DcNU0nx6KHztfMPFs5PZtZIeu4hDxNYIJa5E1fwMa0Q="; + hash = "sha256-23GNKxP/ItGJgElS8gK2lMMkjZ/3LITr40LXo9/o6Iw="; }; npmDepsHash = "sha256-Q/D6s0wOPSEziE1dBXgTakjhXCGvzhvLVS7zXcZlPCI="; @@ -41,7 +41,12 @@ buildNpmPackage (finalAttrs: { runHook preInstall substituteInPlace Makefile --replace-fail '7z a -tzip' 'zip -r' - make KWINPKG_FILE=krohnkite.kwinscript krohnkite.kwinscript + # Override PROJECT_VER and PROJECT_REV because we don't have .git + make \ + KWINPKG_FILE=krohnkite.kwinscript \ + PROJECT_REV=${finalAttrs.version} \ + PROJECT_VER=${finalAttrs.version} \ + krohnkite.kwinscript kpackagetool6 --type=KWin/Script --install=krohnkite.kwinscript --packageroot=$out/share/kwin/scripts runHook postInstall From 6baea29494239ae35cf5a2c12e0d18e06b852b15 Mon Sep 17 00:00:00 2001 From: r-vdp Date: Sun, 20 Apr 2025 17:17:08 +0200 Subject: [PATCH 39/70] fish: 4.0.1 -> 4.0.2 https://github.com/fish-shell/fish-shell/releases/tag/4.0.2 --- ...c8bd4295262a3118f478e6b3a7c7536fa282.patch | 74 ------------------- pkgs/by-name/fi/fish/package.nix | 10 +-- 2 files changed, 3 insertions(+), 81 deletions(-) delete mode 100644 pkgs/by-name/fi/fish/1d78c8bd4295262a3118f478e6b3a7c7536fa282.patch diff --git a/pkgs/by-name/fi/fish/1d78c8bd4295262a3118f478e6b3a7c7536fa282.patch b/pkgs/by-name/fi/fish/1d78c8bd4295262a3118f478e6b3a7c7536fa282.patch deleted file mode 100644 index 873b112d864e..000000000000 --- a/pkgs/by-name/fi/fish/1d78c8bd4295262a3118f478e6b3a7c7536fa282.patch +++ /dev/null @@ -1,74 +0,0 @@ -From 1d78c8bd4295262a3118f478e6b3a7c7536fa282 Mon Sep 17 00:00:00 2001 -From: Johannes Altmanninger -Date: Wed, 19 Mar 2025 09:39:04 +0100 -Subject: [PATCH] Fix concurrent setlocale() in string escape tests - -In our C++ implementation, these tests were run serially. As pointed out in -https://github.com/fish-shell/fish-shell/issues/11254#issuecomment-2735623229 -we run them in parallel now, which means that one test could be changing -the global locale used by another. - -In theory this could be fine because all tests are setting setting the -global locale to the same thing but the existence of a lock suggests that -setlocale() is not guaranteed to be atomic, so it's possible that another -thread uses a temporarily-invalid locale. - -Fixes #11254 ---- - src/tests/string_escape.rs | 14 ++++++++------ - 1 file changed, 8 insertions(+), 6 deletions(-) - -diff --git a/src/tests/string_escape.rs b/src/tests/string_escape.rs -index ba8ee7534ebf..4428d679cd35 100644 ---- a/src/tests/string_escape.rs -+++ b/src/tests/string_escape.rs -@@ -1,3 +1,5 @@ -+use std::sync::MutexGuard; -+ - use crate::common::{ - escape_string, str2wcstring, unescape_string, wcs2string, EscapeFlags, EscapeStringStyle, - UnescapeStringStyle, ENCODE_DIRECT_BASE, ENCODE_DIRECT_END, -@@ -10,21 +12,21 @@ use rand::{Rng, RngCore}; - - /// wcs2string is locale-dependent, so ensure we have a multibyte locale - /// before using it in a test. --fn setlocale() { -- let _guard = LOCALE_LOCK.lock().unwrap(); -+fn setlocale() -> MutexGuard<'static, ()> { -+ let guard = LOCALE_LOCK.lock().unwrap(); - - #[rustfmt::skip] - const UTF8_LOCALES: &[&str] = &[ - "C.UTF-8", "en_US.UTF-8", "en_GB.UTF-8", "de_DE.UTF-8", "C.utf8", "UTF-8", - ]; - if crate::libc::MB_CUR_MAX() > 1 { -- return; -+ return guard; - } - for locale in UTF8_LOCALES { - let locale = std::ffi::CString::new(locale.to_owned()).unwrap(); - unsafe { libc::setlocale(libc::LC_CTYPE, locale.as_ptr()) }; - if crate::libc::MB_CUR_MAX() > 1 { -- return; -+ return guard; - } - } - panic!("No UTF-8 locale found"); -@@ -100,7 +102,7 @@ fn test_escape_var() { - } - - fn escape_test(escape_style: EscapeStringStyle, unescape_style: UnescapeStringStyle) { -- setlocale(); -+ let _locale_guard = setlocale(); - let seed: u128 = 92348567983274852905629743984572; - let mut rng = get_seeded_rng(seed); - -@@ -174,7 +176,7 @@ fn str2hex(input: &[u8]) -> String { - /// string comes back through double conversion. - #[test] - fn test_convert() { -- setlocale(); -+ let _locale_guard = setlocale(); - let seed = get_rng_seed(); - let mut rng = get_seeded_rng(seed); - let mut origin = Vec::new(); diff --git a/pkgs/by-name/fi/fish/package.nix b/pkgs/by-name/fi/fish/package.nix index e61a9134f602..1b4c0b375201 100644 --- a/pkgs/by-name/fi/fish/package.nix +++ b/pkgs/by-name/fi/fish/package.nix @@ -152,13 +152,13 @@ let in stdenv.mkDerivation (finalAttrs: { pname = "fish"; - version = "4.0.1"; + version = "4.0.2"; src = fetchFromGitHub { owner = "fish-shell"; repo = "fish-shell"; tag = finalAttrs.version; - hash = "sha256-Mj4v2ubYr4ufs7aU/1AdY239byiCJHKXam64af/VO3U="; + hash = "sha256-UpoZPipXZbzLWCOXzDjfyTDrsKyXGbh3Rkwj5IeWeY4="; }; env = { @@ -169,7 +169,7 @@ stdenv.mkDerivation (finalAttrs: { cargoDeps = rustPlatform.fetchCargoVendor { inherit (finalAttrs) src patches; - hash = "sha256-4kqBrpeneCpF0WohP1ZArKrV3duHAE01XA5+GT9f56w="; + hash = "sha256-FkJB33vVVz7Kh23kfmjQDn61X2VkKLG9mUt8f3TrCHg="; }; patches = [ @@ -188,10 +188,6 @@ stdenv.mkDerivation (finalAttrs: { # * # * ./nix-darwin-path.patch - - # remove 4.0.2 - # https://github.com/fish-shell/fish-shell/issues/11254 - ./1d78c8bd4295262a3118f478e6b3a7c7536fa282.patch ]; # Fix FHS paths in tests From 09e963497889ab70462416cb51828a3261a395df Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 21 Apr 2025 09:31:19 +0000 Subject: [PATCH 40/70] python312Packages.pyytlounge: 3.1.0 -> 3.2.0 --- pkgs/development/python-modules/pyytlounge/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/pyytlounge/default.nix b/pkgs/development/python-modules/pyytlounge/default.nix index 46924a8913da..527f78f765cf 100644 --- a/pkgs/development/python-modules/pyytlounge/default.nix +++ b/pkgs/development/python-modules/pyytlounge/default.nix @@ -12,14 +12,14 @@ buildPythonPackage rec { pname = "pyytlounge"; - version = "3.1.0"; + version = "3.2.0"; pyproject = true; src = fetchFromGitHub { owner = "FabioGNR"; repo = "pyytlounge"; tag = "v${version}"; - hash = "sha256-87m1lrI5ryqaMgtuFtWUVUiKzM7J8u1mkR9l98tU1I0="; + hash = "sha256-8cdahP1u8Rf4m/167ie9aKcELLiWNvZOx7tV9YLK4nU="; }; build-system = [ hatchling ]; From 76cc55f63008c1cadbba2ff9b43d5fec6dab8b91 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 20 Apr 2025 23:03:18 +0000 Subject: [PATCH 41/70] postgresqlPackages.timescaledb_toolkit: 1.19.0 -> 1.21.0 --- pkgs/servers/sql/postgresql/ext/timescaledb_toolkit.nix | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/pkgs/servers/sql/postgresql/ext/timescaledb_toolkit.nix b/pkgs/servers/sql/postgresql/ext/timescaledb_toolkit.nix index 12b4c101356b..9954e1143d22 100644 --- a/pkgs/servers/sql/postgresql/ext/timescaledb_toolkit.nix +++ b/pkgs/servers/sql/postgresql/ext/timescaledb_toolkit.nix @@ -12,17 +12,17 @@ inherit postgresql; pname = "timescaledb_toolkit"; - version = "1.19.0"; + version = "1.21.0"; src = fetchFromGitHub { owner = "timescale"; repo = "timescaledb-toolkit"; tag = finalAttrs.version; - hash = "sha256-7yUbtWbYL4AnuUX8OXG4OVqYCY2Lf0pISSTlcFdPqog="; + hash = "sha256-gGGSNvvJprqLkVwPr7cfmGY1qEUTXMdqdvwPYIzXaTA="; }; useFetchCargoVendor = true; - cargoHash = "sha256-g5pIIifsJAs0C02o/+y+ILLnTXFqwG9tZcvY6NqfnDA="; + cargoHash = "sha256-kyUpfNEXJ732VO6JDxU+dIoL57uWzG4Ff03/GnvsxLE="; buildAndTestSubdir = "extension"; passthru = { @@ -39,5 +39,6 @@ maintainers = with lib.maintainers; [ typetetris ]; platforms = postgresql.meta.platforms; license = lib.licenses.tsl; + broken = lib.versionOlder postgresql.version "15"; }; }) From 4b2cda1c1b6e9cc80f4daf533a357ef8264a0e5c Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 21 Apr 2025 11:14:50 +0000 Subject: [PATCH 42/70] python312Packages.flametree: 0.1.12 -> 0.2.0 --- pkgs/development/python-modules/flametree/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/flametree/default.nix b/pkgs/development/python-modules/flametree/default.nix index e3026ed58e43..0dfd2447b7aa 100644 --- a/pkgs/development/python-modules/flametree/default.nix +++ b/pkgs/development/python-modules/flametree/default.nix @@ -11,14 +11,14 @@ buildPythonPackage rec { pname = "flametree"; - version = "0.1.12"; + version = "0.2.0"; format = "setuptools"; src = fetchFromGitHub { owner = "Edinburgh-Genome-Foundry"; repo = "Flametree"; tag = "v${version}"; - hash = "sha256-oyiuhsYouGDKRssKc0aYIoG32H7GS6Bn4RtI7/9N158="; + hash = "sha256-4yU4u5OmVP3adz9DNsU0BtuQ7LZYqbOLxbuS48lksHM="; }; nativeCheckInputs = [ From 87ec5f201288b78682ea09532b94d3121a9b65da Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 21 Apr 2025 11:19:28 +0000 Subject: [PATCH 43/70] ledger-live-desktop: 2.107.0 -> 2.109.0 --- pkgs/by-name/le/ledger-live-desktop/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/le/ledger-live-desktop/package.nix b/pkgs/by-name/le/ledger-live-desktop/package.nix index 90d47c53c371..0ef1ead1cd47 100644 --- a/pkgs/by-name/le/ledger-live-desktop/package.nix +++ b/pkgs/by-name/le/ledger-live-desktop/package.nix @@ -8,11 +8,11 @@ let pname = "ledger-live-desktop"; - version = "2.107.0"; + version = "2.109.0"; src = fetchurl { url = "https://download.live.ledger.com/${pname}-${version}-linux-x86_64.AppImage"; - hash = "sha256-PtoazbAwwG856M2HoPjN6yuTHlSiIJs5PziDrkLAEZE="; + hash = "sha256-wqY5f+A4j+KY99LulL8YS1eACvEsTSfMGV7Be6yOMqM="; }; appimageContents = appimageTools.extractType2 { From c7917cca58a156ee1a3245c06f28f89ccc70aa9c Mon Sep 17 00:00:00 2001 From: Gaetan Lepage Date: Wed, 16 Apr 2025 16:19:47 +0200 Subject: [PATCH 44/70] python312Packages.spacy: cleanup --- .../python-modules/spacy/default.nix | 21 +++++++------------ 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/pkgs/development/python-modules/spacy/default.nix b/pkgs/development/python-modules/spacy/default.nix index a773e1cb7a93..dfcafdd57ddc 100644 --- a/pkgs/development/python-modules/spacy/default.nix +++ b/pkgs/development/python-modules/spacy/default.nix @@ -6,7 +6,7 @@ catalogue, cymem, cython_0, - fetchPypi, + fetchFromGitHub, git, hypothesis, jinja2, @@ -20,7 +20,6 @@ preshed, pydantic, pytestCheckHook, - pythonOlder, requests, setuptools, spacy-legacy, @@ -41,17 +40,13 @@ buildPythonPackage rec { version = "3.8.5"; pyproject = true; - src = fetchPypi { - inherit pname version; - hash = "sha256-OLyLh3+yT0FJBf8XliADFgfNMf5vkA1noGcwFCcVZRw="; + src = fetchFromGitHub { + owner = "explosion"; + repo = "spaCy"; + tag = "release-v${version}"; + hash = "sha256-rgMstGSscUBACA5+veXD9H/lHuvWKs7hJ6hz6aKOB/0="; }; - postPatch = '' - # unpin numpy, cannot use pythonRelaxDeps because it's in build-system - substituteInPlace pyproject.toml setup.cfg \ - --replace-fail ",<2.1.0" "" - ''; - build-system = [ cymem cython_0 @@ -132,11 +127,11 @@ buildPythonPackage rec { tests.annotation = callPackage ./annotation-test { }; }; - meta = with lib; { + meta = { description = "Industrial-strength Natural Language Processing (NLP)"; homepage = "https://github.com/explosion/spaCy"; changelog = "https://github.com/explosion/spaCy/releases/tag/release-v${version}"; - license = licenses.mit; + license = lib.licenses.mit; maintainers = [ ]; mainProgram = "spacy"; }; From a74ae33f25ae374d23b9f5d75d6cfb1fdc82c8d7 Mon Sep 17 00:00:00 2001 From: Gaetan Lepage Date: Mon, 21 Apr 2025 14:10:18 +0200 Subject: [PATCH 45/70] python312Packages.spacy: re-order inputs --- .../python-modules/spacy/default.nix | 52 +++++++++++-------- 1 file changed, 31 insertions(+), 21 deletions(-) diff --git a/pkgs/development/python-modules/spacy/default.nix b/pkgs/development/python-modules/spacy/default.nix index dfcafdd57ddc..8389430e1e24 100644 --- a/pkgs/development/python-modules/spacy/default.nix +++ b/pkgs/development/python-modules/spacy/default.nix @@ -2,37 +2,47 @@ lib, stdenv, buildPythonPackage, - callPackage, - catalogue, + fetchFromGitHub, + + # build-system cymem, cython_0, - fetchFromGitHub, - git, - hypothesis, + murmurhash, + numpy, + preshed, + thinc, + + # dependencies + catalogue, jinja2, langcodes, - mock, - murmurhash, - nix-update, - nix, - numpy, packaging, - preshed, pydantic, - pytestCheckHook, requests, setuptools, spacy-legacy, spacy-loggers, - spacy-lookups-data, - spacy-transformers, srsly, - thinc, tqdm, typer, wasabi, weasel, + + # optional-dependencies + spacy-transformers, + spacy-lookups-data, + + # tests + pytestCheckHook, + hypothesis, + mock, + + # passthru writeScript, + git, + nix, + nix-update, + callPackage, }: buildPythonPackage rec { @@ -80,17 +90,17 @@ buildPythonPackage rec { weasel ]; + optional-dependencies = { + transformers = [ spacy-transformers ]; + lookups = [ spacy-lookups-data ]; + }; + nativeCheckInputs = [ pytestCheckHook hypothesis mock ]; - optional-dependencies = { - transformers = [ spacy-transformers ]; - lookups = [ spacy-lookups-data ]; - }; - # Fixes ModuleNotFoundError when running tests on Cythonized code. See #255262 preCheck = '' cd $out @@ -113,8 +123,8 @@ buildPythonPackage rec { set -eou pipefail PATH=${ lib.makeBinPath [ - nix git + nix nix-update ] } From dcf3fb577c297ba0101731753e30f152dea6abcc Mon Sep 17 00:00:00 2001 From: Gaetan Lepage Date: Mon, 21 Apr 2025 14:11:00 +0200 Subject: [PATCH 46/70] python312Packages.spacy: mark as broken --- pkgs/development/python-modules/spacy/default.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/development/python-modules/spacy/default.nix b/pkgs/development/python-modules/spacy/default.nix index 8389430e1e24..b961fe45942e 100644 --- a/pkgs/development/python-modules/spacy/default.nix +++ b/pkgs/development/python-modules/spacy/default.nix @@ -144,5 +144,7 @@ buildPythonPackage rec { license = lib.licenses.mit; maintainers = [ ]; mainProgram = "spacy"; + # Cython.Compiler.Errors.CompileError: spacy/ml/parser_model.pyx + broken = true; }; } From d42392737987ca8e0c4c50924db937dbc6a1cffd Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 21 Apr 2025 12:03:02 +0000 Subject: [PATCH 47/70] vectorcode: 0.5.5 -> 0.5.6 --- pkgs/by-name/ve/vectorcode/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/ve/vectorcode/package.nix b/pkgs/by-name/ve/vectorcode/package.nix index 5ab9bcbffb37..51d941d15c08 100644 --- a/pkgs/by-name/ve/vectorcode/package.nix +++ b/pkgs/by-name/ve/vectorcode/package.nix @@ -9,14 +9,14 @@ python3Packages.buildPythonApplication rec { pname = "vectorcode"; - version = "0.5.5"; + version = "0.5.6"; pyproject = true; src = fetchFromGitHub { owner = "Davidyz"; repo = "VectorCode"; tag = version; - hash = "sha256-hoANo+CqGvMyFSPDVYVWJUf6UUo3n9C1Yu8xt5yrZUs="; + hash = "sha256-paFUgPf8zTtMli0qh2bXjnmny2bDQxDwWE03yn0rWUY="; }; build-system = with python3Packages; [ From 48b497021e50b68a90fee60a6264cb7ed6ee5b46 Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Mon, 21 Apr 2025 20:30:03 +0800 Subject: [PATCH 48/70] nixos/budgie: Drop qt style override https://hydra.nixos.org/build/295225429 This unbreaks nixosTests.budgie when a fix for qt6gtk2 is still in review. This does not seem to work in Wayland so I guess we will eventually drop that in next Budgie bump anyway. See also 7e685d369325 for Cinnamon and 36bc3f46ba18 for Pantheon. --- nixos/modules/services/x11/desktop-managers/budgie.nix | 7 ------- 1 file changed, 7 deletions(-) diff --git a/nixos/modules/services/x11/desktop-managers/budgie.nix b/nixos/modules/services/x11/desktop-managers/budgie.nix index e278f2f2f87a..cccae420b3f0 100644 --- a/nixos/modules/services/x11/desktop-managers/budgie.nix +++ b/nixos/modules/services/x11/desktop-managers/budgie.nix @@ -199,13 +199,6 @@ in monospace = mkDefault [ "Hack" ]; }; - # Qt application style. - qt = { - enable = mkDefault true; - style = mkDefault "gtk2"; - platformTheme = mkDefault "gtk2"; - }; - environment.pathsToLink = [ "/share" # TODO: https://github.com/NixOS/nixpkgs/issues/47173 ]; From b51c1392aa0fd3c3aceb73f3f2cbc52487415552 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 21 Apr 2025 12:37:50 +0000 Subject: [PATCH 49/70] system76-power: 1.2.3 -> 1.2.4 --- pkgs/by-name/sy/system76-power/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/sy/system76-power/package.nix b/pkgs/by-name/sy/system76-power/package.nix index 0ac266c014fd..02136a19fa32 100644 --- a/pkgs/by-name/sy/system76-power/package.nix +++ b/pkgs/by-name/sy/system76-power/package.nix @@ -9,13 +9,13 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "system76-power"; - version = "1.2.3"; + version = "1.2.4"; src = fetchFromGitHub { owner = "pop-os"; repo = "system76-power"; tag = finalAttrs.version; - hash = "sha256-fyatAoWw/4ORojayA90er+H5weRykg+2ZzTsGThpW5g="; + hash = "sha256-SHGfs3ZokPOM2nkd/8F/5zjxh9sPXVBtHWkCbmKwEMo="; }; nativeBuildInputs = [ pkg-config ]; @@ -25,7 +25,7 @@ rustPlatform.buildRustPackage (finalAttrs: { ]; useFetchCargoVendor = true; - cargoHash = "sha256-/dhuWgHysJ2oWgJ6jc9u4tsUOxlFt/awlK/9Jk1GHCM="; + cargoHash = "sha256-Q/6OFNbqvRDTCT1MyJ3gqd4BTXXRouvnKSM3cm1jQ1g="; postInstall = '' install -D -m 0644 data/com.system76.PowerDaemon.conf $out/etc/dbus-1/system.d/com.system76.PowerDaemon.conf From 1ce9d179ba1fc40d8db15819095a6550b49118b9 Mon Sep 17 00:00:00 2001 From: Gaetan Lepage Date: Mon, 21 Apr 2025 14:14:39 +0200 Subject: [PATCH 50/70] python312Packages.jupysql: 0.10.17 -> 0.11.1 Diff: https://github.com/ploomber/jupysql/compare/refs/tags/0.10.17...refs/tags/0.11.1 Changelog: https://github.com/ploomber/jupysql/blob/0.11.1/CHANGELOG.md --- .../python-modules/jupysql/default.nix | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/pkgs/development/python-modules/jupysql/default.nix b/pkgs/development/python-modules/jupysql/default.nix index 4e4ca10db874..09e10afcea2e 100644 --- a/pkgs/development/python-modules/jupysql/default.nix +++ b/pkgs/development/python-modules/jupysql/default.nix @@ -33,11 +33,12 @@ # tests pytestCheckHook, psutil, + writableTmpDirAsHomeHook, }: buildPythonPackage rec { pname = "jupysql"; - version = "0.10.17"; + version = "0.11.1"; pyproject = true; @@ -45,7 +46,7 @@ buildPythonPackage rec { owner = "ploomber"; repo = "jupysql"; tag = version; - hash = "sha256-0lrcNKDKmM3Peodc9ZzgqkzwPHPLMxxXHAj4OOKWZxA="; + hash = "sha256-7wfKvKqDf8LlUiLoevNRxmq8x5wLheOgIeWz72oFcuw="; }; pythonRelaxDeps = [ "sqlalchemy" ]; @@ -80,12 +81,14 @@ buildPythonPackage rec { nativeCheckInputs = [ pytestCheckHook psutil + writableTmpDirAsHomeHook ] ++ optional-dependencies.dev; disabledTests = [ # AttributeError: 'DataFrame' object has no attribute 'frame_equal' "test_resultset_polars_dataframe" + # all of these are broken with later versions of duckdb; see # https://github.com/ploomber/jupysql/issues/1030 "test_resultset_getitem" @@ -99,11 +102,12 @@ buildPythonPackage rec { "test_resultset_repr_html_with_reduced_feedback" "test_invalid_operation_error" "test_resultset_config_autolimit_dict" + # fails due to strict warnings "test_calling_legacy_plotting_functions_displays_warning" ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ - # Fatal Python error: Aborted (in matplotlib) + # RuntimeError: *** -[__NSPlaceholderArray initWithObjects:count:]: attempt to insert nil object from objects[1] "test_no_errors_with_stored_query" ]; @@ -122,11 +126,6 @@ buildPythonPackage rec { "src/tests/test_widget.py" ]; - preCheck = '' - # tests need to write temp data - export HOME=$(mktemp -d) - ''; - pythonImportsCheck = [ "sql" ]; meta = { From 6e3927eeea4528090b6e4bc1497823ccb4b9f5b8 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 21 Apr 2025 12:49:18 +0000 Subject: [PATCH 51/70] scribus: 1.6.3 -> 1.6.4 --- pkgs/applications/office/scribus/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/office/scribus/default.nix b/pkgs/applications/office/scribus/default.nix index c8e6d116bc9a..42f157f81562 100644 --- a/pkgs/applications/office/scribus/default.nix +++ b/pkgs/applications/office/scribus/default.nix @@ -32,11 +32,11 @@ in stdenv.mkDerivation (finalAttrs: { pname = "scribus"; - version = "1.6.3"; + version = "1.6.4"; src = fetchurl { url = "mirror://sourceforge/scribus/scribus-devel/scribus-${finalAttrs.version}.tar.xz"; - hash = "sha256-CuWM7UEBAegmVeO0wgoHDPF2cUWtojPc73wguLpr1Ic="; + hash = "sha256-UzvnrwOs+qc27F96P8JWKr0gD+9coqfN7gK19E1hgp4="; }; nativeBuildInputs = [ From 8aee2c10442c3a9994266998840a004eb01f0a50 Mon Sep 17 00:00:00 2001 From: EmanuelM153 <134736553+EmanuelM153@users.noreply.github.com> Date: Mon, 21 Apr 2025 08:10:49 -0500 Subject: [PATCH 52/70] eliza: init at 0-unstable-2025-02-21 (#386830) --- pkgs/by-name/el/eliza/package.nix | 63 +++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 pkgs/by-name/el/eliza/package.nix diff --git a/pkgs/by-name/el/eliza/package.nix b/pkgs/by-name/el/eliza/package.nix new file mode 100644 index 000000000000..b241cbe1de63 --- /dev/null +++ b/pkgs/by-name/el/eliza/package.nix @@ -0,0 +1,63 @@ +{ + lib, + stdenv, + fetchFromGitHub, + nix-update-script, +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "eliza"; + version = "0-unstable-2025-02-21"; + src = fetchFromGitHub { + owner = "anthay"; + repo = "ELIZA"; + rev = "27bcf6e5fb1d32812cc0aab8133fa5e395d41773"; + hash = "sha256-/i8mckRQWTK1yI/MNaieSuE+dx94DMdrABkqf/bXQbM="; + }; + + doCheck = true; + + # Unit tests are executed automatically on execution + checkPhase = '' + runHook preCheck + echo Corki is mana | ./eliza + runHook postCheck + ''; + + buildPhase = '' + runHook preBuild + $CXX -std=c++20 -pedantic -o eliza ./src/eliza.cpp + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + install -Dm544 ./eliza $out/bin/eliza + runHook postInstall + ''; + + passthru.updateScript = nix-update-script { + extraArgs = [ + "--version=branch=master" + ]; + }; + + meta = { + description = "C++ simulation of Joseph Weizenbaum’s 1966 ELIZA"; + longDescription = '' + This is an implementation in C++ of ELIZA that attempts to be as close + to the original as possible. + It was made to closely follow Joseph Weizenbaum’s description of his program + given in his January 1966 Communications of the ACM paper, and later changed + to follow the ELIZA source code found on 2021 and the SLIP programming + function HASH(D,N) found on 2022. + It is controlled by a script identical to the one given in the appendix of + the 1966 paper. + ''; + license = lib.licenses.cc0; + mainProgram = "eliza"; + homepage = "https://github.com/anthay/ELIZA"; + maintainers = with lib.maintainers; [ EmanuelM153 ]; + platforms = lib.platforms.all; + }; +}) From a683f754a79c09a51d880183271e343ea7eb62b2 Mon Sep 17 00:00:00 2001 From: Austin Horstman Date: Sun, 20 Apr 2025 19:34:49 -0500 Subject: [PATCH 53/70] vimPlugins: update on 2025-04-21 --- .../editors/vim/plugins/generated.nix | 648 +++++++++--------- .../editors/vim/plugins/overrides.nix | 2 + 2 files changed, 326 insertions(+), 324 deletions(-) diff --git a/pkgs/applications/editors/vim/plugins/generated.nix b/pkgs/applications/editors/vim/plugins/generated.nix index 9951716d8265..a7c346074fd8 100644 --- a/pkgs/applications/editors/vim/plugins/generated.nix +++ b/pkgs/applications/editors/vim/plugins/generated.nix @@ -74,12 +74,12 @@ final: prev: { CopilotChat-nvim = buildVimPlugin { pname = "CopilotChat.nvim"; - version = "2025-04-09"; + version = "2025-04-18"; src = fetchFromGitHub { owner = "CopilotC-Nvim"; repo = "CopilotChat.nvim"; - rev = "a89f5f1162b04a0962e5f4c3cdf248a81e7e53cb"; - sha256 = "0bp3zwfhp80581jw367kwxy104yr5rd6vvjlnsylb3nh9c6y7jjw"; + rev = "634aa58117a9b70b3f08a0b150f11afd64f1c0eb"; + sha256 = "11pc0m44yzwd8p7zd4nqjk7w4h0hxlk13p78107xp983m8v4jrzw"; }; meta.homepage = "https://github.com/CopilotC-Nvim/CopilotChat.nvim/"; meta.hydraPlatforms = [ ]; @@ -373,12 +373,12 @@ final: prev: { SchemaStore-nvim = buildVimPlugin { pname = "SchemaStore.nvim"; - version = "2025-04-10"; + version = "2025-04-19"; src = fetchFromGitHub { owner = "b0o"; repo = "SchemaStore.nvim"; - rev = "992285058ce208825eb1b9ac82fa6be7d76ffcc1"; - sha256 = "07n4wmai2bf4nxq05mra9qmqi35bfbm30vpl6n03d2f6kjmc6vj1"; + rev = "e623e30df4053cacc67fb7eb04e1bd0fadba52b4"; + sha256 = "0ragdcqr872v689sn8przq0yi4a1birrsma7f64a9g38chkiadx8"; }; meta.homepage = "https://github.com/b0o/SchemaStore.nvim/"; meta.hydraPlatforms = [ ]; @@ -634,12 +634,12 @@ final: prev: { aerial-nvim = buildVimPlugin { pname = "aerial.nvim"; - version = "2025-04-01"; + version = "2025-04-20"; src = fetchFromGitHub { owner = "stevearc"; repo = "aerial.nvim"; - rev = "44684bf429dc40e97a6d00ffa09043ac3f692186"; - sha256 = "02zd23np2pn7hivi8sl63lcdn85cfbvsapkyghkwh9prxg8a81zn"; + rev = "2e00d1d4248f08dddfceacb8d2996e51e13e00f6"; + sha256 = "18rhmpqs8440hn4g5786znj37fzb01wa3zws33rlq9vm6sfb0grw"; fetchSubmodules = true; }; meta.homepage = "https://github.com/stevearc/aerial.nvim/"; @@ -700,12 +700,12 @@ final: prev: { aider-nvim = buildVimPlugin { pname = "aider.nvim"; - version = "2025-01-07"; + version = "2025-04-17"; src = fetchFromGitHub { owner = "joshuavial"; repo = "aider.nvim"; - rev = "a34a03635a130f16a56e6a50b211bb72cc1aff96"; - sha256 = "00zfkqcldrqmlmj30gany0yqmyrc1i88hv7655bc78i0rihkv7di"; + rev = "1e5fc680a764d2b93f342005d7e4415fec469088"; + sha256 = "0f4gn4mwcghpcy5whah230y22wqaa1hxh8aczysh09fwdnigb4r4"; }; meta.homepage = "https://github.com/joshuavial/aider.nvim/"; meta.hydraPlatforms = [ ]; @@ -726,12 +726,12 @@ final: prev: { ale = buildVimPlugin { pname = "ale"; - version = "2025-04-10"; + version = "2025-04-16"; src = fetchFromGitHub { owner = "dense-analysis"; repo = "ale"; - rev = "366de225fdd9ddef29a5b947c419303278af0c01"; - sha256 = "0hhzbn1zv5bf03gjvsynkykrhzamiiwxqkryfnjbpy6jb6y2gc1g"; + rev = "baaca9a5d7016c52466c3b4cd2d161b317d801ed"; + sha256 = "1difjr5lj2adhp1r0damgfdrdvkj0qki31zc3vm5sqrb8izdh7mn"; }; meta.homepage = "https://github.com/dense-analysis/ale/"; meta.hydraPlatforms = [ ]; @@ -895,12 +895,12 @@ final: prev: { astrolsp = buildVimPlugin { pname = "astrolsp"; - version = "2025-03-28"; + version = "2025-04-15"; src = fetchFromGitHub { owner = "AstroNvim"; repo = "astrolsp"; - rev = "bb0051597474971b93e1cde2fd960dda978c2378"; - sha256 = "04v1vg0zyp3bjyikxm4qw6agylw4hjv2jg77vspnijvikb2qk6zq"; + rev = "59a0228a6ededb8cebcd8557a61744f5c8afac1f"; + sha256 = "0sxfm6bz044bpicxf40ksa9xbgfsm69v6803q912m335s53ffhwk"; }; meta.homepage = "https://github.com/AstroNvim/astrolsp/"; meta.hydraPlatforms = [ ]; @@ -921,12 +921,12 @@ final: prev: { astroui = buildVimPlugin { pname = "astroui"; - version = "2025-04-09"; + version = "2025-04-18"; src = fetchFromGitHub { owner = "AstroNvim"; repo = "astroui"; - rev = "4b1a46eb9576a187246e5fc41cb4670c3daf749e"; - sha256 = "09yxv7kxw5bw1m9x0zv72sm2sqkv9hyjv5q2m0q7lzv44ijqdmrg"; + rev = "fded232ee0001c6bed9b654188e3dd4b0c58317c"; + sha256 = "0vh7qyj0cyd3vq1mv253sd48dcapf7idfnh7wv29qvvpsvwvamxc"; }; meta.homepage = "https://github.com/AstroNvim/astroui/"; meta.hydraPlatforms = [ ]; @@ -1155,12 +1155,12 @@ final: prev: { auto-session = buildVimPlugin { pname = "auto-session"; - version = "2025-04-10"; + version = "2025-04-18"; src = fetchFromGitHub { owner = "rmagatti"; repo = "auto-session"; - rev = "095b0b54d40c8cc7fe37f2ae4d948ec3069bb1c2"; - sha256 = "0l0p9jxpwcngxl0isc7vbrqa5xg329h0qpqnfvaq0z2a1cb19xlb"; + rev = "71c8af9a99e96b9d2533cf4bac4dfed1eafab923"; + sha256 = "1g3lm02rhyg4s1kqpmazrdz4r8qibaxgb44pdpl8sfp2w2kssb1l"; }; meta.homepage = "https://github.com/rmagatti/auto-session/"; meta.hydraPlatforms = [ ]; @@ -1351,12 +1351,12 @@ final: prev: { base16-nvim = buildVimPlugin { pname = "base16-nvim"; - version = "2025-04-14"; + version = "2025-04-19"; src = fetchFromGitHub { owner = "RRethy"; repo = "base16-nvim"; - rev = "595861241130ad49222755cf90fb5aea8e0eab8d"; - sha256 = "0b42jkzf5kfqj9zazkrvpdih1c06z4v3q6yj516r6va7kp14dkhs"; + rev = "965160025d0facbe9caa863e5beef2a7a488e9d1"; + sha256 = "02w1mn15gydma9canvqrlwf4l5z76s1vs01zanipwwflvwclsb8f"; }; meta.homepage = "https://github.com/RRethy/base16-nvim/"; meta.hydraPlatforms = [ ]; @@ -1546,12 +1546,12 @@ final: prev: { blink-compat = buildVimPlugin { pname = "blink.compat"; - version = "2025-03-17"; + version = "2025-04-15"; src = fetchFromGitHub { owner = "Saghen"; repo = "blink.compat"; - rev = "2ed6d9a28b07fa6f3bface818470605f8896408c"; - sha256 = "009475xy41l4dpayswhx65q6a7djzw7rz2ycbrbpyg041y0qynqs"; + rev = "f1836ed7a07f8d082ff6c3fbae1e476ba2adee84"; + sha256 = "0b22c943vbxn8cgfc3m0wmmia9rja6x766ywa798nx7s7x0sd53x"; }; meta.homepage = "https://github.com/Saghen/blink.compat/"; meta.hydraPlatforms = [ ]; @@ -1598,12 +1598,12 @@ final: prev: { blink-ripgrep-nvim = buildVimPlugin { pname = "blink-ripgrep.nvim"; - version = "2025-03-31"; + version = "2025-04-20"; src = fetchFromGitHub { owner = "mikavilpas"; repo = "blink-ripgrep.nvim"; - rev = "56084d1f45c8621d23d4bac724c2dc50b1eb75db"; - sha256 = "1lyczjvwpi5f1mjgw059yzkxxjrk48vcvhdjzkjgakhsq76s125x"; + rev = "ca538d15bd22fedd3408064d2b25ff8d56ec8ce8"; + sha256 = "1rg40x0lvz11rl95b3q3kqzb8ygvyvhcxiw255200ccxl6q21jg8"; }; meta.homepage = "https://github.com/mikavilpas/blink-ripgrep.nvim/"; meta.hydraPlatforms = [ ]; @@ -2092,12 +2092,12 @@ final: prev: { cmp-ai = buildVimPlugin { pname = "cmp-ai"; - version = "2025-01-06"; + version = "2025-04-20"; src = fetchFromGitHub { owner = "tzachar"; repo = "cmp-ai"; - rev = "f5e4dcbf763770880d0a01fe2bc139eb47597261"; - sha256 = "093l4cdlmdgrhnv502kkyj4qi4jk656ks90wmfjbkxdffx6xdsrc"; + rev = "5aa4530c1da98fc2e27f406170fe0635bae99c06"; + sha256 = "1ak769vpbnp44vdna2c8b56aa99g1vc3mmbd8y7fnzai700slhdk"; }; meta.homepage = "https://github.com/tzachar/cmp-ai/"; meta.hydraPlatforms = [ ]; @@ -2820,12 +2820,12 @@ final: prev: { coc-nvim = buildVimPlugin { pname = "coc.nvim"; - version = "2025-04-12"; + version = "2025-04-15"; src = fetchFromGitHub { owner = "neoclide"; repo = "coc.nvim"; - rev = "2bf3a4d979060e897fcee92a1c9f9abab501f06e"; - sha256 = "09rgj3zqbw98l0d20y1jpk7b9xq112nhzyscwmrclhpmv2bb6lg4"; + rev = "993a4a273bf0415296a1a8d512466b183670568a"; + sha256 = "0nrsxl9faaq5rlvfsbwqpil7gczf2lz65jil4nj8kwmfi113rw37"; }; meta.homepage = "https://github.com/neoclide/coc.nvim/"; meta.hydraPlatforms = [ ]; @@ -2872,12 +2872,12 @@ final: prev: { codecompanion-nvim = buildVimPlugin { pname = "codecompanion.nvim"; - version = "2025-04-13"; + version = "2025-04-20"; src = fetchFromGitHub { owner = "olimorris"; repo = "codecompanion.nvim"; - rev = "d71d8b96c0b1ec8c047fb938552035864d530bb1"; - sha256 = "0rn7vhb5508lq0dx4xipyc249r09jh9ldmp6fqpwbskxw6809ms4"; + rev = "b7c1fb1ced98468b3a9836101eaccdcdfc768c46"; + sha256 = "1pplq2bzdg8vgikvhagml81zqq7qx4svbz5i57wkfhg2976hwdfq"; }; meta.homepage = "https://github.com/olimorris/codecompanion.nvim/"; meta.hydraPlatforms = [ ]; @@ -3015,12 +3015,12 @@ final: prev: { competitest-nvim = buildVimPlugin { pname = "competitest.nvim"; - version = "2025-04-09"; + version = "2025-04-17"; src = fetchFromGitHub { owner = "xeluxee"; repo = "competitest.nvim"; - rev = "602cad3f5c4a116cdf8d0e8557bb0a9a2cea7245"; - sha256 = "1fmsbjvd2w9fsc5k5l55sry21gysvxin5lxl4r8d3jvnr649j3w2"; + rev = "c9be46ff8f0649987459b21006215bc5be20a95b"; + sha256 = "0chj7mzqkwg74nbapyzfy5rq9p1vdq54l260rya69qkyzn3brkdi"; }; meta.homepage = "https://github.com/xeluxee/competitest.nvim/"; meta.hydraPlatforms = [ ]; @@ -3132,12 +3132,12 @@ final: prev: { conform-nvim = buildVimPlugin { pname = "conform.nvim"; - version = "2025-04-06"; + version = "2025-04-20"; src = fetchFromGitHub { owner = "stevearc"; repo = "conform.nvim"; - rev = "eebc724d12c5579d733d1f801386e0ceb909d001"; - sha256 = "122v0svrsss8g4gzy9fz2ppzm2lxf85l4m8wincxsy75x9v3ywgn"; + rev = "372fc521f8421b7830ea6db4d6ea3bae1c77548c"; + sha256 = "0b6qbwyb6ashpia7pk0r5kp82pdrblhmhmx1fprgy7lmgnm8mw97"; fetchSubmodules = true; }; meta.homepage = "https://github.com/stevearc/conform.nvim/"; @@ -3146,12 +3146,12 @@ final: prev: { conjure = buildVimPlugin { pname = "conjure"; - version = "2025-03-23"; + version = "2025-04-20"; src = fetchFromGitHub { owner = "Olical"; repo = "conjure"; - rev = "980452d93fd6165d3f268f50a181ad7ca4c7b990"; - sha256 = "0pwl2h19rx3cqkn5l8qdyvia09zkg7fsjafd3py65imji9anqzxi"; + rev = "dc929e83287d84ac40a8e9635aa806415143beff"; + sha256 = "124xwhlpp356lsa555876nskqi2c9sgyvc2v9wkbfr87i6jhdbk8"; }; meta.homepage = "https://github.com/Olical/conjure/"; meta.hydraPlatforms = [ ]; @@ -3198,12 +3198,12 @@ final: prev: { copilot-lua = buildVimPlugin { pname = "copilot.lua"; - version = "2025-04-14"; + version = "2025-04-20"; src = fetchFromGitHub { owner = "zbirenbaum"; repo = "copilot.lua"; - rev = "d712de3bc210fd8f28ab91de4bb23693fc0a2328"; - sha256 = "0frwc1kfaa9151bgxickavyk4nznm839i0mrli3dx5iyzn2bziik"; + rev = "dc579f98536029610cfa32c6bad86c0d24363679"; + sha256 = "16zx9a8f2mjmj7ibdsjyj0vqdsc10yl1vrna0kkkgccj957rd99x"; }; meta.homepage = "https://github.com/zbirenbaum/copilot.lua/"; meta.hydraPlatforms = [ ]; @@ -3224,12 +3224,12 @@ final: prev: { copilot-vim = buildVimPlugin { pname = "copilot.vim"; - version = "2025-04-11"; + version = "2025-04-16"; src = fetchFromGitHub { owner = "github"; repo = "copilot.vim"; - rev = "250f24cc485aede5d0069e8765542c3787448d8d"; - sha256 = "19n1zzvr7w2j5p2cc3d7fhf41zk3bhlf5nv1751fyf0fq1lacvpb"; + rev = "8d1e0f86d8aaa64070c080589bc2a516beb4024f"; + sha256 = "17q357rawgcvvdgpirqbgglpy110gk7j6lzy2n3ln02ajr8acs61"; }; meta.homepage = "https://github.com/github/copilot.vim/"; meta.hydraPlatforms = [ ]; @@ -3406,12 +3406,12 @@ final: prev: { csvview-nvim = buildVimPlugin { pname = "csvview.nvim"; - version = "2025-04-07"; + version = "2025-04-19"; src = fetchFromGitHub { owner = "hat0uma"; repo = "csvview.nvim"; - rev = "9cc5dcb060c96517d8c34b74e5b81d58529b3ea2"; - sha256 = "1pmdh9y3z51cgywnr8byx8gl82bb7mxw76a86nmzipqhcl38yf6j"; + rev = "6eb9c7293d35c40a71ec1eb9c653d80e8de5a2e9"; + sha256 = "17ax71iyf8n8brxs71ckq218ccwajxqj2ird0pijqdmylm2mcy4z"; }; meta.homepage = "https://github.com/hat0uma/csvview.nvim/"; meta.hydraPlatforms = [ ]; @@ -3484,12 +3484,12 @@ final: prev: { cyberdream-nvim = buildVimPlugin { pname = "cyberdream.nvim"; - version = "2025-04-11"; + version = "2025-04-17"; src = fetchFromGitHub { owner = "scottmckendry"; repo = "cyberdream.nvim"; - rev = "274eacedda3362faaa4fa850eebfc5911294992e"; - sha256 = "0g12a6bfcd1ilzzsc2cx1cm4n3w2i9civhd79s4dpzvhcdbnnqfq"; + rev = "982c9b33612a9cd97e6df141c3d8c535c74381c5"; + sha256 = "16cwkcdsxanb37p6k3md4pflspf1cs8asvvjvqm7fjv9hfg38pyl"; }; meta.homepage = "https://github.com/scottmckendry/cyberdream.nvim/"; meta.hydraPlatforms = [ ]; @@ -4279,12 +4279,12 @@ final: prev: { dropbar-nvim = buildVimPlugin { pname = "dropbar.nvim"; - version = "2025-04-13"; + version = "2025-04-20"; src = fetchFromGitHub { owner = "Bekaboo"; repo = "dropbar.nvim"; - rev = "a64fc20c4ec7e10fc92dc80312457010755bb019"; - sha256 = "1rl81hfpha65gvvf98jd3m9skpfky5nssdmhbz2g8pxc0pkxm1p0"; + rev = "cb7c17bb35fe8860d490dfd1d5c45fce40ecba26"; + sha256 = "1m8yawharg9z01m34l5vwryzq4006wgk766vsjkizcfjiwvyvnjy"; }; meta.homepage = "https://github.com/Bekaboo/dropbar.nvim/"; meta.hydraPlatforms = [ ]; @@ -4305,12 +4305,12 @@ final: prev: { easy-dotnet-nvim = buildVimPlugin { pname = "easy-dotnet.nvim"; - version = "2025-04-13"; + version = "2025-04-19"; src = fetchFromGitHub { owner = "GustavEikaas"; repo = "easy-dotnet.nvim"; - rev = "19ffa96ed51a2b536cedfdc107d9002293c606c6"; - sha256 = "0cbcl5a6gir8ww0shsm440qf1dc7a8wmyck2lm4fbmad3r7zfzsz"; + rev = "a2dff2b31d43ef31a87e6e979110f2736ee07db1"; + sha256 = "16478bc60w44i6v39n7rrm7vri2yd1v8dxkap6ygq7w3h81kywhh"; }; meta.homepage = "https://github.com/GustavEikaas/easy-dotnet.nvim/"; meta.hydraPlatforms = [ ]; @@ -4331,12 +4331,12 @@ final: prev: { edge = buildVimPlugin { pname = "edge"; - version = "2025-02-24"; + version = "2025-04-16"; src = fetchFromGitHub { owner = "sainnhe"; repo = "edge"; - rev = "04b2e25fa08b81e071ad512bdec6e5af114b01b3"; - sha256 = "0mz0k0fx27dvnyim22fr48slqdqpzcaxcljfysx07b5ladn0jhzz"; + rev = "8eeab1bc9d93eec3511cb4d3c87d2d599c7ce3d4"; + sha256 = "1d6k3b6z9a4hrhk9ma3my28iga5y1s6srgv9jxwy6yg2wzi0lf9q"; }; meta.homepage = "https://github.com/sainnhe/edge/"; meta.hydraPlatforms = [ ]; @@ -4515,12 +4515,12 @@ final: prev: { everforest = buildVimPlugin { pname = "everforest"; - version = "2025-02-26"; + version = "2025-04-16"; src = fetchFromGitHub { owner = "sainnhe"; repo = "everforest"; - rev = "29d1f4f8b63dc91db277e977068f912939c8cae8"; - sha256 = "1p946h4zq7qvkkb3y74bh3r4hbx4qykg4zzn088hvkki4ln7xaac"; + rev = "ffa5a2032fd41903135fa829bd4b49ba2e1d5d18"; + sha256 = "1s1m9z8061yvdr124hvwdpfhkyx1l46gcp860rz1bxlbk5h02g1z"; }; meta.homepage = "https://github.com/sainnhe/everforest/"; meta.hydraPlatforms = [ ]; @@ -4907,12 +4907,12 @@ final: prev: { friendly-snippets = buildVimPlugin { pname = "friendly-snippets"; - version = "2025-04-13"; + version = "2025-04-20"; src = fetchFromGitHub { owner = "rafamadriz"; repo = "friendly-snippets"; - rev = "31f2a2657b6261724313281fe0d8ba6f43f4a4fa"; - sha256 = "0rkz7zbv1maqhr22nxq39w7pahahcapfyc4rgscmr3bm4dcymk2a"; + rev = "16833311a0c51e7ee9a1ce939000f5b20a5d9d2b"; + sha256 = "03n4f7vi0msdayjjiwk3jia8ip7470nbv058zlj3b14fci6in3kg"; }; meta.homepage = "https://github.com/rafamadriz/friendly-snippets/"; meta.hydraPlatforms = [ ]; @@ -5037,12 +5037,12 @@ final: prev: { fzf-vim = buildVimPlugin { pname = "fzf.vim"; - version = "2025-03-21"; + version = "2025-04-15"; src = fetchFromGitHub { owner = "junegunn"; repo = "fzf.vim"; - rev = "1fff637559f29d5edbdb05e03327954a8cd9e406"; - sha256 = "13xh17bqnb1k32jm53x9kqc8x6njwcdha9xbwn2zhm0s8dgqikzx"; + rev = "3cb44a8ba588e1ada409af495bdc6a4d2d37d5da"; + sha256 = "0v1svsw4wj4i2rayvksdpz8q65yvkdq9igpa64qq7xyd07jh6g8n"; }; meta.homepage = "https://github.com/junegunn/fzf.vim/"; meta.hydraPlatforms = [ ]; @@ -5310,12 +5310,12 @@ final: prev: { go-nvim = buildVimPlugin { pname = "go.nvim"; - version = "2025-04-07"; + version = "2025-04-15"; src = fetchFromGitHub { owner = "ray-x"; repo = "go.nvim"; - rev = "ef38820e413e10f47d83688dee41785bd885fb2a"; - sha256 = "1widcvlh2a8c8yk1qi35i11nx1cf8cadzj629l2nwbjy3z1vymb8"; + rev = "ecffa1757ac8e84e1e128f12e0fdbf8418354f6f"; + sha256 = "1d208n8iamhxq1gcmm69cahxqfdyc3w8shbdiavllxn2d9if823y"; }; meta.homepage = "https://github.com/ray-x/go.nvim/"; meta.hydraPlatforms = [ ]; @@ -5440,12 +5440,12 @@ final: prev: { gruvbox = buildVimPlugin { pname = "gruvbox"; - version = "2023-08-14"; + version = "2025-04-20"; src = fetchFromGitHub { owner = "morhetz"; repo = "gruvbox"; - rev = "f1ecde848f0cdba877acb0c740320568252cc482"; - sha256 = "1qqb0a5fscqglii8vh9v2wqk40cka2f2k7h8ylysh89w9ppnx142"; + rev = "697c00291db857ca0af00ec154e5bd514a79191f"; + sha256 = "0gj1bikyz13jgd5rqmkdgxmva2mnmd672hhn4jd1dr7nw1dghrby"; }; meta.homepage = "https://github.com/morhetz/gruvbox/"; meta.hydraPlatforms = [ ]; @@ -5492,12 +5492,12 @@ final: prev: { gruvbox-material = buildVimPlugin { pname = "gruvbox-material"; - version = "2025-02-24"; + version = "2025-04-16"; src = fetchFromGitHub { owner = "sainnhe"; repo = "gruvbox-material"; - rev = "146f40fd42cbef30fed69b4ef51329aeeaceb909"; - sha256 = "0bgxfflssqhmlq9v613xw017niyram12vnshd3znlgbsblxa5frx"; + rev = "f5f912fbc7cf2d45da6928b792d554f85c7aa89a"; + sha256 = "0ld6rpmz2r4kjz7i0fhjyr7shq8fgcaw04542g0al4k92izb8xmg"; }; meta.homepage = "https://github.com/sainnhe/gruvbox-material/"; meta.hydraPlatforms = [ ]; @@ -5518,12 +5518,12 @@ final: prev: { gruvbox-nvim = buildVimPlugin { pname = "gruvbox.nvim"; - version = "2025-04-02"; + version = "2025-04-15"; src = fetchFromGitHub { owner = "ellisonleao"; repo = "gruvbox.nvim"; - rev = "12b5420b665e8053d74eb075d8a589477333f67d"; - sha256 = "16fa841cv0dbn7pkcs44r5ch241vhax8jfxgcxwwd0z4srlbj6gy"; + rev = "a933d8666dad9363dc6908ae72cfc832299c2f59"; + sha256 = "02r2h0ip2vzmgmv9b36ff2r6br3ql0b9ggzl8ijsyjy7pgiij04y"; }; meta.homepage = "https://github.com/ellisonleao/gruvbox.nvim/"; meta.hydraPlatforms = [ ]; @@ -5753,12 +5753,12 @@ final: prev: { helpview-nvim = buildVimPlugin { pname = "helpview.nvim"; - version = "2025-03-07"; + version = "2025-04-20"; src = fetchFromGitHub { owner = "OXY2DEV"; repo = "helpview.nvim"; - rev = "49e8d4782ae73274a35d606fde2844b6e958a0c7"; - sha256 = "1ichkr5f3wcyadjc8n0mbk3x6i128cyl4603h6skdbc17yfm7iw6"; + rev = "493060153bc99927a64b203ea2ee49bb2884c190"; + sha256 = "0gvs61bxzl3mmfvradcsl2wyaamzw8ch8d6yiwhaw9v4a7gspyvl"; fetchSubmodules = true; }; meta.homepage = "https://github.com/OXY2DEV/helpview.nvim/"; @@ -6300,12 +6300,12 @@ final: prev: { iron-nvim = buildVimPlugin { pname = "iron.nvim"; - version = "2025-04-01"; + version = "2025-04-18"; src = fetchFromGitHub { owner = "Vigemus"; repo = "iron.nvim"; - rev = "93b3b97cf4313613fba5e91055deaf091cd78483"; - sha256 = "1nbi4ypayz2w3z99ycrirgad9yd8cm3n1psxdwwfcr5q6jsyh5l9"; + rev = "c005b01b779f1b6c038e11248db403bb3df6a7f3"; + sha256 = "1nk1aij16akmq7f3s5malzywik0jw6ppd9p2mp7d0p1n8nq9ifnl"; }; meta.homepage = "https://github.com/Vigemus/iron.nvim/"; meta.hydraPlatforms = [ ]; @@ -6379,12 +6379,12 @@ final: prev: { jinja-vim = buildVimPlugin { pname = "jinja.vim"; - version = "2025-02-28"; + version = "2025-04-19"; src = fetchFromGitHub { owner = "HiPhish"; repo = "jinja.vim"; - rev = "a56da59ed3b49f09b4b20e35b80a197bc7f54fe4"; - sha256 = "1k233zaxp4kwkqb74g93jv3w9c9sc4s7ycgadc6knhfy9i3cr4mp"; + rev = "f29c4abc60dae17b2931621748d14d2759e00a6c"; + sha256 = "1f341lg551v72jc0m0c2rbp7nyni0rnfhr66ckggfwnqlskz4xaw"; fetchSubmodules = true; }; meta.homepage = "https://github.com/HiPhish/jinja.vim/"; @@ -6576,12 +6576,12 @@ final: prev: { kulala-nvim = buildVimPlugin { pname = "kulala.nvim"; - version = "2025-04-14"; + version = "2025-04-18"; src = fetchFromGitHub { owner = "mistweaverco"; repo = "kulala.nvim"; - rev = "5fddda621630fef17e09cec930d2e307f4a5a138"; - sha256 = "1gwqr1rrs1asviv30v7hwb7afgvqx7v1k6spg511qi25zp94108j"; + rev = "f2a5d94d4fe5f67707bf8a36331fdd803044c051"; + sha256 = "11407b8974y7kghjgkc0dhn4kjs7cijjpjmihdzcvyhxvaxfhqsk"; }; meta.homepage = "https://github.com/mistweaverco/kulala.nvim/"; meta.hydraPlatforms = [ ]; @@ -6706,12 +6706,12 @@ final: prev: { lean-nvim = buildVimPlugin { pname = "lean.nvim"; - version = "2025-04-11"; + version = "2025-04-21"; src = fetchFromGitHub { owner = "Julian"; repo = "lean.nvim"; - rev = "c3fb55496b1e48e2d755734c71f5ba5f1c1d4f59"; - sha256 = "03774wk7pnf0bfxaqv138d2dbvr6799bla9jx0j7msrlmk7pm7s5"; + rev = "b66d9cdd931cbec760ead7bb81e514301466a20c"; + sha256 = "0ndrsmgahnmv3rd9m6hhj3c0w3blbn2cx7ixaflq4c89jhsb0m9k"; }; meta.homepage = "https://github.com/Julian/lean.nvim/"; meta.hydraPlatforms = [ ]; @@ -6745,12 +6745,12 @@ final: prev: { leap-nvim = buildVimPlugin { pname = "leap.nvim"; - version = "2025-04-14"; + version = "2025-04-20"; src = fetchFromGitHub { owner = "ggandor"; repo = "leap.nvim"; - rev = "8a0efa79133fee211017d769c8031512192008b3"; - sha256 = "0pgg26r5rh1r2364yj05w4scarzy6zwsp6w7s9yxgfmk7l9x89yk"; + rev = "2b68ddc0802bd295e64c9e2e75f18f755e50dbcc"; + sha256 = "07bdhfsig70qblvk2x0n35i5apz3mjdr05ba3082mh438ikgfmvx"; }; meta.homepage = "https://github.com/ggandor/leap.nvim/"; meta.hydraPlatforms = [ ]; @@ -7265,12 +7265,12 @@ final: prev: { lspsaga-nvim = buildVimPlugin { pname = "lspsaga.nvim"; - version = "2025-03-26"; + version = "2025-04-18"; src = fetchFromGitHub { owner = "nvimdev"; repo = "lspsaga.nvim"; - rev = "778d56ff9b387dacd14ae648ed5604394b486f51"; - sha256 = "1rm8ww8krxliwli9m2j6j37xgwgjsrgapvgrcdr6nd4mi6hgmczm"; + rev = "920b1253e1a26732e53fac78412f6da7f674671d"; + sha256 = "0wkcgy2x119sd9xn6k9vs83pvrj0m4ali1ac72pah8pnlzfvkw7i"; }; meta.homepage = "https://github.com/nvimdev/lspsaga.nvim/"; meta.hydraPlatforms = [ ]; @@ -7447,12 +7447,12 @@ final: prev: { markview-nvim = buildVimPlugin { pname = "markview.nvim"; - version = "2025-04-12"; + version = "2025-04-19"; src = fetchFromGitHub { owner = "OXY2DEV"; repo = "markview.nvim"; - rev = "3cc0a687bfddf50eac2370c194f8d7ad14344db2"; - sha256 = "19qbdrhcjdnnqifvl7x8bq0s6s03xr1i4g4jgn205qcx9j8570xz"; + rev = "74983021512660bbade34a46cd03595b993412c0"; + sha256 = "0wrwapf6cxrnkjcccy70azv3nccxlc41gj2az0nra5r4p0w7xfvb"; fetchSubmodules = true; }; meta.homepage = "https://github.com/OXY2DEV/markview.nvim/"; @@ -7799,12 +7799,12 @@ final: prev: { mini-completion = buildVimPlugin { pname = "mini.completion"; - version = "2025-04-12"; + version = "2025-04-19"; src = fetchFromGitHub { owner = "echasnovski"; repo = "mini.completion"; - rev = "cf3625d2c4a437f5edf7e61382e0fe522fc76fb7"; - sha256 = "0lpvl1kd7vmyy00p97am9ghj6gdmnk1dbw93wjmnvin057w9sysw"; + rev = "35130cebc63ace7d6e4583f349af8cd3f3141af7"; + sha256 = "0h5z5i62cc780bzw60rbizngvpyl4vk7j858pndyi2g572plz929"; }; meta.homepage = "https://github.com/echasnovski/mini.completion/"; meta.hydraPlatforms = [ ]; @@ -8046,12 +8046,12 @@ final: prev: { mini-nvim = buildVimPlugin { pname = "mini.nvim"; - version = "2025-04-12"; + version = "2025-04-19"; src = fetchFromGitHub { owner = "echasnovski"; repo = "mini.nvim"; - rev = "b418d585d99bd1c1a4b04dc8b2c585471665173a"; - sha256 = "0fvr4f847jp3fyskpn16w995ijzl98bzmjbhfjqm4h37viqib06b"; + rev = "c404fc5717866ff738aadeeb1f54ab8ed270ae1e"; + sha256 = "09yv0iwswrzvinq6rdr9b6l9zd7xgr0sc4psb3k1bpsi58mmc0cg"; }; meta.homepage = "https://github.com/echasnovski/mini.nvim/"; meta.hydraPlatforms = [ ]; @@ -8111,12 +8111,12 @@ final: prev: { mini-snippets = buildVimPlugin { pname = "mini.snippets"; - version = "2025-04-01"; + version = "2025-04-18"; src = fetchFromGitHub { owner = "echasnovski"; repo = "mini.snippets"; - rev = "e05106957fc178285dbc510ff833985da59d3e5a"; - sha256 = "0pn9i6sfh3fxkjzh9yyyc05lgcgm8wsanvl7axmy4p7a9spnfa2q"; + rev = "d005684e620e76eb2a5fbbbd211a1eba7212b4aa"; + sha256 = "19xmqzgx0lv6m6lp6dn4pcr53clgjyrlnh45j795cy9szizw4y0x"; }; meta.homepage = "https://github.com/echasnovski/mini.snippets/"; meta.hydraPlatforms = [ ]; @@ -8228,12 +8228,12 @@ final: prev: { minuet-ai-nvim = buildVimPlugin { pname = "minuet-ai.nvim"; - version = "2025-04-13"; + version = "2025-04-20"; src = fetchFromGitHub { owner = "milanglacier"; repo = "minuet-ai.nvim"; - rev = "a647a85a7a1ad6bb2624de9ebe25cba2fe4dcc7c"; - sha256 = "0j3fnh56i640h7iyvr7c821p0ncf02xbmars58bf28h10hh3iwyq"; + rev = "f5272221c3378421dc416a0efa5007e1de104b7f"; + sha256 = "1443nr2f80df6d3d4sgm0v9p2biii6si9x7wwbn8padsmsma4837"; }; meta.homepage = "https://github.com/milanglacier/minuet-ai.nvim/"; meta.hydraPlatforms = [ ]; @@ -8410,12 +8410,12 @@ final: prev: { nabla-nvim = buildVimPlugin { pname = "nabla.nvim"; - version = "2023-12-23"; + version = "2025-04-19"; src = fetchFromGitHub { owner = "jbyuki"; repo = "nabla.nvim"; - rev = "27a6ea9ed7452bb9e0b19eb0942b5bcf7d051b2f"; - sha256 = "1dnd6s6abwxihliqqyl1vrds14w502m0x7aadlxrrfh970bqikg0"; + rev = "8247b977bd9ef249bee0eea8db57e422c1d12762"; + sha256 = "0pj05zbl31w9a6bs42qvi5kla89zq7w8nffb6s78nqk9m7ny92as"; }; meta.homepage = "https://github.com/jbyuki/nabla.nvim/"; meta.hydraPlatforms = [ ]; @@ -8683,12 +8683,12 @@ final: prev: { neo-tree-nvim = buildVimPlugin { pname = "neo-tree.nvim"; - version = "2025-04-09"; + version = "2025-04-17"; src = fetchFromGitHub { owner = "nvim-neo-tree"; repo = "neo-tree.nvim"; - rev = "5224467c6a49a6c77b8a8333f4d9af0abc788e10"; - sha256 = "0dzppxi4w38s3pqsgwd3z0xr1r14bd0v4qpakxw3kjn9wr2d8y7n"; + rev = "1ef260eb4f54515fe121a2267b477efb054d108a"; + sha256 = "0j0gr2pisrj5vsiwsvrd3dkrdrd3q2742srk23rw2x0h055c0mxh"; }; meta.homepage = "https://github.com/nvim-neo-tree/neo-tree.nvim/"; meta.hydraPlatforms = [ ]; @@ -8709,12 +8709,12 @@ final: prev: { neoconf-nvim = buildVimPlugin { pname = "neoconf.nvim"; - version = "2025-04-14"; + version = "2025-04-20"; src = fetchFromGitHub { owner = "folke"; repo = "neoconf.nvim"; - rev = "0c3cb10a7ff11acfa3067896a6108db3bd18d8aa"; - sha256 = "14yf91wvw6vfrsyb9i2zhm74hpx7bnw515drw5pnfsp9s49w056a"; + rev = "114aa200d636dd62fb5ec2323f2c291d6168128b"; + sha256 = "1fcdkpnb2pabgz7b6rngkfvqns0q70nw3whmjaw5aapk1sdn28f8"; }; meta.homepage = "https://github.com/folke/neoconf.nvim/"; meta.hydraPlatforms = [ ]; @@ -8787,12 +8787,12 @@ final: prev: { neogit = buildVimPlugin { pname = "neogit"; - version = "2025-04-08"; + version = "2025-04-16"; src = fetchFromGitHub { owner = "NeogitOrg"; repo = "neogit"; - rev = "97f83f1dc51dee41e08e3c7a8adf00e1083e3178"; - sha256 = "0xsrfy0lzf9nq62gii67a5k21d1460fdpy32hh40k4i6zpsbn28f"; + rev = "9bb1e73c534f767607e0a888f3de4c942825c501"; + sha256 = "06qcyz3snk8bphbd2n9q4dzizkksn65is0nksd76q0zzkvb9qxhp"; }; meta.homepage = "https://github.com/NeogitOrg/neogit/"; meta.hydraPlatforms = [ ]; @@ -8878,12 +8878,12 @@ final: prev: { neorg-telescope = buildVimPlugin { pname = "neorg-telescope"; - version = "2024-07-30"; + version = "2025-04-17"; src = fetchFromGitHub { owner = "nvim-neorg"; repo = "neorg-telescope"; - rev = "ddb2556644cae922699a239bbb0fe16e25b084b7"; - sha256 = "0p2s3n22fy1vkqc9n55x6kssqs4n0znwlszfrs532hj8m992wbks"; + rev = "7fb6ca6a632c3c095601d379a664c0c1f802dc6c"; + sha256 = "12pbixkb7175qb9wblq01mbpkccm9h0si7b2jjaf7yip8j8frxmn"; }; meta.homepage = "https://github.com/nvim-neorg/neorg-telescope/"; meta.hydraPlatforms = [ ]; @@ -9076,12 +9076,12 @@ final: prev: { neotest-haskell = buildVimPlugin { pname = "neotest-haskell"; - version = "2025-04-13"; + version = "2025-04-20"; src = fetchFromGitHub { owner = "MrcJkb"; repo = "neotest-haskell"; - rev = "b1a01f95d2359e87d43bd6df5cf9135655fe9e1a"; - sha256 = "1b3wsm8794bf0c9n853issfnhyayx439wvjiqj50rfmzhlb1xrq5"; + rev = "aaf371f3d44fbf35ff189d16cb22c2a732309c37"; + sha256 = "1v4hjhfimyr53j28bi1p62cydbrn5nfkj4mk7ljkifrkmnyahbsd"; }; meta.homepage = "https://github.com/MrcJkb/neotest-haskell/"; meta.hydraPlatforms = [ ]; @@ -9453,12 +9453,12 @@ final: prev: { nfnl = buildVimPlugin { pname = "nfnl"; - version = "2025-04-08"; + version = "2025-04-19"; src = fetchFromGitHub { owner = "Olical"; repo = "nfnl"; - rev = "c0e153c8c63926647a70b90cc2c98897278f53c8"; - sha256 = "1b7imv4yjbrz96fk8na7f38n38j1n54kgnigmz9m41mk40vf17ja"; + rev = "9f05512f3d933d3aba6ae067f5cb58e891be31a6"; + sha256 = "11cdc18219yaaphjxl00mia8d3rmq7cm9k16751675p36hx26xpy"; }; meta.homepage = "https://github.com/Olical/nfnl/"; meta.hydraPlatforms = [ ]; @@ -9557,12 +9557,12 @@ final: prev: { nlsp-settings-nvim = buildVimPlugin { pname = "nlsp-settings.nvim"; - version = "2025-04-14"; + version = "2025-04-20"; src = fetchFromGitHub { owner = "tamago324"; repo = "nlsp-settings.nvim"; - rev = "fa95b60dad126efebbf0180ab42ccc66e98f4f84"; - sha256 = "0kw6kb2456va3abn660sswqjmm1wcjivhxp1kfiilr87l6a2b59n"; + rev = "852140cecf00e4d41289da6d20a2dddeca70e967"; + sha256 = "175nysna5xz7mn6ml4xmlrh02aq1ck0qsyhk739wws81zrfk3062"; }; meta.homepage = "https://github.com/tamago324/nlsp-settings.nvim/"; meta.hydraPlatforms = [ ]; @@ -9596,12 +9596,12 @@ final: prev: { no-neck-pain-nvim = buildVimPlugin { pname = "no-neck-pain.nvim"; - version = "2025-03-07"; + version = "2025-04-15"; src = fetchFromGitHub { owner = "shortcuts"; repo = "no-neck-pain.nvim"; - rev = "53c8ef094c86e8897be2dcce0259d35914f6cdc0"; - sha256 = "0irbl28jr9h20zyfm5m3wf7saxq1acc48kn3vp4ijc271l0bs97g"; + rev = "8d17abf5ff9208865439e683da7bbe93dde8d4e1"; + sha256 = "1dr43al236bhifrc740vwfwz6xsma4m3fza2qm5xjgjdcz7ib23c"; }; meta.homepage = "https://github.com/shortcuts/no-neck-pain.nvim/"; meta.hydraPlatforms = [ ]; @@ -9635,12 +9635,12 @@ final: prev: { none-ls-nvim = buildVimPlugin { pname = "none-ls.nvim"; - version = "2025-04-13"; + version = "2025-04-17"; src = fetchFromGitHub { owner = "nvimtools"; repo = "none-ls.nvim"; - rev = "1280b7965b6ed17787ffab1d4e3d9795ecdd0f51"; - sha256 = "01r495800dm1b1n25skv081hb701i3npvwxb5dabg2iy5b6nzyms"; + rev = "fb50cf17e926a037c9f8d96d8db29ddbd04965d4"; + sha256 = "07zfkjdqwlrm1d07za0payqs37gmn4x8m489438nv84sqqhnfrvd"; }; meta.homepage = "https://github.com/nvimtools/none-ls.nvim/"; meta.hydraPlatforms = [ ]; @@ -9739,12 +9739,12 @@ final: prev: { nvchad = buildVimPlugin { pname = "nvchad"; - version = "2025-04-08"; + version = "2025-04-18"; src = fetchFromGitHub { owner = "nvchad"; repo = "nvchad"; - rev = "46b15ef1b9d10a83ab7df26b14f474d15c01e770"; - sha256 = "1fca00xiqsc3ixl9d8qqypp7hzm6vmyikva2iwcxpdnnrvbvwi2v"; + rev = "84f8170fdab2a9bb82f36fe76c68bca2241c50d8"; + sha256 = "10va5jv8s670jn8ayqylpksb1rcgjr1m43vh0vq5qdxswanqzby7"; }; meta.homepage = "https://github.com/nvchad/nvchad/"; meta.hydraPlatforms = [ ]; @@ -9752,12 +9752,12 @@ final: prev: { nvchad-ui = buildVimPlugin { pname = "nvchad-ui"; - version = "2025-04-12"; + version = "2025-04-20"; src = fetchFromGitHub { owner = "nvchad"; repo = "ui"; - rev = "9201de37eb4992bef5fec974618a9a14082765fe"; - sha256 = "0g8rlw7s38pzy3ig18lzjrww0apqw505q614qb32jidxw715291c"; + rev = "c448a23a66089f73d6ec4090278c054668f4ae69"; + sha256 = "044mlfjgm0a15fjn5gb1a3w259nzsz2y73v2z8akkp519s8vxyvi"; }; meta.homepage = "https://github.com/nvchad/ui/"; meta.hydraPlatforms = [ ]; @@ -9986,12 +9986,12 @@ final: prev: { nvim-dap = buildVimPlugin { pname = "nvim-dap"; - version = "2025-03-29"; + version = "2025-04-19"; src = fetchFromGitHub { owner = "mfussenegger"; repo = "nvim-dap"; - rev = "7aade9e99bef5f0735cf966e715b3ce45515d786"; - sha256 = "0cr2y3lkr6ffxxd9b2pj8hr3fzb5dlj003fcknswqwsdhws75l22"; + rev = "98bf130702eaafad8567c0e3ea1171c2552d58bb"; + sha256 = "045sajd5amwxq4964yj4lbh20daa0g8473a0ggbwggxpq6qz2678"; }; meta.homepage = "https://github.com/mfussenegger/nvim-dap/"; meta.hydraPlatforms = [ ]; @@ -10090,12 +10090,12 @@ final: prev: { nvim-dap-view = buildVimPlugin { pname = "nvim-dap-view"; - version = "2025-04-14"; + version = "2025-04-16"; src = fetchFromGitHub { owner = "igorlfs"; repo = "nvim-dap-view"; - rev = "de489c1b1e0fa426c5e6c42e05218c707e2c7373"; - sha256 = "1liwi829rj981wi6hhi7mqn662bvxva5a3annrsg7n33z6z7nznc"; + rev = "aeba18d93cd2f32a5f4a710555c6de72085a0e2e"; + sha256 = "1l9cxshd5zjxm0rsc7dq3s5xdk6dyp0hail41mjv020p4iynbis1"; }; meta.homepage = "https://github.com/igorlfs/nvim-dap-view/"; meta.hydraPlatforms = [ ]; @@ -10246,12 +10246,12 @@ final: prev: { nvim-highlite = buildVimPlugin { pname = "nvim-highlite"; - version = "2025-04-01"; + version = "2025-04-19"; src = fetchFromGitHub { owner = "Iron-E"; repo = "nvim-highlite"; - rev = "2fbe9708880020f169ac61bb4fce904c36d9ccad"; - sha256 = "1b2g12inhkjm7xs3lsmfwnrrriik43d3v8ja3rq322xhxrqbhxlz"; + rev = "89607b55b321a9d55979e0cc4229223cd0db4cbd"; + sha256 = "09i8fsr47nq78s7gys6cli73savpmmz3b5cw6jp3997vh085nzfq"; }; meta.homepage = "https://github.com/Iron-E/nvim-highlite/"; meta.hydraPlatforms = [ ]; @@ -10259,12 +10259,12 @@ final: prev: { nvim-hlslens = buildVimPlugin { pname = "nvim-hlslens"; - version = "2025-03-28"; + version = "2025-04-20"; src = fetchFromGitHub { owner = "kevinhwang91"; repo = "nvim-hlslens"; - rev = "00b9c7359eaaa4804a9be943ea46bc64e6d2e065"; - sha256 = "0hkilzijh6xhscd03pr1khvcza7qy606fj9lw0cranbgkd05nlr4"; + rev = "bf55af8789948fac50d959e6e051af3ed280d9b8"; + sha256 = "0q6s301vh6m4sz8w2i1xrmks7jijzi1qdjq8jxhmzlhvg7kh4c4a"; }; meta.homepage = "https://github.com/kevinhwang91/nvim-hlslens/"; meta.hydraPlatforms = [ ]; @@ -10363,12 +10363,12 @@ final: prev: { nvim-jdtls = buildVimPlugin { pname = "nvim-jdtls"; - version = "2025-04-11"; + version = "2025-04-15"; src = fetchFromGitHub { owner = "mfussenegger"; repo = "nvim-jdtls"; - rev = "7223b812dde98f4260084fe9303c8301b9831a58"; - sha256 = "0pj5fm6k8684qbpd7q6y9cnznz4s91qjv5wp8f49rivsqxsmg9sr"; + rev = "5ecf13c53c9a66ee97c200970029ab2ebe1c1112"; + sha256 = "127ndcm3hdm5s3xjh1rsijg6wdd9mpp966vds1scdmbqcxssn0zq"; }; meta.homepage = "https://github.com/mfussenegger/nvim-jdtls/"; meta.hydraPlatforms = [ ]; @@ -10441,12 +10441,12 @@ final: prev: { nvim-lint = buildVimPlugin { pname = "nvim-lint"; - version = "2025-04-10"; + version = "2025-04-19"; src = fetchFromGitHub { owner = "mfussenegger"; repo = "nvim-lint"; - rev = "5b1bdf306bd3e565908145279e8bbfc594dac3b3"; - sha256 = "0kwdb9wggkgzg9msrvnf15njqm9a8acljdak9fxnfh9al1ks8cav"; + rev = "d698d3b6fd7b1b85657d05a2a31d843ddb682c63"; + sha256 = "0m4hj1yc0s6cb3icshcr3qkd5wknksnnw97axjbacsan5vc6831z"; }; meta.homepage = "https://github.com/mfussenegger/nvim-lint/"; meta.hydraPlatforms = [ ]; @@ -10493,12 +10493,12 @@ final: prev: { nvim-lspconfig = buildVimPlugin { pname = "nvim-lspconfig"; - version = "2025-04-14"; + version = "2025-04-19"; src = fetchFromGitHub { owner = "neovim"; repo = "nvim-lspconfig"; - rev = "e39da6a820d2a700904117d29f0dd476d64262cf"; - sha256 = "1kmxrvqj48z131myhwlfk50lj0iizxcl97risnnh5rma9lnd189m"; + rev = "32b6a6449aaba11461fffbb596dd6310af79eea4"; + sha256 = "0rbqg3xdsdfklcsadzbbphzrgwa2c54lsipfqd67jq2p4baxsgxn"; }; meta.homepage = "https://github.com/neovim/nvim-lspconfig/"; meta.hydraPlatforms = [ ]; @@ -10558,12 +10558,12 @@ final: prev: { nvim-metals = buildVimPlugin { pname = "nvim-metals"; - version = "2025-04-04"; + version = "2025-04-18"; src = fetchFromGitHub { owner = "scalameta"; repo = "nvim-metals"; - rev = "bc896458ac639dea568e8dc06862074f8cba7fa3"; - sha256 = "0k7c300rf62f50vqzxxdgh7pqpb61im6xbz230fysvdjdx1ddglh"; + rev = "04d8ce24638412a2c93dd79fecca4b2c7b9c07f9"; + sha256 = "19mdfn5ni35ldjmwdg25cwiy9cvkg2cxrdhcjr9xplx7ln6zsld9"; }; meta.homepage = "https://github.com/scalameta/nvim-metals/"; meta.hydraPlatforms = [ ]; @@ -10597,12 +10597,12 @@ final: prev: { nvim-navic = buildVimPlugin { pname = "nvim-navic"; - version = "2023-11-30"; + version = "2025-04-16"; src = fetchFromGitHub { owner = "smiteshp"; repo = "nvim-navic"; - rev = "8649f694d3e76ee10c19255dece6411c29206a54"; - sha256 = "0964wgwh6i4nm637vx36bshkpd5i63ipwzqmrdbkz5h9bzyng7nj"; + rev = "39231352aec0d1e09cebbffdd9dc20a5dc691ffe"; + sha256 = "1xj2bzax8hynm2x9zbvsaxv1j22chklyygzm1kbqxxs077qn45ws"; }; meta.homepage = "https://github.com/smiteshp/nvim-navic/"; meta.hydraPlatforms = [ ]; @@ -10831,12 +10831,12 @@ final: prev: { nvim-scrollview = buildVimPlugin { pname = "nvim-scrollview"; - version = "2025-04-13"; + version = "2025-04-20"; src = fetchFromGitHub { owner = "dstein64"; repo = "nvim-scrollview"; - rev = "d519e9fcf7ec32ede158e13161519bf11acfadd1"; - sha256 = "05l3krv534n4639s61lvxh1zdgycyhd37nfsrsm8cybs2grspx9p"; + rev = "cf766a45303e8cd94b624a94dc6c256405ef6bbc"; + sha256 = "1jlk3d7479a278j2rbna9vm7asp8qglgz95w72frmzvkxzmmafba"; }; meta.homepage = "https://github.com/dstein64/nvim-scrollview/"; meta.hydraPlatforms = [ ]; @@ -10922,12 +10922,12 @@ final: prev: { nvim-surround = buildVimPlugin { pname = "nvim-surround"; - version = "2025-03-22"; + version = "2025-04-18"; src = fetchFromGitHub { owner = "kylechui"; repo = "nvim-surround"; - rev = "caf6f633d4d77a29b6e265b560c5a035d171a913"; - sha256 = "130y0b2f69y5rzm64ss34a9zyqkpkybr2d1s4p0pcvvaq1ngq0r0"; + rev = "0e62500b98f4513feaaf7425c135472457ea5b7d"; + sha256 = "0rwzz98n8gyx2bffxg7ga7vxxxcc4crbwimvglx6bxkdg2abwyrn"; }; meta.homepage = "https://github.com/kylechui/nvim-surround/"; meta.hydraPlatforms = [ ]; @@ -10987,12 +10987,12 @@ final: prev: { nvim-tree-lua = buildVimPlugin { pname = "nvim-tree.lua"; - version = "2025-04-11"; + version = "2025-04-20"; src = fetchFromGitHub { owner = "nvim-tree"; repo = "nvim-tree.lua"; - rev = "5bea2b37523a31288e0fcab42f3be5c1bd4516bb"; - sha256 = "1mizgknbbjqv7a8fqc0n7glgabl0fq660nrqwq6w04qqynp0z1ax"; + rev = "64bb47f868e1d120df1ff0cb63fb626c4b076459"; + sha256 = "1zminyhvka47rp0pc2v1i0rw4y6lcn10l4p7wwy0wb5nsxdaj2mp"; }; meta.homepage = "https://github.com/nvim-tree/nvim-tree.lua/"; meta.hydraPlatforms = [ ]; @@ -11000,12 +11000,12 @@ final: prev: { nvim-treesitter = buildVimPlugin { pname = "nvim-treesitter"; - version = "2025-04-13"; + version = "2025-04-15"; src = fetchFromGitHub { owner = "nvim-treesitter"; repo = "nvim-treesitter"; - rev = "7bbed4b548d9a81c14351bda93d16336edefd067"; - sha256 = "1i0fffs915jc340s63pis2rblzr4gji42hg3s99qvbfnf6k4lnpi"; + rev = "684eeac91ed8e297685a97ef70031d19ac1de25a"; + sha256 = "00ccbnnvpcf0lrpbaygzz9wdnf59ixp43z0zry1qvblnjplrlwb7"; }; meta.homepage = "https://github.com/nvim-treesitter/nvim-treesitter/"; meta.hydraPlatforms = [ ]; @@ -11013,12 +11013,12 @@ final: prev: { nvim-treesitter-context = buildVimPlugin { pname = "nvim-treesitter-context"; - version = "2025-04-04"; + version = "2025-04-17"; src = fetchFromGitHub { owner = "nvim-treesitter"; repo = "nvim-treesitter-context"; - rev = "439789a9a8df9639ecd749bb3286b77117024a6f"; - sha256 = "04x9nza48d2vz262myhhfnmjzcc2fkdjb21mdqvlmnzkhh7ysyz2"; + rev = "6daca3ad780f045550b820f262002f35175a6c04"; + sha256 = "0qprwd44hw9sz0vh14p6lpvs9vxrick462pfkradmal6ak1kfwn3"; }; meta.homepage = "https://github.com/nvim-treesitter/nvim-treesitter-context/"; meta.hydraPlatforms = [ ]; @@ -11026,12 +11026,12 @@ final: prev: { nvim-treesitter-endwise = buildVimPlugin { pname = "nvim-treesitter-endwise"; - version = "2025-04-02"; + version = "2025-04-17"; src = fetchFromGitHub { owner = "RRethy"; repo = "nvim-treesitter-endwise"; - rev = "63a8f855c6b6019ef9f7f63b5c59b8a00c215d0d"; - sha256 = "1vbjmdafnfcfzj3gczg2py370cjvaaglxr4jwbnaa200vhgn8jj6"; + rev = "8b6436303dda9ce6ed4b3733fd15703eb3589c36"; + sha256 = "134k6b66c0ycqqdxzmsyzpl5igd5vlvxjjbdncswqyxwpypm9mq6"; }; meta.homepage = "https://github.com/RRethy/nvim-treesitter-endwise/"; meta.hydraPlatforms = [ ]; @@ -11091,12 +11091,12 @@ final: prev: { nvim-treesitter-textobjects = buildVimPlugin { pname = "nvim-treesitter-textobjects"; - version = "2025-04-06"; + version = "2025-04-15"; src = fetchFromGitHub { owner = "nvim-treesitter"; repo = "nvim-treesitter-textobjects"; - rev = "698b5f805722254bca3c509591c1806d268b6c2f"; - sha256 = "0lxikjxgfjbr28xf00p7rphbfp4fwrxj0yma9cin0i74ah5gxam3"; + rev = "205e3369bc83d8cb83f7409c36120e24611f8c5c"; + sha256 = "13qmsnahlj88wxs75kvpn9hj89gnhm4dm6rb400ysrzmmx5ypg39"; }; meta.homepage = "https://github.com/nvim-treesitter/nvim-treesitter-textobjects/"; meta.hydraPlatforms = [ ]; @@ -11156,12 +11156,12 @@ final: prev: { nvim-ufo = buildVimPlugin { pname = "nvim-ufo"; - version = "2025-04-11"; + version = "2025-04-20"; src = fetchFromGitHub { owner = "kevinhwang91"; repo = "nvim-ufo"; - rev = "a026364df62e88037b26d37c9f14c17c006fd577"; - sha256 = "02mqjwc4h29i9s9l8lsfwrx4ac69n3mpr9hw2vg7ji3c20mbh413"; + rev = "fb1da7d49c8f2704bb593a9683dc2ce3933d892a"; + sha256 = "13l8qsm61vxirwgr2m02b6vazwcih6gfh82a5zkcam0syry66rpq"; }; meta.homepage = "https://github.com/kevinhwang91/nvim-ufo/"; meta.hydraPlatforms = [ ]; @@ -11182,12 +11182,12 @@ final: prev: { nvim-various-textobjs = buildVimPlugin { pname = "nvim-various-textobjs"; - version = "2025-04-14"; + version = "2025-04-20"; src = fetchFromGitHub { owner = "chrisgrieser"; repo = "nvim-various-textobjs"; - rev = "1b6caa4431fc3e637d26db70605736d10f05d2fd"; - sha256 = "1ir083jsvjzzqbjly6csrmrnxq80b65861qmcplpvr7xhl98bdl3"; + rev = "dcf0cd99a1ae0bade0e812a381ac4399d65cc0c3"; + sha256 = "0gczvica73yr5fd1injab5iwwvc7lwby0zq2jy4kdkwjsbwsvcp0"; }; meta.homepage = "https://github.com/chrisgrieser/nvim-various-textobjs/"; meta.hydraPlatforms = [ ]; @@ -11325,12 +11325,12 @@ final: prev: { obsidian-nvim = buildVimPlugin { pname = "obsidian.nvim"; - version = "2025-04-13"; + version = "2025-04-20"; src = fetchFromGitHub { owner = "obsidian-nvim"; repo = "obsidian.nvim"; - rev = "0cf0dab342e88b8c8102bb352517d1aa88917af0"; - sha256 = "0qd3nhhr33qhfjsjsnjcichq38pq227bgfncibdm11h4jv6fb6l2"; + rev = "6704029e7b2dc0ea5465943cb1c0a331e8e894be"; + sha256 = "1wg5qbj2qcgq55qlbqi5cv2w3x47lmql0bbx94fj45cxxqq1mim3"; }; meta.homepage = "https://github.com/obsidian-nvim/obsidian.nvim/"; meta.hydraPlatforms = [ ]; @@ -11364,12 +11364,12 @@ final: prev: { octo-nvim = buildVimPlugin { pname = "octo.nvim"; - version = "2025-04-14"; + version = "2025-04-20"; src = fetchFromGitHub { owner = "pwntester"; repo = "octo.nvim"; - rev = "e3f4b7d711eeb0cefc1e3bff8cf6ddd0e166b868"; - sha256 = "01cyjh8m51g1df8ciy7qqnq0ifkm7w3mg1f4gwpm777bd10jfj25"; + rev = "d00dadb7286b0e1c6dd22448477ebb4277707ca9"; + sha256 = "03xfjfp4yzjw8ab2c1xz9rjadj6g4s1xr3296k6b40jj1cqc7igp"; }; meta.homepage = "https://github.com/pwntester/octo.nvim/"; meta.hydraPlatforms = [ ]; @@ -11481,12 +11481,12 @@ final: prev: { onedarkpro-nvim = buildVimPlugin { pname = "onedarkpro.nvim"; - version = "2025-04-13"; + version = "2025-04-16"; src = fetchFromGitHub { owner = "olimorris"; repo = "onedarkpro.nvim"; - rev = "5d9f719f622f798bea37bc243ec46581b8efc9b7"; - sha256 = "0x8r64n9qrvdlyfmk4jw1mpll0s4cvlj6xarfycdn5g8z5445340"; + rev = "d3d3e11331d30f7d5c1453232bad9c24d04e564f"; + sha256 = "00hfm3rav9blsxaf28rz5vnhp5dvg25ychya3si0pzgbpi6y161s"; }; meta.homepage = "https://github.com/olimorris/onedarkpro.nvim/"; meta.hydraPlatforms = [ ]; @@ -11507,12 +11507,12 @@ final: prev: { onenord-nvim = buildVimPlugin { pname = "onenord.nvim"; - version = "2025-03-30"; + version = "2025-04-20"; src = fetchFromGitHub { owner = "rmehri01"; repo = "onenord.nvim"; - rev = "502abed6c21b19daa6f5f7b0f74d762e137aee3f"; - sha256 = "04zyvh1i3wrdqdn67rp19zr9vz9kn99vvl1awd5agn9sv0hzvadd"; + rev = "039f76baf948acfc7c7d987ad9392fdc2a0e8a1c"; + sha256 = "1m6i7jks0pfzml2i3gzr3y20k9dv3hx2fg0a357cps9rg84nx0qd"; }; meta.homepage = "https://github.com/rmehri01/onenord.nvim/"; meta.hydraPlatforms = [ ]; @@ -11572,12 +11572,12 @@ final: prev: { org-roam-nvim = buildVimPlugin { pname = "org-roam.nvim"; - version = "2025-04-11"; + version = "2025-04-18"; src = fetchFromGitHub { owner = "chipsenkbeil"; repo = "org-roam.nvim"; - rev = "d7ac6a394f5158984b29596aee4861fb93030e81"; - sha256 = "1kwimzssknzkcz3lj8k0rr4qv45qlhn0jnag6rq25ps7vn4nbd68"; + rev = "5ff1c9b0d89ac4a142abe3723e535fb127a516e4"; + sha256 = "0c1vcq4rzilyqb8d21jqh8icdqa22n9xswx919mf8pmhz1smbs2c"; }; meta.homepage = "https://github.com/chipsenkbeil/org-roam.nvim/"; meta.hydraPlatforms = [ ]; @@ -11611,12 +11611,12 @@ final: prev: { outline-nvim = buildVimPlugin { pname = "outline.nvim"; - version = "2025-02-23"; + version = "2025-04-19"; src = fetchFromGitHub { owner = "hedyhli"; repo = "outline.nvim"; - rev = "ae473fb51b7b6086de0876328c81a63f9c3ecfef"; - sha256 = "12dayhk8m3d34xip6v8hcmb65jvnp5yp2967mk2693i1kakxc8sy"; + rev = "321f89ef79f168a78685f70d70c52d0e7b563abb"; + sha256 = "1rg907hqdgz3h87ba262jqhph3m72g5r40jy9ngnjxmk0d45bcvx"; }; meta.homepage = "https://github.com/hedyhli/outline.nvim/"; meta.hydraPlatforms = [ ]; @@ -11729,12 +11729,12 @@ final: prev: { papercolor-theme-slim = buildVimPlugin { pname = "papercolor-theme-slim"; - version = "2025-04-14"; + version = "2025-04-18"; src = fetchFromGitHub { owner = "pappasam"; repo = "papercolor-theme-slim"; - rev = "244f209dc93a42534d9712271a37b89f58915525"; - sha256 = "1s7mb5p9nna8v5zfs1swycl25sym4rsdzygzlv6h1z2p932s4r8n"; + rev = "a94f57fadfac6f213e165ffdc9b1bd4a482b73d2"; + sha256 = "0g9419wq38j4g1461690chf4y8k4ks3r0dhyq24b1n09yzpjznl6"; }; meta.homepage = "https://github.com/pappasam/papercolor-theme-slim/"; meta.hydraPlatforms = [ ]; @@ -11755,12 +11755,12 @@ final: prev: { parrot-nvim = buildVimPlugin { pname = "parrot.nvim"; - version = "2025-04-10"; + version = "2025-04-14"; src = fetchFromGitHub { owner = "frankroeder"; repo = "parrot.nvim"; - rev = "8213c2b8a494fafb64e6aa24563c050ea27d9110"; - sha256 = "0a399jx267wbxndrfnir6g2kqmgk52jpy20iwffj81w01l8dy43v"; + rev = "01a6e1f1297a5434dacbcd1e59e063d93b006c9d"; + sha256 = "1lz7la6vgk280wnldgkf09ckir3ypyjjdj8dby062hyjxd3phjiy"; }; meta.homepage = "https://github.com/frankroeder/parrot.nvim/"; meta.hydraPlatforms = [ ]; @@ -12133,12 +12133,12 @@ final: prev: { pum-vim = buildVimPlugin { pname = "pum.vim"; - version = "2025-04-07"; + version = "2025-04-20"; src = fetchFromGitHub { owner = "Shougo"; repo = "pum.vim"; - rev = "4bbb2cbd094f9aa70f05ee3398ef727f13bce8af"; - sha256 = "16axpvf0s7s700y4jg5wffsn36zjvfpq5vnnb2ns5rddh2p6jd8f"; + rev = "bde317cfafafefb47920fb4ed4bcd4f3829fe827"; + sha256 = "14a6zpysx3pm7a12r1x4hkf0cd3ycjcj2c8ic8iz358q4c1dcjw2"; }; meta.homepage = "https://github.com/Shougo/pum.vim/"; meta.hydraPlatforms = [ ]; @@ -12498,12 +12498,12 @@ final: prev: { render-markdown-nvim = buildVimPlugin { pname = "render-markdown.nvim"; - version = "2025-04-12"; + version = "2025-04-18"; src = fetchFromGitHub { owner = "MeanderingProgrammer"; repo = "render-markdown.nvim"; - rev = "8bb0d4725cc4909a603158d44ff28b6158ad9278"; - sha256 = "18yqhy2y36rydyqs9z3s1h6rghd02bd9kb3rkxs88spm18wvq41z"; + rev = "dfc1299d9f32b53b34b7ac6c3a7553b5fd29977f"; + sha256 = "1r636cyjflhpybjwfi01blbwkrxwi4lvykffrjclwfaf4l4gwddd"; }; meta.homepage = "https://github.com/MeanderingProgrammer/render-markdown.nvim/"; meta.hydraPlatforms = [ ]; @@ -12629,12 +12629,12 @@ final: prev: { roslyn-nvim = buildVimPlugin { pname = "roslyn.nvim"; - version = "2025-04-12"; + version = "2025-04-18"; src = fetchFromGitHub { owner = "seblyng"; repo = "roslyn.nvim"; - rev = "f64609e4ab21a4cc28af2f526974c961d6adacca"; - sha256 = "1b8k5i4rw4qysvvvygdmxsad8y4vmyyys5vwl76cyh6575vc71n1"; + rev = "d06aa2f6c5990dd195eb12e68bc5a96b6fd23bff"; + sha256 = "10s2mr9xgh4ldjv3fc9sacd4k9k0lniy1fydak1gj9609v2kmrjr"; }; meta.homepage = "https://github.com/seblyng/roslyn.nvim/"; meta.hydraPlatforms = [ ]; @@ -12915,12 +12915,12 @@ final: prev: { sideways-vim = buildVimPlugin { pname = "sideways.vim"; - version = "2025-02-24"; + version = "2025-04-18"; src = fetchFromGitHub { owner = "AndrewRadev"; repo = "sideways.vim"; - rev = "1dc47d2e0ba04da0f5e654f6b3bd65ce9ca8ce9f"; - sha256 = "13vykz2j2bimgkx08n0awrpjj039k9ggjjgkar9m3sq2hwkm5j3f"; + rev = "3b353b19972a1138261d939055aff4844b9c472f"; + sha256 = "07jsyq5qa3psv314mvy0a4grbpjp936iqsf7ac22v3rylcvp1dmx"; fetchSubmodules = true; }; meta.homepage = "https://github.com/AndrewRadev/sideways.vim/"; @@ -12981,12 +12981,12 @@ final: prev: { smart-splits-nvim = buildVimPlugin { pname = "smart-splits.nvim"; - version = "2025-04-11"; + version = "2025-04-18"; src = fetchFromGitHub { owner = "mrjones2014"; repo = "smart-splits.nvim"; - rev = "d3011454da78dd72883e131d4b1e7239a29d086e"; - sha256 = "161pj2aj7kc1dzyglh2dxcid1sc0fh3gwmkiak97wc6g9gja2sd7"; + rev = "26db22d9b09b7c82e1ff03affd64da3f5441febd"; + sha256 = "1mpzwrkm2k7cwsw6jbdjh4pydy3afxjrra55bwi7wsynw3x7k35x"; }; meta.homepage = "https://github.com/mrjones2014/smart-splits.nvim/"; meta.hydraPlatforms = [ ]; @@ -13033,12 +13033,12 @@ final: prev: { smear-cursor-nvim = buildVimPlugin { pname = "smear-cursor.nvim"; - version = "2025-04-14"; + version = "2025-04-19"; src = fetchFromGitHub { owner = "sphamba"; repo = "smear-cursor.nvim"; - rev = "3879bc2eb4a2a07a8637256fe33cc4484a23a813"; - sha256 = "09v3p135gh1czz8fy85bi0nrj1shgz51r690nz589v20xr52vipr"; + rev = "a20e2682b551c610bdd1becbf95f6f3b8a896f9a"; + sha256 = "11617sjsy35x51cmlf4sl5fzm4azbzw6fwkv23mwwrpra0j5qj5x"; }; meta.homepage = "https://github.com/sphamba/smear-cursor.nvim/"; meta.hydraPlatforms = [ ]; @@ -13111,12 +13111,12 @@ final: prev: { sonokai = buildVimPlugin { pname = "sonokai"; - version = "2025-02-24"; + version = "2025-04-16"; src = fetchFromGitHub { owner = "sainnhe"; repo = "sonokai"; - rev = "9679341d4141ed81376f2bdf5e69b78dc348d212"; - sha256 = "1jbkfcs3ylsv2xsldjalp9agm4w7c5gda5kaawlrxcfngrh0pvnk"; + rev = "f59c796780655c3b9da442d310ad2f2d735f2e56"; + sha256 = "0sxf6z3yzg4hggad172ljy6vxpnfll9q84pqa7n40m26g2alg29x"; }; meta.homepage = "https://github.com/sainnhe/sonokai/"; meta.hydraPlatforms = [ ]; @@ -13398,12 +13398,12 @@ final: prev: { statuscol-nvim = buildVimPlugin { pname = "statuscol.nvim"; - version = "2025-03-03"; + version = "2025-04-20"; src = fetchFromGitHub { owner = "luukvbaal"; repo = "statuscol.nvim"; - rev = "c399884e8f64019ec9bb581251f9710915b7f996"; - sha256 = "0ia3hw4jvh3mlsj372ncp7hj27mw98h9jghvw8q9vk37bghy5455"; + rev = "a2580e009a3b4c51b5978768d907dafae2c919ac"; + sha256 = "0k3wj5mzv38wrmq17pd9xpdcc8p3l1bwx078931ylrga5j1ld3vx"; }; meta.homepage = "https://github.com/luukvbaal/statuscol.nvim/"; meta.hydraPlatforms = [ ]; @@ -13554,12 +13554,12 @@ final: prev: { switch-vim = buildVimPlugin { pname = "switch.vim"; - version = "2025-02-13"; + version = "2025-04-16"; src = fetchFromGitHub { owner = "AndrewRadev"; repo = "switch.vim"; - rev = "b6bab56113312ebaa53038461c1a61bcb1e4a9d9"; - sha256 = "1n5nlyda1hyvid236i2p74ddf74jwdijsy77j8abwrb4hpsbzblb"; + rev = "f4b831b86e1e65af8c4f8be6434e15bef98d111e"; + sha256 = "1ygv1wj9034r6g2yr9ibb10hnm8z0f1dkf8a3rk5mc59803f3mvs"; fetchSubmodules = true; }; meta.homepage = "https://github.com/AndrewRadev/switch.vim/"; @@ -14417,12 +14417,12 @@ final: prev: { tiny-inline-diagnostic-nvim = buildVimPlugin { pname = "tiny-inline-diagnostic.nvim"; - version = "2025-04-10"; + version = "2025-04-18"; src = fetchFromGitHub { owner = "rachartier"; repo = "tiny-inline-diagnostic.nvim"; - rev = "842983e91e0b8825f1084b8323c7806c8bf64c74"; - sha256 = "01q056nmms882x9526qdmr4nqgpyd1247bsb84gzzbclxhg48m1m"; + rev = "cd401038de4cbae37651cfe02510294ccf5cdc98"; + sha256 = "1ma2zc75v2ryda4r3k20w4kiz5fq2cw85khkvfiqwqv9jlfsz3zn"; }; meta.homepage = "https://github.com/rachartier/tiny-inline-diagnostic.nvim/"; meta.hydraPlatforms = [ ]; @@ -14600,12 +14600,12 @@ final: prev: { treewalker-nvim = buildVimPlugin { pname = "treewalker.nvim"; - version = "2025-04-05"; + version = "2025-04-17"; src = fetchFromGitHub { owner = "aaronik"; repo = "treewalker.nvim"; - rev = "7d993149867ea05898626bf19df8b7d020de10ef"; - sha256 = "1c0dv8g33hir02d6s46pw9fxfyyrqrhvj3in1w2fjpxcqnw5xs3n"; + rev = "34bf0a6044e0b5e3d93b7012ae7bdf457de91ba1"; + sha256 = "0rixswfrv4xlwalvi3kqhcdi3l14kml6mds32pp0gvjcig9x6myk"; }; meta.homepage = "https://github.com/aaronik/treewalker.nvim/"; meta.hydraPlatforms = [ ]; @@ -14783,12 +14783,12 @@ final: prev: { typescript-tools-nvim = buildVimPlugin { pname = "typescript-tools.nvim"; - version = "2025-04-07"; + version = "2025-04-18"; src = fetchFromGitHub { owner = "pmizio"; repo = "typescript-tools.nvim"; - rev = "a4109c70e7d6a3a86f971cefea04ab6720582ba9"; - sha256 = "1qcwp61sawm69ckah2j3sx2bagdl1m93rxbgzzh212z9fb2gcx3s"; + rev = "885f4cc150f996f5bff5804874f92ff3051c883d"; + sha256 = "0b1mgz21h8hdrnczb6pfh3wizbp00y9cvi67hh04019xsygykhix"; }; meta.homepage = "https://github.com/pmizio/typescript-tools.nvim/"; meta.hydraPlatforms = [ ]; @@ -14822,12 +14822,12 @@ final: prev: { typst-preview-nvim = buildVimPlugin { pname = "typst-preview.nvim"; - version = "2025-04-12"; + version = "2025-04-20"; src = fetchFromGitHub { owner = "chomosuke"; repo = "typst-preview.nvim"; - rev = "2503b188cd2a17ce44fdd21a944a93335e935215"; - sha256 = "0l981pjiz2ycn6rw1xwvmhdjpml7nrrlymwfyc942inw173k1jsg"; + rev = "dea4525d5420b7c32eebda7de15a6beb9d6574fa"; + sha256 = "0y658l2ibq0x4cwa4rl3lab7aw4ba68xcrdnxp81p2rsk0d60qq4"; }; meta.homepage = "https://github.com/chomosuke/typst-preview.nvim/"; meta.hydraPlatforms = [ ]; @@ -14913,12 +14913,12 @@ final: prev: { unison = buildVimPlugin { pname = "unison"; - version = "2025-04-09"; + version = "2025-04-18"; src = fetchFromGitHub { owner = "unisonweb"; repo = "unison"; - rev = "6d0178a069d195d0a9f987476731e16a1c7fae06"; - sha256 = "0a2r2kbyar38hppplmam9lhs74yfrg2iq39yskyij7dzsq3g0xdw"; + rev = "821869214dbb39d27d5e2a59212683e3e3549d4d"; + sha256 = "1is8f1i4dna0qiq13gj5ag4v9r2rgrispl6mvsa95bl0x795s6w3"; }; meta.homepage = "https://github.com/unisonweb/unison/"; meta.hydraPlatforms = [ ]; @@ -15030,12 +15030,12 @@ final: prev: { vifm-vim = buildVimPlugin { pname = "vifm.vim"; - version = "2025-04-09"; + version = "2025-04-20"; src = fetchFromGitHub { owner = "vifm"; repo = "vifm.vim"; - rev = "f188b2e18396ef82091930b58fafecf18b76d7a5"; - sha256 = "004q5lpb1zv2mnib0473gsyhnnpn5hvmjads2yiiz9vlw2nah9kx"; + rev = "b8fb54d5a1e3a19ed25387852e720c558fcfe436"; + sha256 = "1r6lzxvd6niwdwvm2vcvghxiigd0hksfgq1nj4594ygwcdpnq4p5"; }; meta.homepage = "https://github.com/vifm/vifm.vim/"; meta.hydraPlatforms = [ ]; @@ -16265,12 +16265,12 @@ final: prev: { vim-dadbod-ui = buildVimPlugin { pname = "vim-dadbod-ui"; - version = "2025-03-26"; + version = "2025-04-14"; src = fetchFromGitHub { owner = "kristijanhusak"; repo = "vim-dadbod-ui"; - rev = "685e75b34ee0e12f92ec4507ea8bb7f1aaa936e5"; - sha256 = "1ir8m3nks2aqh0jkmkyx46qprg7xm0bva72r83hwai79j1q6fk7j"; + rev = "460432301a5cb280ea265ddfa15c9f3dcd1d26b7"; + sha256 = "0adpm2sv0lwcfgn90lka3wj8slzbx0bl3lp201syrc8w6w7jgljr"; }; meta.homepage = "https://github.com/kristijanhusak/vim-dadbod-ui/"; meta.hydraPlatforms = [ ]; @@ -17084,12 +17084,12 @@ final: prev: { vim-go = buildVimPlugin { pname = "vim-go"; - version = "2025-03-10"; + version = "2025-04-20"; src = fetchFromGitHub { owner = "fatih"; repo = "vim-go"; - rev = "1d641b739624199ab9ab745d220f36fe7b655d65"; - sha256 = "02qfql3c6njqkq7pbzrqknca638f3fczkx651v3wwl94339ln6ky"; + rev = "59e208d5212b86c8afd69d8590f181594f859ddb"; + sha256 = "09n71iy4wfqvrdfzvvc4za0alc5fsbds7xd4ln6zip17z89hkym7"; }; meta.homepage = "https://github.com/fatih/vim-go/"; meta.hydraPlatforms = [ ]; @@ -17371,12 +17371,12 @@ final: prev: { vim-horizon = buildVimPlugin { pname = "vim-horizon"; - version = "2023-03-17"; + version = "2025-04-17"; src = fetchFromGitHub { owner = "ntk148v"; repo = "vim-horizon"; - rev = "3864f6281b0b852712d8e9ef86edde512f94c1d2"; - sha256 = "152v4x7sj3nidj0710ick0p7xh020cjvhd8bjd28vfqd8xlv2nqw"; + rev = "32baaaca1337a0df287216b0775404fe913eaecd"; + sha256 = "0gaj44w0iixri82r4999pqd46mlixrvsq326696jb5mv2aczlw7b"; }; meta.homepage = "https://github.com/ntk148v/vim-horizon/"; meta.hydraPlatforms = [ ]; @@ -17462,12 +17462,12 @@ final: prev: { vim-illuminate = buildVimPlugin { pname = "vim-illuminate"; - version = "2025-04-11"; + version = "2025-04-17"; src = fetchFromGitHub { owner = "RRethy"; repo = "vim-illuminate"; - rev = "08aa184f1bd508f6a59371b52cba26be07bc016d"; - sha256 = "0sqs4q2qk9hfkh5vn08y664568pl15b88yyvb9za0f5k7v3z1bcw"; + rev = "1fa4b23409e22a03823648e344c77f260e2572cb"; + sha256 = "1z27z6mpj4jazmifyz5scrniqr7sgh9hbkqx4g27yk0dnn9cm9ff"; }; meta.homepage = "https://github.com/RRethy/vim-illuminate/"; meta.hydraPlatforms = [ ]; @@ -18763,12 +18763,12 @@ final: prev: { vim-pandoc-syntax = buildVimPlugin { pname = "vim-pandoc-syntax"; - version = "2025-03-15"; + version = "2025-04-18"; src = fetchFromGitHub { owner = "vim-pandoc"; repo = "vim-pandoc-syntax"; - rev = "05ef7f44ebaea37159db8d365058c0a9e2ef14b5"; - sha256 = "0w48hmcs0dfpc28v9bxslxgvizppkcvw0zpj6sxha747bbi715fc"; + rev = "ea3fc415784bdcbae7f0093b80070ca4ff9e44c8"; + sha256 = "0mk33skbybrs4mwrwbsxkj9vcjik7bbrhk0lncxd9pvswnxrw053"; }; meta.homepage = "https://github.com/vim-pandoc/vim-pandoc-syntax/"; meta.hydraPlatforms = [ ]; @@ -19530,12 +19530,12 @@ final: prev: { vim-slime = buildVimPlugin { pname = "vim-slime"; - version = "2025-02-03"; + version = "2025-04-16"; src = fetchFromGitHub { owner = "jpalardy"; repo = "vim-slime"; - rev = "9bc2e13f8441b09fd7352a11629a4da0ea4cb058"; - sha256 = "0j4anbhpyyfnb846n7yhx2smr6q7ik11272zyfh7jwdr699c2dcj"; + rev = "869260840bd05c92408c6867e11d7288e3b24d9b"; + sha256 = "0djj139x1pqx4y72mz8hddamwx5ggqyqqcbx309l6mhjiprf0iy5"; }; meta.homepage = "https://github.com/jpalardy/vim-slime/"; meta.hydraPlatforms = [ ]; @@ -19712,12 +19712,12 @@ final: prev: { vim-spirv = buildVimPlugin { pname = "vim-spirv"; - version = "2025-04-10"; + version = "2025-04-17"; src = fetchFromGitHub { owner = "kbenzie"; repo = "vim-spirv"; - rev = "f48d169fd6b0ab178807f01e73e9937f1377a77c"; - sha256 = "0jkkl3cqib5az534dyzkfrkwys5la9qd8bcrv1j2hcgbcfwf5zw4"; + rev = "0193f11a7da93e8d14357b32413900009c31a90c"; + sha256 = "11z3xqp91p2l5kzmkfyy9v0xky97h60cgcgr1r3ix584jxli55il"; }; meta.homepage = "https://github.com/kbenzie/vim-spirv/"; meta.hydraPlatforms = [ ]; @@ -20806,12 +20806,12 @@ final: prev: { vimtex = buildVimPlugin { pname = "vimtex"; - version = "2025-04-13"; + version = "2025-04-20"; src = fetchFromGitHub { owner = "lervag"; repo = "vimtex"; - rev = "237671ff5852e30f1ad47a572d55a9c2e2dbe91d"; - sha256 = "0bq2nhf44qbndjbs3hj75s6iigv9g08qz45p8260rvvjq4jln52x"; + rev = "cfd4e528b0b44804b51a2929ddcde0b99ebae52f"; + sha256 = "1a7pifx5i38pakhf946xh1sakc4vslak62hqyx37biyspjvxbym7"; }; meta.homepage = "https://github.com/lervag/vimtex/"; meta.hydraPlatforms = [ ]; @@ -20910,12 +20910,12 @@ final: prev: { visual-whitespace-nvim = buildVimPlugin { pname = "visual-whitespace.nvim"; - version = "2025-04-14"; + version = "2025-04-20"; src = fetchFromGitHub { owner = "mcauley-penney"; repo = "visual-whitespace.nvim"; - rev = "b3a1383c152cf8fbee6c29ac0f48fdb31f16f550"; - sha256 = "0367q0cilcdnx963xs81lim8yf84y7lpka986hvbf84qip83gh1g"; + rev = "8efff74c6811d1e858bbea49be6f21828df96458"; + sha256 = "0rglcg0m45k7js26i3qyxzfcw40sg2rcxk37lhvx5qlah7sdk88b"; }; meta.homepage = "https://github.com/mcauley-penney/visual-whitespace.nvim/"; meta.hydraPlatforms = [ ]; @@ -20936,12 +20936,12 @@ final: prev: { vscode-nvim = buildVimPlugin { pname = "vscode.nvim"; - version = "2025-03-26"; + version = "2025-04-20"; src = fetchFromGitHub { owner = "Mofiqul"; repo = "vscode.nvim"; - rev = "49d6014ba151fc6cc585b8d5f057ca7839077bf8"; - sha256 = "1ik0jz4d39jsi117hvcksvzx2b1k3aiqc1x4rgjfd43zg400mi58"; + rev = "5769f298af4abf371528b25623fecb1e069c858c"; + sha256 = "1l9jm1yjfq73bsb1izs26ssd714rc8hshkks4yf52jva2i92p15h"; }; meta.homepage = "https://github.com/Mofiqul/vscode.nvim/"; meta.hydraPlatforms = [ ]; @@ -21288,12 +21288,12 @@ final: prev: { yazi-nvim = buildVimPlugin { pname = "yazi.nvim"; - version = "2025-04-12"; + version = "2025-04-20"; src = fetchFromGitHub { owner = "mikavilpas"; repo = "yazi.nvim"; - rev = "8418e7028f91feacffcf75236fd4e93a5a3fe911"; - sha256 = "1jrwpg3pp50rybzb02np39zpcmibgvv56xl09xpxrhldmmb5p6bp"; + rev = "50446f185d8b97b225d47852813f0e415cd70689"; + sha256 = "0qidjs15lk01j0kmhwv4p2vyfj5dswdf5f9qmzjxh4ha5xs9gmg4"; }; meta.homepage = "https://github.com/mikavilpas/yazi.nvim/"; meta.hydraPlatforms = [ ]; @@ -21392,12 +21392,12 @@ final: prev: { zenbones-nvim = buildVimPlugin { pname = "zenbones.nvim"; - version = "2025-03-04"; + version = "2025-04-16"; src = fetchFromGitHub { owner = "zenbones-theme"; repo = "zenbones.nvim"; - rev = "dbd485fa5d5230d175e024374d41dab5ad71b119"; - sha256 = "102375anp0b4iygnxcrx173r5cll3x1gwhfm4qnl3xq26691xy9p"; + rev = "0c14c7d00016953c41f22c6eb885ade87010bb69"; + sha256 = "1dv5d2bmqxdm08hzwkh9hal5p30m9hr0z3jb4jyaqxf6nqwjl4pf"; }; meta.homepage = "https://github.com/zenbones-theme/zenbones.nvim/"; meta.hydraPlatforms = [ ]; diff --git a/pkgs/applications/editors/vim/plugins/overrides.nix b/pkgs/applications/editors/vim/plugins/overrides.nix index 22e88798d1a3..b304ab6111c1 100644 --- a/pkgs/applications/editors/vim/plugins/overrides.nix +++ b/pkgs/applications/editors/vim/plugins/overrides.nix @@ -2226,6 +2226,8 @@ in "nvchad.cheatsheet.grid" "nvchad.cheatsheet.simple" "nvchad.blink.config" + # Circular dependency with base46 + "nvchad.utils" ]; }; From 8f0138fdc29e3bb9db61ac23d92bec6b515c3d0b Mon Sep 17 00:00:00 2001 From: Gabriel Smith Date: Wed, 16 Apr 2025 09:22:19 -0400 Subject: [PATCH 54/70] libyang: propagate pcre2 dependency pcre2.h is required at build-time for any dependents of libyang. --- pkgs/by-name/li/libyang/package.nix | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/pkgs/by-name/li/libyang/package.nix b/pkgs/by-name/li/libyang/package.nix index ca097a219486..93215e51fb84 100644 --- a/pkgs/by-name/li/libyang/package.nix +++ b/pkgs/by-name/li/libyang/package.nix @@ -25,12 +25,17 @@ stdenv.mkDerivation rec { hash = "sha256-5oJV8gr2rwvSdpX5w3gmIw/LTrWtXVnl6oLr/soNTDk="; }; + outputs = [ + "out" + "dev" + ]; + nativeBuildInputs = [ cmake pkg-config ]; - buildInputs = [ + propagatedBuildInputs = [ pcre2 ]; From ceccd2e4807889b00c1227c4876b885d9bbc2c80 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 21 Apr 2025 13:52:05 +0000 Subject: [PATCH 55/70] gitu: 0.29.0 -> 0.30.3 --- pkgs/by-name/gi/gitu/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/gi/gitu/package.nix b/pkgs/by-name/gi/gitu/package.nix index 240fe153c07f..f3aea88b96d0 100644 --- a/pkgs/by-name/gi/gitu/package.nix +++ b/pkgs/by-name/gi/gitu/package.nix @@ -13,17 +13,17 @@ rustPlatform.buildRustPackage rec { pname = "gitu"; - version = "0.29.0"; + version = "0.30.3"; src = fetchFromGitHub { owner = "altsem"; repo = "gitu"; rev = "v${version}"; - hash = "sha256-c2YVcE+a/9Z6qTLEbcSFE6393SEeudyvdbzCRJfszcc="; + hash = "sha256-WXz8H68EpvkUEpdEbdukggbjFXUPA+FRcZTsk48W6TU="; }; useFetchCargoVendor = true; - cargoHash = "sha256-+tSNUtsDFKqx5W8+cuxyFsG1etm44eYgoYuoUt5tw3E="; + cargoHash = "sha256-0+KHO7CGYdifQGbtywuK5xQmS2BuxFX50eMGpo5RRYU="; nativeBuildInputs = [ pkg-config From 58ba3230bdf728c148d28a70d23ac287e5152dd0 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 21 Apr 2025 14:01:21 +0000 Subject: [PATCH 56/70] copilot-language-server: 1.294.0 -> 1.304.0 --- pkgs/by-name/co/copilot-language-server/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/co/copilot-language-server/package.nix b/pkgs/by-name/co/copilot-language-server/package.nix index f03224ab18f4..7cdc2a195941 100644 --- a/pkgs/by-name/co/copilot-language-server/package.nix +++ b/pkgs/by-name/co/copilot-language-server/package.nix @@ -45,11 +45,11 @@ let in stdenvNoCC.mkDerivation (finalAttrs: { pname = "copilot-language-server"; - version = "1.294.0"; + version = "1.304.0"; src = fetchzip { url = "https://github.com/github/copilot-language-server-release/releases/download/${finalAttrs.version}/copilot-language-server-native-${finalAttrs.version}.zip"; - hash = "sha256-8nB8vlrSy+949HiJRCa9yFqu/GAaluFH1VzE63AUUs8="; + hash = "sha256-F0urL3bMlNcxHTrePYsagEx2664C7USYAcnhCCzB/rA="; stripRoot = false; }; From 5949acdd610996b4ce1c510ec7d18ec0d2b25772 Mon Sep 17 00:00:00 2001 From: c3n21 <37077738+c3n21@users.noreply.github.com> Date: Mon, 21 Apr 2025 15:41:41 +0200 Subject: [PATCH 57/70] maintainers: add sinics --- maintainers/maintainer-list.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index e5b22f2d6af7..7f0f40563522 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -22455,6 +22455,12 @@ github = "sinanmohd"; githubId = 69694713; }; + sinics = { + name = "Zhifan"; + email = "nonno.felice69uwu@gmail.com"; + matrix = "@c3n21:matrix.org"; + githubId = 37077738; + }; sioodmy = { name = "Antoni SokoĊ‚owski"; github = "sioodmy"; From e8d0dba64483e2e5db7d64ab17ecb9fe05f8f991 Mon Sep 17 00:00:00 2001 From: c3n21 <37077738+c3n21@users.noreply.github.com> Date: Mon, 21 Apr 2025 15:40:31 +0200 Subject: [PATCH 58/70] vimPlugins.sonarlint-nvim: init at 0-unstable-2025-04-18 --- .../non-generated/sonarlint-nvim/default.nix | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 pkgs/applications/editors/vim/plugins/non-generated/sonarlint-nvim/default.nix diff --git a/pkgs/applications/editors/vim/plugins/non-generated/sonarlint-nvim/default.nix b/pkgs/applications/editors/vim/plugins/non-generated/sonarlint-nvim/default.nix new file mode 100644 index 000000000000..0a6bff6bebdc --- /dev/null +++ b/pkgs/applications/editors/vim/plugins/non-generated/sonarlint-nvim/default.nix @@ -0,0 +1,26 @@ +{ + lib, + vimUtils, + fetchFromGitLab, + nix-update-script, +}: +vimUtils.buildVimPlugin { + pname = "sonarlint.nvim"; + version = "0-unstable-2025-04-18"; + + src = fetchFromGitLab { + owner = "schrieveslaach"; + repo = "sonarlint.nvim"; + rev = "0b78f1db800f9ba76f81de773ba09ce2222bdcc2"; + hash = "sha256-EUwuIFFe4tmw8u6RqEvOLL0Yi8J5cLBQx7ICxnmkT4k="; + }; + + passthru.updateScript = nix-update-script { }; + + meta = { + homepage = "https://gitlab.com/schrieveslaach/sonarlint.nvim"; + description = "Extensions for the built-in Language Server Protocol support in Neovim for sonarlint-language-server"; + license = lib.licenses.gpl3; + maintainers = [ lib.maintainers.sinics ]; + }; +} From 1e9c6c6f2e4c904cad282378b14874c69ef5c810 Mon Sep 17 00:00:00 2001 From: Austin Horstman Date: Mon, 21 Apr 2025 08:25:40 -0500 Subject: [PATCH 59/70] luaPackages: update on 2025-04-21 --- .../lua-modules/generated-packages.nix | 56 +++++++++---------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/pkgs/development/lua-modules/generated-packages.nix b/pkgs/development/lua-modules/generated-packages.nix index 44c8d6d993ee..f8e0a9660646 100644 --- a/pkgs/development/lua-modules/generated-packages.nix +++ b/pkgs/development/lua-modules/generated-packages.nix @@ -814,15 +814,15 @@ final: prev: { }: buildLuarocksPackage { pname = "fzf-lua"; - version = "0.0.1836-1"; + version = "0.0.1848-1"; knownRockspec = (fetchurl { - url = "mirror://luarocks/fzf-lua-0.0.1836-1.rockspec"; - sha256 = "1q0wfck09d0449q8dyb95cyyr8z0r8292dp8vrqq3jcd7qkjcf1q"; + url = "mirror://luarocks/fzf-lua-0.0.1848-1.rockspec"; + sha256 = "1xvgdbzdszflhr5f846glyzag74j6z2s3g74xisjgy698gg0a5vc"; }).outPath; src = fetchzip { - url = "https://github.com/ibhagwan/fzf-lua/archive/ba5ba606f11967e08165aeeb9d7abe04d0835f58.zip"; - sha256 = "1r66yrpzzzazasmb450xpr11f0sjg8ckrf91x4c66ypsanz2z2ws"; + url = "https://github.com/ibhagwan/fzf-lua/archive/ea2bda8a9717307affd921e1b540dc06acdf8ea8.zip"; + sha256 = "0ba9ncwjv9kcnw7nimifyad54xdf1cacbdlc7hjyy2zlivf4pm3g"; }; disabled = luaOlder "5.1"; @@ -880,8 +880,8 @@ final: prev: { src = fetchFromGitHub { owner = "lewis6991"; repo = "gitsigns.nvim"; - rev = "fcfa7a989cd6fed10abf02d9880dc76d7a38167d"; - hash = "sha256-cg8r0yuuSE8G5MTj0pET8MzJ+VQf+HsXDJx5FzriM78="; + rev = "2149fc2009d1117d58e86e56836f70c969f60a82"; + hash = "sha256-7WQ428oPr43z01HvNpArZJcUov61/pDtLqJtkEKnBAY="; }; disabled = lua.luaversion != "5.1"; @@ -903,15 +903,15 @@ final: prev: { }: buildLuarocksPackage { pname = "grug-far.nvim"; - version = "1.6.6-1"; + version = "1.6.9-1"; knownRockspec = (fetchurl { - url = "mirror://luarocks/grug-far.nvim-1.6.6-1.rockspec"; - sha256 = "1axdj580nv078d4rh7q9rqd5rd46cvd3gfif0cbqys2kpv0xx53d"; + url = "mirror://luarocks/grug-far.nvim-1.6.9-1.rockspec"; + sha256 = "1svzjpgig2vbjc2hr4wh5k6rbdpw0c2bvd08v5kay73nlkyqz6zm"; }).outPath; src = fetchzip { - url = "https://github.com/MagicDuck/grug-far.nvim/archive/d6c682af0033b4fbb3645a997e3b4a9189ed1ed6.zip"; - sha256 = "0v1nfyiymb17p3fkk6ih1pxiib25f8vg74k79vp9r5wr56l9ja9c"; + url = "https://github.com/MagicDuck/grug-far.nvim/archive/1c9325f6ab18fc8ac4d4c57e765aa845af148277.zip"; + sha256 = "0rcnl4lfcg4lxlbix0v5r19vmbnn6j4pzi6k1fg4k6200yfghnzq"; }; disabled = luaOlder "5.1"; @@ -1979,17 +1979,17 @@ final: prev: { }: buildLuarocksPackage { pname = "lua-resty-openssl"; - version = "1.6.0-1"; + version = "1.6.1-1"; knownRockspec = (fetchurl { - url = "mirror://luarocks/lua-resty-openssl-1.6.0-1.rockspec"; - sha256 = "108a53210khinpwk88pcz6s8n2f6hhaib3jfrgi9kjp0r4s14c4q"; + url = "mirror://luarocks/lua-resty-openssl-1.6.1-1.rockspec"; + sha256 = "179rc1n1zn0995zfdcl6a97v7ld95p55cppvj20lssrjkq93rk9z"; }).outPath; src = fetchFromGitHub { owner = "fffonion"; repo = "lua-resty-openssl"; - rev = "1.6.0"; - hash = "sha256-TqBRTFV1255Ct2mm2T8bLJNdSWZTEB6wOOHGRZczcVk="; + rev = "1.6.1"; + hash = "sha256-8LxembMadP+I4jvjNBLn+OHxhzB+R8qSCHxk+mFL4WE="; }; meta = { @@ -2011,17 +2011,17 @@ final: prev: { }: buildLuarocksPackage { pname = "lua-resty-session"; - version = "4.1.0-1"; + version = "4.1.1-1"; knownRockspec = (fetchurl { - url = "mirror://luarocks/lua-resty-session-4.1.0-1.rockspec"; - sha256 = "0cmx2rwiwiprg1112chxrfvp7gs2jg0grdnkb5n7yhd5rnp0bhhw"; + url = "mirror://luarocks/lua-resty-session-4.1.1-1.rockspec"; + sha256 = "1ndkivmrrcdd1qm762ajkkzvncyyssfq1zpkinqkj6qqydjvpzws"; }).outPath; src = fetchFromGitHub { owner = "bungle"; repo = "lua-resty-session"; - rev = "v4.1.0"; - hash = "sha256-MXB7Z/0drMOcTwJBHNwZx4iqem1XfG6uwozW+RxL588="; + rev = "v4.1.1"; + hash = "sha256-rsMUnszo0QnK4dYWDrHMue9Nsyf6jOMMYh6VdH3mXPM="; }; disabled = luaOlder "5.1"; @@ -3213,7 +3213,7 @@ final: prev: { }: buildLuarocksPackage { pname = "luasystem"; - version = "0.6.0-1"; + version = "0.6.2-1"; knownRockspec = (fetchurl { url = "mirror://luarocks/luasystem-0.6.2-1.rockspec"; @@ -4649,15 +4649,15 @@ final: prev: { }: buildLuarocksPackage { pname = "rustaceanvim"; - version = "6.0.2-1"; + version = "6.0.3-1"; knownRockspec = (fetchurl { - url = "mirror://luarocks/rustaceanvim-6.0.2-1.rockspec"; - sha256 = "1z2s2f91mnc9fxr5ykffajpj2c92rjgnwipfvi2lhhl2p5hpgf9f"; + url = "mirror://luarocks/rustaceanvim-6.0.3-1.rockspec"; + sha256 = "1x0wh2nxf2g2kkbfyb9yspi5psvdra521ii01dn4chy9zp77br65"; }).outPath; src = fetchzip { - url = "https://github.com/mrcjkb/rustaceanvim/archive/v6.0.2.zip"; - sha256 = "09wrfmzbk81xax5p4wzczsvv1x28nv54mayi12fvzv6c3bmcsbvj"; + url = "https://github.com/mrcjkb/rustaceanvim/archive/v6.0.3.zip"; + sha256 = "0g40qj67pazf428wdgzijvf1a4xr2l1nimxisyka52fpwi1rah4y"; }; disabled = luaOlder "5.1"; From 449731d58e6a84cd861a6f8c5c0c0349d70e4850 Mon Sep 17 00:00:00 2001 From: "Julie B." Date: Sat, 19 Apr 2025 11:22:14 +0200 Subject: [PATCH 60/70] electrum-ltc: fix build --- .../misc/electrum/ltc-aiorpcX-version-bump.patch | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/pkgs/applications/misc/electrum/ltc-aiorpcX-version-bump.patch b/pkgs/applications/misc/electrum/ltc-aiorpcX-version-bump.patch index 8c7af75a5406..a726ca678c59 100644 --- a/pkgs/applications/misc/electrum/ltc-aiorpcX-version-bump.patch +++ b/pkgs/applications/misc/electrum/ltc-aiorpcX-version-bump.patch @@ -23,7 +23,7 @@ index 04b0a77f3..2330ea921 100644 protobuf>=3.12 qdarkstyle>=2.7 -aiorpcx>=0.22.0,<0.23 -+aiorpcx>=0.22.0,<0.24 ++aiorpcx>=0.22.0 aiohttp>=3.3.0,<4.0.0 aiohttp_socks>=0.3 certifi @@ -31,14 +31,12 @@ diff --git a/run_electrum b/run_electrum index a1b30f29e..cb22f8724 100755 --- a/run_electrum +++ b/run_electrum -@@ -67,8 +67,8 @@ def check_imports(): +@@ -67,8 +67,6 @@ def check_imports(): import aiorpcx except ImportError as e: sys.exit(f"Error: {str(e)}. Try 'sudo python3 -m pip install '") - if not ((0, 22, 0) <= aiorpcx._version < (0, 23)): - raise RuntimeError(f'aiorpcX version {aiorpcx._version} does not match required: 0.22.0<=ver<0.23') -+ if not ((0, 22, 0) <= aiorpcx._version < (0, 24)): -+ raise RuntimeError(f'aiorpcX version {aiorpcx._version} does not match required: 0.22.0<=ver<0.24') # the following imports are for pyinstaller from google.protobuf import descriptor from google.protobuf import message From d1e61a9c582ec2f701b36d4600ae19b8099c5211 Mon Sep 17 00:00:00 2001 From: patka Date: Mon, 21 Apr 2025 08:22:30 +0200 Subject: [PATCH 61/70] mosdepth: remove unused pcre dependency Since version 0.2.5 mosdepth no longer uses pcre as a dependency --- pkgs/by-name/mo/mosdepth/package.nix | 2 -- 1 file changed, 2 deletions(-) diff --git a/pkgs/by-name/mo/mosdepth/package.nix b/pkgs/by-name/mo/mosdepth/package.nix index befa0db0636f..cd110fdec8cd 100644 --- a/pkgs/by-name/mo/mosdepth/package.nix +++ b/pkgs/by-name/mo/mosdepth/package.nix @@ -2,7 +2,6 @@ lib, buildNimPackage, fetchFromGitHub, - pcre, versionCheckHook, }: @@ -21,7 +20,6 @@ buildNimPackage (finalAttrs: { lockFile = ./lock.json; - buildInputs = [ pcre ]; nativeBuildInputs = [ versionCheckHook ]; nimFlags = [ ''--passC:"-Wno-incompatible-pointer-types"'' ]; From 3fbc35234ad5e0f8680d07ae48c85648613deaa4 Mon Sep 17 00:00:00 2001 From: Austin Horstman Date: Mon, 21 Apr 2025 10:23:06 -0500 Subject: [PATCH 62/70] vimPlugins.claude-code-nvim: init at 2025-03-29 --- pkgs/applications/editors/vim/plugins/generated.nix | 13 +++++++++++++ pkgs/applications/editors/vim/plugins/overrides.nix | 6 ++++++ .../editors/vim/plugins/vim-plugin-names | 1 + 3 files changed, 20 insertions(+) diff --git a/pkgs/applications/editors/vim/plugins/generated.nix b/pkgs/applications/editors/vim/plugins/generated.nix index a7c346074fd8..d5d1fa0ed922 100644 --- a/pkgs/applications/editors/vim/plugins/generated.nix +++ b/pkgs/applications/editors/vim/plugins/generated.nix @@ -1986,6 +1986,19 @@ final: prev: { meta.hydraPlatforms = [ ]; }; + claude-code-nvim = buildVimPlugin { + pname = "claude-code.nvim"; + version = "2025-03-29"; + src = fetchFromGitHub { + owner = "greggh"; + repo = "claude-code.nvim"; + rev = "b5c64c42832e5c6c7a02e8e8aa44cfa38a4ae0b2"; + sha256 = "10s4bn1vcmvkgfxdcilqw85zzlfm2qipw25aqw7jjarys5y3jfik"; + }; + meta.homepage = "https://github.com/greggh/claude-code.nvim/"; + meta.hydraPlatforms = [ ]; + }; + clever-f-vim = buildVimPlugin { pname = "clever-f.vim"; version = "2022-10-15"; diff --git a/pkgs/applications/editors/vim/plugins/overrides.nix b/pkgs/applications/editors/vim/plugins/overrides.nix index b304ab6111c1..fdd9d716841d 100644 --- a/pkgs/applications/editors/vim/plugins/overrides.nix +++ b/pkgs/applications/editors/vim/plugins/overrides.nix @@ -374,6 +374,12 @@ in ''; }; + claude-code-nvim = super.claude-code-nvim.overrideAttrs { + dependencies = with self; [ + plenary-nvim + ]; + }; + clighter8 = super.clighter8.overrideAttrs { preFixup = '' sed "/^let g:clighter8_libclang_path/s|')$|${lib.getLib llvmPackages.clang.cc}/lib/libclang.so')|" \ diff --git a/pkgs/applications/editors/vim/plugins/vim-plugin-names b/pkgs/applications/editors/vim/plugins/vim-plugin-names index c00c22784bba..c91546630021 100644 --- a/pkgs/applications/editors/vim/plugins/vim-plugin-names +++ b/pkgs/applications/editors/vim/plugins/vim-plugin-names @@ -151,6 +151,7 @@ https://github.com/declancm/cinnamon.nvim/,HEAD, https://github.com/projekt0n/circles.nvim/,, https://github.com/zootedb0t/citruszest.nvim/,, https://github.com/xavierd/clang_complete/,, +https://github.com/greggh/claude-code.nvim/,HEAD, https://github.com/rhysd/clever-f.vim/,, https://github.com/bbchung/clighter8/,, https://github.com/ekickx/clipboard-image.nvim/,, From fd8bf4519b296f16a4fa1b34a768643fc7b1d047 Mon Sep 17 00:00:00 2001 From: awwpotato Date: Mon, 21 Apr 2025 08:54:09 -0700 Subject: [PATCH 63/70] treewide: move to by-name --- .../al/alembic/package.nix} | 0 .../ar}/arrayfire/no-assets.patch | 0 .../ar}/arrayfire/no-download.patch | 0 .../ar/arrayfire/package.nix} | 0 .../ca/cardpeek/package.nix} | 0 .../ca/cargo-vet/package.nix} | 0 .../ca/catcli/package.nix} | 0 .../cl/cloudflared/package.nix} | 0 .../cl}/cloudflared/tests.nix | 0 .../da/databricks-sql-cli/package.nix} | 0 .../de/devpi-client/package.nix} | 0 .../ea}/easyabc/hardcoded-paths.patch | 0 .../ea/easyabc/package.nix} | 0 .../ec/ecryptfs/package.nix} | 0 .../gi/gitmux/package.nix} | 0 .../gs/gshogi/package.nix} | 0 .../ht/html5validator/package.nix} | 0 .../li}/libepoxy/libgl-path.patch | 0 .../li/libepoxy/package.nix} | 0 .../ly}/ly/deps.nix | 0 .../default.nix => by-name/ly/ly/package.nix} | 0 .../my/mymcplus/package.nix} | 0 .../ne/nextinspace/package.nix} | 0 .../ni/nimbo/package.nix} | 0 .../op/opentimestamps-client/package.nix} | 0 .../pi/pingu/package.nix} | 0 .../py/pysolfc/package.nix} | 0 .../py}/pysolfc/pysolfc-datadir.patch | 0 .../sn/snagboot/package.nix} | 0 .../ta/tarmac/package.nix} | 0 .../tf/tftui/package.nix} | 0 .../tu/tunefish/package.nix} | 0 .../tw/twtxt/package.nix} | 0 .../ub/ubidump/package.nix} | 0 pkgs/top-level/all-packages.nix | 53 ------------------- 35 files changed, 53 deletions(-) rename pkgs/{development/libraries/alembic/default.nix => by-name/al/alembic/package.nix} (100%) rename pkgs/{development/libraries => by-name/ar}/arrayfire/no-assets.patch (100%) rename pkgs/{development/libraries => by-name/ar}/arrayfire/no-download.patch (100%) rename pkgs/{development/libraries/arrayfire/default.nix => by-name/ar/arrayfire/package.nix} (100%) rename pkgs/{applications/misc/cardpeek/default.nix => by-name/ca/cardpeek/package.nix} (100%) rename pkgs/{development/tools/rust/cargo-vet/default.nix => by-name/ca/cargo-vet/package.nix} (100%) rename pkgs/{tools/filesystems/catcli/default.nix => by-name/ca/catcli/package.nix} (100%) rename pkgs/{applications/networking/cloudflared/default.nix => by-name/cl/cloudflared/package.nix} (100%) rename pkgs/{applications/networking => by-name/cl}/cloudflared/tests.nix (100%) rename pkgs/{applications/misc/databricks-sql-cli/default.nix => by-name/da/databricks-sql-cli/package.nix} (100%) rename pkgs/{development/tools/devpi-client/default.nix => by-name/de/devpi-client/package.nix} (100%) rename pkgs/{applications/audio => by-name/ea}/easyabc/hardcoded-paths.patch (100%) rename pkgs/{applications/audio/easyabc/default.nix => by-name/ea/easyabc/package.nix} (100%) rename pkgs/{tools/security/ecryptfs/default.nix => by-name/ec/ecryptfs/package.nix} (100%) rename pkgs/{applications/version-management/gitmux/default.nix => by-name/gi/gitmux/package.nix} (100%) rename pkgs/{games/gshogi/default.nix => by-name/gs/gshogi/package.nix} (100%) rename pkgs/{applications/misc/html5validator/default.nix => by-name/ht/html5validator/package.nix} (100%) rename pkgs/{development/libraries => by-name/li}/libepoxy/libgl-path.patch (100%) rename pkgs/{development/libraries/libepoxy/default.nix => by-name/li/libepoxy/package.nix} (100%) rename pkgs/{applications/display-managers => by-name/ly}/ly/deps.nix (100%) rename pkgs/{applications/display-managers/ly/default.nix => by-name/ly/ly/package.nix} (100%) rename pkgs/{tools/games/mymcplus/default.nix => by-name/my/mymcplus/package.nix} (100%) rename pkgs/{applications/science/misc/nextinspace/default.nix => by-name/ne/nextinspace/package.nix} (100%) rename pkgs/{applications/misc/nimbo/default.nix => by-name/ni/nimbo/package.nix} (100%) rename pkgs/{tools/misc/opentimestamps-client/default.nix => by-name/op/opentimestamps-client/package.nix} (100%) rename pkgs/{tools/networking/pingu/default.nix => by-name/pi/pingu/package.nix} (100%) rename pkgs/{games/pysolfc/default.nix => by-name/py/pysolfc/package.nix} (100%) rename pkgs/{games => by-name/py}/pysolfc/pysolfc-datadir.patch (100%) rename pkgs/{applications/misc/snagboot/default.nix => by-name/sn/snagboot/package.nix} (100%) rename pkgs/{development/tools/tarmac/default.nix => by-name/ta/tarmac/package.nix} (100%) rename pkgs/{applications/networking/cluster/tftui/default.nix => by-name/tf/tftui/package.nix} (100%) rename pkgs/{applications/audio/tunefish/default.nix => by-name/tu/tunefish/package.nix} (100%) rename pkgs/{applications/networking/twtxt/default.nix => by-name/tw/twtxt/package.nix} (100%) rename pkgs/{tools/filesystems/ubidump/default.nix => by-name/ub/ubidump/package.nix} (100%) diff --git a/pkgs/development/libraries/alembic/default.nix b/pkgs/by-name/al/alembic/package.nix similarity index 100% rename from pkgs/development/libraries/alembic/default.nix rename to pkgs/by-name/al/alembic/package.nix diff --git a/pkgs/development/libraries/arrayfire/no-assets.patch b/pkgs/by-name/ar/arrayfire/no-assets.patch similarity index 100% rename from pkgs/development/libraries/arrayfire/no-assets.patch rename to pkgs/by-name/ar/arrayfire/no-assets.patch diff --git a/pkgs/development/libraries/arrayfire/no-download.patch b/pkgs/by-name/ar/arrayfire/no-download.patch similarity index 100% rename from pkgs/development/libraries/arrayfire/no-download.patch rename to pkgs/by-name/ar/arrayfire/no-download.patch diff --git a/pkgs/development/libraries/arrayfire/default.nix b/pkgs/by-name/ar/arrayfire/package.nix similarity index 100% rename from pkgs/development/libraries/arrayfire/default.nix rename to pkgs/by-name/ar/arrayfire/package.nix diff --git a/pkgs/applications/misc/cardpeek/default.nix b/pkgs/by-name/ca/cardpeek/package.nix similarity index 100% rename from pkgs/applications/misc/cardpeek/default.nix rename to pkgs/by-name/ca/cardpeek/package.nix diff --git a/pkgs/development/tools/rust/cargo-vet/default.nix b/pkgs/by-name/ca/cargo-vet/package.nix similarity index 100% rename from pkgs/development/tools/rust/cargo-vet/default.nix rename to pkgs/by-name/ca/cargo-vet/package.nix diff --git a/pkgs/tools/filesystems/catcli/default.nix b/pkgs/by-name/ca/catcli/package.nix similarity index 100% rename from pkgs/tools/filesystems/catcli/default.nix rename to pkgs/by-name/ca/catcli/package.nix diff --git a/pkgs/applications/networking/cloudflared/default.nix b/pkgs/by-name/cl/cloudflared/package.nix similarity index 100% rename from pkgs/applications/networking/cloudflared/default.nix rename to pkgs/by-name/cl/cloudflared/package.nix diff --git a/pkgs/applications/networking/cloudflared/tests.nix b/pkgs/by-name/cl/cloudflared/tests.nix similarity index 100% rename from pkgs/applications/networking/cloudflared/tests.nix rename to pkgs/by-name/cl/cloudflared/tests.nix diff --git a/pkgs/applications/misc/databricks-sql-cli/default.nix b/pkgs/by-name/da/databricks-sql-cli/package.nix similarity index 100% rename from pkgs/applications/misc/databricks-sql-cli/default.nix rename to pkgs/by-name/da/databricks-sql-cli/package.nix diff --git a/pkgs/development/tools/devpi-client/default.nix b/pkgs/by-name/de/devpi-client/package.nix similarity index 100% rename from pkgs/development/tools/devpi-client/default.nix rename to pkgs/by-name/de/devpi-client/package.nix diff --git a/pkgs/applications/audio/easyabc/hardcoded-paths.patch b/pkgs/by-name/ea/easyabc/hardcoded-paths.patch similarity index 100% rename from pkgs/applications/audio/easyabc/hardcoded-paths.patch rename to pkgs/by-name/ea/easyabc/hardcoded-paths.patch diff --git a/pkgs/applications/audio/easyabc/default.nix b/pkgs/by-name/ea/easyabc/package.nix similarity index 100% rename from pkgs/applications/audio/easyabc/default.nix rename to pkgs/by-name/ea/easyabc/package.nix diff --git a/pkgs/tools/security/ecryptfs/default.nix b/pkgs/by-name/ec/ecryptfs/package.nix similarity index 100% rename from pkgs/tools/security/ecryptfs/default.nix rename to pkgs/by-name/ec/ecryptfs/package.nix diff --git a/pkgs/applications/version-management/gitmux/default.nix b/pkgs/by-name/gi/gitmux/package.nix similarity index 100% rename from pkgs/applications/version-management/gitmux/default.nix rename to pkgs/by-name/gi/gitmux/package.nix diff --git a/pkgs/games/gshogi/default.nix b/pkgs/by-name/gs/gshogi/package.nix similarity index 100% rename from pkgs/games/gshogi/default.nix rename to pkgs/by-name/gs/gshogi/package.nix diff --git a/pkgs/applications/misc/html5validator/default.nix b/pkgs/by-name/ht/html5validator/package.nix similarity index 100% rename from pkgs/applications/misc/html5validator/default.nix rename to pkgs/by-name/ht/html5validator/package.nix diff --git a/pkgs/development/libraries/libepoxy/libgl-path.patch b/pkgs/by-name/li/libepoxy/libgl-path.patch similarity index 100% rename from pkgs/development/libraries/libepoxy/libgl-path.patch rename to pkgs/by-name/li/libepoxy/libgl-path.patch diff --git a/pkgs/development/libraries/libepoxy/default.nix b/pkgs/by-name/li/libepoxy/package.nix similarity index 100% rename from pkgs/development/libraries/libepoxy/default.nix rename to pkgs/by-name/li/libepoxy/package.nix diff --git a/pkgs/applications/display-managers/ly/deps.nix b/pkgs/by-name/ly/ly/deps.nix similarity index 100% rename from pkgs/applications/display-managers/ly/deps.nix rename to pkgs/by-name/ly/ly/deps.nix diff --git a/pkgs/applications/display-managers/ly/default.nix b/pkgs/by-name/ly/ly/package.nix similarity index 100% rename from pkgs/applications/display-managers/ly/default.nix rename to pkgs/by-name/ly/ly/package.nix diff --git a/pkgs/tools/games/mymcplus/default.nix b/pkgs/by-name/my/mymcplus/package.nix similarity index 100% rename from pkgs/tools/games/mymcplus/default.nix rename to pkgs/by-name/my/mymcplus/package.nix diff --git a/pkgs/applications/science/misc/nextinspace/default.nix b/pkgs/by-name/ne/nextinspace/package.nix similarity index 100% rename from pkgs/applications/science/misc/nextinspace/default.nix rename to pkgs/by-name/ne/nextinspace/package.nix diff --git a/pkgs/applications/misc/nimbo/default.nix b/pkgs/by-name/ni/nimbo/package.nix similarity index 100% rename from pkgs/applications/misc/nimbo/default.nix rename to pkgs/by-name/ni/nimbo/package.nix diff --git a/pkgs/tools/misc/opentimestamps-client/default.nix b/pkgs/by-name/op/opentimestamps-client/package.nix similarity index 100% rename from pkgs/tools/misc/opentimestamps-client/default.nix rename to pkgs/by-name/op/opentimestamps-client/package.nix diff --git a/pkgs/tools/networking/pingu/default.nix b/pkgs/by-name/pi/pingu/package.nix similarity index 100% rename from pkgs/tools/networking/pingu/default.nix rename to pkgs/by-name/pi/pingu/package.nix diff --git a/pkgs/games/pysolfc/default.nix b/pkgs/by-name/py/pysolfc/package.nix similarity index 100% rename from pkgs/games/pysolfc/default.nix rename to pkgs/by-name/py/pysolfc/package.nix diff --git a/pkgs/games/pysolfc/pysolfc-datadir.patch b/pkgs/by-name/py/pysolfc/pysolfc-datadir.patch similarity index 100% rename from pkgs/games/pysolfc/pysolfc-datadir.patch rename to pkgs/by-name/py/pysolfc/pysolfc-datadir.patch diff --git a/pkgs/applications/misc/snagboot/default.nix b/pkgs/by-name/sn/snagboot/package.nix similarity index 100% rename from pkgs/applications/misc/snagboot/default.nix rename to pkgs/by-name/sn/snagboot/package.nix diff --git a/pkgs/development/tools/tarmac/default.nix b/pkgs/by-name/ta/tarmac/package.nix similarity index 100% rename from pkgs/development/tools/tarmac/default.nix rename to pkgs/by-name/ta/tarmac/package.nix diff --git a/pkgs/applications/networking/cluster/tftui/default.nix b/pkgs/by-name/tf/tftui/package.nix similarity index 100% rename from pkgs/applications/networking/cluster/tftui/default.nix rename to pkgs/by-name/tf/tftui/package.nix diff --git a/pkgs/applications/audio/tunefish/default.nix b/pkgs/by-name/tu/tunefish/package.nix similarity index 100% rename from pkgs/applications/audio/tunefish/default.nix rename to pkgs/by-name/tu/tunefish/package.nix diff --git a/pkgs/applications/networking/twtxt/default.nix b/pkgs/by-name/tw/twtxt/package.nix similarity index 100% rename from pkgs/applications/networking/twtxt/default.nix rename to pkgs/by-name/tw/twtxt/package.nix diff --git a/pkgs/tools/filesystems/ubidump/default.nix b/pkgs/by-name/ub/ubidump/package.nix similarity index 100% rename from pkgs/tools/filesystems/ubidump/default.nix rename to pkgs/by-name/ub/ubidump/package.nix diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 6be7b7913055..07e582472069 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -357,8 +357,6 @@ with pkgs; copilot-language-server-fhs = copilot-language-server.fhs; - databricks-sql-cli = callPackage ../applications/misc/databricks-sql-cli { }; - deck = callPackage ../by-name/de/deck/package.nix { buildGoModule = buildGo123Module; }; @@ -399,8 +397,6 @@ with pkgs; inherit (gridlock) nyarr; - html5validator = callPackage ../applications/misc/html5validator { }; - inspec = callPackage ../tools/misc/inspec { }; lshw-gui = lshw.override { withGUI = true; }; @@ -1170,8 +1166,6 @@ with pkgs; mpy-utils = python3Packages.callPackage ../tools/misc/mpy-utils { }; - mymcplus = callPackage ../tools/games/mymcplus { }; - networkd-notify = python3Packages.callPackage ../tools/networking/networkd-notify { systemd = pkgs.systemd; }; @@ -1201,8 +1195,6 @@ with pkgs; shaperglot = with python3Packages; toPythonApplication shaperglot; - snagboot = callPackage ../applications/misc/snagboot { }; - slipstream = callPackage ../tools/games/slipstream { jdk = jdk8; }; @@ -1387,8 +1379,6 @@ with pkgs; pythonPackages = python3Packages; }; - gitmux = callPackage ../applications/version-management/gitmux { }; - gittyup = libsForQt5.callPackage ../applications/version-management/gittyup { }; lucky-commit = callPackage ../applications/version-management/lucky-commit { @@ -1848,8 +1838,6 @@ with pkgs; certipy = with python3Packages; toPythonApplication certipy-ad; - catcli = callPackage ../tools/filesystems/catcli { }; - chipsec = callPackage ../tools/security/chipsec { kernel = null; withDriver = false; @@ -2205,8 +2193,6 @@ with pkgs; catch2_3 = callPackage ../development/libraries/catch2/3.nix { }; - cardpeek = callPackage ../applications/misc/cardpeek { }; - ceres-solver = callPackage ../development/libraries/ceres-solver { gflags = null; # only required for examples/tests }; @@ -2228,8 +2214,6 @@ with pkgs; cloud-init = callPackage ../tools/virtualization/cloud-init { inherit systemd; }; - cloudflared = callPackage ../applications/networking/cloudflared { }; - clingo = callPackage ../applications/science/logic/potassco/clingo.nix { }; clingcon = callPackage ../applications/science/logic/potassco/clingcon.nix { }; @@ -2350,8 +2334,6 @@ with pkgs; enableSSH = true; }; - easyabc = callPackage ../applications/audio/easyabc { }; - easyaudiosync = qt6Packages.callPackage ../applications/audio/easyaudiosync { }; easycrypt = callPackage ../applications/science/logic/easycrypt { @@ -3235,8 +3217,6 @@ with pkgs; dvtm-unstable = callPackage ../tools/misc/dvtm/unstable.nix { }; - ecryptfs = callPackage ../tools/security/ecryptfs { }; - eid-mw = callPackage ../tools/security/eid-mw { autoreconfHook = buildPackages.autoreconfHook269; }; @@ -4827,8 +4807,6 @@ with pkgs; pinentry_mac = callPackage ../tools/security/pinentry/mac.nix { }; - pingu = callPackage ../tools/networking/pingu { }; - pinnwand = callPackage ../servers/pinnwand { }; piping-server-rust = callPackage ../servers/piping-server-rust { @@ -5424,12 +5402,8 @@ with pkgs; python3Packages.callPackage ../applications/misc/twitch-chat-downloader { }; - twtxt = callPackage ../applications/networking/twtxt { }; - twurl = callPackage ../tools/misc/twurl { }; - ubidump = callPackage ../tools/filesystems/ubidump { }; - ubpm = libsForQt5.callPackage ../applications/misc/ubpm { }; uftraceFull = uftrace.override { @@ -5922,8 +5896,6 @@ with pkgs; llvmPackages = crystal.llvmPackages; }; - devpi-client = callPackage ../development/tools/devpi-client { }; - devpi-server = python3Packages.callPackage ../development/tools/devpi-server { }; dprint-plugins = recurseIntoAttrs (callPackage ../by-name/dp/dprint/plugins { }); @@ -6996,7 +6968,6 @@ with pkgs; cargo-udeps = callPackage ../development/tools/rust/cargo-udeps { inherit (darwin.apple_sdk.frameworks) CoreServices Security SystemConfiguration; }; - cargo-vet = callPackage ../development/tools/rust/cargo-vet { }; cargo-watch = callPackage ../development/tools/rust/cargo-watch { inherit (darwin.apple_sdk.frameworks) Foundation Cocoa; }; @@ -8524,8 +8495,6 @@ with pkgs; ) haskellPackages.haskell-ci; - nimbo = callPackage ../applications/misc/nimbo { }; - nixbang = callPackage ../development/tools/misc/nixbang { pythonPackages = python3Packages; }; @@ -8751,8 +8720,6 @@ with pkgs; stdenv = gccStdenv; }; - tarmac = callPackage ../development/tools/tarmac { }; - teensyduino = arduino-core.override { withGui = true; withTeensyduino = true; @@ -8924,8 +8891,6 @@ with pkgs; inherit (darwin.apple_sdk.frameworks) PCSC; }; - arrayfire = callPackage ../development/libraries/arrayfire { }; - asio_1_10 = callPackage ../development/libraries/asio/1.10.nix { }; asio = callPackage ../development/libraries/asio { }; @@ -9172,8 +9137,6 @@ with pkgs; }; enchant = enchant2; - libepoxy = callPackage ../development/libraries/libepoxy { }; - factorPackages-0_99 = callPackage ./factor-packages.nix { factor-unwrapped = callPackage ../development/compilers/factor-lang/0.99.nix { }; }; @@ -13672,8 +13635,6 @@ with pkgs; airwave = libsForQt5.callPackage ../applications/audio/airwave { }; - alembic = callPackage ../development/libraries/alembic { }; - amarok = libsForQt5.callPackage ../applications/audio/amarok { }; amarok-kf5 = amarok; # for compatibility @@ -15585,8 +15546,6 @@ with pkgs; openscad = libsForQt5.callPackage ../applications/graphics/openscad { }; - opentimestamps-client = callPackage ../tools/misc/opentimestamps-client { }; - opentoonz = libsForQt5.callPackage ../applications/graphics/opentoonz { }; opentx = libsForQt5.callPackage ../applications/misc/opentx { }; @@ -16019,8 +15978,6 @@ with pkgs; inherit (xfce) xfce4-dev-tools; }; - ly = callPackage ../applications/display-managers/ly { }; - curaengine_stable = callPackage ../applications/misc/curaengine/stable.nix { }; curaengine = callPackage ../applications/misc/curaengine { @@ -16315,8 +16272,6 @@ with pkgs; trojita = libsForQt5.callPackage ../applications/networking/mailreaders/trojita { }; - tunefish = callPackage ../applications/audio/tunefish { }; - tuxclocker = libsForQt5.callPackage ../applications/misc/tuxclocker { tuxclocker-plugins = tuxclocker-plugins-with-unfree; }; @@ -17231,8 +17186,6 @@ with pkgs; gscrabble = python3Packages.callPackage ../games/gscrabble { }; - gshogi = callPackage ../games/gshogi { }; - qtads = qt5.callPackage ../games/qtads { }; ibmcloud-cli = callPackage ../tools/admin/ibmcloud-cli { stdenv = stdenvNoCC; }; @@ -17406,8 +17359,6 @@ with pkgs; protobuf = protobuf_21; }; - pysolfc = callPackage ../games/pysolfc { }; - quake3wrapper = callPackage ../games/quake3/wrapper { }; quake3demo = quake3wrapper { @@ -18382,8 +18333,6 @@ with pkgs; inherit (ocaml-ng.ocamlPackages_4_14) ocaml; }; - nextinspace = callPackage ../applications/science/misc/nextinspace { }; - ns-3 = callPackage ../development/libraries/science/networking/ns-3 { python = python3; }; rink = callPackage ../applications/science/misc/rink { @@ -18983,8 +18932,6 @@ with pkgs; terraform-landscape = callPackage ../applications/networking/cluster/terraform-landscape { }; - tftui = callPackage ../applications/networking/cluster/tftui { }; - trufflehog = callPackage ../tools/security/trufflehog { buildGoModule = buildGo123Module; }; From ee1944c485e61d71cf8767b7fe04a3473cef9bc1 Mon Sep 17 00:00:00 2001 From: quasigod Date: Mon, 21 Apr 2025 12:13:15 -0400 Subject: [PATCH 64/70] maintainers/team-list: add michaelBelsanti to cosmic team --- maintainers/team-list.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/maintainers/team-list.nix b/maintainers/team-list.nix index c35493850e35..3cf63125f0e7 100644 --- a/maintainers/team-list.nix +++ b/maintainers/team-list.nix @@ -227,6 +227,7 @@ with lib.maintainers; pandapip1 qyliss thefossguy + michaelBelsanti ]; githubTeams = [ "cosmic" ]; shortName = "cosmic"; From c033e93872d2e78e2e5fa4aa7ff7bd6d763ca6cb Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 21 Apr 2025 13:38:43 +0000 Subject: [PATCH 65/70] hjson-go: 4.4.0 -> 4.5.0 --- pkgs/by-name/hj/hjson-go/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/hj/hjson-go/package.nix b/pkgs/by-name/hj/hjson-go/package.nix index f0b906ad0808..1918981eaf35 100644 --- a/pkgs/by-name/hj/hjson-go/package.nix +++ b/pkgs/by-name/hj/hjson-go/package.nix @@ -6,13 +6,13 @@ buildGoModule rec { pname = "hjson-go"; - version = "4.4.0"; + version = "4.5.0"; src = fetchFromGitHub { owner = "hjson"; repo = pname; rev = "v${version}"; - hash = "sha256-fonPxk/9ue8LzHTdKpuHJcucQoMl4P6gq+tbjS8Ui7Q="; + hash = "sha256-0xFTxnXMJA98+Y6gwO8zCDPQvLecG1qmbGAISCFMaPw="; }; vendorHash = null; From 177e7d4a786bfbdc748c1a93e0576988ac2e2f26 Mon Sep 17 00:00:00 2001 From: John Ericson Date: Mon, 21 Apr 2025 12:38:48 -0400 Subject: [PATCH 66/70] readline: Fix MinGW Build This is needed to cross-compile Nix itself, among other things. The need for change I assume stems from toolchains / newer versions of C becoming more strict. --- pkgs/development/libraries/readline/8.2.nix | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/pkgs/development/libraries/readline/8.2.nix b/pkgs/development/libraries/readline/8.2.nix index b7663a066ee6..40dd19969edd 100644 --- a/pkgs/development/libraries/readline/8.2.nix +++ b/pkgs/development/libraries/readline/8.2.nix @@ -79,6 +79,14 @@ stdenv.mkDerivation rec { }) ]; + # Make mingw-w64 provide a dummy alarm() function + # + # Method borrowed from + # https://github.com/msys2/MINGW-packages/commit/35830ab27e5ed35c2a8d486961ab607109f5af50 + # + # `null` is used to avoid mass rebuild, will fix on staging. + CFLAGS = if !stdenv.hostPlatform.isMinGW then null else "-D__USE_MINGW_ALARM -D_POSIX"; + # This install error is caused by a very old libtool. We can't autoreconfHook this package, # so this is the best we've got! postInstall = lib.optionalString stdenv.hostPlatform.isOpenBSD '' From d6c52547f8fdda0c0b27c147cac3c86c5f904154 Mon Sep 17 00:00:00 2001 From: Otto Sabart Date: Mon, 21 Apr 2025 16:58:15 +0200 Subject: [PATCH 67/70] home-assistant-custom-components.volvo_cars: init at 1.5.1 --- .../custom-components/volvo_cars/package.nix | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 pkgs/servers/home-assistant/custom-components/volvo_cars/package.nix diff --git a/pkgs/servers/home-assistant/custom-components/volvo_cars/package.nix b/pkgs/servers/home-assistant/custom-components/volvo_cars/package.nix new file mode 100644 index 000000000000..ccabb0c55eaf --- /dev/null +++ b/pkgs/servers/home-assistant/custom-components/volvo_cars/package.nix @@ -0,0 +1,26 @@ +{ + lib, + fetchFromGitHub, + buildHomeAssistantComponent, +}: + +buildHomeAssistantComponent rec { + owner = "thomasddn"; + domain = "volvo_cars"; + version = "1.5.1"; + + src = fetchFromGitHub { + owner = "thomasddn"; + repo = "ha-volvo-cars"; + tag = "v${version}"; + hash = "sha256-UG/anp9ThEOQsRWraTayuyx6kS9r2vTH/8Bak4ZzYzo"; + }; + + meta = with lib; { + changelog = "https://github.com/thomasddn/ha-volvo-cars/releases/tag/${src.tag}"; + homepage = "https://github.com/thomasddn/ha-volvo-cars"; + description = "Volvo Cars Home Assistant integration"; + maintainers = with maintainers; [ seberm ]; + license = licenses.gpl3Only; + }; +} From b38353e7af5cd7acae7078286f85ae1e915e9530 Mon Sep 17 00:00:00 2001 From: John Ericson Date: Mon, 21 Apr 2025 13:05:18 -0400 Subject: [PATCH 68/70] readline: Clean up package - Use `finalAttrs` not `rec` - Use `lib.optionalAttrs` not `null` tricks --- pkgs/development/libraries/readline/8.2.nix | 205 ++++++++++---------- 1 file changed, 105 insertions(+), 100 deletions(-) diff --git a/pkgs/development/libraries/readline/8.2.nix b/pkgs/development/libraries/readline/8.2.nix index 40dd19969edd..40f0f05887e5 100644 --- a/pkgs/development/libraries/readline/8.2.nix +++ b/pkgs/development/libraries/readline/8.2.nix @@ -9,116 +9,121 @@ curses-library ? if stdenv.hostPlatform.isWindows then termcap else ncurses, }: -stdenv.mkDerivation rec { - pname = "readline"; - version = "8.2p${toString (builtins.length upstreamPatches)}"; +stdenv.mkDerivation ( + finalAttrs: + let + inherit (finalAttrs) upstreamPatches meta; + in + { + pname = "readline"; + version = "8.2p${toString (builtins.length upstreamPatches)}"; - src = fetchurl { - url = "mirror://gnu/readline/readline-${meta.branch}.tar.gz"; - sha256 = "sha256-P+txcfFqhO6CyhijbXub4QmlLAT0kqBTMx19EJUAfDU="; - }; + src = fetchurl { + url = "mirror://gnu/readline/readline-${meta.branch}.tar.gz"; + sha256 = "sha256-P+txcfFqhO6CyhijbXub4QmlLAT0kqBTMx19EJUAfDU="; + }; - outputs = [ - "out" - "dev" - "man" - "doc" - "info" - ]; - - strictDeps = true; - propagatedBuildInputs = [ curses-library ]; - nativeBuildInputs = [ updateAutotoolsGnuConfigScriptsHook ]; - - patchFlags = [ "-p0" ]; - - upstreamPatches = ( - let - patch = - nr: sha256: - fetchurl { - url = "mirror://gnu/readline/readline-${meta.branch}-patches/readline82-${nr}"; - inherit sha256; - }; - in - import ./readline-8.2-patches.nix patch - ); - - patches = - lib.optionals (curses-library.pname == "ncurses") [ - ./link-against-ncurses.patch - ] - ++ [ - ./no-arch_only-8.2.patch - ] - ++ upstreamPatches - ++ lib.optionals stdenv.hostPlatform.isWindows [ - (fetchpatch { - name = "0001-sigwinch.patch"; - url = "https://github.com/msys2/MINGW-packages/raw/90e7536e3b9c3af55c336d929cfcc32468b2f135/mingw-w64-readline/0001-sigwinch.patch"; - stripLen = 1; - hash = "sha256-sFK6EJrSNl0KLWqFv5zBXaQRuiQoYIZVoZfa8BZqfKA="; - }) - (fetchpatch { - name = "0002-event-hook.patch"; - url = "https://github.com/msys2/MINGW-packages/raw/3476319d2751a676b911f3de9e1ec675081c03b8/mingw-w64-readline/0002-event-hook.patch"; - stripLen = 1; - hash = "sha256-F8ytYuIjBtH83ZCJdf622qjwSw+wZEVyu53E/mPsoAo="; - }) - (fetchpatch { - name = "0003-fd_set.patch"; - url = "https://github.com/msys2/MINGW-packages/raw/35830ab27e5ed35c2a8d486961ab607109f5af50/mingw-w64-readline/0003-fd_set.patch"; - stripLen = 1; - hash = "sha256-UiaXZRPjKecpSaflBMCphI2kqOlcz1JkymlCrtpMng4="; - }) - (fetchpatch { - name = "0004-locale.patch"; - url = "https://github.com/msys2/MINGW-packages/raw/f768c4b74708bb397a77e3374cc1e9e6ef647f20/mingw-w64-readline/0004-locale.patch"; - stripLen = 1; - hash = "sha256-dk4343KP4EWXdRRCs8GRQlBgJFgu1rd79RfjwFD/nJc="; - }) + outputs = [ + "out" + "dev" + "man" + "doc" + "info" ]; - # Make mingw-w64 provide a dummy alarm() function - # - # Method borrowed from - # https://github.com/msys2/MINGW-packages/commit/35830ab27e5ed35c2a8d486961ab607109f5af50 - # - # `null` is used to avoid mass rebuild, will fix on staging. - CFLAGS = if !stdenv.hostPlatform.isMinGW then null else "-D__USE_MINGW_ALARM -D_POSIX"; + strictDeps = true; + propagatedBuildInputs = [ curses-library ]; + nativeBuildInputs = [ updateAutotoolsGnuConfigScriptsHook ]; - # This install error is caused by a very old libtool. We can't autoreconfHook this package, - # so this is the best we've got! - postInstall = lib.optionalString stdenv.hostPlatform.isOpenBSD '' - ln -s $out/lib/libhistory.so* $out/lib/libhistory.so - ln -s $out/lib/libreadline.so* $out/lib/libreadline.so - ''; + patchFlags = [ "-p0" ]; - meta = with lib; { - description = "Library for interactive line editing"; + upstreamPatches = ( + let + patch = + nr: sha256: + fetchurl { + url = "mirror://gnu/readline/readline-${meta.branch}-patches/readline82-${nr}"; + inherit sha256; + }; + in + import ./readline-8.2-patches.nix patch + ); - longDescription = '' - The GNU Readline library provides a set of functions for use by - applications that allow users to edit command lines as they are - typed in. Both Emacs and vi editing modes are available. The - Readline library includes additional functions to maintain a - list of previously-entered command lines, to recall and perhaps - reedit those lines, and perform csh-like history expansion on - previous commands. + patches = + lib.optionals (curses-library.pname == "ncurses") [ + ./link-against-ncurses.patch + ] + ++ [ + ./no-arch_only-8.2.patch + ] + ++ upstreamPatches + ++ lib.optionals stdenv.hostPlatform.isWindows [ + (fetchpatch { + name = "0001-sigwinch.patch"; + url = "https://github.com/msys2/MINGW-packages/raw/90e7536e3b9c3af55c336d929cfcc32468b2f135/mingw-w64-readline/0001-sigwinch.patch"; + stripLen = 1; + hash = "sha256-sFK6EJrSNl0KLWqFv5zBXaQRuiQoYIZVoZfa8BZqfKA="; + }) + (fetchpatch { + name = "0002-event-hook.patch"; + url = "https://github.com/msys2/MINGW-packages/raw/3476319d2751a676b911f3de9e1ec675081c03b8/mingw-w64-readline/0002-event-hook.patch"; + stripLen = 1; + hash = "sha256-F8ytYuIjBtH83ZCJdf622qjwSw+wZEVyu53E/mPsoAo="; + }) + (fetchpatch { + name = "0003-fd_set.patch"; + url = "https://github.com/msys2/MINGW-packages/raw/35830ab27e5ed35c2a8d486961ab607109f5af50/mingw-w64-readline/0003-fd_set.patch"; + stripLen = 1; + hash = "sha256-UiaXZRPjKecpSaflBMCphI2kqOlcz1JkymlCrtpMng4="; + }) + (fetchpatch { + name = "0004-locale.patch"; + url = "https://github.com/msys2/MINGW-packages/raw/f768c4b74708bb397a77e3374cc1e9e6ef647f20/mingw-w64-readline/0004-locale.patch"; + stripLen = 1; + hash = "sha256-dk4343KP4EWXdRRCs8GRQlBgJFgu1rd79RfjwFD/nJc="; + }) + ]; - The history facilities are also placed into a separate library, - the History library, as part of the build process. The History - library may be used without Readline in applications which - desire its capabilities. + # This install error is caused by a very old libtool. We can't autoreconfHook this package, + # so this is the best we've got! + postInstall = lib.optionalString stdenv.hostPlatform.isOpenBSD '' + ln -s $out/lib/libhistory.so* $out/lib/libhistory.so + ln -s $out/lib/libreadline.so* $out/lib/libreadline.so ''; - homepage = "https://savannah.gnu.org/projects/readline/"; + meta = with lib; { + description = "Library for interactive line editing"; - license = licenses.gpl3Plus; + longDescription = '' + The GNU Readline library provides a set of functions for use by + applications that allow users to edit command lines as they are + typed in. Both Emacs and vi editing modes are available. The + Readline library includes additional functions to maintain a + list of previously-entered command lines, to recall and perhaps + reedit those lines, and perform csh-like history expansion on + previous commands. - maintainers = with maintainers; [ dtzWill ]; + The history facilities are also placed into a separate library, + the History library, as part of the build process. The History + library may be used without Readline in applications which + desire its capabilities. + ''; - platforms = platforms.unix ++ platforms.windows; - branch = "8.2"; - }; -} + homepage = "https://savannah.gnu.org/projects/readline/"; + + license = licenses.gpl3Plus; + + maintainers = with maintainers; [ dtzWill ]; + + platforms = platforms.unix ++ platforms.windows; + branch = "8.2"; + }; + } + // lib.optionalAttrs stdenv.hostPlatform.isMinGW { + # Make mingw-w64 provide a dummy alarm() function + # + # Method borrowed from + # https://github.com/msys2/MINGW-packages/commit/35830ab27e5ed35c2a8d486961ab607109f5af50 + CFLAGS = "-D__USE_MINGW_ALARM -D_POSIX"; + } +) From b5981d2c821a1f65b0d0af291f22bd3034c7157f Mon Sep 17 00:00:00 2001 From: patka Date: Mon, 21 Apr 2025 15:29:37 +0200 Subject: [PATCH 69/70] xastir: upgrade pcre to pcre2 --- pkgs/by-name/xa/xastir/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/xa/xastir/package.nix b/pkgs/by-name/xa/xastir/package.nix index 94e2681afe10..8c3c452a3b29 100644 --- a/pkgs/by-name/xa/xastir/package.nix +++ b/pkgs/by-name/xa/xastir/package.nix @@ -9,7 +9,7 @@ libgeotiff, xorg, motif, - pcre, + pcre2, perl, proj, graphicsmagick, @@ -40,7 +40,7 @@ stdenv.mkDerivation rec { xorg.libXpm xorg.libXt motif - pcre + pcre2 perl proj graphicsmagick From 8fbc78864179c76ba9f16b23b03e990320a9547f Mon Sep 17 00:00:00 2001 From: sund3RRR Date: Sat, 19 Apr 2025 18:37:33 +0300 Subject: [PATCH 70/70] fix: add missing include and remove update-resolv-conf.sh unwrap --- pkgs/by-name/am/amnezia-vpn/package.nix | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/pkgs/by-name/am/amnezia-vpn/package.nix b/pkgs/by-name/am/amnezia-vpn/package.nix index 3bf1bd2b3e41..aae7e13c13af 100644 --- a/pkgs/by-name/am/amnezia-vpn/package.nix +++ b/pkgs/by-name/am/amnezia-vpn/package.nix @@ -2,6 +2,7 @@ lib, stdenv, fetchFromGitHub, + fetchpatch, cmake, pkg-config, kdePackages, @@ -64,6 +65,15 @@ stdenv.mkDerivation (finalAttrs: { fetchSubmodules = true; }; + # Temporary patch header file to fix build with QT 6.9 + patches = [ + (fetchpatch { + name = "add-missing-include.patch"; + url = "https://github.com/amnezia-vpn/amnezia-client/commit/c44ce0d77cc3acdf1de48a12459a1a821d404a1c.patch"; + hash = "sha256-Q6UMD8PlKAcI6zNolT5+cULECnxNrYrD7cifvNg1ZrY="; + }) + ]; + postPatch = '' substituteInPlace client/platforms/linux/daemon/wireguardutilslinux.cpp \ @@ -127,11 +137,6 @@ stdenv.mkDerivation (finalAttrs: { runHook postInstall ''; - postFixup = '' - # Temporary unwrap non-binary executable until qt6.wrapQtAppsHook is fixed - mv $out/libexec/.update-resolv-conf.sh-wrapped $out/libexec/update-resolv-conf.sh - ''; - passthru = { inherit amnezia-tun2socks amnezia-xray; updateScript = nix-update-script {