diff --git a/doc/release-notes/rl-2505.section.md b/doc/release-notes/rl-2505.section.md index 45940bd6b88a..1f11b3538d13 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. @@ -347,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. 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 [ 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"; 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"; diff --git a/nixos/doc/manual/release-notes/rl-2505.section.md b/nixos/doc/manual/release-notes/rl-2505.section.md index 14951d8ec4c2..f69de1860a60 100644 --- a/nixos/doc/manual/release-notes/rl-2505.section.md +++ b/nixos/doc/manual/release-notes/rl-2505.section.md @@ -222,6 +222,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} @@ -423,6 +425,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.homepage-dashboard` now requires the `allowedHosts` option to be set in accordance with the [documentation](https://gethomepage.dev/installation/#homepage_allowed_hosts). diff --git a/nixos/modules/services/misc/gitlab.nix b/nixos/modules/services/misc/gitlab.nix index e22473058d4b..bc48066937ab 100644 --- a/nixos/modules/services/misc/gitlab.nix +++ b/nixos/modules/services/misc/gitlab.nix @@ -1296,6 +1296,7 @@ in ConditionPathExists = "!${cfg.registry.certFile}"; }; serviceConfig = { + Type = "oneshot"; Slice = "system-gitlab.slice"; }; }; 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/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 + ]; +} 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/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 ]; diff --git a/nixos/tests/discourse.nix b/nixos/tests/discourse.nix index 3accebe8f31f..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; @@ -104,7 +104,6 @@ import ./make-test-python.nix ( services.dovecot2 = { enable = true; protocols = [ "imap" ]; - modules = [ pkgs.dovecot_pigeonhole ]; }; services.postfix = { diff --git a/nixos/tests/gitlab.nix b/nixos/tests/gitlab.nix index 3cf201bba74f..47695e487db3 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 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/applications/editors/vim/plugins/generated.nix b/pkgs/applications/editors/vim/plugins/generated.nix index 9951716d8265..d5d1fa0ed922 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 = [ ]; @@ -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"; @@ -2092,12 +2105,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 +2833,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 +2885,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 +3028,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 +3145,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 +3159,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 +3211,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 +3237,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 +3419,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 +3497,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 +4292,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 +4318,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 +4344,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 +4528,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 +4920,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 +5050,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 +5323,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 +5453,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 +5505,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 +5531,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 +5766,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 +6313,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 +6392,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 +6589,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 +6719,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 +6758,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 +7278,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 +7460,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 +7812,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 +8059,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 +8124,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 +8241,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 +8423,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 +8696,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 +8722,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 +8800,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 +8891,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 +9089,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 +9466,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 +9570,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 +9609,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 +9648,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 +9752,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 +9765,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 +9999,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 +10103,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 +10259,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 +10272,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 +10376,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 +10454,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 +10506,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 +10571,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 +10610,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 +10844,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 +10935,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 +11000,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 +11013,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 +11026,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 +11039,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 +11104,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 +11169,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 +11195,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 +11338,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 +11377,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 +11494,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 +11520,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 +11585,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 +11624,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 +11742,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 +11768,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 +12146,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 +12511,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 +12642,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 +12928,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 +12994,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 +13046,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 +13124,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 +13411,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 +13567,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 +14430,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 +14613,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 +14796,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 +14835,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 +14926,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 +15043,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 +16278,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 +17097,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 +17384,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 +17475,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 +18776,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 +19543,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 +19725,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 +20819,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 +20923,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 +20949,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 +21301,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 +21405,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/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 ]; + }; +} diff --git a/pkgs/applications/editors/vim/plugins/overrides.nix b/pkgs/applications/editors/vim/plugins/overrides.nix index 22e88798d1a3..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')|" \ @@ -2226,6 +2232,8 @@ in "nvchad.cheatsheet.grid" "nvchad.cheatsheet.simple" "nvchad.blink.config" + # Circular dependency with base46 + "nvchad.utils" ]; }; 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/,, 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 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 = [ 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/by-name/am/amnezia-vpn/package.nix b/pkgs/by-name/am/amnezia-vpn/package.nix index 8994558d2c03..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, @@ -54,16 +55,25 @@ 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; }; + # 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 { 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/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 + ]; + }; +}) 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" = { 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/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 ]; }; -} +}) 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/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; }; 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/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; + }; +}) 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 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/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 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/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; 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/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; }; 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 { 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/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 ]; 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/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"'' ]; 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/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"; }; -} +}) 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/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; 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/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 = [ 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/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/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 = [ 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; 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="; }; } 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 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/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 57% rename from pkgs/applications/editors/textadept/default.nix rename to pkgs/by-name/te/textadept/package.nix index da5ffb192a3f..44632c5797dd 100644 --- a/pkgs/applications/editors/textadept/default.nix +++ b/pkgs/by-name/te/textadept/package.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/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/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; [ diff --git a/pkgs/by-name/vu/vulkan-cts/package.nix b/pkgs/by-name/vu/vulkan-cts/package.nix index 3312042202be..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 = '' @@ -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/ 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 ''; } 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): 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 diff --git a/pkgs/applications/editors/zee/default.nix b/pkgs/by-name/ze/zee/package.nix similarity index 64% rename from pkgs/applications/editors/zee/default.nix rename to pkgs/by-name/ze/zee/package.nix index 43c63bb95260..8d9a9f0c382f 100644 --- a/pkgs/applications/editors/zee/default.nix +++ b/pkgs/by-name/ze/zee/package.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/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/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 = [ diff --git a/pkgs/development/libraries/readline/8.2.nix b/pkgs/development/libraries/readline/8.2.nix index b7663a066ee6..40f0f05887e5 100644 --- a/pkgs/development/libraries/readline/8.2.nix +++ b/pkgs/development/libraries/readline/8.2.nix @@ -9,108 +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" ]; - # 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 - ''; + strictDeps = true; + propagatedBuildInputs = [ curses-library ]; + nativeBuildInputs = [ updateAutotoolsGnuConfigScriptsHook ]; - meta = with lib; { - description = "Library for interactive line editing"; + patchFlags = [ "-p0" ]; - 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. + 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 + ); - 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. + 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="; + }) + ]; + + # 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"; + } +) diff --git a/pkgs/development/lua-modules/generated-packages.nix b/pkgs/development/lua-modules/generated-packages.nix index 44c8d6d993ee..1856cde76d65 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"; @@ -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"; @@ -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"; 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 = [ 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 = { 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 ]; diff --git a/pkgs/development/python-modules/rq/default.nix b/pkgs/development/python-modules/rq/default.nix index 5577c6104813..d2f19053892c 100644 --- a/pkgs/development/python-modules/rq/default.nix +++ b/pkgs/development/python-modules/rq/default.nix @@ -22,14 +22,14 @@ buildPythonPackage rec { pname = "rq"; - version = "2.2"; + version = "2.3.1"; pyproject = true; src = fetchFromGitHub { owner = "rq"; repo = "rq"; tag = "v${version}"; - hash = "sha256-RuqLfPEwdwfJo+mdY4vB3lpyGkbP/GQDfRU+TmUur3s="; + hash = "sha256-RnnYO6gKhbcft61EhTFbfvhC+9SsVfDsu64GuNfGKvE="; }; build-system = [ hatchling ]; diff --git a/pkgs/development/python-modules/spacy/default.nix b/pkgs/development/python-modules/spacy/default.nix index a773e1cb7a93..b961fe45942e 100644 --- a/pkgs/development/python-modules/spacy/default.nix +++ b/pkgs/development/python-modules/spacy/default.nix @@ -2,38 +2,47 @@ lib, stdenv, buildPythonPackage, - callPackage, - catalogue, + fetchFromGitHub, + + # build-system cymem, cython_0, - fetchPypi, - git, - hypothesis, + murmurhash, + numpy, + preshed, + thinc, + + # dependencies + catalogue, jinja2, langcodes, - mock, - murmurhash, - nix-update, - nix, - numpy, packaging, - preshed, pydantic, - pytestCheckHook, - pythonOlder, 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 { @@ -41,17 +50,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 @@ -85,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 @@ -118,8 +123,8 @@ buildPythonPackage rec { set -eou pipefail PATH=${ lib.makeBinPath [ - nix git + nix nix-update ] } @@ -132,12 +137,14 @@ 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"; + # Cython.Compiler.Errors.CompileError: spacy/ml/parser_model.pyx + broken = true; }; } 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..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: @@ -61,12 +59,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 +96,48 @@ 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 + ; } + // 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 +150,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/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/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..8fe83273dc4a 100644 --- a/pkgs/games/dwarf-fortress/wrapper/default.nix +++ b/pkgs/games/dwarf-fortress/wrapper/default.nix @@ -9,11 +9,12 @@ gawk, dwarf-fortress, dwarf-therapist, + SDL2_mixer, enableDFHack ? false, dfhack, enableSoundSense ? false, soundSense, - jdk, + jre, expect, xvfb-run, writeText, @@ -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; @@ -233,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 ''; @@ -246,28 +248,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 +272,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..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,48 @@ go() { cd "$NIXPKGS_DF_HOME" debug "Executing: $NIXPKGS_DF_HOME/$NIXPKGS_DF_EXE" + # 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 + + 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 + # 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 } +# 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. @@ -137,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. @@ -166,33 +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" == libfmod*.so* ]] && [ "${_NIXPKGS_DF_OPTS[fmod]}" -eq 0 ]; then - 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 - -# 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 diff --git a/pkgs/games/dwarf-fortress/wrapper/dwarf-fortress.in b/pkgs/games/dwarf-fortress/wrapper/dwarf-fortress.in index 29db9c128f4c..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. @@ -32,4 +56,4 @@ else done fi -go +go "$@" 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 "$@" diff --git a/pkgs/kde/third-party/krohnkite/default.nix b/pkgs/kde/third-party/krohnkite/default.nix index 75c3b01995a8..346c8f43c6b4 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,15 +8,15 @@ kpackage, zip, }: -buildNpmPackage rec { +buildNpmPackage (finalAttrs: { pname = "krohnkite"; - version = "0.9.8.5"; + version = "0.9.9.0"; src = fetchFromGitHub { owner = "anametologin"; repo = "krohnkite"; - tag = version; - hash = "sha256-DcNU0nx6KHztfMPFs5PZtZIeu4hDxNYIJa5E1fwMa0Q="; + tag = finalAttrs.version; + hash = "sha256-23GNKxP/ItGJgElS8gK2lMMkjZ/3LITr40LXo9/o6Iw="; }; npmDepsHash = "sha256-Q/D6s0wOPSEziE1dBXgTakjhXCGvzhvLVS7zXcZlPCI="; @@ -40,17 +41,28 @@ buildNpmPackage rec { 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 ''; + 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 ]; + maintainers = with lib.maintainers; [ + ben9986 + dramforever + ]; platforms = lib.platforms.all; }; -} +}) 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; + }; +} 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 { }; 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"; }; }) 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/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/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..13dbf283c881 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() @@ -286,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'}, ] @@ -307,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(':') @@ -317,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: diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 44c912ee8e48..ff5ca45f8a92 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; }; @@ -3296,10 +3276,6 @@ with pkgs; xkcdpass = with python3Packages; toPythonApplication xkcdpass; - zee = callPackage ../applications/editors/zee { - inherit (darwin.apple_sdk.frameworks) Security; - }; - zeek = darwin.apple_sdk_11_0.callPackage ../applications/networking/ids/zeek { }; zonemaster-cli = perlPackages.ZonemasterCLI; @@ -4827,8 +4803,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 { @@ -5306,8 +5280,6 @@ with pkgs; texmaker = qt6Packages.callPackage ../applications/editors/texmaker { }; - textadept = libsForQt5.callPackage ../applications/editors/textadept { }; - texworks = qt6Packages.callPackage ../applications/editors/texworks { }; theLoungePlugins = @@ -5424,12 +5396,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 +5890,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 +6962,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 +8489,6 @@ with pkgs; ) haskellPackages.haskell-ci; - nimbo = callPackage ../applications/misc/nimbo { }; - nixbang = callPackage ../development/tools/misc/nixbang { pythonPackages = python3Packages; }; @@ -8706,17 +8669,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 { @@ -8762,8 +8714,6 @@ with pkgs; stdenv = gccStdenv; }; - tarmac = callPackage ../development/tools/tarmac { }; - teensyduino = arduino-core.override { withGui = true; withTeensyduino = true; @@ -8935,8 +8885,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 { }; @@ -9183,8 +9131,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 { }; }; @@ -13683,8 +13629,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 @@ -15596,8 +15540,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 { }; @@ -16030,8 +15972,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 { @@ -16326,8 +16266,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; }; @@ -17135,9 +17073,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 { }; @@ -17242,8 +17180,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; }; @@ -17417,8 +17353,6 @@ with pkgs; protobuf = protobuf_21; }; - pysolfc = callPackage ../games/pysolfc { }; - quake3wrapper = callPackage ../games/quake3/wrapper { }; quake3demo = quake3wrapper { @@ -18393,8 +18327,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 { @@ -18994,8 +18926,6 @@ with pkgs; terraform-landscape = callPackage ../applications/networking/cluster/terraform-landscape { }; - tftui = callPackage ../applications/networking/cluster/tftui { }; - trufflehog = callPackage ../tools/security/trufflehog { buildGoModule = buildGo123Module; };