diff --git a/nixos/doc/manual/release-notes/rl-2505.section.md b/nixos/doc/manual/release-notes/rl-2505.section.md index fbf4a0a9727e..79a45f83ee52 100644 --- a/nixos/doc/manual/release-notes/rl-2505.section.md +++ b/nixos/doc/manual/release-notes/rl-2505.section.md @@ -77,6 +77,8 @@ - [MaryTTS](https://github.com/marytts/marytts), an open-source, multilingual text-to-speech synthesis system written in pure Java. Available as [services.marytts](options.html#opt-services.marytts). +- [Continuwuity](https://continuwuity.org/), a federated chat server implementing the Matrix protocol, forked from Conduwuit. Available as [services.matrix-continuwuity](#opt-services.matrix-continuwuity.enable). + - [Reposilite](https://reposilite.com), a lightweight and easy-to-use repository manager for Maven-based artifacts in the JVM ecosystem. Available as [services.reposilite](options.html#opt-services.reposilite). - [networking.modemmanager](options.html#opt-networking.modemmanager) has been split out of [networking.networkmanager](options.html#opt-networking.networkmanager). NetworkManager still enables ModemManager by default, but options exist now to run NetworkManager without ModemManager. diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index 773022fb1373..283d022293c5 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -752,6 +752,7 @@ ./services/matrix/appservice-discord.nix ./services/matrix/appservice-irc.nix ./services/matrix/conduit.nix + ./services/matrix/continuwuity.nix ./services/matrix/dendrite.nix ./services/matrix/hebbot.nix ./services/matrix/hookshot.nix diff --git a/nixos/modules/services/matrix/continuwuity.nix b/nixos/modules/services/matrix/continuwuity.nix new file mode 100644 index 000000000000..5170011d3037 --- /dev/null +++ b/nixos/modules/services/matrix/continuwuity.nix @@ -0,0 +1,268 @@ +{ + config, + lib, + pkgs, + ... +}: +let + cfg = config.services.matrix-continuwuity; + defaultUser = "continuwuity"; + defaultGroup = "continuwuity"; + + format = pkgs.formats.toml { }; + configFile = format.generate "continuwuity.toml" cfg.settings; +in +{ + meta.maintainers = with lib.maintainers; [ + nyabinary + snaki + ]; + options.services.matrix-continuwuity = { + enable = lib.mkEnableOption "continuwuity"; + + user = lib.mkOption { + type = lib.types.nonEmptyStr; + description = '' + The user {command}`continuwuity` is run as. + ''; + default = defaultUser; + }; + + group = lib.mkOption { + type = lib.types.nonEmptyStr; + description = '' + The group {command}`continuwuity` is run as. + ''; + default = defaultGroup; + }; + + extraEnvironment = lib.mkOption { + type = lib.types.attrsOf lib.types.str; + description = "Extra Environment variables to pass to the continuwuity server."; + default = { }; + example = { + RUST_BACKTRACE = "yes"; + }; + }; + + package = lib.mkPackageOption pkgs "matrix-continuwuity" { }; + + settings = lib.mkOption { + type = lib.types.submodule { + freeformType = format.type; + options = { + global.server_name = lib.mkOption { + type = lib.types.nonEmptyStr; + example = "example.com"; + description = "The server_name is the name of this server. It is used as a suffix for user and room ids."; + }; + global.address = lib.mkOption { + type = lib.types.nullOr (lib.types.listOf lib.types.nonEmptyStr); + default = null; + example = [ + "127.0.0.1" + "::1" + ]; + description = '' + Addresses (IPv4 or IPv6) to listen on for connections by the reverse proxy/tls terminator. + If set to `null`, continuwuity will listen on IPv4 and IPv6 localhost. + Must be `null` if `unix_socket_path` is set. + ''; + }; + global.port = lib.mkOption { + type = lib.types.listOf lib.types.port; + default = [ 6167 ]; + description = '' + The port(s) continuwuity will be running on. + You need to set up a reverse proxy in your web server (e.g. apache or nginx), + so all requests to /_matrix on port 443 and 8448 will be forwarded to the continuwuity + instance running on this port. + ''; + }; + global.unix_socket_path = lib.mkOption { + type = lib.types.nullOr lib.types.path; + default = null; + description = '' + Listen on a UNIX socket at the specified path. If listening on a UNIX socket, + listening on an address will be disabled. The `address` option must be set to + `null` (the default value). The option {option}`services.continuwuity.group` must + be set to a group your reverse proxy is part of. + + This will automatically add a system user "continuwuity" to your system if + {option}`services.continuwuity.user` is left at the default, and a "continuwuity" + group if {option}`services.continuwuity.group` is left at the default. + ''; + }; + global.unix_socket_perms = lib.mkOption { + type = lib.types.ints.positive; + default = 660; + description = "The default permissions (in octal) to create the UNIX socket with."; + }; + global.max_request_size = lib.mkOption { + type = lib.types.ints.positive; + default = 20000000; + description = "Max request size in bytes. Don't forget to also change it in the proxy."; + }; + global.allow_registration = lib.mkOption { + type = lib.types.bool; + default = false; + description = '' + Whether new users can register on this server. + + Registration with token requires `registration_token` or `registration_token_file` to be set. + + If set to true without a token configured, and + `yes_i_am_very_very_sure_i_want_an_open_registration_server_prone_to_abuse` + is set to true, users can freely register. + ''; + }; + global.allow_encryption = lib.mkOption { + type = lib.types.bool; + default = true; + description = "Whether new encrypted rooms can be created. Note: existing rooms will continue to work."; + }; + global.allow_federation = lib.mkOption { + type = lib.types.bool; + default = true; + description = '' + Whether this server federates with other servers. + ''; + }; + global.trusted_servers = lib.mkOption { + type = lib.types.listOf lib.types.nonEmptyStr; + default = [ "matrix.org" ]; + description = '' + Servers listed here will be used to gather public keys of other servers + (notary trusted key servers). + + Currently, continuwuity doesn't support inbound batched key requests, so + this list should only contain other Synapse servers. + + Example: `[ "matrix.org" "constellatory.net" "tchncs.de" ]` + ''; + }; + global.database_path = lib.mkOption { + readOnly = true; + type = lib.types.path; + default = "/var/lib/continuwuity/"; + description = '' + Path to the continuwuity database, the directory where continuwuity will save its data. + Note that database_path cannot be edited because of the service's reliance on systemd StateDir. + ''; + }; + global.allow_announcements_check = lib.mkOption { + type = lib.types.bool; + default = true; + description = '' + If enabled, continuwuity will send a simple GET request periodically to + for any new announcements made. + ''; + }; + }; + }; + default = { }; + # TOML does not allow null values, so we use null to omit those fields + apply = lib.filterAttrsRecursive (_: v: v != null); + description = '' + Generates the continuwuity.toml configuration file. Refer to + + for details on supported values. + ''; + }; + }; + + config = lib.mkIf cfg.enable { + assertions = [ + { + assertion = !(cfg.settings ? global.unix_socket_path) || !(cfg.settings ? global.address); + message = '' + In `services.continuwuity.settings.global`, `unix_socket_path` and `address` cannot be set at the + same time. + Leave one of the two options unset or explicitly set them to `null`. + ''; + } + { + assertion = cfg.user != defaultUser -> config ? users.users.${cfg.user}; + message = "If `services.continuwuity.user` is changed, the configured user must already exist."; + } + { + assertion = cfg.group != defaultGroup -> config ? users.groups.${cfg.group}; + message = "If `services.continuwuity.group` is changed, the configured group must already exist."; + } + ]; + + users.users = lib.mkIf (cfg.user == defaultUser) { + ${defaultUser} = { + group = cfg.group; + home = cfg.settings.global.database_path; + isSystemUser = true; + }; + }; + + users.groups = lib.mkIf (cfg.group == defaultGroup) { + ${defaultGroup} = { }; + }; + + systemd.services.continuwuity = { + description = "Continuwuity Matrix Server"; + documentation = [ "https://continuwuity.org/" ]; + wantedBy = [ "multi-user.target" ]; + wants = [ "network-online.target" ]; + after = [ "network-online.target" ]; + environment = lib.mkMerge [ + { CONDUWUIT_CONFIG = configFile; } + cfg.extraEnvironment + ]; + startLimitBurst = 5; + startLimitIntervalSec = 60; + serviceConfig = { + DynamicUser = true; + User = cfg.user; + Group = cfg.group; + + DevicePolicy = "closed"; + LockPersonality = true; + MemoryDenyWriteExecute = true; + NoNewPrivileges = true; + ProtectClock = true; + ProtectControlGroups = true; + ProtectHome = true; + ProtectHostname = true; + ProtectKernelLogs = true; + ProtectKernelModules = true; + ProtectKernelTunables = true; + ProtectProc = "invisible"; + ProtectSystem = "strict"; + PrivateDevices = true; + PrivateMounts = true; + PrivateTmp = true; + PrivateUsers = true; + PrivateIPC = true; + RemoveIPC = true; + RestrictAddressFamilies = [ + "AF_INET" + "AF_INET6" + "AF_UNIX" + ]; + RestrictNamespaces = true; + RestrictRealtime = true; + RestrictSUIDSGID = true; + SystemCallArchitectures = "native"; + SystemCallFilter = [ + "@system-service @resources" + "~@clock @debug @module @mount @reboot @swap @cpu-emulation @obsolete @timer @chown @setuid @privileged @keyring @ipc" + ]; + SystemCallErrorNumber = "EPERM"; + + StateDirectory = "continuwuity"; + StateDirectoryMode = "0700"; + RuntimeDirectory = "continuwuity"; + RuntimeDirectoryMode = "0750"; + + ExecStart = lib.getExe cfg.package; + Restart = "on-failure"; + RestartSec = 10; + }; + }; + }; +} diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index bd191334efe8..41e7a6d35a97 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -781,6 +781,7 @@ in matrix-alertmanager = runTest ./matrix/matrix-alertmanager.nix; matrix-appservice-irc = runTest ./matrix/appservice-irc.nix; matrix-conduit = handleTest ./matrix/conduit.nix { }; + matrix-continuwuity = runTest ./matrix/continuwuity.nix; matrix-synapse = handleTest ./matrix/synapse.nix { }; matrix-synapse-workers = handleTest ./matrix/synapse-workers.nix { }; mautrix-meta-postgres = handleTest ./matrix/mautrix-meta-postgres.nix { }; diff --git a/nixos/tests/matrix/continuwuity.nix b/nixos/tests/matrix/continuwuity.nix new file mode 100644 index 000000000000..308560421c79 --- /dev/null +++ b/nixos/tests/matrix/continuwuity.nix @@ -0,0 +1,104 @@ +{ lib, ... }: +let + name = "continuwuity"; +in +{ + inherit name; + + nodes = { + continuwuity = { + services.matrix-continuwuity = { + enable = true; + settings.global = { + server_name = name; + address = [ "0.0.0.0" ]; + allow_registration = true; + yes_i_am_very_very_sure_i_want_an_open_registration_server_prone_to_abuse = true; + }; + extraEnvironment.RUST_BACKTRACE = "yes"; + }; + networking.firewall.allowedTCPPorts = [ 6167 ]; + }; + client = + { pkgs, ... }: + { + environment.systemPackages = [ + (pkgs.writers.writePython3Bin "do_test" { libraries = [ pkgs.python3Packages.matrix-nio ]; } '' + import asyncio + import nio + + + async def main() -> None: + # Connect to continuwuity + client = nio.AsyncClient("http://continuwuity:6167", "alice") + + # Register as user alice + response = await client.register("alice", "my-secret-password") + + # Log in as user alice + response = await client.login("my-secret-password") + + # Create a new room + response = await client.room_create(federate=False) + print("Matrix room create response:", response) + assert isinstance(response, nio.RoomCreateResponse) + room_id = response.room_id + + # Join the room + response = await client.join(room_id) + print("Matrix join response:", response) + assert isinstance(response, nio.JoinResponse) + + # Send a message to the room + response = await client.room_send( + room_id=room_id, + message_type="m.room.message", + content={ + "msgtype": "m.text", + "body": "Hello continuwuity!" + } + ) + print("Matrix room send response:", response) + assert isinstance(response, nio.RoomSendResponse) + + # Sync responses + response = await client.sync(timeout=30000) + print("Matrix sync response:", response) + assert isinstance(response, nio.SyncResponse) + + # Check the message was received by continuwuity + last_message = response.rooms.join[room_id].timeline.events[-1].body + assert last_message == "Hello continuwuity!" + + # Leave the room + response = await client.room_leave(room_id) + print("Matrix room leave response:", response) + assert isinstance(response, nio.RoomLeaveResponse) + + # Close the client + await client.close() + + + if __name__ == "__main__": + asyncio.run(main()) + '') + ]; + }; + }; + + testScript = '' + start_all() + + with subtest("start continuwuity"): + continuwuity.wait_for_unit("continuwuity.service") + continuwuity.wait_for_open_port(6167) + + with subtest("ensure messages can be exchanged"): + client.succeed("do_test >&2") + ''; + + meta.maintainers = with lib.maintainers; [ + nyabinary + snaki + ]; +} diff --git a/pkgs/by-name/aw/aws-lc/package.nix b/pkgs/by-name/aw/aws-lc/package.nix index 0bc1c349bb28..fc79bcb98d9a 100644 --- a/pkgs/by-name/aw/aws-lc/package.nix +++ b/pkgs/by-name/aw/aws-lc/package.nix @@ -10,13 +10,13 @@ }: stdenv.mkDerivation (finalAttrs: { pname = "aws-lc"; - version = "1.50.0"; + version = "1.51.2"; src = fetchFromGitHub { owner = "aws"; repo = "aws-lc"; rev = "v${finalAttrs.version}"; - hash = "sha256-aYill04Fs/mJFCmzP/tlwUcPRHJz6R9knQWKGEOMwfQ="; + hash = "sha256-Of4zXFO2+2uvu5xi4tmzUK9F5pJ+VyKQOrLpdYPvhSA="; }; outputs = [ diff --git a/pkgs/by-name/ba/bark-server/package.nix b/pkgs/by-name/ba/bark-server/package.nix index d0d416423bdd..f537422bc7d4 100644 --- a/pkgs/by-name/ba/bark-server/package.nix +++ b/pkgs/by-name/ba/bark-server/package.nix @@ -8,13 +8,13 @@ buildGoModule (finalAttrs: { pname = "bark-server"; - version = "2.2.0"; + version = "2.2.1"; src = fetchFromGitHub { owner = "Finb"; repo = "bark-server"; tag = "v${finalAttrs.version}"; - hash = "sha256-c3kMGD4JuLAP/Ms2dJBAl85urvranGGIicTmx4gIhNM="; + hash = "sha256-wwb3k68tjdmN+dy5CKJoUIScLXzNucq6wXy1HgXNa/0="; # populate values that require us to use git. By doing this in postFetch we # can delete .git afterwards and maintain better reproducibility of the src. leaveDotGit = true; @@ -27,7 +27,7 @@ buildGoModule (finalAttrs: { ''; }; - vendorHash = "sha256-Yti+W3GKUMEfNBHf4C435BpYsDjCzgfLr55iqU3BGbA="; + vendorHash = "sha256-FTzSlliphTukCNf+cGGKWK798SARdEkE2HpfWS8ZlNc="; ldflags = [ "-s" diff --git a/pkgs/by-name/co/coulomb/deps.json b/pkgs/by-name/co/coulomb/deps.json new file mode 100644 index 000000000000..495d52685391 --- /dev/null +++ b/pkgs/by-name/co/coulomb/deps.json @@ -0,0 +1,486 @@ +{ + "!comment": "This is a nixpkgs Gradle dependency lockfile. For more details, refer to the Gradle section in the nixpkgs manual.", + "!version": 1, + "https://jitpack.io": { + "com/github/bailuk#java-gtk/0.5.0": { + "jar": "sha256-fCXY4gCLzBU7D+RFsLGz3NN47176XCtak+z65vURKl8=", + "module": "sha256-7mj8zV9UNi61F1iEA809wldidgJQKETrS/FYk4hYbCQ=", + "pom": "sha256-lARyD2FpDWBPqPMJ+0npOLh4VMP0P9/aK0QasHJYimU=" + } + }, + "https://plugins.gradle.org/m2": { + "com/fasterxml#oss-parent/48": { + "pom": "sha256-EbuiLYYxgW4JtiOiAHR0U9ZJGmbqyPXAicc9ordJAU8=" + }, + "com/fasterxml/jackson#jackson-bom/2.14.1": { + "pom": "sha256-eP35nlBQ/EhfQRfauMzL+2+mxoOF6184oJtlU3HUpsw=" + }, + "com/fasterxml/jackson#jackson-parent/2.14": { + "pom": "sha256-CQat2FWuOfkjV9Y/SFiJsI/KTEOl/kM1ItdTROB1exk=" + }, + "com/github/johnrengelman#shadow/8.1.1": { + "jar": "sha256-CEGXVVWQpTuyG1lQijMwVZ9TbdtEjq/R7GdfVGIDb88=", + "module": "sha256-nQ87SqpniYcj6vbF6c0nOHj5V03azWSqNwJDYgzgLko=", + "pom": "sha256-Mu55f8hDI3xM5cSeX0FSxYoIlK/OCg6SY25qLU/JjDU=" + }, + "com/github/johnrengelman/shadow#com.github.johnrengelman.shadow.gradle.plugin/8.1.1": { + "pom": "sha256-PLOIa5ffbgZvEIwxayGfJiyXw8st9tp4kn5kXetkPLA=" + }, + "com/google/code/gson#gson-parent/2.8.9": { + "pom": "sha256-sW4CbmNCfBlyrQ/GhwPsN5sVduQRuknDL6mjGrC7z/s=" + }, + "com/google/code/gson#gson-parent/2.9.1": { + "pom": "sha256-fKCEXnNoVhjePka9NDTQOko3PVIPq5OmgDGK1sjLKnk=" + }, + "com/google/code/gson#gson/2.8.9": { + "jar": "sha256-05mSkYVd5JXJTHQ3YbirUXbP6r4oGlqw2OjUUyb9cD4=", + "pom": "sha256-r97W5qaQ+/OtSuZa2jl/CpCl9jCzA9G3QbnJeSb91N4=" + }, + "com/google/code/gson#gson/2.9.1": { + "jar": "sha256-N4U04znm5tULFzb7Ort28cFdG+P0wTzsbVNkEuI9pgM=", + "pom": "sha256-5ZZjI9cUJXCzekvpeeIbwtroSBB+TcQW2PRNmqPwKQM=" + }, + "commons-io#commons-io/2.11.0": { + "jar": "sha256-lhsvbYfbrMXVSr9Fq3puJJX4m3VZiWLYxyPOqbwhCQg=", + "pom": "sha256-LgFv1+MkS18sIKytg02TqkeQSG7h5FZGQTYaPoMe71k=" + }, + "io/fabric8#kubernetes-client-bom/5.12.2": { + "pom": "sha256-6qA8FpVlaNVKa6Q31J1Ay/DdjpOXf5hDGCQldrZQvDs=" + }, + "io/netty#netty-bom/4.1.86.Final": { + "pom": "sha256-EnFsH+ZM9b2qcETTfROq46iIIbkdR5hCDEanR2kXiv0=" + }, + "jakarta/platform#jakarta.jakartaee-bom/9.0.0": { + "pom": "sha256-kZA9Ddh23sZ/i5I/EzK6cr8pWwa9OX0Y868ZMHzhos4=" + }, + "jakarta/platform#jakartaee-api-parent/9.0.0": { + "pom": "sha256-9l3PFLbh2RSOGYo5D6/hVfrKCTJT3ekAMH8+DqgsrTs=" + }, + "org/apache#apache/23": { + "pom": "sha256-vBBiTgYj82V3+sVjnKKTbTJA7RUvttjVM6tNJwVDSRw=" + }, + "org/apache#apache/27": { + "pom": "sha256-srD8aeIqZQw4kvHDZtdwdvKVdcZzjfTHpwpEhESEzfk=" + }, + "org/apache/ant#ant-launcher/1.10.13": { + "jar": "sha256-zXaVs7+2lkq3G2oLMdrWAAWud/5QITI2Rnmqzwj3eXA=", + "pom": "sha256-ApkvvDgFU1bzyU0B6qJJmcsCoJuqnB/fXqx2t8MVY8o=" + }, + "org/apache/ant#ant-parent/1.10.13": { + "pom": "sha256-blv8hwgiFD8f+7LG8I7EiHctsxSlKDMC9IFLEms0aTk=" + }, + "org/apache/ant#ant/1.10.13": { + "jar": "sha256-vvv8eedE6Yks+n25bfO26C3BfSVxr0KqQnl2/CIpmDg=", + "pom": "sha256-J5NR7tkLj3QbtIyVvmHD7CRU48ipr7Q7zB0LrB3aE3o=" + }, + "org/apache/commons#commons-parent/52": { + "pom": "sha256-ddvo806Y5MP/QtquSi+etMvNO18QR9VEYKzpBtu0UC4=" + }, + "org/apache/logging#logging-parent/7": { + "pom": "sha256-5YkR3J/GsXOhDlqp7bk8eZStBmAnBd0Gftz8bh6eFys=" + }, + "org/apache/logging/log4j#log4j-api/2.20.0": { + "jar": "sha256-L0PupnnqZvFMoPE/7CqGAKwST1pSMdy034OT7dy5dVA=", + "pom": "sha256-zUWDKj1s0hlENcDWPKAV8ZSWjy++pPKRVTv3r7hOFjc=" + }, + "org/apache/logging/log4j#log4j-bom/2.20.0": { + "pom": "sha256-+LtpLpWmt72mAehxAJWOg9AGG38SMlC2gSiUOhlenaE=" + }, + "org/apache/logging/log4j#log4j-core/2.20.0": { + "jar": "sha256-YTffhIza7Z9NUHb3VRPGyF2oC5U/TnrMo4CYt3B2P1U=", + "pom": "sha256-3nGsEAVR9KB3rsrQd70VPnHfeqacMELXZRbMXM4Ice4=" + }, + "org/apache/logging/log4j#log4j/2.20.0": { + "pom": "sha256-mje0qPZ+jUG8JHNxejAhYz1qPD8xBXnbmtC+PyRlnGk=" + }, + "org/codehaus/groovy#groovy-bom/3.0.14": { + "pom": "sha256-JODptzjecRjennNWD/0GA0u1zwfKE6fgNFnoi6nRric=" + }, + "org/codehaus/plexus#plexus-utils/3.5.1": { + "jar": "sha256-huAlXUyHnGG0gz7X8TEk6LtnnfR967EnMm59t91JoHs=", + "pom": "sha256-lP9o7etIIE0SyZGJx2cWTTqfd4oTctHc4RpBRi5iNvI=" + }, + "org/codehaus/plexus#plexus/10": { + "pom": "sha256-u6nFIQZLnKEyzpfMHMfrSvwtvjK8iMuHLIjpn2FiMB8=" + }, + "org/eclipse/ee4j#project/1.0.6": { + "pom": "sha256-Tn2DKdjafc8wd52CQkG+FF8nEIky9aWiTrkHZ3vI1y0=" + }, + "org/eclipse/jetty#jetty-bom/9.4.50.v20221201": { + "pom": "sha256-TN5uUz1gHq+LZazulWt3BsGBkvJ1XQI9fo0Zu31bOUM=" + }, + "org/gradle/toolchains#foojay-resolver/0.7.0": { + "jar": "sha256-k2crR0Cg/b+7W68INT24rpqbsl9rEKk8B4EmxxfbOsA=", + "module": "sha256-7WdGoJ8yv63bkLApECrmIybiSBKaaLdGYqSkM9VTFLg=", + "pom": "sha256-iCa8+5Iq8MIR5BPTmwgWWRPAgwZkE+BzDNgrLgsKie4=" + }, + "org/gradle/toolchains/foojay-resolver-convention#org.gradle.toolchains.foojay-resolver-convention.gradle.plugin/0.7.0": { + "pom": "sha256-yKRD4vrvh28zijkSM8IKka1bg/acHGuiDTmns5EGJAo=" + }, + "org/jdom#jdom2/2.0.6.1": { + "jar": "sha256-CyD0XjoP2PDRLNxTFrBndukCsTZdsAEYh2+RdcYPMCw=", + "pom": "sha256-VXleEBi4rmR7k3lnz4EKmbCFgsI3TnhzwShzTIyRS/M=" + }, + "org/jetbrains/intellij/deps#trove4j/1.0.20200330": { + "jar": "sha256-xf1yW/+rUYRr88d9sTg8YKquv+G3/i8A0j/ht98KQ50=", + "pom": "sha256-h3IcuqZaPJfYsbqdIHhA8WTJ/jh1n8nqEP/iZWX40+k=" + }, + "org/jetbrains/kotlin#kotlin-build-statistics/2.0.20": { + "jar": "sha256-c6fXFRN1WzF9Kxttp2bW5reiXcmdzv5DEzJTNkIuzhE=", + "pom": "sha256-10GK0lyAbeg2FQvdNQsAvmwtJQmeXXQd3+PzgcUurY0=" + }, + "org/jetbrains/kotlin#kotlin-build-tools-api/2.0.20": { + "jar": "sha256-V+1QIg547DnoqAAUMw8pXlSFtWOMESmvntfVPXhYxcI=", + "pom": "sha256-nHrVho+yGJsb9NbCL2yUmDs6jhopTpWlQSy4Lg9C3bI=" + }, + "org/jetbrains/kotlin#kotlin-compiler-embeddable/2.0.20": { + "jar": "sha256-o2BL81DIvM4nECFYu7OD+k0YFLxIaq7VnyeOraUf9q0=", + "pom": "sha256-WXBD+4xlJ/QpmcoE7TUpY5Is0W5piKqlLT2zLaHbhZ0=" + }, + "org/jetbrains/kotlin#kotlin-compiler-runner/2.0.20": { + "jar": "sha256-4DzwSwNA8a4VEhBjC10pFcKXmIxuIuTe206nz7dKz2c=", + "pom": "sha256-3M3xugxPzYvUIwNFroP6fb6SglY9ilP9XmHFM1tbcYA=" + }, + "org/jetbrains/kotlin#kotlin-daemon-client/2.0.20": { + "jar": "sha256-cxUswf2CHQcTlHOry/jH0B0A5oaEuWHhkurogNycfaQ=", + "pom": "sha256-qUcReIj0z/tjk9QurqYRtj31ib8pYXgmzLclNxK/OsM=" + }, + "org/jetbrains/kotlin#kotlin-daemon-embeddable/2.0.20": { + "jar": "sha256-W9URO4WrhSjhkuK7P8GX9bw0SLzb0Fh5Czf9N/TuV68=", + "pom": "sha256-IZgoJm6keO7rQuT1L5bQuQfYykhHz4aq45FprYsupKU=" + }, + "org/jetbrains/kotlin#kotlin-gradle-plugin-annotations/2.0.20": { + "jar": "sha256-i2O0/7e6aOKHIFaa1HqWzAZclFZO0WHuoVrIZIh7pN4=", + "pom": "sha256-D8eaPIg8fbbsD6lU1cimiugRBlIm+4WRbhy/9pnlwUc=" + }, + "org/jetbrains/kotlin#kotlin-gradle-plugin-api/2.0.20": { + "jar": "sha256-D3NXvFzMjjaB7DtGQ8cMrSiDskbIt699bZccQeOTTy0=", + "module": "sha256-CJ8SCJE61calM09nu8pI/HsK+hCv0L2lFT+8tSzCqWw=", + "pom": "sha256-IQOK734wtxG0qE3grS1TO9MgXhOKrWfP1YnXl+/afII=" + }, + "org/jetbrains/kotlin#kotlin-gradle-plugin-idea-proto/2.0.20": { + "jar": "sha256-Ce2wJ7mh899xYnGuyte7QaHdvC+cETFyl5ANTyvc6Iw=", + "pom": "sha256-wZireMJmzzvnodJHBeW7GIbUlF/cpPcX9U77hv9M10o=" + }, + "org/jetbrains/kotlin#kotlin-gradle-plugin-idea/2.0.20": { + "jar": "sha256-wfTqDBkmfx7tR0tUGwdxXEkWes+/AnqKL9B8u8gbjnI=", + "module": "sha256-wy8Uw0SXgCqOjXk7K11nkj4gIlOUePNm4Yp+9kFOut4=", + "pom": "sha256-Vn7N8kaceWkMLgmdz6r8PhF67GTe3BejtJ/Uo/ptDgg=" + }, + "org/jetbrains/kotlin#kotlin-gradle-plugin-model/2.0.20": { + "jar": "sha256-UUx/F9xeVO5dFqdhs2S500OVa8rUnf0I4IWWIldzfhk=", + "module": "sha256-HPn20+xtMFqgiQMqyJL/rogcwQUAP0VvLBX9PDAyCm4=", + "pom": "sha256-SEIbKUnHKiDU4OPybYcYxruScIbHbF/AlSCg1jbPumc=" + }, + "org/jetbrains/kotlin#kotlin-gradle-plugin/2.0.20": { + "module": "sha256-aBPMpB7w+/FciL7MQB44cGuWlEwhtr7HPdiM+QoPIB4=", + "pom": "sha256-eEmYfUbGj7neKvOwReEq1nPm1mOvbqpf2MYRlCt3LF0=" + }, + "org/jetbrains/kotlin#kotlin-gradle-plugin/2.0.20/gradle85": { + "jar": "sha256-gSn2LLfGJ7XOghh+QqbYfEKVK8e6ZLgFo1R/aFIxlmI=" + }, + "org/jetbrains/kotlin#kotlin-gradle-plugins-bom/2.0.20": { + "module": "sha256-GwMjHvp7O20xsJNocpQfh+J6gZwANxiz0JiAt25j180=", + "pom": "sha256-TDLrNQlMFjWd943q7BHOUjvjYEB0FPoK7Miu/GftSkM=" + }, + "org/jetbrains/kotlin#kotlin-klib-commonizer-api/2.0.20": { + "jar": "sha256-QsQvvic/oDBOThf3OSxms56R+Z01+FwGixG91Wuemdw=", + "pom": "sha256-5f4GjE69XIhYw1w56GI6vrnIb4oXJUdC5/VZjkP62jw=" + }, + "org/jetbrains/kotlin#kotlin-native-utils/2.0.20": { + "jar": "sha256-wWbyBR6R0ZnpYP/HsnZEhcFRDNF2dN17jOPC/NBqhys=", + "pom": "sha256-mISZMftwkWhS6qfCDm2Pr1IsUNd627r9k2T1JrfN7EI=" + }, + "org/jetbrains/kotlin#kotlin-tooling-core/2.0.20": { + "jar": "sha256-W28UhUj+ngdN9R9CJTREM78DdaxbOf/NPXvX1/YC1ik=", + "pom": "sha256-XhIxEeAQewRmSIOgpAjB/zvbXQR+SQH4L0xC8QV4Bi0=" + }, + "org/jetbrains/kotlin#kotlin-util-io/2.0.20": { + "jar": "sha256-ZGTbjUFywhoXp5C20XiQIu1nrbN8UL5ri59YK1UrhSI=", + "pom": "sha256-LrBxVfqEF46ZVjnOe3aRcofK5UKjXSm1a7CZEB0oajw=" + }, + "org/jetbrains/kotlin#kotlin-util-klib/2.0.20": { + "jar": "sha256-h92Djcd3gsuVZ/GnYUmbPkpQ9SjABbJjii4+V0EKljs=", + "pom": "sha256-fbTRw72mdZvifuk35gfoscRpWNwIR3Ey/a7t4BbnOP8=" + }, + "org/jetbrains/kotlin/jvm#org.jetbrains.kotlin.jvm.gradle.plugin/2.0.20": { + "pom": "sha256-JyOoqUP6SkTTcD8VTEW31UcMcZ1OYKvz4ixzt3s4i5M=" + }, + "org/jetbrains/kotlinx#kotlinx-coroutines-bom/1.6.4": { + "pom": "sha256-qyYUhV+6ZqqKQlFNvj1aiEMV/+HtY/WTLnEKgAYkXOE=" + }, + "org/jetbrains/kotlinx#kotlinx-coroutines-core-jvm/1.6.4": { + "jar": "sha256-wkyLsnuzIMSpOHFQGn5eDGFgdjiQexl672dVE9TIIL4=", + "module": "sha256-DZTIpBSD58Jwfr1pPhsTV6hBUpmM6FVQ67xUykMho6c=", + "pom": "sha256-Cdlg+FkikDwuUuEmsX6fpQILQlxGnsYZRLPAGDVUciQ=" + }, + "org/junit#junit-bom/5.7.2": { + "module": "sha256-87zrHFndT2mT9DBN/6WAFyuN9lp2zTb6T9ksBXjSitg=", + "pom": "sha256-zRSqqGmZH4ICHFhdVw0x/zQry6WLtEIztwGTdxuWSHs=" + }, + "org/junit#junit-bom/5.9.1": { + "module": "sha256-kCbBZWaQ+hRa117Og2dCEaoSrYkwqRsQfC9c3s4vGxw=", + "pom": "sha256-sWPBz8j8H9WLRXoA1YbATEbphtdZBOnKVMA6l9ZbSWw=" + }, + "org/ow2#ow2/1.5.1": { + "pom": "sha256-Mh3bt+5v5PU96mtM1tt0FU1r+kI5HB92OzYbn0hazwU=" + }, + "org/ow2/asm#asm-commons/9.4": { + "jar": "sha256-DBKKnsPzPJiVknL20WzxQke1CPWJUVdLzb0rVtYyY2Q=", + "pom": "sha256-tCyiq8+IEXdqXdwCkPIQbX8xP4LHiw3czVzOTGOjUXk=" + }, + "org/ow2/asm#asm-tree/9.4": { + "jar": "sha256-xC1HnPJFZqIesgr37q7vToa9tKiGMGz3L0g7ZedbKs8=", + "pom": "sha256-x+nvk73YqzYwMs5TgvzGTQAtbFicF1IzI2zSmOUaPBY=" + }, + "org/ow2/asm#asm/9.4": { + "jar": "sha256-OdDis9xFr2Wgmwl5RXUKlKEm4FLhJPk0aEQ6HQ4V84E=", + "pom": "sha256-SDdR5I+y0fQ8Ya06sA/6Rm7cAzPY/C/bWibpXTKYI5Q=" + }, + "org/sonatype/oss#oss-parent/7": { + "pom": "sha256-tR+IZ8kranIkmVV/w6H96ne9+e9XRyL+kM5DailVlFQ=" + }, + "org/sonatype/oss#oss-parent/9": { + "pom": "sha256-+0AmX5glSCEv+C42LllzKyGH7G8NgBgohcFO8fmCgno=" + }, + "org/springframework#spring-framework-bom/5.3.24": { + "module": "sha256-GZbh9hfLA/p26hGFD+Kh4gsOMKEEa6bV2zvbv0QRP84=", + "pom": "sha256-U1ITVmu77+Jjag1OjdGnOt5hLiQwyP/TENzCo7O5ukE=" + }, + "org/vafer#jdependency/2.8.0": { + "jar": "sha256-v9LMfhv8eKqDtEwKVL8s3jikOC7CRyivaD2Y3GvngZI=", + "pom": "sha256-EBhn8/npJlei74mjELYE1D0JDJuQqj4LBS3NFqO78y0=" + } + }, + "https://repo.maven.apache.org/maven2": { + "com/google/code/findbugs#jsr305/3.0.2": { + "jar": "sha256-dmrSoHg/JoeWLIrXTO7MOKKLn3Ki0IXuQ4t4E+ko0Mc=", + "pom": "sha256-GYidvfGyVLJgGl7mRbgUepdGRIgil2hMeYr+XWPXjf4=" + }, + "com/google/errorprone#error_prone_annotations/2.18.0": { + "jar": "sha256-nmgUy3GBaYik/RsHqZOo8hu3BY1SLBYrHehJ4ZvqVK4=", + "pom": "sha256-kgE1eX3MpZF7WlwBdkKljTQKTNG80S9W+JKlZjvXvdw=" + }, + "com/google/errorprone#error_prone_parent/2.18.0": { + "pom": "sha256-R/Iumce/RmOR3vFvg3eYXl07pvW7z2WFNkSAVRPhX60=" + }, + "com/google/guava#failureaccess/1.0.1": { + "jar": "sha256-oXHuTHNN0tqDfksWvp30Zhr6typBra8x64Tf2vk2yiY=", + "pom": "sha256-6WBCznj+y6DaK+lkUilHyHtAopG1/TzWcqQ0kkEDxLk=" + }, + "com/google/guava#guava-parent/26.0-android": { + "pom": "sha256-+GmKtGypls6InBr8jKTyXrisawNNyJjUWDdCNgAWzAQ=" + }, + "com/google/guava#guava-parent/32.1.2-jre": { + "pom": "sha256-iOnLAHM1q1/bMUpuPJh3NOwjCMmgY/90fHRpGJ0Kkr8=" + }, + "com/google/guava#guava/32.1.2-jre": { + "jar": "sha256-vGXep8/Z5NrPhBnYrw50FlWFfSeIW7NdlD1xh/w6j84=", + "module": "sha256-5Azwhc7QWrGPnJTnx7wZfhzbaVvJOa/DRKskwUFNbH4=", + "pom": "sha256-PyCFltceCDmyU6SQr0mjbvf9tFG+kKQqsd+els/TFmA=" + }, + "com/google/guava#listenablefuture/9999.0-empty-to-avoid-conflict-with-guava": { + "jar": "sha256-s3KgN9QjCqV/vv/e8w/WEj+cDC24XQrO0AyRuXTzP5k=", + "pom": "sha256-GNSx2yYVPU5VB5zh92ux/gXNuGLvmVSojLzE/zi4Z5s=" + }, + "com/google/j2objc#j2objc-annotations/2.8": { + "jar": "sha256-8CqV+hpele2z7YWf0Pt99wnRIaNSkO/4t03OKrf01u0=", + "pom": "sha256-N/h3mLGDhRE8kYv6nhJ2/lBzXvj6hJtYAMUZ1U2/Efg=" + }, + "net/java/dev/jna#jna/5.13.0": { + "jar": "sha256-ZtT4GaBipRodVie//CP6xV0Wd/Dgof66FEqr3WcKZLs=", + "pom": "sha256-9RXCV4F49FJH7Mp6nh2xCVMbHELyQk4lPO6w9rjUI3Q=" + }, + "org/apiguardian#apiguardian-api/1.1.2": { + "jar": "sha256-tQlEisUG1gcxnxglN/CzXXEAdYLsdBgyofER5bW3Czg=", + "module": "sha256-4IAoExN1s1fR0oc06aT7QhbahLJAZByz7358fWKCI/w=", + "pom": "sha256-MjVQgdEJCVw9XTdNWkO09MG3XVSemD71ByPidy5TAqA=" + }, + "org/checkerframework#checker-qual/3.33.0": { + "jar": "sha256-4xYlW7/Nn+UNFlMUuFq7KzPLKmapPEkdtkjkmKgsLeE=", + "module": "sha256-6FIddWJdQScsdn0mKhU6wWPMUFtmZEou9wX6iUn/tOU=", + "pom": "sha256-9VqSICenj92LPqFaDYv+P+xqXOrDDIaqivpKW5sN9gM=" + }, + "org/ejml#ejml-all/0.43": { + "jar": "sha256-GBDaHXRTexoIeerYHHHOSEzBQtS4mBV3pHdTeeiSRXg=", + "module": "sha256-L6r5GgeR5U0jw5CXL7StUdLFxf+56s9RWMjeW/99Fh0=", + "pom": "sha256-+XUcA/lcos9UotaxcRsnIRzRJH2aVVonBGCwQY5e7Q4=" + }, + "org/ejml#ejml-cdense/0.43": { + "jar": "sha256-p/w9/byGtxRqOJB0OtalJrtqvzSSisXjK8RwzbYsE1k=", + "module": "sha256-xtKuzLBpMx9PhMnUTOhX41MA6OU7MClSnmPcZcNx7lU=", + "pom": "sha256-aUxBPx4SPy6EBQJ9BFapzLVpIfeRUIQ0GHOZxkSAc4Q=" + }, + "org/ejml#ejml-core/0.43": { + "jar": "sha256-gk82hbw41d6uHMHu7CM+HDSwxb6c4cTnKd607pAZTdg=", + "module": "sha256-vB0hwXsc0fHk3liP1x8j5GLeFb9amF3+gJjTtgkd1mE=", + "pom": "sha256-i9r882Z7d9gILFuLJapI0N4vRTiXx8tYJXhGVcDMA9E=" + }, + "org/ejml#ejml-ddense/0.43": { + "jar": "sha256-Ca8oTFIJ4IRxe0z/nphVqMgpiybCl7cPt+BGLQEtiKg=", + "module": "sha256-+L5P/I+yqBHlZ3PfNHN54ayy0fYiI9t2vkoZGnFlnBM=", + "pom": "sha256-k+Z/WVJU1qok5L6QWr9IAkLgMyNT7VLxLv9/jw3gPNk=" + }, + "org/ejml#ejml-dsparse/0.43": { + "jar": "sha256-YOK/6s0bydXtWJdYrLkw5M89aVS+Peen4m7SGfI/qpE=", + "module": "sha256-OsTQjsRuw2tZ8Z2VfhZAMHhfqHsDnmwv0rHEx2CHGvs=", + "pom": "sha256-JSXdCWEaCIyfxWiF/D2SY6g09hqHSv8k3Iv+pZ9CM7A=" + }, + "org/ejml#ejml-fdense/0.43": { + "jar": "sha256-aYfzCUarOrYBhVEjityoqiLzU2L4G96rQjzxeO0y0Jk=", + "module": "sha256-17G6273LePZWgSnUvNNC24Lpt8vVz3P7IfAZH6BFL2Q=", + "pom": "sha256-/F3shPgpX84LhBM8+nH5wpqI0QYATYNwwbn8b3dFT7U=" + }, + "org/ejml#ejml-fsparse/0.43": { + "jar": "sha256-WkZs60HHQxRvAOJRw1MdF5YOWcUTlgSeuhsCtkNu/dk=", + "module": "sha256-A+2C1L2rpq23TqKBw8KT9OPTCzkmXZiqdH4oSZyDcPE=", + "pom": "sha256-Hp1uhLrUX26LLWlIe/vdsz1+Krc/MJex8/0TNpX8juo=" + }, + "org/ejml#ejml-simple/0.43": { + "jar": "sha256-PS0FZYn+8he1J2U+g+w2luZnilf43xc1wq2sBSSZxnM=", + "module": "sha256-EhdXX+Zg0uocDt2CVGiDKcUP0u0Q4+1NcRFphpdrR2k=", + "pom": "sha256-RHst4Wksfb/vM9colSeK6GQae5HlWDZjwVOqEOtLBNc=" + }, + "org/ejml#ejml-zdense/0.43": { + "jar": "sha256-aGU63SwAt+cT2nXFZ2HbTzm+GXQsjxLbNuJ2IKy0f1M=", + "module": "sha256-N0BJcmoNrj/LPbwuAaxra+6I7myj4Z8naR9xXWVHK8o=", + "pom": "sha256-Ejz7uqu3F0Lzd/9mXGEk2SPvNrSgfXLNZqUKhwvoBaU=" + }, + "org/jetbrains#annotations/13.0": { + "jar": "sha256-rOKhDcji1f00kl7KwD5JiLLA+FFlDJS4zvSbob0RFHg=", + "pom": "sha256-llrrK+3/NpgZvd4b96CzuJuCR91pyIuGN112Fju4w5c=" + }, + "org/jetbrains/intellij/deps#trove4j/1.0.20200330": { + "jar": "sha256-xf1yW/+rUYRr88d9sTg8YKquv+G3/i8A0j/ht98KQ50=", + "pom": "sha256-h3IcuqZaPJfYsbqdIHhA8WTJ/jh1n8nqEP/iZWX40+k=" + }, + "org/jetbrains/kotlin#kotlin-build-common/2.0.20": { + "jar": "sha256-NvDXXOmviQZNnbT9IeIsVQdyAP5OOufZnjREmCZ6oNs=", + "pom": "sha256-EOhYxaCAxN21Wx0GvujV6Ea4YQX1aw5A8ojj+mGWEXI=" + }, + "org/jetbrains/kotlin#kotlin-build-tools-api/2.0.20": { + "jar": "sha256-V+1QIg547DnoqAAUMw8pXlSFtWOMESmvntfVPXhYxcI=", + "pom": "sha256-nHrVho+yGJsb9NbCL2yUmDs6jhopTpWlQSy4Lg9C3bI=" + }, + "org/jetbrains/kotlin#kotlin-build-tools-impl/2.0.20": { + "jar": "sha256-nOb4Gmmcw32zY6KDcVC8YqJJA9r2EhA00Sl5qpUBRGs=", + "pom": "sha256-DyiqOx3o2AWm+HlX08PWbDOeDEMmaZlc9Zf58r6J4II=" + }, + "org/jetbrains/kotlin#kotlin-compiler-embeddable/2.0.20": { + "jar": "sha256-o2BL81DIvM4nECFYu7OD+k0YFLxIaq7VnyeOraUf9q0=", + "pom": "sha256-WXBD+4xlJ/QpmcoE7TUpY5Is0W5piKqlLT2zLaHbhZ0=" + }, + "org/jetbrains/kotlin#kotlin-compiler-runner/2.0.20": { + "jar": "sha256-4DzwSwNA8a4VEhBjC10pFcKXmIxuIuTe206nz7dKz2c=", + "pom": "sha256-3M3xugxPzYvUIwNFroP6fb6SglY9ilP9XmHFM1tbcYA=" + }, + "org/jetbrains/kotlin#kotlin-daemon-client/2.0.20": { + "jar": "sha256-cxUswf2CHQcTlHOry/jH0B0A5oaEuWHhkurogNycfaQ=", + "pom": "sha256-qUcReIj0z/tjk9QurqYRtj31ib8pYXgmzLclNxK/OsM=" + }, + "org/jetbrains/kotlin#kotlin-daemon-embeddable/2.0.20": { + "jar": "sha256-W9URO4WrhSjhkuK7P8GX9bw0SLzb0Fh5Czf9N/TuV68=", + "pom": "sha256-IZgoJm6keO7rQuT1L5bQuQfYykhHz4aq45FprYsupKU=" + }, + "org/jetbrains/kotlin#kotlin-klib-commonizer-embeddable/2.0.20": { + "jar": "sha256-ZzHCVkuXOXGDWCVJAUC3rZ63Jtk4/gzvTr7y7Fkt6wM=", + "pom": "sha256-rVSg2nLxASl08e7sdp2EopMnzzfMrVUxt4cT/GD0tnY=" + }, + "org/jetbrains/kotlin#kotlin-native-prebuilt/2.0.20": { + "pom": "sha256-xYoRfPul4AVC+QrYLytqsh4Z46Ifzvy0mLq5k69FDwY=" + }, + "org/jetbrains/kotlin#kotlin-reflect/1.6.10": { + "jar": "sha256-MnesECrheq0QpVq+x1/1aWyNEJeQOWQ0tJbnUIeFQgM=", + "pom": "sha256-V5BVJCdKAK4CiqzMJyg/a8WSWpNKBGwcxdBsjuTW1ak=" + }, + "org/jetbrains/kotlin#kotlin-script-runtime/2.0.20": { + "jar": "sha256-/pcAKmeY9yB1ZGSJGdbuzPszi5XcBLSIhthWZVvGSk4=", + "pom": "sha256-o6N2KcmFzt17+d12rGdJaz+ApZIoVB6WiAKg7obEuRQ=" + }, + "org/jetbrains/kotlin#kotlin-scripting-common/2.0.20": { + "jar": "sha256-XTdTOT5/7PHSG67l2314gyZ4K9v4qOxqKyzM97Ve5sY=", + "pom": "sha256-BesUmiCZ8ILJf1xFQ1HQuMphLFUwo6wyHSyMB12wEVU=" + }, + "org/jetbrains/kotlin#kotlin-scripting-compiler-embeddable/2.0.20": { + "jar": "sha256-Ie8wOrS54Pnzl8FIliU6rkkCV7+w3VAInBwcBPAYcXE=", + "pom": "sha256-zr8swRmuHPJqP2tECxidwrruhS0nASU06qNqrNue4VI=" + }, + "org/jetbrains/kotlin#kotlin-scripting-compiler-impl-embeddable/2.0.20": { + "jar": "sha256-WgaucwO1TL0XdYnWEFumv9WbGxgur7W2aHJf9ypf0y0=", + "pom": "sha256-z6al9YOJy3K0SRLTABoB9eqL+vx5mbr6BRGz7t/LYdI=" + }, + "org/jetbrains/kotlin#kotlin-scripting-jvm/2.0.20": { + "jar": "sha256-sLtQD2MztLFsjraeo5TvaE8zRT+NNDEDSokHqfGNtvE=", + "pom": "sha256-m8uNHCOvcm21KpNrpbkXeyRoKSBYxT8Ckd5MwNpOzh4=" + }, + "org/jetbrains/kotlin#kotlin-stdlib/2.0.20": { + "jar": "sha256-+xaVlmWaUYNXxLLBb0PcdascSYBWXtS0oxegUOXjkAY=", + "module": "sha256-3AUdwExqGW8tBtDTya8zufErybT+E5rhKQFAUII2tns=", + "pom": "sha256-Cu6WIJHn3QKIzDykz0qSjFYgcUYCEb+PQXkAkwbmGf4=" + }, + "org/jetbrains/kotlin#kotlin-stdlib/2.0.20/all": { + "jar": "sha256-UP+t6yC00kVqUmWVpPep6FiJaCcVBz5s26Gx2A461Fg=" + }, + "org/jetbrains/kotlin/kotlin-native-prebuilt/2.0.20/kotlin-native-prebuilt-2.0.20-linux-x86_64": { + "tar.gz": "sha256-soKRi19RWLL41bU94ICTpyIG/CO5E4Lh3dJjDHIChCc=" + }, + "org/jetbrains/kotlinx#kotlinx-coroutines-bom/1.6.4": { + "pom": "sha256-qyYUhV+6ZqqKQlFNvj1aiEMV/+HtY/WTLnEKgAYkXOE=" + }, + "org/jetbrains/kotlinx#kotlinx-coroutines-core-jvm/1.6.4": { + "jar": "sha256-wkyLsnuzIMSpOHFQGn5eDGFgdjiQexl672dVE9TIIL4=", + "module": "sha256-DZTIpBSD58Jwfr1pPhsTV6hBUpmM6FVQ67xUykMho6c=", + "pom": "sha256-Cdlg+FkikDwuUuEmsX6fpQILQlxGnsYZRLPAGDVUciQ=" + }, + "org/junit#junit-bom/5.10.0": { + "module": "sha256-6z7mEnYIAQaUqJgFbnQH0RcpYAOrpfXbgB30MLmIf88=", + "pom": "sha256-4AbdiJT5/Ht1/DK7Ev5e2L5lZn1bRU+Z4uC4xbuNMLM=" + }, + "org/junit/jupiter#junit-jupiter-api/5.10.0": { + "jar": "sha256-EICI/X6kao5loM5/XXWuP/eGVgZ3CgeHFfWm5XCeF9g=", + "module": "sha256-rlZhzTgeEJo8NXWzqy3tdHnnvdfOxKqfJtQ3iXNAl5s=", + "pom": "sha256-Tx3RjtVlgTdJThuDUFN5V994ExxnNYrDw/IM3vKF9xw=" + }, + "org/junit/jupiter#junit-jupiter-engine/5.10.0": { + "jar": "sha256-V+pI5veVIAeRBlu8hrcLhM0FNnxcnyrI+SaOJxVMiKg=", + "module": "sha256-ahCFcpBdHtGcAtzQePNMHt6zFVX1RCF24BQYJwCFYmo=", + "pom": "sha256-tgBsZQiRofdWh1Z2xtj+m0FqwckRfntBg0KdnxU0crU=" + }, + "org/junit/jupiter#junit-jupiter-params/5.10.0": { + "jar": "sha256-8lmnMizON1QwwiNqLcsk1KSdIgRbcjrYWviOEXBDkcI=", + "module": "sha256-GW9/Tv35x3OnEEwzn2AlNCuHQvz6sC+IArqAJ+0o+S4=", + "pom": "sha256-hJpvXnjyuDFLW10KDMymYhblwH4pWFRxJX3/CvrLELE=" + }, + "org/junit/jupiter#junit-jupiter/5.10.0": { + "jar": "sha256-jkveI+4o/EQ5dWVKeyjEEKO3jWvpa3jJmrc2lew0T3w=", + "module": "sha256-BXDggypUZagvBKK492Hyux4w+v4oLSowmHAV/LBQdgM=", + "pom": "sha256-9LAPh2BzWmAc6U0sxq0r9WpK30885g7iD1LHDa5bMxM=" + }, + "org/junit/platform#junit-platform-commons/1.10.0": { + "jar": "sha256-YIPbCMoR/KHhYJnQ3P7eAZPYCzdisnY0nYDT2lNnkbI=", + "module": "sha256-jLYNPfgdYG6hvj4/yuVpdlOxswPi96mCKn7RJkdF/Cc=", + "pom": "sha256-vkEftVMxuqETp0wRkA8HVVhasg76cMJtlQ9a4hRJALA=" + }, + "org/junit/platform#junit-platform-engine/1.10.0": { + "jar": "sha256-zTOO/QLuc5Zup1TgwMceGhH0r125wgA+S2E34RkVWr4=", + "module": "sha256-duCMg/k91SuD6IW5AJIMHcheNoaID2ZTrysiMX9N3jc=", + "pom": "sha256-+RGG4YGx4VrofVJ5uaKzDGLO1ROQE6NJoQu03hL6+YI=" + }, + "org/junit/platform#junit-platform-launcher/1.10.0": { + "jar": "sha256-jGC2YawXBwGmNd/GdWXvu4yFtcXN1aSpV246AVxxEaQ=", + "module": "sha256-9dy3QIxCQmA/mb1c3GNcQGbRioKNuF7TcAqo3T6vGmk=", + "pom": "sha256-Z3Xvl0dO7JwTo1If5iAPmqG4cegyc9q1VfgEgGW7wRI=" + }, + "org/opentest4j#opentest4j/1.3.0": { + "jar": "sha256-SOLfY2yrZWPO1k3N/4q7I1VifLI27wvzdZhoLd90Lxs=", + "module": "sha256-SL8dbItdyU90ZSvReQD2VN63FDUCSM9ej8onuQkMjg0=", + "pom": "sha256-m/fP/EEPPoNywlIleN+cpW2dQ72TfjCUhwbCMqlDs1U=" + }, + "org/sonatype/oss#oss-parent/7": { + "pom": "sha256-tR+IZ8kranIkmVV/w6H96ne9+e9XRyL+kM5DailVlFQ=" + }, + "org/sonatype/oss#oss-parent/9": { + "pom": "sha256-+0AmX5glSCEv+C42LllzKyGH7G8NgBgohcFO8fmCgno=" + } + } +} diff --git a/pkgs/by-name/co/coulomb/package.nix b/pkgs/by-name/co/coulomb/package.nix new file mode 100644 index 000000000000..62ebb35f1ce8 --- /dev/null +++ b/pkgs/by-name/co/coulomb/package.nix @@ -0,0 +1,97 @@ +{ + stdenv, + lib, + gradle, + jdk21_headless, + fetchFromGitHub, + stripJavaArchivesHook, + wrapGAppsHook4, + nix-update-script, + makeWrapper, + pkg-config, + gtk4, + libadwaita, + glib, + pango, + gdk-pixbuf, + atk, + cairo, +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "coulomb"; + version = "0.6.1"; + + src = fetchFromGitHub { + owner = "hamza-algohary"; + repo = "Coulomb"; + tag = "v${finalAttrs.version}"; + hash = "sha256-SbtFUUla0uoeDik+7CtibV/lvgUg8N81WWRp2+8wygM="; + }; + + postPatch = '' + substituteInPlace app/build.gradle.kts \ + --replace-fail "languageVersion.set(JavaLanguageVersion.of(19))" "languageVersion.set(JavaLanguageVersion.of(21))" + ''; + + nativeBuildInputs = [ + gradle + jdk21_headless + makeWrapper + pkg-config + stripJavaArchivesHook + wrapGAppsHook4 + ]; + + buildInputs = [ + gtk4 + libadwaita + glib + pango + gdk-pixbuf + atk + cairo + ]; + + mitmCache = gradle.fetchDeps { + inherit (finalAttrs) pname; + data = ./deps.json; + }; + + gradleFlags = [ "-Dfile.encoding=utf-8" ]; + + dontWrapGApps = true; + + doCheck = true; + + installPhase = '' + runHook preInstall + + mkdir -p $out/{bin,share/coulomb,lib-jna} + cp app/build/libs/app-all.jar $out/share/coulomb/ + + mkdir -p $out/share/{applications,icons/{dark,light,hicolor/scalable/apps}} + cp app/build/resources/main/*.desktop $out/share/applications + cp -r app/build/resources/main/icons/vector/* $out/share/icons/ + cp app/build/resources/main/icons/vector/light/coulomb.svg $out/share/icons/hicolor/scalable/apps/io.github.hamza_algohary.Coulomb.svg + + makeWrapper ${jdk21_headless}/bin/java $out/bin/coulomb \ + --add-flags "-Djava.library.path=${lib.makeLibraryPath finalAttrs.buildInputs}" \ + --add-flags "-jar $out/share/coulomb/app-all.jar" \ + --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath finalAttrs.buildInputs}" \ + ''${gappsWrapperArgs[@]} + + runHook postInstall + ''; + + passthru.updateScript = nix-update-script { }; + + meta = { + description = "Simple and beautiful circuit simulator app"; + homepage = "https://github.com/hamza-algohary/Coulomb"; + license = lib.licenses.gpl3Only; + maintainers = with lib.maintainers; [ thtrf ]; + platforms = lib.platforms.linux; + mainProgram = "coulomb"; + }; +}) diff --git a/pkgs/by-name/fe/feishu/package.nix b/pkgs/by-name/fe/feishu/package.nix index f7cd433ff0c0..aadc186af103 100644 --- a/pkgs/by-name/fe/feishu/package.nix +++ b/pkgs/by-name/fe/feishu/package.nix @@ -223,12 +223,13 @@ stdenv.mkDerivation { ''; }; - meta = with lib; { + meta = { description = "All-in-one collaboration suite"; homepage = "https://www.feishu.cn/en/"; downloadPage = "https://www.feishu.cn/en/#en_home_download_block"; - license = licenses.unfree; + license = lib.licenses.unfree; platforms = supportedPlatforms; - maintainers = with maintainers; [ billhuang ]; + maintainers = with lib.maintainers; [ billhuang ]; + mainProgram = "bytedance-feishu"; }; } diff --git a/pkgs/by-name/ga/gate/package.nix b/pkgs/by-name/ga/gate/package.nix index e63bbbe0dabd..e10f0d8710e2 100644 --- a/pkgs/by-name/ga/gate/package.nix +++ b/pkgs/by-name/ga/gate/package.nix @@ -6,7 +6,7 @@ let pname = "gate"; - version = "0.48.1"; + version = "0.49.1"; in buildGoModule { inherit pname version; @@ -15,10 +15,10 @@ buildGoModule { owner = "minekube"; repo = "gate"; tag = "v${version}"; - hash = "sha256-e6NJlKAo9Y2HGcOF3rfystTRerqgicKVZ+1g2zsQq9g="; + hash = "sha256-gDRw/YQtIpYiX3uKjvmttbVkohj2k5f+pvv+xYyY3S8="; }; - vendorHash = "sha256-gho3OJvDTRTHg+ITCvR49oq9pBUZj7i7rtpSIctmTcY="; + vendorHash = "sha256-4LJwb4ZXs+CUcxhvRveJy+xu7/UEjxIEwLV5Z5gBbT4="; ldflags = [ "-s" diff --git a/pkgs/by-name/ge/geminicommit/package.nix b/pkgs/by-name/ge/geminicommit/package.nix new file mode 100644 index 000000000000..c22a5d0fc0b4 --- /dev/null +++ b/pkgs/by-name/ge/geminicommit/package.nix @@ -0,0 +1,49 @@ +{ + lib, + buildGoModule, + fetchFromGitHub, + installShellFiles, + stdenv, +}: + +buildGoModule (finalAttrs: { + pname = "geminicommit"; + version = "0.2.7"; + + src = fetchFromGitHub { + owner = "tfkhdyt"; + repo = "geminicommit"; + tag = "v${finalAttrs.version}"; + hash = "sha256-dWJzS9vfEEvfPA5IS5WZDwoNMaXXNuVIb3p2xZvSbbQ="; + }; + + vendorHash = "sha256-+eKJLXgKuUHelUjD8MpMa+cRP+clmYK+1olcb/jmabk="; + + nativeBuildInputs = [ + installShellFiles + ]; + + postInstall = + let + cmd = finalAttrs.meta.mainProgram; + in + lib.optionalString (with stdenv; buildPlatform.canExecute hostPlatform) '' + # `geminicommit` requires write permissions to $HOME for its `config.toml` + # ... which is automatically initiated on startup + export HOME=$(mktemp -d) + + for shell in bash zsh fish; do + installShellCompletion \ + --cmd "${cmd}" \ + --"$shell" <($out/bin/"${cmd}" completion "$shell") + done + ''; + + meta = { + description = "CLI that generates git commit messages with Google Gemini AI"; + homepage = "https://github.com/tfkhdyt/geminicommit"; + license = lib.licenses.gpl3Only; + maintainers = with lib.maintainers; [ bryango ]; + mainProgram = "geminicommit"; + }; +}) diff --git a/pkgs/by-name/kw/kwok/package.nix b/pkgs/by-name/kw/kwok/package.nix index 8c119cbcb4be..b54e61db0084 100644 --- a/pkgs/by-name/kw/kwok/package.nix +++ b/pkgs/by-name/kw/kwok/package.nix @@ -6,16 +6,16 @@ buildGoModule rec { pname = "kwok"; - version = "0.6.1"; + version = "0.7.0"; src = fetchFromGitHub { owner = "kubernetes-sigs"; repo = "kwok"; tag = "v${version}"; - hash = "sha256-RVyXGPT30Fz+K1VdMneYldXvzHyimuCX406DMKOtUq4="; + hash = "sha256-gtDGkAXbNCWUVGL4+C6mOkWwrPcik6+nGEQNrjLb57U="; }; - vendorHash = "sha256-xzFbcsL6pz91GFwjkriTMKlX2fgm2NMO9+H3lqH/C2c="; + vendorHash = "sha256-UNso+e/zYah0jApHZgWnQ3cUSV44HsMqPy4q4JMCyiA="; doCheck = false; # docker is need for test diff --git a/pkgs/by-name/ma/matrix-continuwuity/package.nix b/pkgs/by-name/ma/matrix-continuwuity/package.nix new file mode 100644 index 000000000000..fe082b6e8517 --- /dev/null +++ b/pkgs/by-name/ma/matrix-continuwuity/package.nix @@ -0,0 +1,115 @@ +{ + lib, + rustPlatform, + fetchFromGitea, + pkg-config, + bzip2, + zstd, + stdenv, + rocksdb, + nix-update-script, + testers, + matrix-continuwuity, + enableBlurhashing ? true, + # upstream continuwuity enables jemalloc by default, so we follow suit + enableJemalloc ? true, + rust-jemalloc-sys, + enableLiburing ? stdenv.hostPlatform.isLinux, + liburing, + nixosTests, +}: +let + rust-jemalloc-sys' = rust-jemalloc-sys.override { + unprefixed = !stdenv.hostPlatform.isDarwin; + }; + rocksdb' = rocksdb.override { + inherit enableLiburing; + # rocksdb does not support prefixed jemalloc, which is required on darwin + enableJemalloc = enableJemalloc && !stdenv.hostPlatform.isDarwin; + jemalloc = rust-jemalloc-sys'; + }; +in +rustPlatform.buildRustPackage (finalAttrs: { + pname = "matrix-continuwuity"; + version = "0.5.0-rc.5"; + + src = fetchFromGitea { + domain = "forgejo.ellis.link"; + owner = "continuwuation"; + repo = "continuwuity"; + tag = "v${finalAttrs.version}"; + hash = "sha256-Oq2scBu3Ewao828BT1QGffqIqF5WoH9HMXEXKg1YU0o="; + }; + + useFetchCargoVendor = true; + cargoHash = "sha256-bjjGR3++CaDEtlsQj9GgdViCEB5l72sI868uTFBtIwg="; + + nativeBuildInputs = [ + pkg-config + rustPlatform.bindgenHook + ]; + + buildInputs = + [ + bzip2 + zstd + ] + ++ lib.optional enableJemalloc rust-jemalloc-sys' + ++ lib.optional enableLiburing liburing; + + env = { + ZSTD_SYS_USE_PKG_CONFIG = true; + ROCKSDB_INCLUDE_DIR = "${rocksdb'}/include"; + ROCKSDB_LIB_DIR = "${rocksdb'}/lib"; + }; + + buildNoDefaultFeatures = true; + # See https://forgejo.ellis.link/continuwuation/continuwuity/src/branch/main/Cargo.toml + # for available features. + # We enable all default features except jemalloc, blurhashing, and io_uring, which + # we guard behind our own (default-enabled) flags. + buildFeatures = + [ + "brotli_compression" + "element_hacks" + "gzip_compression" + "media_thumbnail" + "release_max_log_level" + "systemd" + "url_preview" + "zstd_compression" + ] + ++ lib.optional enableBlurhashing "blurhashing" + ++ lib.optional enableJemalloc [ + "jemalloc" + "jemalloc_conf" + ] + ++ lib.optional enableLiburing "io_uring"; + + passthru = { + updateScript = nix-update-script { }; + tests = + { + version = testers.testVersion { + inherit (finalAttrs) version; + package = matrix-continuwuity; + }; + } + // lib.optionalAttrs stdenv.hostPlatform.isLinux { + inherit (nixosTests) matrix-continuwuity; + }; + }; + + meta = { + description = "Matrix homeserver written in Rust, forked from conduwuit"; + homepage = "https://continuwuity.org/"; + changelog = "https://forgejo.ellis.link/continuwuation/continuwuity/releases/tag/v${finalAttrs.version}"; + license = lib.licenses.asl20; + maintainers = with lib.maintainers; [ + nyabinary + snaki + ]; + # Not a typo, continuwuity is a drop-in replacement for conduwuit. + mainProgram = "conduwuit"; + }; +}) diff --git a/pkgs/by-name/mu/musl-obstack/0001-ignore-obstack_free-alias-on-darwin.patch b/pkgs/by-name/mu/musl-obstack/0001-ignore-obstack_free-alias-on-darwin.patch new file mode 100644 index 000000000000..a102bbf28f7b --- /dev/null +++ b/pkgs/by-name/mu/musl-obstack/0001-ignore-obstack_free-alias-on-darwin.patch @@ -0,0 +1,27 @@ +From 44679bc1a03302aa6b1eb19220d9723e9e0e4d3f Mon Sep 17 00:00:00 2001 +From: usertam +Date: Fri, 16 May 2025 23:29:41 +0800 +Subject: [PATCH] ignore obstack_free alias on darwin + +clang will complain "error: aliases are not supported on darwin". +--- + obstack.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/obstack.c b/obstack.c +index 1f2f4c7..b9be9dd 100644 +--- a/obstack.c ++++ b/obstack.c +@@ -294,7 +294,9 @@ _obstack_free (struct obstack *h, void *obj) + abort (); + } + ++#ifndef __APPLE__ + extern __typeof(_obstack_free) obstack_free __attribute__((alias("_obstack_free"))); ++#endif + + _OBSTACK_SIZE_T + _obstack_memory_used (struct obstack *h) +-- +2.48.1 + diff --git a/pkgs/by-name/mu/musl-obstack/package.nix b/pkgs/by-name/mu/musl-obstack/package.nix index edac988c36db..dfe19c50b41f 100644 --- a/pkgs/by-name/mu/musl-obstack/package.nix +++ b/pkgs/by-name/mu/musl-obstack/package.nix @@ -17,6 +17,10 @@ stdenv.mkDerivation rec { sha256 = "sha256-oydS7FubUniMHAUWfg84OH9+CZ0JCrTXy7jzwOyJzC8="; }; + patches = lib.optionals stdenv.isDarwin [ + ./0001-ignore-obstack_free-alias-on-darwin.patch + ]; + nativeBuildInputs = [ autoreconfHook pkg-config @@ -27,7 +31,7 @@ stdenv.mkDerivation rec { meta = with lib; { homepage = "https://github.com/void-linux/musl-obstack"; description = "An extraction of the obstack functions and macros from GNU libiberty for use with musl-libc"; - platforms = platforms.linux; + platforms = platforms.unix; license = licenses.lgpl21Plus; maintainers = [ maintainers.pjjw ]; }; diff --git a/pkgs/by-name/pa/particle-cli/package.nix b/pkgs/by-name/pa/particle-cli/package.nix index 7c408263745b..451c9ee5f419 100644 --- a/pkgs/by-name/pa/particle-cli/package.nix +++ b/pkgs/by-name/pa/particle-cli/package.nix @@ -8,16 +8,16 @@ buildNpmPackage (finalAttrs: { pname = "particle-cli"; - version = "3.35.8"; + version = "3.35.10"; src = fetchFromGitHub { owner = "particle-iot"; repo = "particle-cli"; tag = "v${finalAttrs.version}"; - hash = "sha256-t4alWb6W6AHBAsyRGLBTmjB0JpfzKBQ+yt2LESuU7YE="; + hash = "sha256-u1QiV8KNG5tRrSqKkoSljCvaGw5rExSVC71IQaC5hPI="; }; - npmDepsHash = "sha256-FEpj9u0KqQ+yLtwFgahun6AUSolbEiWjWstglD9yyQ8="; + npmDepsHash = "sha256-QIyq/hmZFjt2mpH61ZaCTPve8QvDTSm2Ijwa5thrKkM="; buildInputs = [ udev diff --git a/pkgs/by-name/wh/whipper/package.nix b/pkgs/by-name/wh/whipper/package.nix index 1d9019d97773..441cee30fe16 100644 --- a/pkgs/by-name/wh/whipper/package.nix +++ b/pkgs/by-name/wh/whipper/package.nix @@ -123,5 +123,6 @@ python3.pkgs.buildPythonApplication rec { maintainers = with maintainers; [ emily ]; license = licenses.gpl3Plus; platforms = platforms.unix; + mainProgram = "whipper"; }; } diff --git a/pkgs/development/compilers/smlnj/default.nix b/pkgs/development/compilers/smlnj/default.nix index 41c186050e34..0565e578a7bb 100644 --- a/pkgs/development/compilers/smlnj/default.nix +++ b/pkgs/development/compilers/smlnj/default.nix @@ -4,7 +4,7 @@ fetchurl, }: let - version = "110.99.7.1"; + version = "110.99.8"; baseurl = "https://smlnj.cs.uchicago.edu/dist/working/${version}"; arch = if stdenv.hostPlatform.is64bit then "64" else "32"; diff --git a/pkgs/development/compilers/smlnj/hashes.json b/pkgs/development/compilers/smlnj/hashes.json index 9e8d2844abf6..236174684457 100644 --- a/pkgs/development/compilers/smlnj/hashes.json +++ b/pkgs/development/compilers/smlnj/hashes.json @@ -1,27 +1,27 @@ { - "boot.amd64-unix.tgz": "sha256-qgcD8MrTXg9xa0EsIxJyKXYO4FpEVa4/YCG0zuhH11Q=", - "boot.x86-unix.tgz": "sha256-VUJMOa8pBeDFOLivGaPC0BbtAsgJXjcjpzJgwpgOh1o=", - "config.tgz": "sha256-frBrrZNeG8DAOimVjUKR2j9iXhxrFA6LcDbNbyZEEoE=", - "cm.tgz": "sha256-+BLucH3PHt4JJpjofoVptIiTdrxplygq81kpy3VOBmo=", - "compiler.tgz": "sha256-9dPAnqpeadTMqIJKfnoa0WvceATt+VLcKgg0auHjIWM=", - "runtime.tgz": "sha256-XbmBENbIDng/KEW0Sq/45uFZ4/pp2avGJHa+XNotwIU=", - "system.tgz": "sha256-IoYZiOd+ZoE7zlJWzHNP3kIZ9/zvvdNBcTj+W1feRio=", - "MLRISC.tgz": "sha256-Jt0g+Rblt/eClAekeZkfPmssFB8FVqkdjzAs9q/VfGs=", - "smlnj-lib.tgz": "sha256-TgxzbqbtGlUQYhCmSUwYba5UM//9IKQr6QVEufOxcBM=", - "old-basis.tgz": "sha256-dcERPGMHcdASg2CQ9H91mLIeJoHW2l41wZjmt4eAMBI=", - "ckit.tgz": "sha256-ZylxTkbF4e/7bIvaAkWKbdtDfDNWS9HWtqkTZZ40qfo=", - "nlffi.tgz": "sha256-Z/O5JZeZKiDa5ZHRhLoK321VXk0hpHZg+9D396ClwOA=", - "cml.tgz": "sha256-eShOhvwea5TovWDtpXvJeUWuJlBTV0dIOIrMEkVhuPw=", - "eXene.tgz": "sha256-JXNvSTofM2tv3GunE9E3OVSfeQan8aTcfhzyouf93BU=", - "ml-lpt.tgz": "sha256-5yJupxZA0m3RzgS9G/P49ZrtN9ZfZSE9Min8GdagnLY=", - "ml-lex.tgz": "sha256-eJIT4fvCkweJSeZgM+HPd/AQxUx/hfXRj1Ltv//RS8o=", - "ml-yacc.tgz": "sha256-/RccvPDAB3VOAHWtQTPz31nFPAIUhcU9NmF+pOVjo2g=", - "ml-burg.tgz": "sha256-0Z5dPZV66Rvwa1RWLpjhsRznxmPnsexrLVdGVYspsSA=", - "pgraph.tgz": "sha256-BgrF76d98d4xl+a29iZyI1bQKx6jmyC+Ach1Fik0i+4=", - "trace-debug-profile.tgz": "sha256-17CWvN1TgZhR4mWzrB9b7lovlcludkT1dLaLPiyR6SI=", - "heap2asm.tgz": "sha256-qOLbT71ijcUPt0Rx20Iq+qqYU49dIt3mfzc6f5+y+GM=", - "smlnj-c.tgz": "sha256-V6AXfoGGO39XYBDWLDUf7vN2jcG6UUvFteOMF8v6m6Q=", - "doc.tgz": "sha256-y8fCPt4PaHsTf3uViMC6YrOapVE0fwJWbSQ8FmELPy0=", - "asdl.tgz": "sha256-cDPssSS2GRYrkUGqTCdHUJO+KD6vPy6HpP4NUU1h8Lc=", - "version": "110.99.7.1" + "boot.amd64-unix.tgz": "sha256-udLexaSne+fK87rcEWauTL2RL7eyLAQclFlHf1348GQ=", + "boot.x86-unix.tgz": "sha256-pNPW12mc17QcLq+vg8l8nYmFOEy6VbdCAlRTFwOXL/o=", + "config.tgz": "sha256-63pvIXHI4XJ+R2mn7vcvcuxf8a6FYd1giICZeJjbAjs=", + "cm.tgz": "sha256-JBjG6OXw0F6DiDSd4O1wiGmRxxj4gXrs+baVevO4Xd0=", + "compiler.tgz": "sha256-GsEFh6XhEAi144+r2B0m5n7bWlPwnm5b89JxTBSAGGw=", + "runtime.tgz": "sha256-q4ViTS3/OuHkNChRrECOANWshmu0EGtFdSWF5jHIbcU=", + "system.tgz": "sha256-x7TzZKUNZFAmnv4iR4bJ0uK+pMVMKrt0F9NViJNw7s8=", + "MLRISC.tgz": "sha256-fKWObr2uulRF0HCUaG19xwUkHlSEyB2OmDvjsX9904o=", + "smlnj-lib.tgz": "sha256-79ExeRN/w/Tgi+L4FY6th5JKBh1Ga5SqlLZ7kErjYK0=", + "old-basis.tgz": "sha256-qkOFr+slwF/kMqH9346RHHqMCFUkhgt43JJedhNjHHI=", + "ckit.tgz": "sha256-VxeJBBJviCJGjiT0fb7nXKxPxrM5eZtOjHt9+Nw5wZ8=", + "nlffi.tgz": "sha256-miwWceBsB9M4iuFjgwPX1K6Ljx2NXPrL3YczbrSkEco=", + "cml.tgz": "sha256-pF0zZdSt8RMWKv7Yb6s3GTvfBiIIOfHqXLAs+tFH02c=", + "eXene.tgz": "sha256-XkaLMzyCTYD4vHrd83iZ40ETlZH8TQBO7c4WpqcSF3I=", + "ml-lpt.tgz": "sha256-vBZ7QUQSKaLN171usPGyORuxSg965egAwI2HgfylIWU=", + "ml-lex.tgz": "sha256-f2cSozI8QCZJByE4FFF8FAJPINAXkfTUeTLCebYS8yw=", + "ml-yacc.tgz": "sha256-eS7zzvEkkBg8teP3Kb8wMLXogUM6zLukkBXIEo0mm1Y=", + "ml-burg.tgz": "sha256-tRKoTgC0eGBvay6nfS+w8+XFnq2I6oaBltPhSNKCai4=", + "pgraph.tgz": "sha256-t7lrnIUHo9QPYP9VUxSc+BW98Ppc7JuBukjenvHy+jk=", + "trace-debug-profile.tgz": "sha256-ZEEY14wrAxayLUO7EKcnFRfsN78ZIoONXkNCJ0Wyggk=", + "heap2asm.tgz": "sha256-M94j6ElcXRjUYbRZGnvHORBdokEYomC2dB4hbFVOdOM=", + "smlnj-c.tgz": "sha256-ebZX6mgIPCBMA4ygCVMJrh8InqVFY/kNZEY0jwbFw6E=", + "doc.tgz": "sha256-Jml2Do2yufMtN80avD9ffRt5voTmLFIuMTOaiXLhHwo=", + "asdl.tgz": "sha256-nNiLcWjGqyEyp9JVrti+wT2LgxKqOV0GNK5z/NxKTG0=", + "version": "110.99.8" } diff --git a/pkgs/development/libraries/wayland/default.nix b/pkgs/development/libraries/wayland/default.nix index 518fd31e2ffa..388184f03da0 100644 --- a/pkgs/development/libraries/wayland/default.nix +++ b/pkgs/development/libraries/wayland/default.nix @@ -105,7 +105,6 @@ stdenv.mkDerivation (finalAttrs: { meta = with lib; { description = "Core Wayland window system code and protocol"; - mainProgram = "wayland-scanner"; longDescription = '' Wayland is a project to define a protocol for a compositor to talk to its clients as well as a library implementation of the protocol. diff --git a/pkgs/development/tools/parsing/tree-sitter/default.nix b/pkgs/development/tools/parsing/tree-sitter/default.nix index c3bdca43f36a..a481b11d95fe 100644 --- a/pkgs/development/tools/parsing/tree-sitter/default.nix +++ b/pkgs/development/tools/parsing/tree-sitter/default.nix @@ -28,7 +28,7 @@ let # to update: # 1) change all these hashes # 2) nix-build -A tree-sitter.updater.update-all-grammars - # 3) Set NIXPKGS_GITHUB_TOKEN env variable to avoid api rate limit (Use a Personal Access Token from https://github.com/settings/tokens It does not need any permissions) + # 3) Set GITHUB_TOKEN env variable to avoid api rate limit (Use a Personal Access Token from https://github.com/settings/tokens It does not need any permissions) # 4) run the ./result script that is output by that (it updates ./grammars) version = "0.25.3"; hash = "sha256-xafeni6Z6QgPiKzvhCT2SyfPn0agLHo47y+6ExQXkzE="; @@ -43,7 +43,7 @@ let update-all-grammars = callPackage ./update.nix { }; - fetchGrammar = ( + fetchGrammar = v: fetchgit { inherit (v) @@ -52,8 +52,7 @@ let sha256 fetchSubmodules ; - } - ); + }; grammars = runCommand "grammars" { } ( '' @@ -61,7 +60,7 @@ let '' + (lib.concatStrings ( lib.mapAttrsToList ( - name: grammar: "ln -s ${if grammar ? src then grammar.src else fetchGrammar grammar} $out/${name}\n" + name: grammar: "ln -s ${grammar.src or (fetchGrammar grammar)} $out/${name}\n" ) (import ./grammars { inherit lib; }) )) ); @@ -134,7 +133,7 @@ let }; }; in - lib.mapAttrs build (grammars); + lib.mapAttrs build grammars; # Usage: # pkgs.tree-sitter.withPlugins (p: [ p.tree-sitter-c p.tree-sitter-java ... ]) diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/default.nix b/pkgs/development/tools/parsing/tree-sitter/grammars/default.nix index 293d919ef940..8b605c3c9478 100644 --- a/pkgs/development/tools/parsing/tree-sitter/grammars/default.nix +++ b/pkgs/development/tools/parsing/tree-sitter/grammars/default.nix @@ -31,6 +31,7 @@ tree-sitter-fish = lib.importJSON ./tree-sitter-fish.json; tree-sitter-fortran = lib.importJSON ./tree-sitter-fortran.json; tree-sitter-gdscript = lib.importJSON ./tree-sitter-gdscript.json; + tree-sitter-gemini = lib.importJSON ./tree-sitter-gemini.json; tree-sitter-gleam = lib.importJSON ./tree-sitter-gleam.json; tree-sitter-glimmer = lib.importJSON ./tree-sitter-glimmer.json; tree-sitter-glsl = lib.importJSON ./tree-sitter-glsl.json; diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-gemini.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-gemini.json new file mode 100644 index 000000000000..db1db3bfb97c --- /dev/null +++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-gemini.json @@ -0,0 +1,12 @@ +{ + "url": "https://github.com/blessanabraham/tree-sitter-gemini", + "rev": "3cc5e4bdf572d5df4277fc2e54d6299bd59a54b3", + "date": "2023-08-26T22:20:36+03:00", + "path": "/nix/store/ywwyjjaps1swpzy0hndllwka4rg8hbdb-tree-sitter-gemini", + "sha256": "1r965z6cls7ahipf9bpvcvpv4xda7k1j64lvnwf2bkb83qpakdc2", + "hash": "sha256-grWpLh5ozSUct5sSI8M8qnWy72b7ruRuhOpoyswvJuU=", + "fetchLFS": false, + "fetchSubmodules": false, + "deepClone": false, + "leaveDotGit": false +} diff --git a/pkgs/development/tools/parsing/tree-sitter/update.nix b/pkgs/development/tools/parsing/tree-sitter/update.nix index 37cfcf6232e2..c4e35962db3b 100644 --- a/pkgs/development/tools/parsing/tree-sitter/update.nix +++ b/pkgs/development/tools/parsing/tree-sitter/update.nix @@ -336,6 +336,10 @@ let orga = "prestonknopp"; repo = "tree-sitter-gdscript"; }; + "tree-sitter-gemini" = { + orga = "blessanabraham"; + repo = "tree-sitter-gemini"; + }; "tree-sitter-godot-resource" = { orga = "prestonknopp"; repo = "tree-sitter-godot-resource"; @@ -574,15 +578,13 @@ let } ${updateImpl} print-all-grammars-nix-file "$(< ${ jsonFile "all-grammars.json" { - allGrammars = ( - lib.mapAttrsToList ( - nixRepoAttrName: attrs: - attrs - // { - inherit nixRepoAttrName; - } - ) allGrammars - ); + allGrammars = lib.mapAttrsToList ( + nixRepoAttrName: attrs: + attrs + // { + inherit nixRepoAttrName; + } + ) allGrammars; inherit outputDir; } })"