diff --git a/ci/default.nix b/ci/default.nix index 32e067133422..42eeadc67def 100644 --- a/ci/default.nix +++ b/ci/default.nix @@ -18,7 +18,9 @@ let pkgs = import nixpkgs' { inherit system; - config = { }; + config = { + permittedInsecurePackages = [ "nix-2.3.18" ]; + }; overlays = [ ]; }; diff --git a/doc/release-notes/rl-2511.section.md b/doc/release-notes/rl-2511.section.md index d635e04b5941..7d7cf624f365 100644 --- a/doc/release-notes/rl-2511.section.md +++ b/doc/release-notes/rl-2511.section.md @@ -26,6 +26,8 @@ - `gnome-keyring` no longer ships with an SSH agent anymore because it has been deprecated upstream. You should use `gcr_4` instead, which provides the same features. More information on why this was done can be found on [the relevant GCR upstream PR](https://gitlab.gnome.org/GNOME/gcr/-/merge_requests/67). +- `tooling-language-server` has been renamed to `deputy` (both the package and binary), following the rename of the upstream project. + - `lima` package now only includes the guest agent for the host's architecture by default. If your guest VM's architecture differs from your Lima host's, you'll need to enable the `lima-additional-guestagents` package by setting `withAdditionalGuestAgents = true` when overriding lima with this input. - `telegram-desktop` packages now uses `Telegram` for its binary. The previous name was `telegram-desktop`. This is due to [an upstream decision](https://github.com/telegramdesktop/tdesktop/commit/56ff5808a3d766f892bc3c3305afb106b629ef6f) to make the name consistent with other platforms. diff --git a/lib/tests/release.nix b/lib/tests/release.nix index 51260ea0300b..5a1752010745 100644 --- a/lib/tests/release.nix +++ b/lib/tests/release.nix @@ -2,9 +2,16 @@ # The pkgs used for dependencies for the testing itself # Don't test properties of pkgs.lib, but rather the lib in the parent directory system ? builtins.currentSystem, - pkgs ? import ../.. { inherit system; } // { - lib = throw "pkgs.lib accessed, but the lib tests should use nixpkgs' lib path directly!"; - }, + pkgs ? + import ../.. { + inherit system; + config = { + permittedInsecurePackages = [ "nix-2.3.18" ]; + }; + } + // { + lib = throw "pkgs.lib accessed, but the lib tests should use nixpkgs' lib path directly!"; + }, # For testing someone may edit impure.nix to return cross pkgs, use `pkgsBuildBuild` directly so everything here works. pkgsBB ? pkgs.pkgsBuildBuild, nix ? pkgs-nixVersions.stable, diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 999314e3cab3..da73709ad5b7 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -9314,6 +9314,12 @@ githubId = 1447245; name = "Robin Gloster"; }; + globule655 = { + email = "globule655@gmail.com"; + github = "globule655"; + githubId = 47015416; + name = "globule655"; + }; gm6k = { email = "nix@quidecco.pl"; name = "Isidor Zeuner"; @@ -22917,7 +22923,10 @@ github = "ShadowRZ"; githubId = 23130178; name = "夜坂雅"; - keys = [ { fingerprint = "3237 D49E 8F81 5A45 2133 64EA 4FF3 5790 F405 53A9"; } ]; + keys = [ + { fingerprint = "3237 D49E 8F81 5A45 2133 64EA 4FF3 5790 F405 53A9"; } + { fingerprint = "AC59 7AD3 89D1 CC56 18AD 1ED9 B712 3A2B 6B0A E434"; } + ]; }; shadows_withal = { email = "shadows@with.al"; diff --git a/nixos/doc/manual/redirects.json b/nixos/doc/manual/redirects.json index 3cabffb61df8..922d806b4e16 100644 --- a/nixos/doc/manual/redirects.json +++ b/nixos/doc/manual/redirects.json @@ -1085,18 +1085,6 @@ "module-services-taskserver-manual-ca-management": [ "index.html#module-services-taskserver-manual-ca-management" ], - "module-services-sourcehut": [ - "index.html#module-services-sourcehut" - ], - "module-services-sourcehut-basic-usage": [ - "index.html#module-services-sourcehut-basic-usage" - ], - "module-services-sourcehut-configuration": [ - "index.html#module-services-sourcehut-configuration" - ], - "module-services-sourcehut-httpd": [ - "index.html#module-services-sourcehut-httpd" - ], "module-services-gitlab": [ "index.html#module-services-gitlab" ], @@ -2049,6 +2037,13 @@ "sec-release-25.11-incompatibilities": [ "release-notes.html#sec-release-25.11-incompatibilities" ], + "sec-release-25.11-incompatibilities-sourcehut-removed": [ + "release-notes.html#sec-release-25.11-incompatibilities-sourcehut-removed", + "index.html#module-services-sourcehut", + "index.html#module-services-sourcehut-basic-usage", + "index.html#module-services-sourcehut-configuration", + "index.html#module-services-sourcehut-httpd" + ], "sec-release-25.11-notable-changes": [ "release-notes.html#sec-release-25.11-notable-changes" ], diff --git a/nixos/doc/manual/release-notes/rl-2505.section.md b/nixos/doc/manual/release-notes/rl-2505.section.md index 7a3982c95795..44e8e6b84364 100644 --- a/nixos/doc/manual/release-notes/rl-2505.section.md +++ b/nixos/doc/manual/release-notes/rl-2505.section.md @@ -88,6 +88,8 @@ Alongside many enhancements to NixOS modules and general system improvements, th - [Readeck](https://readeck.org/), a read-it later web-application. Available as [services.readeck](#opt-services.readeck.enable). +- [EasyTier](https://github.com/EasyTier/EasyTier), a decentralized VPN solution. Available as [services.easytier](#opt-services.easytier.enable). + - [Traccar](https://www.traccar.org/), a modern GPS Tracking Platform. Available as [services.traccar](#opt-services.traccar.enable). - [Schroot](https://codeberg.org/shelter/reschroot), a lightweight virtualisation tool. Securely enter a chroot and run a command or login shell. Available as [programs.schroot](#opt-programs.schroot.enable). diff --git a/nixos/doc/manual/release-notes/rl-2511.section.md b/nixos/doc/manual/release-notes/rl-2511.section.md index 2b56d3047356..262c062ed2fb 100644 --- a/nixos/doc/manual/release-notes/rl-2511.section.md +++ b/nixos/doc/manual/release-notes/rl-2511.section.md @@ -64,6 +64,8 @@ - The Pocket ID module ([`services.pocket-id`][#opt-services.pocket-id.enable]) and package (`pocket-id`) has been updated to 1.0.0. Some environment variables have been changed or removed, see the [migration guide](https://pocket-id.org/docs/setup/migrate-to-v1/). +- []{#sec-release-25.11-incompatibilities-sourcehut-removed} The `services.sourcehut` module and corresponding `sourcehut` packages were removed due to being broken and unmaintained. + - The `yeahwm` package and `services.xserver.windowManager.yeahwm` module were removed due to the package being broken and unmaintained upstream. - The `services.postgresql` module now sets up a systemd unit `postgresql.target`. Depending on `postgresql.target` guarantees that postgres is in read-write mode and initial/ensure scripts were executed. Depending on `postgresql.service` only guarantees a read-only connection. diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index 9e22b7f5f32b..5eb40adc5647 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -915,7 +915,6 @@ ./services/misc/sickbeard.nix ./services/misc/snapper.nix ./services/misc/soft-serve.nix - ./services/misc/sourcehut ./services/misc/spice-autorandr.nix ./services/misc/spice-vdagentd.nix ./services/misc/spice-webdavd.nix @@ -1116,6 +1115,7 @@ ./services/networking/dnsproxy.nix ./services/networking/doh-proxy-rust.nix ./services/networking/doh-server.nix + ./services/networking/easytier.nix ./services/networking/ejabberd.nix ./services/networking/envoy.nix ./services/networking/epmd.nix diff --git a/nixos/modules/rename.nix b/nixos/modules/rename.nix index 965510d4a526..4956940c8349 100644 --- a/nixos/modules/rename.nix +++ b/nixos/modules/rename.nix @@ -236,6 +236,9 @@ in the program being unmaintained. The options `programs.msmtp.*` can be used instead. '') + (mkRemovedOptionModule [ "services" "sourcehut" ] '' + The sourcehut packages and the corresponding module have been removed due to being broken and unmaintained. + '') (mkRemovedOptionModule [ "services" "tvheadend" ] "The tvheadend package and the corresponding module have been removed as nobody was willing to maintain them and they were stuck on an unmaintained version that required FFmpeg 4; please see https://github.com/NixOS/nixpkgs/pull/332259 if you are interested in maintaining a newer version." ) diff --git a/nixos/modules/services/backup/duplicati.nix b/nixos/modules/services/backup/duplicati.nix index bb205d2ac0dd..b69510f0aecb 100644 --- a/nixos/modules/services/backup/duplicati.nix +++ b/nixos/modules/services/backup/duplicati.nix @@ -6,6 +6,12 @@ }: let cfg = config.services.duplicati; + + parametersFile = + if cfg.parametersFile != null then + cfg.parametersFile + else + pkgs.writeText "duplicati-parameters" cfg.parameters; in { options = { @@ -53,12 +59,48 @@ in Run as root with special care. ''; }; + + parameters = lib.mkOption { + default = ""; + type = lib.types.lines; + example = '' + --webservice-allowedhostnames=* + ''; + description = '' + This option can be used to store some or all of the options given to the + commandline client. + Each line in this option should be of the format --option=value. + The options in this file take precedence over the options provided + through command line arguments. + Duplicati docs: parameters-file + ''; + }; + + parametersFile = lib.mkOption { + default = null; + type = lib.types.nullOr lib.types.path; + description = '' + This file can be used to store some or all of the options given to the + commandline client. + Each line in the file option should be of the format --option=value. + The options in this file take precedence over the options provided + through command line arguments. + Duplicati docs: parameters-file + ''; + }; }; }; config = lib.mkIf cfg.enable { environment.systemPackages = [ cfg.package ]; + assertions = [ + { + assertion = !(cfg.parametersFile != null && cfg.parameters != ""); + message = "cannot set both services.duplicati.parameters and services.duplicati.parametersFile at the same time"; + } + ]; + systemd.services.duplicati = { description = "Duplicati backup"; after = [ "network.target" ]; @@ -67,7 +109,7 @@ in { User = cfg.user; Group = "duplicati"; - ExecStart = "${cfg.package}/bin/duplicati-server --webservice-interface=${cfg.interface} --webservice-port=${toString cfg.port} --server-datafolder=${cfg.dataDir}"; + ExecStart = "${cfg.package}/bin/duplicati-server --webservice-interface=${cfg.interface} --webservice-port=${toString cfg.port} --server-datafolder=${cfg.dataDir} --parameters-file=${parametersFile}"; Restart = "on-failure"; } (lib.mkIf (cfg.dataDir == "/var/lib/duplicati") { diff --git a/nixos/modules/services/misc/sourcehut/default.md b/nixos/modules/services/misc/sourcehut/default.md deleted file mode 100644 index f965c395038a..000000000000 --- a/nixos/modules/services/misc/sourcehut/default.md +++ /dev/null @@ -1,93 +0,0 @@ -# Sourcehut {#module-services-sourcehut} - -[Sourcehut](https://sr.ht.com/) is an open-source, -self-hostable software development platform. The server setup can be automated using -[services.sourcehut](#opt-services.sourcehut.enable). - -## Basic usage {#module-services-sourcehut-basic-usage} - -Sourcehut is a Python and Go based set of applications. -This NixOS module also provides basic configuration integrating Sourcehut into locally running -`services.nginx`, `services.redis.servers.sourcehut`, `services.postfix` -and `services.postgresql` services. - -A very basic configuration may look like this: -```nix -{ pkgs, ... }: -let - fqdn = - let - join = hostName: domain: hostName + optionalString (domain != null) ".${domain}"; - in join config.networking.hostName config.networking.domain; -in { - - networking = { - hostName = "srht"; - domain = "tld"; - firewall.allowedTCPPorts = [ 22 80 443 ]; - }; - - services.sourcehut = { - enable = true; - git.enable = true; - man.enable = true; - meta.enable = true; - nginx.enable = true; - postfix.enable = true; - postgresql.enable = true; - redis.enable = true; - settings = { - "sr.ht" = { - environment = "production"; - global-domain = fqdn; - origin = "https://${fqdn}"; - # Produce keys with srht-keygen from sourcehut.coresrht. - network-key = "/run/keys/path/to/network-key"; - service-key = "/run/keys/path/to/service-key"; - }; - webhooks.private-key= "/run/keys/path/to/webhook-key"; - }; - }; - - security.acme.certs."${fqdn}".extraDomainNames = [ - "meta.${fqdn}" - "man.${fqdn}" - "git.${fqdn}" - ]; - - services.nginx = { - enable = true; - # only recommendedProxySettings are strictly required, but the rest make sense as well. - recommendedTlsSettings = true; - recommendedOptimisation = true; - recommendedGzipSettings = true; - recommendedProxySettings = true; - - # Settings to setup what certificates are used for which endpoint. - virtualHosts = { - "${fqdn}".enableACME = true; - "meta.${fqdn}".useACMEHost = fqdn; - "man.${fqdn}".useACMEHost = fqdn; - "git.${fqdn}".useACMEHost = fqdn; - }; - }; -} -``` - - The `hostName` option is used internally to configure the nginx -reverse-proxy. The `settings` attribute set is -used by the configuration generator and the result is placed in `/etc/sr.ht/config.ini`. - -## Configuration {#module-services-sourcehut-configuration} - -All configuration parameters are also stored in -`/etc/sr.ht/config.ini` which is generated by -the module and linked from the store to ensure that all values from `config.ini` -can be modified by the module. - -## Using an alternative webserver as reverse-proxy (e.g. `httpd`) {#module-services-sourcehut-httpd} - -By default, `nginx` is used as reverse-proxy for `sourcehut`. -However, it's possible to use e.g. `httpd` by explicitly disabling -`nginx` using [](#opt-services.nginx.enable) and fixing the -`settings`. diff --git a/nixos/modules/services/misc/sourcehut/default.nix b/nixos/modules/services/misc/sourcehut/default.nix deleted file mode 100644 index b6e785802206..000000000000 --- a/nixos/modules/services/misc/sourcehut/default.nix +++ /dev/null @@ -1,1568 +0,0 @@ -{ - config, - pkgs, - lib, - ... -}: - -let - inherit (builtins) head tail; - inherit (lib) generators maintainers types; - inherit (lib.attrsets) - attrValues - filterAttrs - mapAttrs - mapAttrsToList - recursiveUpdate - ; - inherit (lib.lists) flatten optional optionals; - inherit (lib.options) - literalExpression - mkEnableOption - mkOption - mkPackageOption - ; - inherit (lib.strings) - concatMapStringsSep - concatStringsSep - optionalString - versionOlder - ; - inherit (lib.trivial) mapNullable; - inherit (lib.modules) - mkBefore - mkDefault - mkForce - mkIf - mkMerge - mkRemovedOptionModule - mkRenamedOptionModule - ; - inherit (config.services) - nginx - postfix - postgresql - redis - ; - inherit (config.users) users groups; - cfg = config.services.sourcehut; - domain = cfg.settings."sr.ht".global-domain; - settingsFormat = pkgs.formats.ini { - listToValue = concatMapStringsSep "," (generators.mkValueStringDefault { }); - mkKeyValue = - k: v: - optionalString (v != null) ( - generators.mkKeyValueDefault { - mkValueString = - v: - if v == true then - "yes" - else if v == false then - "no" - else - generators.mkValueStringDefault { } v; - } "=" k v - ); - }; - configIniOfService = - srv: - settingsFormat.generate "sourcehut-${srv}-config.ini" - # Each service needs access to only a subset of sections (and secrets). - ( - filterAttrs (k: v: v != null) ( - mapAttrs - ( - section: v: - let - srvMatch = builtins.match "^([a-z]*)\\.sr\\.ht(::.*)?$" section; - in - if - srvMatch == null # Include sections shared by all services - || head srvMatch == srv # Include sections for the service being configured - then - v - # Enable Web links and integrations between services. - else if tail srvMatch == [ null ] && cfg.${head srvMatch}.enable then - { - inherit (v) origin; - # mansrht crashes without it - oauth-client-id = v.oauth-client-id or null; - } - # Drop sub-sections of other services - else - null - ) - ( - recursiveUpdate cfg.settings { - # Those paths are mounted using BindPaths= or BindReadOnlyPaths= - # for services needing access to them. - "builds.sr.ht::worker".buildlogs = "/var/log/sourcehut/buildsrht-worker"; - "git.sr.ht".post-update-script = "/usr/bin/git.sr.ht-update-hook"; - "git.sr.ht".repos = cfg.settings."git.sr.ht".repos; - "hg.sr.ht".changegroup-script = "/usr/bin/hg.sr.ht-hook-changegroup"; - "hg.sr.ht".repos = cfg.settings."hg.sr.ht".repos; - # Making this a per service option despite being in a global section, - # so that it uses the redis-server used by the service. - "sr.ht".redis-host = cfg.${srv}.redis.host; - "sr.ht".assets = "${cfg.${srv}.package}/share/sourcehut"; - } - ) - ) - ); - commonServiceSettings = srv: { - origin = mkOption { - description = "URL ${srv}.sr.ht is being served at (protocol://domain)"; - type = types.str; - default = "https://${srv}.${domain}"; - defaultText = "https://${srv}.example.com"; - }; - debug-host = mkOption { - description = "Address to bind the debug server to."; - type = with types; nullOr str; - default = null; - }; - debug-port = mkOption { - description = "Port to bind the debug server to."; - type = with types; nullOr str; - default = null; - }; - connection-string = mkOption { - description = "SQLAlchemy connection string for the database."; - type = types.str; - default = "postgresql:///localhost?user=${srv}srht&host=/run/postgresql"; - }; - migrate-on-upgrade = mkEnableOption "automatic migrations on package upgrade" // { - default = true; - }; - oauth-client-id = mkOption { - description = "${srv}.sr.ht's OAuth client id for meta.sr.ht."; - type = types.str; - }; - oauth-client-secret = mkOption { - description = "${srv}.sr.ht's OAuth client secret for meta.sr.ht."; - type = types.path; - apply = s: "<" + toString s; - }; - api-origin = mkOption { - description = "Origin URL for the API"; - type = types.str; - default = "http://${cfg.listenAddress}:${toString (cfg.${srv}.port + 100)}"; - defaultText = lib.literalMD '' - `"http://''${`[](#opt-services.sourcehut.listenAddress)`}:''${toString (`[](#opt-services.sourcehut.${srv}.port)` + 100)}"` - ''; - }; - }; - - # Specialized python containing all the modules - python = pkgs.sourcehut.python.withPackages ( - ps: with ps; [ - gunicorn - eventlet - # For monitoring Celery: sudo -u listssrht celery --app listssrht.process -b redis+socket:///run/redis-sourcehut/redis.sock?virtual_host=1 flower - flower - # Sourcehut services - srht - buildsrht - gitsrht - hgsrht - hubsrht - listssrht - mansrht - metasrht - # Not a python package - #pagessrht - pastesrht - todosrht - ] - ); - mkOptionNullOrStr = - description: - mkOption { - description = description; - type = with types; nullOr str; - default = null; - }; -in -{ - options.services.sourcehut = { - enable = mkEnableOption '' - sourcehut - git hosting, continuous integration, mailing list, ticket tracking, wiki - and account management services - ''; - - listenAddress = mkOption { - type = types.str; - default = "localhost"; - description = "Address to bind to."; - }; - - python = mkOption { - internal = true; - type = types.package; - default = python; - description = '' - The python package to use. It should contain references to the *srht modules and also - gunicorn. - ''; - }; - - minio = { - enable = mkEnableOption ''local minio integration''; - }; - - nginx = { - enable = mkEnableOption ''local nginx integration''; - virtualHost = mkOption { - type = types.attrs; - default = { }; - description = "Virtual-host configuration merged with all Sourcehut's virtual-hosts."; - }; - }; - - postfix = { - enable = mkEnableOption ''local postfix integration''; - }; - - postgresql = { - enable = mkEnableOption ''local postgresql integration''; - }; - - redis = { - enable = mkEnableOption ''local redis integration in a dedicated redis-server''; - }; - - settings = mkOption { - type = lib.types.submodule { - freeformType = settingsFormat.type; - options."sr.ht" = { - global-domain = mkOption { - description = "Global domain name."; - type = types.str; - example = "example.com"; - }; - environment = mkOption { - description = "Values other than \"production\" adds a banner to each page."; - type = types.enum [ - "development" - "production" - ]; - default = "development"; - }; - network-key = mkOption { - description = '' - An absolute file path (which should be outside the Nix-store) - to a secret key to encrypt internal messages with. Use `srht-keygen network` to - generate this key. It must be consistent between all services and nodes. - ''; - type = types.path; - apply = s: "<" + toString s; - }; - owner-email = mkOption { - description = "Owner's email."; - type = types.str; - default = "contact@example.com"; - }; - owner-name = mkOption { - description = "Owner's name."; - type = types.str; - default = "John Doe"; - }; - site-blurb = mkOption { - description = "Blurb for your site."; - type = types.str; - default = "the hacker's forge"; - }; - site-info = mkOption { - description = "The top-level info page for your site."; - type = types.str; - default = "https://sourcehut.org"; - }; - service-key = mkOption { - description = '' - An absolute file path (which should be outside the Nix-store) - to a key used for encrypting session cookies. Use `srht-keygen service` to - generate the service key. This must be shared between each node of the same - service (e.g. git1.sr.ht and git2.sr.ht), but different services may use - different keys. If you configure all of your services with the same - config.ini, you may use the same service-key for all of them. - ''; - type = types.path; - apply = s: "<" + toString s; - }; - site-name = mkOption { - description = "The name of your network of sr.ht-based sites."; - type = types.str; - default = "sourcehut"; - }; - source-url = mkOption { - description = "The source code for your fork of sr.ht."; - type = types.str; - default = "https://git.sr.ht/~sircmpwn/srht"; - }; - }; - options.mail = { - smtp-host = mkOptionNullOrStr "Outgoing SMTP host."; - smtp-port = mkOption { - description = "Outgoing SMTP port."; - type = with types; nullOr port; - default = null; - }; - smtp-user = mkOptionNullOrStr "Outgoing SMTP user."; - smtp-password = mkOptionNullOrStr "Outgoing SMTP password."; - smtp-from = mkOption { - type = types.str; - description = "Outgoing SMTP FROM."; - }; - error-to = mkOptionNullOrStr "Address receiving application exceptions"; - error-from = mkOptionNullOrStr "Address sending application exceptions"; - pgp-privkey = mkOption { - type = types.str; - description = '' - An absolute file path (which should be outside the Nix-store) - to an OpenPGP private key. - - Your PGP key information (DO NOT mix up pub and priv here) - You must remove the password from your secret key, if present. - You can do this with `gpg --edit-key [key-id]`, - then use the `passwd` command and do not enter a new password. - ''; - }; - pgp-pubkey = mkOption { - type = with types; either path str; - description = "OpenPGP public key."; - }; - pgp-key-id = mkOption { - type = types.str; - description = "OpenPGP key identifier."; - }; - }; - options.objects = { - s3-upstream = mkOption { - description = "Configure the S3-compatible object storage service."; - type = with types; nullOr str; - default = null; - }; - s3-access-key = mkOption { - description = "Access key to the S3-compatible object storage service"; - type = with types; nullOr str; - default = null; - }; - s3-secret-key = mkOption { - description = '' - An absolute file path (which should be outside the Nix-store) - to the secret key of the S3-compatible object storage service. - ''; - type = with types; nullOr path; - default = null; - apply = mapNullable (s: "<" + toString s); - }; - }; - options.webhooks = { - private-key = mkOption { - description = '' - An absolute file path (which should be outside the Nix-store) - to a base64-encoded Ed25519 key for signing webhook payloads. - This should be consistent for all *.sr.ht sites, - as this key will be used to verify signatures - from other sites in your network. - Use the `srht-keygen webhook` command to generate a key. - ''; - type = types.path; - apply = s: "<" + toString s; - }; - }; - - options."builds.sr.ht" = commonServiceSettings "builds" // { - allow-free = mkEnableOption "nonpaying users to submit builds"; - redis = mkOption { - description = "The Redis connection used for the Celery worker."; - type = types.str; - default = "redis+socket:///run/redis-sourcehut-builds.sr.ht/redis.sock?virtual_host=2"; - }; - shell = mkOption { - description = '' - Scripts used to launch on SSH connection. - `/usr/bin/master-shell` on master, - `/usr/bin/runner-shell` on runner. - If master and worker are on the same system - set to `/usr/bin/runner-shell`. - ''; - type = types.enum [ - "/usr/bin/master-shell" - "/usr/bin/runner-shell" - ]; - default = "/usr/bin/master-shell"; - }; - }; - options."builds.sr.ht::worker" = { - bind-address = mkOption { - description = '' - HTTP bind address for serving local build information/monitoring. - ''; - type = types.str; - default = "localhost:8080"; - }; - buildlogs = mkOption { - description = "Path to write build logs."; - type = types.str; - default = "/var/log/sourcehut/buildsrht-worker"; - }; - name = mkOption { - description = '' - Listening address and listening port - of the build runner (with HTTP port if not 80). - ''; - type = types.str; - default = "localhost:5020"; - }; - timeout = mkOption { - description = '' - Max build duration. - See . - ''; - type = types.str; - default = "3m"; - }; - }; - - options."git.sr.ht" = commonServiceSettings "git" // { - outgoing-domain = mkOption { - description = "Outgoing domain."; - type = types.str; - default = "https://git.localhost.localdomain"; - }; - post-update-script = mkOption { - description = '' - A post-update script which is installed in every git repo. - This setting is propagated to newer and existing repositories. - ''; - type = types.path; - default = "${cfg.git.package}/bin/git.sr.ht-update-hook"; - defaultText = "\${pkgs.sourcehut.gitsrht}/bin/git.sr.ht-update-hook"; - }; - repos = mkOption { - description = '' - Path to git repositories on disk. - If changing the default, you must ensure that - the gitsrht's user as read and write access to it. - ''; - type = types.str; - default = "/var/lib/sourcehut/git.sr.ht/repos"; - }; - webhooks = mkOption { - description = "The Redis connection used for the webhooks worker."; - type = types.str; - default = "redis+socket:///run/redis-sourcehut-git.sr.ht/redis.sock?virtual_host=1"; - }; - }; - options."git.sr.ht::api" = { - internal-ipnet = mkOption { - description = '' - Set of IP subnets which are permitted to utilize internal API - authentication. This should be limited to the subnets - from which your *.sr.ht services are running. - See [](#opt-services.sourcehut.listenAddress). - ''; - type = with types; listOf str; - default = [ - "127.0.0.0/8" - "::1/128" - ]; - }; - }; - - options."hg.sr.ht" = commonServiceSettings "hg" // { - changegroup-script = mkOption { - description = '' - A changegroup script which is installed in every mercurial repo. - This setting is propagated to newer and existing repositories. - ''; - type = types.str; - default = "${cfg.hg.package}/bin/hg.sr.ht-hook-changegroup"; - defaultText = "\${pkgs.sourcehut.hgsrht}/bin/hg.sr.ht-hook-changegroup"; - }; - repos = mkOption { - description = '' - Path to mercurial repositories on disk. - If changing the default, you must ensure that - the hgsrht's user as read and write access to it. - ''; - type = types.str; - default = "/var/lib/sourcehut/hg.sr.ht/repos"; - }; - srhtext = mkOptionNullOrStr '' - Path to the srht mercurial extension - (defaults to where the hgsrht code is) - ''; - clone_bundle_threshold = mkOption { - description = ".hg/store size (in MB) past which the nightly job generates clone bundles."; - type = types.ints.unsigned; - default = 50; - }; - hg_ssh = mkOption { - description = "Path to hg-ssh (if not in $PATH)."; - type = types.str; - default = "${pkgs.mercurial}/bin/hg-ssh"; - defaultText = "\${pkgs.mercurial}/bin/hg-ssh"; - }; - webhooks = mkOption { - description = "The Redis connection used for the webhooks worker."; - type = types.str; - default = "redis+socket:///run/redis-sourcehut-hg.sr.ht/redis.sock?virtual_host=1"; - }; - }; - - options."hub.sr.ht" = commonServiceSettings "hub" // { - }; - - options."lists.sr.ht" = commonServiceSettings "lists" // { - allow-new-lists = mkEnableOption "creation of new lists"; - notify-from = mkOption { - description = "Outgoing email for notifications generated by users."; - type = types.str; - default = "lists-notify@localhost.localdomain"; - }; - posting-domain = mkOption { - description = "Posting domain."; - type = types.str; - default = "lists.localhost.localdomain"; - }; - redis = mkOption { - description = "The Redis connection used for the Celery worker."; - type = types.str; - default = "redis+socket:///run/redis-sourcehut-lists.sr.ht/redis.sock?virtual_host=2"; - }; - webhooks = mkOption { - description = "The Redis connection used for the webhooks worker."; - type = types.str; - default = "redis+socket:///run/redis-sourcehut-lists.sr.ht/redis.sock?virtual_host=1"; - }; - }; - options."lists.sr.ht::worker" = { - reject-mimetypes = mkOption { - description = '' - Comma-delimited list of Content-Types to reject. Messages with Content-Types - included in this list are rejected. Multipart messages are always supported, - and each part is checked against this list. - - Uses fnmatch for wildcard expansion. - ''; - type = with types; listOf str; - default = [ "text/html" ]; - }; - reject-url = mkOption { - description = "Reject URL."; - type = types.str; - default = "https://man.sr.ht/lists.sr.ht/etiquette.md"; - }; - sock = mkOption { - description = '' - Path for the lmtp daemon's unix socket. Direct incoming mail to this socket. - Alternatively, specify IP:PORT and an SMTP server will be run instead. - ''; - type = types.str; - default = "/tmp/lists.sr.ht-lmtp.sock"; - }; - sock-group = mkOption { - description = '' - The lmtp daemon will make the unix socket group-read/write - for users in this group. - ''; - type = types.str; - default = "postfix"; - }; - }; - - options."man.sr.ht" = commonServiceSettings "man" // { - }; - - options."meta.sr.ht" = - removeAttrs (commonServiceSettings "meta") [ - "oauth-client-id" - "oauth-client-secret" - ] - // { - webhooks = mkOption { - description = "The Redis connection used for the webhooks worker."; - type = types.str; - default = "redis+socket:///run/redis-sourcehut-meta.sr.ht/redis.sock?virtual_host=1"; - }; - welcome-emails = mkEnableOption "sending stock sourcehut welcome emails after signup"; - }; - options."meta.sr.ht::api" = { - internal-ipnet = mkOption { - description = '' - Set of IP subnets which are permitted to utilize internal API - authentication. This should be limited to the subnets - from which your *.sr.ht services are running. - See [](#opt-services.sourcehut.listenAddress). - ''; - type = with types; listOf str; - default = [ - "127.0.0.0/8" - "::1/128" - ]; - }; - }; - options."meta.sr.ht::aliases" = mkOption { - description = "Aliases for the client IDs of commonly used OAuth clients."; - type = with types; attrsOf int; - default = { }; - example = { - "git.sr.ht" = 12345; - }; - }; - options."meta.sr.ht::billing" = { - enabled = mkEnableOption "the billing system"; - stripe-public-key = mkOptionNullOrStr "Public key for Stripe. Get your keys at "; - stripe-secret-key = - mkOptionNullOrStr '' - An absolute file path (which should be outside the Nix-store) - to a secret key for Stripe. Get your keys at - '' - // { - apply = mapNullable (s: "<" + toString s); - }; - }; - options."meta.sr.ht::settings" = { - registration = mkEnableOption "public registration"; - onboarding-redirect = mkOption { - description = "Where to redirect new users upon registration."; - type = types.str; - default = "https://meta.localhost.localdomain"; - }; - user-invites = mkOption { - description = '' - How many invites each user is issued upon registration - (only applicable if open registration is disabled). - ''; - type = types.ints.unsigned; - default = 5; - }; - }; - - options."pages.sr.ht" = commonServiceSettings "pages" // { - gemini-certs = mkOption { - description = '' - An absolute file path (which should be outside the Nix-store) - to Gemini certificates. - ''; - type = with types; nullOr path; - default = null; - }; - max-site-size = mkOption { - description = "Maximum size of any given site (post-gunzip), in MiB."; - type = types.int; - default = 1024; - }; - user-domain = mkOption { - description = '' - Configures the user domain, if enabled. - All users are given \.this.domain. - ''; - type = with types; nullOr str; - default = null; - }; - }; - options."pages.sr.ht::api" = { - internal-ipnet = mkOption { - description = '' - Set of IP subnets which are permitted to utilize internal API - authentication. This should be limited to the subnets - from which your *.sr.ht services are running. - See [](#opt-services.sourcehut.listenAddress). - ''; - type = with types; listOf str; - default = [ - "127.0.0.0/8" - "::1/128" - ]; - }; - }; - - options."paste.sr.ht" = commonServiceSettings "paste" // { - }; - - options."todo.sr.ht" = commonServiceSettings "todo" // { - notify-from = mkOption { - description = "Outgoing email for notifications generated by users."; - type = types.str; - default = "todo-notify@localhost.localdomain"; - }; - webhooks = mkOption { - description = "The Redis connection used for the webhooks worker."; - type = types.str; - default = "redis+socket:///run/redis-sourcehut-todo.sr.ht/redis.sock?virtual_host=1"; - }; - }; - options."todo.sr.ht::mail" = { - posting-domain = mkOption { - description = "Posting domain."; - type = types.str; - default = "todo.localhost.localdomain"; - }; - sock = mkOption { - description = '' - Path for the lmtp daemon's unix socket. Direct incoming mail to this socket. - Alternatively, specify IP:PORT and an SMTP server will be run instead. - ''; - type = types.str; - default = "/tmp/todo.sr.ht-lmtp.sock"; - }; - sock-group = mkOption { - description = '' - The lmtp daemon will make the unix socket group-read/write - for users in this group. - ''; - type = types.str; - default = "postfix"; - }; - }; - }; - default = { }; - description = '' - The configuration for the sourcehut network. - ''; - }; - - builds = { - enableWorker = mkEnableOption '' - worker for builds.sr.ht - - ::: {.warning} - For smaller deployments, job runners can be installed alongside the master server - but even if you only build your own software, integration with other services - may cause you to run untrusted builds - (e.g. automatic testing of patches via listssrht). - See . - ::: - ''; - - images = mkOption { - type = with types; attrsOf (attrsOf (attrsOf package)); - default = { }; - example = lib.literalExpression '' - (let - # Pinning unstable to allow usage with flakes and limit rebuilds. - pkgs_unstable = builtins.fetchGit { - url = "https://github.com/NixOS/nixpkgs"; - rev = "ff96a0fa5635770390b184ae74debea75c3fd534"; - ref = "nixos-unstable"; - }; - image_from_nixpkgs = (import ("''${pkgs.sourcehut.buildsrht}/lib/images/nixos/image.nix") { - pkgs = (import pkgs_unstable {}); - }); - in - { - nixos.unstable.x86_64 = image_from_nixpkgs; - } - )''; - description = '' - Images for builds.sr.ht. Each package should be distro.release.arch and point to a /nix/store/package/root.img.qcow2. - ''; - }; - }; - - git = { - gitPackage = mkPackageOption pkgs "git" { - example = "gitFull"; - }; - fcgiwrap.preforkProcess = mkOption { - description = "Number of fcgiwrap processes to prefork."; - type = types.int; - default = 4; - }; - }; - - hg = { - mercurialPackage = mkPackageOption pkgs "mercurial" { }; - cloneBundles = mkOption { - type = types.bool; - default = false; - description = '' - Generate clonebundles (which require more disk space but dramatically speed up cloning large repositories). - ''; - }; - }; - - lists = { - process = { - extraArgs = mkOption { - type = with types; listOf str; - default = [ - "--loglevel DEBUG" - "--pool eventlet" - "--without-heartbeat" - ]; - description = "Extra arguments passed to the Celery responsible for processing mails."; - }; - celeryConfig = mkOption { - type = types.lines; - default = ""; - description = "Content of the `celeryconfig.py` used by the Celery of `listssrht-process`."; - }; - }; - }; - }; - - config = mkIf cfg.enable (mkMerge [ - { - # TODO: make configurable - environment.systemPackages = [ pkgs.sourcehut.coresrht ]; - - services.sourcehut.settings = { - "git.sr.ht".outgoing-domain = mkDefault "https://git.${domain}"; - "lists.sr.ht".notify-from = mkDefault "lists-notify@${domain}"; - "lists.sr.ht".posting-domain = mkDefault "lists.${domain}"; - "meta.sr.ht::settings".onboarding-redirect = mkDefault "https://meta.${domain}"; - "todo.sr.ht".notify-from = mkDefault "todo-notify@${domain}"; - "todo.sr.ht::mail".posting-domain = mkDefault "todo.${domain}"; - }; - } - (mkIf cfg.postgresql.enable { - assertions = [ - { - assertion = postgresql.enable; - message = "postgresql must be enabled and configured"; - } - ]; - }) - (mkIf cfg.postfix.enable { - assertions = [ - { - assertion = postfix.enable; - message = "postfix must be enabled and configured"; - } - ]; - # Needed for sharing the LMTP sockets with JoinsNamespaceOf= - systemd.services.postfix.serviceConfig.PrivateTmp = true; - }) - (mkIf cfg.redis.enable { - services.redis.vmOverCommit = mkDefault true; - }) - (mkIf cfg.nginx.enable { - assertions = [ - { - assertion = nginx.enable; - message = "nginx must be enabled and configured"; - } - ]; - # For proxyPass= in virtual-hosts for Sourcehut services. - services.nginx.recommendedProxySettings = mkDefault true; - }) - (mkIf (cfg.builds.enable || cfg.git.enable || cfg.hg.enable) { - services.openssh = { - # Note that sshd will continue to honor AuthorizedKeysFile. - # Note that you may want automatically rotate - # or link to /dev/null the following log files: - # - /var/log/gitsrht-dispatch - # - /var/log/{build,git,hg}srht-keys - # - /var/log/{git,hg}srht-shell - # - /var/log/gitsrht-update-hook - authorizedKeysCommand = ''/etc/ssh/sourcehut/subdir/srht-dispatch "%u" "%h" "%t" "%k"''; - # srht-dispatch will setuid/setgid according to [git.sr.ht::dispatch] - authorizedKeysCommandUser = "root"; - extraConfig = '' - PermitUserEnvironment SRHT_* - ''; - startWhenNeeded = false; - }; - environment.etc."ssh/sourcehut/config.ini".source = - settingsFormat.generate "sourcehut-dispatch-config.ini" - (filterAttrs (k: v: k == "git.sr.ht::dispatch") cfg.settings); - environment.etc."ssh/sourcehut/subdir/srht-dispatch" = { - # sshd_config(5): The program must be owned by root, not writable by group or others - mode = "0755"; - source = pkgs.writeShellScript "srht-dispatch-wrapper" '' - set -e - set -x - cd /etc/ssh/sourcehut/subdir - ${cfg.git.package}/bin/git.sr.ht-dispatch "$@" - ''; - }; - systemd.tmpfiles.settings."10-sourcehut-gitsrht" = mkIf cfg.git.enable (mkMerge [ - (builtins.listToAttrs ( - map - (name: { - name = "/var/log/sourcehut/git.sr.ht-${name}"; - value.f = { - inherit (cfg.git) user group; - mode = "0644"; - }; - }) - [ - "keys" - "shell" - "update-hook" - ] - )) - { - ${cfg.settings."git.sr.ht".repos}.d = { - inherit (cfg.git) user group; - mode = "0644"; - }; - } - ]); - systemd.services.sshd = { - preStart = mkIf cfg.hg.enable '' - chown ${cfg.hg.user}:${cfg.hg.group} /var/log/sourcehut/hg.sr.ht-keys - ''; - serviceConfig = { - LogsDirectory = "sourcehut"; - BindReadOnlyPaths = - # Note that those /usr/bin/* paths are hardcoded in multiple places in *.sr.ht, - # for instance to get the user from the [git.sr.ht::dispatch] settings. - # *srht-keys needs to: - # - access a redis-server in [sr.ht] redis-host, - # - access the PostgreSQL server in [*.sr.ht] connection-string, - # - query metasrht-api (through the HTTP API). - # Using this has the side effect of creating empty files in /usr/bin/ - optionals cfg.builds.enable [ - "${pkgs.writeShellScript "buildsrht-keys-wrapper" '' - set -e - cd /run/sourcehut/buildsrht/subdir - exec -a "$0" ${cfg.builds.package}/bin/builds.sr.ht-keys "$@" - ''}:/usr/bin/buildsrht-keys" - "${cfg.builds.package}/bin/master-shell:/usr/bin/master-shell" - "${cfg.builds.package}/bin/runner-shell:/usr/bin/runner-shell" - ] - ++ optionals cfg.git.enable [ - # /path/to/gitsrht-keys calls /path/to/gitsrht-shell, - # or [git.sr.ht] shell= if set. - "${pkgs.writeShellScript "gitsrht-keys-wrapper" '' - set -e - cd /run/sourcehut/git.sr.ht/subdir - exec -a "$0" ${cfg.git.package}/bin/git.sr.ht-keys "$@" - ''}:/usr/bin/git.sr.ht-keys" - "${pkgs.writeShellScript "gitsrht-shell-wrapper" '' - set -e - cd /run/sourcehut/git.sr.ht/subdir - export PATH="${cfg.git.gitPackage}/bin:$PATH" - export SRHT_CONFIG=/run/sourcehut/git.sr.ht/config.ini - exec -a "$0" ${cfg.git.package}/bin/git.sr.ht-shell "$@" - ''}:/usr/bin/git.sr.ht-shell" - "${pkgs.writeShellScript "gitsrht-update-hook" '' - set -e - export SRHT_CONFIG=/run/sourcehut/git.sr.ht/config.ini - # hooks/post-update calls /usr/bin/gitsrht-update-hook as hooks/stage-3 - # but this wrapper being a bash script, it overrides $0 with /usr/bin/gitsrht-update-hook - # hence this hack to put hooks/stage-3 back into gitsrht-update-hook's $0 - if test "''${STAGE3:+set}" - then - exec -a hooks/stage-3 ${cfg.git.package}/bin/git.sr.ht-update-hook "$@" - else - export STAGE3=set - exec -a "$0" ${cfg.git.package}/bin/git.sr.ht-update-hook "$@" - fi - ''}:/usr/bin/git.sr.ht-update-hook" - ] - ++ optionals cfg.hg.enable [ - # /path/to/hgsrht-keys calls /path/to/hgsrht-shell, - # or [hg.sr.ht] shell= if set. - "${pkgs.writeShellScript "hgsrht-keys-wrapper" '' - set -e - cd /run/sourcehut/hg.sr.ht/subdir - exec -a "$0" ${cfg.hg.package}/bin/hg.sr.ht-keys "$@" - ''}:/usr/bin/hg.sr.ht-keys" - "${pkgs.writeShellScript "hg.sr.ht-shell-wrapper" '' - set -e - cd /run/sourcehut/hg.sr.ht/subdir - exec -a "$0" ${cfg.hg.package}/bin/hg.sr.ht-shell "$@" - ''}:/usr/bin/hg.sr.ht-shell" - # Mercurial's changegroup hooks are run relative to their repository's directory, - # but hgsrht-hook-changegroup looks up ./config.ini - "${pkgs.writeShellScript "hgsrht-hook-changegroup" '' - set -e - test -e "''$PWD"/config.ini || - ln -s /run/sourcehut/hg.sr.ht/config.ini "''$PWD"/config.ini - exec -a "$0" ${cfg.hg.package}/bin/hg.sr.ht-hook-changegroup "$@" - ''}:/usr/bin/hg.sr.ht-hook-changegroup" - ]; - }; - }; - }) - ]); - - imports = [ - - (import ./service.nix "builds" { - inherit configIniOfService; - pkgname = "buildsrht"; - port = 5002; - extraServices."build.sr.ht-api" = { - serviceConfig.Restart = "always"; - serviceConfig.RestartSec = "5s"; - serviceConfig.ExecStart = "${cfg.builds.package}/bin/builds.sr.ht-api -b ${cfg.listenAddress}:${ - toString (cfg.builds.port + 100) - }"; - }; - # TODO: a celery worker on the master and worker are apparently needed - extraServices."build.sr.ht-worker" = - let - qemuPackage = pkgs.qemu_kvm; - serviceName = "buildsrht-worker"; - statePath = "/var/lib/sourcehut/${serviceName}"; - in - mkIf cfg.builds.enableWorker { - path = [ - pkgs.openssh - pkgs.docker - ]; - preStart = '' - set -x - if test -z "$(docker images -q qemu:latest 2>/dev/null)" \ - || test "$(cat ${statePath}/docker-image-qemu)" != "${qemuPackage.version}" - then - # Create and import qemu:latest image for docker - ${ - pkgs.dockerTools.streamLayeredImage { - name = "qemu"; - tag = "latest"; - contents = [ qemuPackage ]; - } - } | docker load - # Mark down current package version - echo '${qemuPackage.version}' >${statePath}/docker-image-qemu - fi - ''; - serviceConfig = { - ExecStart = "${cfg.builds.package}/bin/builds.sr.ht-worker"; - BindPaths = [ cfg.settings."builds.sr.ht::worker".buildlogs ]; - LogsDirectory = [ "sourcehut/${serviceName}" ]; - RuntimeDirectory = [ "sourcehut/${serviceName}/subdir" ]; - StateDirectory = [ "sourcehut/${serviceName}" ]; - TimeoutStartSec = "1800s"; - # buildsrht-worker looks up ../config.ini - WorkingDirectory = "-" + "/run/sourcehut/${serviceName}/subdir"; - }; - }; - extraConfig = - let - image_dirs = flatten ( - mapAttrsToList ( - distro: revs: - mapAttrsToList ( - rev: archs: - mapAttrsToList ( - arch: image: - pkgs.runCommand "buildsrht-images" { } '' - mkdir -p $out/${distro}/${rev}/${arch} - ln -s ${image}/*.qcow2 $out/${distro}/${rev}/${arch}/root.img.qcow2 - '' - ) archs - ) revs - ) cfg.builds.images - ); - image_dir_pre = pkgs.symlinkJoin { - name = "buildsrht-worker-images-pre"; - paths = image_dirs; - # FIXME: not working, apparently because ubuntu/latest is a broken link - # ++ [ "${cfg.builds.package}/lib/images" ]; - }; - image_dir = pkgs.runCommand "buildsrht-worker-images" { } '' - mkdir -p $out/images - cp -Lr ${image_dir_pre}/* $out/images - ''; - in - mkMerge [ - { - users.users.${cfg.builds.user}.shell = pkgs.bash; - - virtualisation.docker.enable = true; - - services.sourcehut.settings = mkMerge [ - { - # Note that git.sr.ht::dispatch is not a typo, - # gitsrht-dispatch always use this section - "git.sr.ht::dispatch"."/usr/bin/builds.sr.ht-keys" = - mkDefault "${cfg.builds.user}:${cfg.builds.group}"; - } - (mkIf cfg.builds.enableWorker { - "builds.sr.ht::worker".shell = "/usr/bin/runner-shell"; - "builds.sr.ht::worker".images = mkDefault "${image_dir}/images"; - "builds.sr.ht::worker".controlcmd = mkDefault "${image_dir}/images/control"; - }) - ]; - } - (mkIf cfg.builds.enableWorker { - users.groups = { - docker.members = [ cfg.builds.user ]; - }; - }) - (mkIf (cfg.builds.enableWorker && cfg.nginx.enable) { - # Allow nginx access to buildlogs - users.users.${nginx.user}.extraGroups = [ cfg.builds.group ]; - systemd.services.nginx = { - serviceConfig.BindReadOnlyPaths = [ cfg.settings."builds.sr.ht::worker".buildlogs ]; - }; - services.nginx.virtualHosts."logs.${domain}" = mkMerge [ - { - /* - FIXME: is a listen needed? - listen = with builtins; - # FIXME: not compatible with IPv6 - let address = split ":" cfg.settings."builds.sr.ht::worker".name; in - [{ addr = elemAt address 0; port = lib.toInt (elemAt address 2); }]; - */ - locations."/logs/".alias = cfg.settings."builds.sr.ht::worker".buildlogs + "/"; - } - cfg.nginx.virtualHost - ]; - }) - ]; - }) - - (import ./service.nix "git" ( - let - baseService = { - path = [ cfg.git.gitPackage ]; - serviceConfig.BindPaths = [ - "${cfg.settings."git.sr.ht".repos}:/var/lib/sourcehut/git.sr.ht/repos" - ]; - }; - in - { - inherit configIniOfService; - mainService = mkMerge [ - baseService - { - serviceConfig.StateDirectory = [ - "sourcehut/git.sr.ht" - "sourcehut/git.sr.ht/repos" - ]; - preStart = mkIf (versionOlder config.system.stateVersion "22.05") (mkBefore '' - # Fix Git hooks of repositories pre-dating https://github.com/NixOS/nixpkgs/pull/133984 - ( - set +f - shopt -s nullglob - for h in /var/lib/sourcehut/git.sr.ht/repos/~*/*/hooks/{pre-receive,update,post-update} - do ln -fnsv /usr/bin/git.sr.ht-update-hook "$h"; done - ) - ''); - } - ]; - port = 5001; - webhooks = true; - extraTimers."git.sr.ht-periodic" = { - service = baseService; - timerConfig.OnCalendar = [ "*:0/20" ]; - }; - extraConfig = mkMerge [ - { - # https://stackoverflow.com/questions/22314298/git-push-results-in-fatal-protocol-error-bad-line-length-character-this - # Probably could use gitsrht-shell if output is restricted to just parameters... - users.users.${cfg.git.user}.shell = pkgs.bash; - services.sourcehut.settings = { - "git.sr.ht::dispatch"."/usr/bin/git.sr.ht-keys" = mkDefault "${cfg.git.user}:${cfg.git.group}"; - }; - systemd.services.sshd = baseService; - } - (mkIf cfg.nginx.enable { - services.nginx.virtualHosts."git.${domain}" = { - locations."/authorize" = { - proxyPass = "http://${cfg.listenAddress}:${toString cfg.git.port}"; - extraConfig = '' - proxy_pass_request_body off; - proxy_set_header Content-Length ""; - proxy_set_header X-Original-URI $request_uri; - ''; - }; - locations."~ ^/([^/]+)/([^/]+)/(HEAD|info/refs|objects/info/.*|git-upload-pack).*$" = { - root = "/var/lib/sourcehut/git.sr.ht/repos"; - fastcgiParams = { - GIT_HTTP_EXPORT_ALL = ""; - GIT_PROJECT_ROOT = "$document_root"; - PATH_INFO = "$uri"; - SCRIPT_FILENAME = "${cfg.git.gitPackage}/bin/git-http-backend"; - }; - extraConfig = '' - auth_request /authorize; - fastcgi_read_timeout 500s; - fastcgi_pass unix:/run/git.sr.ht-fcgiwrap.sock; - gzip off; - ''; - }; - }; - systemd.sockets."git.sr.ht-fcgiwrap" = { - before = [ "nginx.service" ]; - wantedBy = [ - "sockets.target" - "git.sr.ht.service" - ]; - # This path remains accessible to nginx.service, which has no RootDirectory= - socketConfig.ListenStream = "/run/git.sr.ht-fcgiwrap.sock"; - socketConfig.SocketUser = nginx.user; - socketConfig.SocketMode = "600"; - }; - }) - ]; - extraServices."git.sr.ht-api".serviceConfig = { - Restart = "always"; - RestartSec = "5s"; - ExecStart = "${cfg.git.package}/bin/git.sr.ht-api -b ${cfg.listenAddress}:${toString (cfg.git.port + 100)}"; - BindPaths = [ "${cfg.settings."git.sr.ht".repos}:/var/lib/sourcehut/git.sr.ht/repos" ]; - }; - extraServices."git.sr.ht-fcgiwrap" = mkIf cfg.nginx.enable { - serviceConfig = { - # Socket is passed by gitsrht-fcgiwrap.socket - ExecStart = "${pkgs.fcgiwrap}/bin/fcgiwrap -c ${toString cfg.git.fcgiwrap.preforkProcess}"; - # No need for config.ini - ExecStartPre = mkForce [ ]; - # FIXME: Fails to start with dynamic user - # User = null; - # DynamicUser = true; - BindReadOnlyPaths = [ "${cfg.settings."git.sr.ht".repos}:/var/lib/sourcehut/git.sr.ht/repos" ]; - IPAddressDeny = "any"; - InaccessiblePaths = [ - "-+/run/postgresql" - "-+/run/redis-sourcehut" - ]; - PrivateNetwork = true; - RestrictAddressFamilies = mkForce [ "none" ]; - SystemCallFilter = mkForce [ - "@system-service" - "~@aio" - "~@keyring" - "~@memlock" - "~@privileged" - "~@resources" - "~@setuid" - # @timer is needed for alarm() - ]; - }; - }; - } - )) - - (import ./service.nix "hg" ( - let - baseService = { - path = [ cfg.hg.mercurialPackage ]; - serviceConfig.BindPaths = [ "${cfg.settings."hg.sr.ht".repos}:/var/lib/sourcehut/hg.sr.ht/repos" ]; - }; - in - { - inherit configIniOfService; - mainService = mkMerge [ - baseService - { - serviceConfig.StateDirectory = [ - "sourcehut/hg.sr.ht" - "sourcehut/hg.sr.ht/repos" - ]; - } - ]; - port = 5010; - webhooks = true; - extraTimers."hg.sr.ht-periodic" = { - service = baseService; - timerConfig.OnCalendar = [ "*:0/20" ]; - }; - extraTimers."hg.sr.ht-clonebundles" = mkIf cfg.hg.cloneBundles { - service = baseService; - timerConfig.OnCalendar = [ "daily" ]; - timerConfig.AccuracySec = "1h"; - }; - extraServices."hg.sr.ht-api" = { - serviceConfig.Restart = "always"; - serviceConfig.RestartSec = "5s"; - serviceConfig.ExecStart = "${cfg.hgsrht.package}/bin/hg.sr.ht-api -b ${cfg.listenAddress}:${toString (cfg.hg.port + 100)}"; - }; - extraConfig = mkMerge [ - { - users.users.${cfg.hg.user}.shell = pkgs.bash; - services.sourcehut.settings = { - # Note that git.sr.ht::dispatch is not a typo, - # gitsrht-dispatch always uses this section. - "git.sr.ht::dispatch"."/usr/bin/hg.sr.ht-keys" = mkDefault "${cfg.hg.user}:${cfg.hg.group}"; - }; - systemd.services.sshd = baseService; - } - (mkIf cfg.nginx.enable { - # Allow nginx access to repositories - users.users.${nginx.user}.extraGroups = [ cfg.hg.group ]; - services.nginx.virtualHosts."hg.${domain}" = { - locations."/authorize" = { - proxyPass = "http://${cfg.listenAddress}:${toString cfg.hg.port}"; - extraConfig = '' - proxy_pass_request_body off; - proxy_set_header Content-Length ""; - proxy_set_header X-Original-URI $request_uri; - ''; - }; - # Let clients reach pull bundles. We don't really need to lock this down even for - # private repos because the bundles are named after the revision hashes... - # so someone would need to know or guess a SHA value to download anything. - # TODO: proxyPass to an hg serve service? - locations."~ ^/[~^][a-z0-9_]+/[a-zA-Z0-9_.-]+/\\.hg/bundles/.*$" = { - root = "/var/lib/nginx/hg.sr.ht/repos"; - extraConfig = '' - auth_request /authorize; - gzip off; - ''; - }; - }; - systemd.services.nginx = { - serviceConfig.BindReadOnlyPaths = [ - "${cfg.settings."hg.sr.ht".repos}:/var/lib/nginx/hg.sr.ht/repos" - ]; - }; - }) - ]; - } - )) - - (import ./service.nix "hub" { - inherit configIniOfService; - port = 5014; - extraConfig = { - services.nginx = mkIf cfg.nginx.enable { - virtualHosts."hub.${domain}" = mkMerge [ - { - serverAliases = [ domain ]; - } - cfg.nginx.virtualHost - ]; - }; - }; - }) - - (import ./service.nix "lists" ( - let - srvsrht = "listssrht"; - in - { - inherit configIniOfService; - port = 5006; - webhooks = true; - extraServices."lists.sr.ht-api" = { - serviceConfig.Restart = "always"; - serviceConfig.RestartSec = "5s"; - serviceConfig.ExecStart = "${cfg.lists.package}/bin/lists.sr.ht-api -b ${cfg.listenAddress}:${ - toString (cfg.lists.port + 100) - }"; - }; - # Receive the mail from Postfix and enqueue them into Redis and PostgreSQL - extraServices."lists.sr.ht-lmtp" = { - wants = [ "postfix.service" ]; - unitConfig.JoinsNamespaceOf = optional cfg.postfix.enable "postfix.service"; - serviceConfig.ExecStart = "${cfg.lists.package}/bin/lists.sr.ht-lmtp"; - # Avoid crashing: os.chown(sock, os.getuid(), sock_gid) - serviceConfig.PrivateUsers = mkForce false; - }; - # Dequeue the mails from Redis and dispatch them - extraServices."lists.sr.ht-process" = { - serviceConfig = { - preStart = '' - cp ${pkgs.writeText "${srvsrht}-webhooks-celeryconfig.py" cfg.lists.process.celeryConfig} \ - /run/sourcehut/${srvsrht}-webhooks/celeryconfig.py - ''; - ExecStart = - "${cfg.python}/bin/celery --app listssrht.process worker --hostname listssrht-process@%%h " - + concatStringsSep " " cfg.lists.process.extraArgs; - # Avoid crashing: os.getloadavg() - ProcSubset = mkForce "all"; - }; - }; - extraConfig = mkIf cfg.postfix.enable { - users.groups.${postfix.group}.members = [ cfg.lists.user ]; - services.sourcehut.settings."lists.sr.ht::mail".sock-group = postfix.group; - services.postfix = { - destination = [ "lists.${domain}" ]; - # FIXME: an accurate recipient list should be queried - # from the lists.sr.ht PostgreSQL database to avoid backscattering. - # But usernames are unfortunately not in that database but in meta.sr.ht. - # Note that two syntaxes are allowed: - # - ~username/list-name@lists.${domain} - # - u.username.list-name@lists.${domain} - localRecipients = [ "@lists.${domain}" ]; - transport = '' - lists.${domain} lmtp:unix:${cfg.settings."lists.sr.ht::worker".sock} - ''; - }; - }; - } - )) - - (import ./service.nix "man" { - inherit configIniOfService; - port = 5004; - }) - - (import ./service.nix "meta" { - inherit configIniOfService; - port = 5000; - webhooks = true; - extraTimers.metasrht-daily.timerConfig = { - OnCalendar = [ "daily" ]; - AccuracySec = "1h"; - }; - extraServices."meta.sr.ht-api" = { - serviceConfig.Restart = "always"; - serviceConfig.RestartSec = "5s"; - preStart = - "set -x\n" - + concatStringsSep "\n\n" ( - attrValues ( - mapAttrs ( - k: s: - let - srvMatch = builtins.match "^([a-z]*)\\.sr\\.ht$" k; - srv = head srvMatch; - in - # Configure client(s) as "preauthorized" - optionalString (srvMatch != null && cfg.${srv}.enable && ((s.oauth-client-id or null) != null)) '' - # Configure ${srv}'s OAuth client as "preauthorized" - ${postgresql.package}/bin/psql '${cfg.settings."meta.sr.ht".connection-string}' \ - -c "UPDATE oauthclient SET preauthorized = true WHERE client_id = '${s.oauth-client-id}'" - '' - ) cfg.settings - ) - ); - serviceConfig.ExecStart = "${cfg.meta.package}/bin/meta.sr.ht-api -b ${cfg.listenAddress}:${toString (cfg.meta.port + 100)}"; - }; - extraConfig = { - assertions = [ - { - assertion = - let - s = cfg.settings."meta.sr.ht::billing"; - in - s.enabled == "yes" -> (s.stripe-public-key != null && s.stripe-secret-key != null); - message = "If meta.sr.ht::billing is enabled, the keys must be defined."; - } - ]; - environment.systemPackages = optional cfg.meta.enable ( - pkgs.writeShellScriptBin "meta.sr.ht-manageuser" '' - set -eux - if test "$(${pkgs.coreutils}/bin/id -n -u)" != '${cfg.meta.user}' - then exec sudo -u '${cfg.meta.user}' "$0" "$@" - else - # In order to load config.ini - if cd /run/sourcehut/meta.sr.ht - then exec ${cfg.meta.package}/bin/meta.sr.ht-manageuser "$@" - else cat <${stateDir}/db - fi - - ${optionalString cfg.settings.${iniKey}.migrate-on-upgrade '' - # Just try all the migrations because they're not linked to the version - for sql in ${package}/share/sql/migrations/*.sql; do - ${postgresql.package}/bin/psql '${cfg.settings.${iniKey}.connection-string}' -f "$sql" || true - done - ''} - - # Disable webhook - touch ${stateDir}/webhook - ''; - serviceConfig = { - ExecStart = mkForce "${cfg.pages.package}/bin/pages.sr.ht -b ${cfg.listenAddress}:${toString cfg.pages.port}"; - }; - }; - }) - - (import ./service.nix "paste" { - inherit configIniOfService; - port = 5011; - extraServices."paste.sr.ht-api" = { - serviceConfig.Restart = "always"; - serviceConfig.RestartSec = "5s"; - serviceConfig.ExecStart = "${cfg.paste.package}/bin/paste.sr.ht-api -b ${cfg.listenAddress}:${ - toString (cfg.paste.port + 100) - }"; - }; - }) - - (import ./service.nix "todo" { - inherit configIniOfService; - port = 5003; - webhooks = true; - extraServices."todo.sr.ht-api" = { - serviceConfig.Restart = "always"; - serviceConfig.RestartSec = "5s"; - serviceConfig.ExecStart = "${cfg.todo.package}/bin/todo.sr.ht-api -b ${cfg.listenAddress}:${toString (cfg.todo.port + 100)}"; - }; - extraServices."todo.sr.ht-lmtp" = { - wants = [ "postfix.service" ]; - unitConfig.JoinsNamespaceOf = optional cfg.postfix.enable "postfix.service"; - serviceConfig.ExecStart = "${cfg.todo.package}/bin/todo.sr.ht-lmtp"; - # Avoid crashing: os.chown(sock, os.getuid(), sock_gid) - serviceConfig.PrivateUsers = mkForce false; - }; - extraConfig = mkIf cfg.postfix.enable { - users.groups.${postfix.group}.members = [ cfg.todo.user ]; - services.sourcehut.settings."todo.sr.ht::mail".sock-group = postfix.group; - services.postfix = { - destination = [ "todo.${domain}" ]; - # FIXME: an accurate recipient list should be queried - # from the todo.sr.ht PostgreSQL database to avoid backscattering. - # But usernames are unfortunately not in that database but in meta.sr.ht. - # Note that two syntaxes are allowed: - # - ~username/tracker-name@todo.${domain} - # - u.username.tracker-name@todo.${domain} - localRecipients = [ "@todo.${domain}" ]; - transport = '' - todo.${domain} lmtp:unix:${cfg.settings."todo.sr.ht::mail".sock} - ''; - }; - }; - }) - - (mkRenamedOptionModule - [ "services" "sourcehut" "originBase" ] - [ "services" "sourcehut" "settings" "sr.ht" "global-domain" ] - ) - (mkRenamedOptionModule - [ "services" "sourcehut" "address" ] - [ "services" "sourcehut" "listenAddress" ] - ) - - (mkRemovedOptionModule [ "services" "sourcehut" "dispatch" ] '' - dispatch is deprecated. See https://sourcehut.org/blog/2022-08-01-dispatch-deprecation-plans/ - for more information. - '') - - (mkRemovedOptionModule [ "services" "sourcehut" "services" ] '' - This option was removed in favor of individual .enable flags. - '') - ]; - - meta.doc = ./default.md; - meta.maintainers = with maintainers; [ - tomberek - nessdoor - christoph-heiss - ]; -} diff --git a/nixos/modules/services/misc/sourcehut/service.nix b/nixos/modules/services/misc/sourcehut/service.nix deleted file mode 100644 index 65df1a05b86e..000000000000 --- a/nixos/modules/services/misc/sourcehut/service.nix +++ /dev/null @@ -1,499 +0,0 @@ -srv: -{ - configIniOfService, - pkgname ? "${srv}srht", # Because "buildsrht" does not follow that pattern (missing an "s"). - srvsrht ? "${srv}.sr.ht", - iniKey ? "${srv}.sr.ht", - webhooks ? false, - extraTimers ? { }, - mainService ? { }, - extraServices ? { }, - extraConfig ? { }, - port, -}: -{ - config, - lib, - pkgs, - ... -}: - -let - inherit (lib) types; - inherit (lib.attrsets) mapAttrs optionalAttrs; - inherit (lib.lists) optional; - inherit (lib.modules) - mkBefore - mkDefault - mkForce - mkIf - mkMerge - ; - inherit (lib.options) mkEnableOption mkOption mkPackageOption; - inherit (lib.strings) concatStringsSep hasSuffix optionalString; - inherit (config.services) postgresql; - redis = config.services.redis.servers."sourcehut-${srvsrht}"; - inherit (config.users) users; - cfg = config.services.sourcehut; - configIni = configIniOfService srv; - srvCfg = cfg.${srv}; - baseService = - serviceName: - { - allowStripe ? false, - }: - extraService: - let - runDir = "/run/sourcehut/${serviceName}"; - rootDir = "/run/sourcehut/chroots/${serviceName}"; - in - mkMerge [ - extraService - { - after = - [ "network.target" ] - ++ optional cfg.postgresql.enable "postgresql.target" - ++ optional cfg.redis.enable "redis-sourcehut-${srvsrht}.service"; - requires = - optional cfg.postgresql.enable "postgresql.target" - ++ optional cfg.redis.enable "redis-sourcehut-${srvsrht}.service"; - path = [ pkgs.gawk ]; - environment.HOME = runDir; - serviceConfig = { - User = mkDefault srvCfg.user; - Group = mkDefault srvCfg.group; - RuntimeDirectory = [ - "sourcehut/${serviceName}" - # Used by *srht-keys which reads ../config.ini - "sourcehut/${serviceName}/subdir" - "sourcehut/chroots/${serviceName}" - ]; - RuntimeDirectoryMode = "2750"; - # No need for the chroot path once inside the chroot - InaccessiblePaths = [ "-+${rootDir}" ]; - # g+rx is for group members (eg. fcgiwrap or nginx) - # to read Git/Mercurial repositories, buildlogs, etc. - # o+x is for intermediate directories created by BindPaths= and like, - # as they're owned by root:root. - UMask = "0026"; - RootDirectory = rootDir; - RootDirectoryStartOnly = true; - PrivateTmp = true; - MountAPIVFS = true; - # config.ini is looked up in there, before /etc/srht/config.ini - # Note that it fails to be set in ExecStartPre= - WorkingDirectory = mkDefault ("-" + runDir); - BindReadOnlyPaths = - [ - builtins.storeDir - "/etc" - "/run/booted-system" - "/run/current-system" - "/run/systemd" - ] - ++ optional cfg.postgresql.enable "/run/postgresql" - ++ optional cfg.redis.enable "/run/redis-sourcehut-${srvsrht}"; - # LoadCredential= are unfortunately not available in ExecStartPre= - # Hence this one is run as root (the +) with RootDirectoryStartOnly= - # to reach credentials wherever they are. - # Note that each systemd service gets its own ${runDir}/config.ini file. - ExecStartPre = mkBefore [ - ( - "+" - + pkgs.writeShellScript "${serviceName}-credentials" '' - set -x - # Replace values beginning with a '<' by the content of the file whose name is after. - gawk '{ if (match($0,/^([^=]+=)<(.+)/,m)) { getline f < m[2]; print m[1] f } else print $0 }' ${configIni} | - ${optionalString (!allowStripe) "gawk '!/^stripe-secret-key=/' |"} - install -o ${srvCfg.user} -g root -m 400 /dev/stdin ${runDir}/config.ini - '' - ) - ]; - # The following options are only for optimizing: - # systemd-analyze security - AmbientCapabilities = ""; - CapabilityBoundingSet = ""; - # ProtectClock= adds DeviceAllow=char-rtc r - DeviceAllow = ""; - LockPersonality = true; - MemoryDenyWriteExecute = true; - NoNewPrivileges = true; - PrivateDevices = true; - PrivateMounts = true; - PrivateNetwork = mkDefault false; - PrivateUsers = true; - ProcSubset = "pid"; - ProtectClock = true; - ProtectControlGroups = true; - ProtectHome = true; - ProtectHostname = true; - ProtectKernelLogs = true; - ProtectKernelModules = true; - ProtectKernelTunables = true; - ProtectProc = "invisible"; - ProtectSystem = "strict"; - RemoveIPC = true; - RestrictAddressFamilies = [ - "AF_UNIX" - "AF_INET" - "AF_INET6" - ]; - RestrictNamespaces = true; - RestrictRealtime = true; - RestrictSUIDSGID = true; - #SocketBindAllow = [ "tcp:${toString srvCfg.port}" "tcp:${toString srvCfg.prometheusPort}" ]; - #SocketBindDeny = "any"; - SystemCallFilter = [ - "@system-service" - "~@aio" - "~@keyring" - "~@memlock" - "~@privileged" - "~@timer" - "@chown" - "@setuid" - ]; - SystemCallArchitectures = "native"; - }; - } - ]; -in -{ - options.services.sourcehut.${srv} = - { - enable = mkEnableOption "${srv} service"; - - package = mkPackageOption pkgs [ "sourcehut" pkgname ] { }; - - user = mkOption { - type = types.str; - default = srvsrht; - description = '' - User for ${srv}.sr.ht. - ''; - }; - - group = mkOption { - type = types.str; - default = srvsrht; - description = '' - Group for ${srv}.sr.ht. - Membership grants access to the Git/Mercurial repositories by default, - but not to the config.ini file (where secrets are). - ''; - }; - - port = mkOption { - type = types.port; - default = port; - description = '' - Port on which the "${srv}" backend should listen. - ''; - }; - - redis = { - host = mkOption { - type = types.str; - default = "unix:///run/redis-sourcehut-${srvsrht}/redis.sock?db=0"; - example = "redis://shared.wireguard:6379/0"; - description = '' - The redis host URL. This is used for caching and temporary storage, and must - be shared between nodes (e.g. git1.sr.ht and git2.sr.ht), but need not be - shared between services. It may be shared between services, however, with no - ill effect, if this better suits your infrastructure. - ''; - }; - }; - - postgresql = { - database = mkOption { - type = types.str; - default = "${srv}.sr.ht"; - description = '' - PostgreSQL database name for the ${srv}.sr.ht service, - used if [](#opt-services.sourcehut.postgresql.enable) is `true`. - ''; - }; - }; - - gunicorn = { - extraArgs = mkOption { - type = with types; listOf str; - default = [ - "--timeout 120" - "--workers 1" - "--log-level=info" - ]; - description = "Extra arguments passed to Gunicorn."; - }; - }; - } - // optionalAttrs webhooks { - webhooks = { - extraArgs = mkOption { - type = with types; listOf str; - default = [ - "--loglevel DEBUG" - "--pool eventlet" - "--without-heartbeat" - ]; - description = "Extra arguments passed to the Celery responsible for webhooks."; - }; - celeryConfig = mkOption { - type = types.lines; - default = ""; - description = "Content of the `celeryconfig.py` used by the Celery responsible for webhooks."; - }; - }; - }; - - config = lib.mkIf (cfg.enable && srvCfg.enable) (mkMerge [ - extraConfig - { - users = { - users = { - "${srvCfg.user}" = { - isSystemUser = true; - group = mkDefault srvCfg.group; - description = mkDefault "sourcehut user for ${srv}.sr.ht"; - }; - }; - groups = - { - "${srvCfg.group}" = { }; - } - // - optionalAttrs - (cfg.postgresql.enable && hasSuffix "0" (postgresql.settings.unix_socket_permissions or "")) - { - "postgres".members = [ srvCfg.user ]; - } - // optionalAttrs (cfg.redis.enable && hasSuffix "0" (redis.settings.unixsocketperm or "")) { - "redis-sourcehut-${srvsrht}".members = [ srvCfg.user ]; - }; - }; - - services.nginx = mkIf cfg.nginx.enable { - virtualHosts."${srv}.${cfg.settings."sr.ht".global-domain}" = mkMerge [ - { - forceSSL = mkDefault true; - locations."/".proxyPass = "http://${cfg.listenAddress}:${toString srvCfg.port}"; - locations."/static" = { - root = "${srvCfg.package}/${pkgs.sourcehut.python.sitePackages}/${srvsrht}"; - extraConfig = mkDefault '' - expires 30d; - ''; - }; - locations."/query" = mkIf (cfg.settings.${iniKey} ? api-origin) { - proxyPass = cfg.settings.${iniKey}.api-origin; - extraConfig = '' - add_header 'Access-Control-Allow-Origin' '*'; - add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS'; - add_header 'Access-Control-Allow-Headers' 'User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range'; - - if ($request_method = 'OPTIONS') { - add_header 'Access-Control-Max-Age' 1728000; - add_header 'Content-Type' 'text/plain; charset=utf-8'; - add_header 'Content-Length' 0; - return 204; - } - - add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range'; - ''; - }; - } - cfg.nginx.virtualHost - ]; - }; - - services.postgresql = mkIf cfg.postgresql.enable { - authentication = '' - local ${srvCfg.postgresql.database} ${srvCfg.user} trust - ''; - ensureDatabases = [ srvCfg.postgresql.database ]; - ensureUsers = map (name: { - inherit name; - # We don't use it because we have a special default database name with dots. - # TODO(for maintainers of sourcehut): migrate away from custom preStart script. - ensureDBOwnership = false; - }) [ srvCfg.user ]; - }; - - services.sourcehut.settings = mkMerge [ - { - "${srv}.sr.ht".origin = mkDefault "https://${srv}.${cfg.settings."sr.ht".global-domain}"; - } - - (mkIf cfg.postgresql.enable { - "${srv}.sr.ht".connection-string = - mkDefault "postgresql:///${srvCfg.postgresql.database}?user=${srvCfg.user}&host=/run/postgresql"; - }) - ]; - - services.redis.servers."sourcehut-${srvsrht}" = mkIf cfg.redis.enable { - enable = true; - databases = 3; - syslog = true; - # TODO: set a more informed value - save = mkDefault [ - [ - 1800 - 10 - ] - [ - 300 - 100 - ] - ]; - settings = { - # TODO: set a more informed value - maxmemory = "128MB"; - maxmemory-policy = "volatile-ttl"; - }; - }; - - systemd.services = mkMerge [ - { - "${srvsrht}" = baseService srvsrht { allowStripe = srv == "meta"; } (mkMerge [ - { - description = "sourcehut ${srv}.sr.ht website service"; - before = optional cfg.nginx.enable "nginx.service"; - wants = optional cfg.nginx.enable "nginx.service"; - wantedBy = [ "multi-user.target" ]; - path = optional cfg.postgresql.enable postgresql.package; - # Beware: change in credentials' content will not trigger restart. - restartTriggers = [ configIni ]; - serviceConfig = { - Type = "simple"; - Restart = mkDefault "always"; - #RestartSec = mkDefault "2min"; - StateDirectory = [ "sourcehut/${srvsrht}" ]; - StateDirectoryMode = "2750"; - ExecStart = - "${cfg.python}/bin/gunicorn ${pkgname}.app:app --name ${srvsrht} --bind ${cfg.listenAddress}:${toString srvCfg.port} " - + concatStringsSep " " srvCfg.gunicorn.extraArgs; - }; - preStart = - let - package = srvCfg.package; - version = package.version; - stateDir = "/var/lib/sourcehut/${srvsrht}"; - in - mkBefore '' - set -x - # Use the /run/sourcehut/${srvsrht}/config.ini - # installed by a previous ExecStartPre= in baseService - cd /run/sourcehut/${srvsrht} - - if test ! -e ${stateDir}/db; then - # Setup the initial database. - # Note that it stamps the alembic head afterward - ${postgresql.package}/bin/psql -d ${srvsrht} -f ${package}/share/sourcehut/${srvsrht}-schema.sql - echo ${version} >${stateDir}/db - fi - - ${optionalString cfg.settings.${iniKey}.migrate-on-upgrade '' - if [ "$(cat ${stateDir}/db)" != "${version}" ]; then - # Manage schema migrations using alembic - ${package}/bin/${srvsrht}-migrate -a upgrade head - echo ${version} >${stateDir}/db - fi - ''} - - # Update copy of each users' profile to the latest - # See https://lists.sr.ht/~sircmpwn/sr.ht-admins/<20190302181207.GA13778%40cirno.my.domain> - if test ! -e ${stateDir}/webhook; then - # Update ${iniKey}'s users' profile copy to the latest - ${cfg.python}/bin/sr.ht-update-profiles ${iniKey} - touch ${stateDir}/webhook - fi - ''; - } - mainService - ]); - } - - (mkIf webhooks { - "${srvsrht}-webhooks" = baseService "${srvsrht}-webhooks" { } { - description = "sourcehut ${srv}.sr.ht webhooks service"; - after = [ "${srvsrht}.service" ]; - wantedBy = [ "${srvsrht}.service" ]; - partOf = [ "${srvsrht}.service" ]; - preStart = '' - cp ${pkgs.writeText "${srvsrht}-webhooks-celeryconfig.py" srvCfg.webhooks.celeryConfig} \ - /run/sourcehut/${srvsrht}-webhooks/celeryconfig.py - ''; - serviceConfig = { - Type = "simple"; - Restart = "always"; - ExecStart = - "${cfg.python}/bin/celery --app ${pkgname}.webhooks worker --hostname ${srvsrht}-webhooks@%%h " - + concatStringsSep " " srvCfg.webhooks.extraArgs; - # Avoid crashing: os.getloadavg() - ProcSubset = mkForce "all"; - }; - }; - }) - - (mapAttrs ( - timerName: timer: - (baseService timerName { } (mkMerge [ - { - description = "sourcehut ${timerName} service"; - after = [ - "network.target" - "${srvsrht}.service" - ]; - serviceConfig = { - Type = "oneshot"; - ExecStart = "${srvCfg.package}/bin/${timerName}"; - }; - } - (timer.service or { }) - ])) - ) extraTimers) - - (mapAttrs ( - serviceName: extraService: - baseService serviceName { } (mkMerge [ - { - description = "sourcehut ${serviceName} service"; - # So that extraServices have the PostgreSQL database initialized. - after = [ "${srvsrht}.service" ]; - wantedBy = [ "${srvsrht}.service" ]; - partOf = [ "${srvsrht}.service" ]; - serviceConfig = { - Type = "simple"; - Restart = mkDefault "always"; - }; - } - extraService - ]) - ) extraServices) - - # Work around 'pq: permission denied for schema public' with postgres v15. - # See https://github.com/NixOS/nixpkgs/issues/216989 - # Workaround taken from nixos/forgejo: https://github.com/NixOS/nixpkgs/pull/262741 - # TODO(to maintainers of sourcehut): please migrate away from this workaround - # by migrating away from database name defaults with dots. - (lib.mkIf - ( - cfg.postgresql.enable - && lib.strings.versionAtLeast config.services.postgresql.package.version "15.0" - ) - { - postgresql-setup.postStart = '' - psql -tAc 'ALTER DATABASE "${srvCfg.postgresql.database}" OWNER TO "${srvCfg.user}";' - ''; - } - ) - ]; - - systemd.timers = mapAttrs (timerName: timer: { - description = "sourcehut timer for ${timerName}"; - wantedBy = [ "timers.target" ]; - inherit (timer) timerConfig; - }) extraTimers; - } - ]); -} diff --git a/nixos/modules/services/monitoring/prometheus/alertmanager-irc-relay.nix b/nixos/modules/services/monitoring/prometheus/alertmanager-irc-relay.nix index c0268941dde7..a5659c3bfbd9 100644 --- a/nixos/modules/services/monitoring/prometheus/alertmanager-irc-relay.nix +++ b/nixos/modules/services/monitoring/prometheus/alertmanager-irc-relay.nix @@ -58,6 +58,7 @@ in wantedBy = [ "multi-user.target" ]; after = [ "network-online.target" ]; + wants = [ "network-online.target" ]; serviceConfig = { ExecStart = '' diff --git a/nixos/modules/services/monitoring/prometheus/exporters/wireguard.nix b/nixos/modules/services/monitoring/prometheus/exporters/wireguard.nix index 4c9269f34cfd..f091aac2347d 100644 --- a/nixos/modules/services/monitoring/prometheus/exporters/wireguard.nix +++ b/nixos/modules/services/monitoring/prometheus/exporters/wireguard.nix @@ -62,6 +62,14 @@ in Whether or not the remote IP of a WireGuard peer should be exposed via prometheus. ''; }; + + latestHandshakeDelay = mkOption { + type = types.bool; + default = false; + description = '' + Adds the `wireguard_latest_handshake_delay_seconds` metric that automatically calculates the seconds passed since the last handshake. + ''; + }; }; serviceOpts = { path = [ pkgs.wireguard-tools ]; @@ -76,6 +84,7 @@ in ${optionalString cfg.verbose "-v true"} \ ${optionalString cfg.singleSubnetPerField "-s true"} \ ${optionalString cfg.withRemoteIp "-r true"} \ + ${optionalString cfg.latestHandshakeDelay "-d true"} \ ${optionalString (cfg.wireguardConfig != null) "-n ${escapeShellArg cfg.wireguardConfig}"} ''; RestrictAddressFamilies = [ diff --git a/nixos/modules/services/networking/easytier.nix b/nixos/modules/services/networking/easytier.nix new file mode 100644 index 000000000000..127c72063fac --- /dev/null +++ b/nixos/modules/services/networking/easytier.nix @@ -0,0 +1,292 @@ +{ + config, + lib, + pkgs, + ... +}: + +with lib; +let + cfg = config.services.easytier; + settingsFormat = pkgs.formats.toml { }; + + genFinalSettings = + inst: + attrsets.filterAttrsRecursive (_: v: v != { }) ( + attrsets.filterAttrsRecursive (_: v: v != null) ( + { + inherit (inst.settings) + instance_name + hostname + ipv4 + dhcp + listeners + ; + network_identity = { + inherit (inst.settings) network_name network_secret; + }; + peer = map (p: { uri = p; }) inst.settings.peers; + } + // inst.extraSettings + ) + ); + + genConfigFile = + name: inst: + if inst.configFile == null then + settingsFormat.generate "easytier-${name}.toml" (genFinalSettings inst) + else + inst.configFile; + + activeInsts = filterAttrs (_: inst: inst.enable) cfg.instances; + + settingsModule = name: { + options = { + instance_name = mkOption { + type = types.str; + default = name; + description = "Identify different instances on same host"; + }; + + hostname = mkOption { + type = with types; nullOr str; + default = null; + description = "Hostname shown in peer list and web console."; + }; + + network_name = mkOption { + type = with types; nullOr str; + default = null; + description = "EasyTier network name."; + }; + + network_secret = mkOption { + type = with types; nullOr str; + default = null; + description = '' + EasyTier network credential used for verification and + encryption. It can also be set in environmentFile. + ''; + }; + + ipv4 = mkOption { + type = with types; nullOr str; + default = null; + description = '' + IPv4 cidr address of this peer in the virtual network. If + empty, this peer will only forward packets and no TUN device + will be created. + ''; + example = "10.144.144.1/24"; + }; + + dhcp = mkOption { + type = types.bool; + default = false; + description = '' + Automatically determine the IPv4 address of this peer based on + existing peers on network. + ''; + }; + + listeners = mkOption { + type = with types; listOf str; + default = [ + "tcp://0.0.0.0:11010" + "udp://0.0.0.0:11010" + ]; + description = '' + Listener addresses to accept connections from other peers. + Valid format is: `://:`, where the protocol + can be `tcp`, `udp`, `ring`, `wg`, `ws`, `wss`. + ''; + }; + + peers = mkOption { + type = with types; listOf str; + default = [ ]; + description = '' + Peers to connect initially. Valid format is: `://:`. + ''; + example = [ + "tcp://example.com:11010" + ]; + }; + }; + }; + + instanceModule = + { name, ... }: + { + options = { + enable = mkOption { + type = types.bool; + default = true; + description = "Enable the instance."; + }; + + configServer = mkOption { + type = with types; nullOr str; + default = null; + description = '' + Configure the instance from config server. When this option + set, any other settings for configuring the instance manually + except `hostname` will be ignored. Valid formats are: + + - full uri for custom server: `udp://example.com:22020/` + - username only for official server: `` + ''; + example = "udp://example.com:22020/myusername"; + }; + + configFile = mkOption { + type = with types; nullOr path; + default = null; + description = '' + Path to easytier config file. Setting this option will + override `settings` and `extraSettings` of this instance. + ''; + }; + + environmentFiles = mkOption { + type = with types; listOf path; + default = [ ]; + description = '' + Environment files for this instance. All command-line args + have corresponding environment variables. + ''; + example = literalExpression '' + [ + /path/to/.env + /path/to/.env.secret + ] + ''; + }; + + settings = mkOption { + type = types.submodule (settingsModule name); + default = { }; + description = '' + Settings to generate {file}`easytier-${name}.toml` + ''; + }; + + extraSettings = mkOption { + type = settingsFormat.type; + default = { }; + description = '' + Extra settings to add to {file}`easytier-${name}.toml`. + ''; + }; + + extraArgs = mkOption { + type = with types; listOf str; + default = [ ]; + description = '' + Extra args append to the easytier command-line. + ''; + }; + }; + }; + +in +{ + options.services.easytier = { + enable = mkEnableOption "EasyTier daemon"; + + package = mkPackageOption pkgs "easytier" { }; + + allowSystemForward = mkEnableOption '' + Allow the system to forward packets from easytier. Useful when + `proxy_forward_by_system` enabled. + ''; + + instances = mkOption { + description = '' + EasyTier instances. + ''; + type = types.attrsOf (types.submodule instanceModule); + default = { }; + example = { + settings = { + network_name = "easytier"; + network_secret = "easytier"; + ipv4 = "10.144.144.1/24"; + peers = [ + "tcp://public.easytier.cn:11010" + "wss://example.com:443" + ]; + }; + extraSettings = { + flags.dev_name = "tun1"; + }; + }; + }; + }; + + config = mkIf cfg.enable { + environment.systemPackages = [ cfg.package ]; + + systemd.services = mapAttrs' ( + name: inst: + let + configFile = genConfigFile name inst; + in + nameValuePair "easytier-${name}" { + description = "EasyTier Daemon - ${name}"; + wants = [ + "network-online.target" + "nss-lookup.target" + ]; + after = [ + "network-online.target" + "nss-lookup.target" + ]; + wantedBy = [ "multi-user.target" ]; + path = with pkgs; [ + cfg.package + iproute2 + bash + ]; + restartTriggers = inst.environmentFiles ++ (optionals (inst.configServer == null) [ configFile ]); + serviceConfig = { + Type = "simple"; + Restart = "on-failure"; + EnvironmentFile = inst.environmentFiles; + StateDirectory = "easytier/easytier-${name}"; + StateDirectoryMode = "0700"; + WorkingDirectory = "/var/lib/easytier/easytier-${name}"; + ExecStart = escapeShellArgs ( + [ + "${cfg.package}/bin/easytier-core" + ] + ++ optionals (inst.configServer != null) ( + [ + "-w" + "${inst.configServer}" + ] + ++ (optionals (inst.settings.hostname != null) [ + "--hostname" + "${inst.settings.hostname}" + ]) + ) + ++ optionals (inst.configServer == null) [ + "-c" + "${configFile}" + ] + ++ inst.extraArgs + ); + }; + } + ) activeInsts; + + boot.kernel.sysctl = mkIf cfg.allowSystemForward { + "net.ipv4.conf.all.forwarding" = mkOverride 97 true; + "net.ipv6.conf.all.forwarding" = mkOverride 97 true; + }; + }; + + meta.maintainers = with maintainers; [ + ltrump + ]; +} diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index 25375b9bffbf..b92e76ed60af 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -433,6 +433,7 @@ in fscrypt = runTest ./fscrypt.nix; fastnetmon-advanced = runTest ./fastnetmon-advanced.nix; lauti = runTest ./lauti.nix; + easytier = handleTest ./easytier.nix { }; ejabberd = runTest ./xmpp/ejabberd.nix; elk = handleTestOn [ "x86_64-linux" ] ./elk.nix { }; emacs-daemon = runTest ./emacs-daemon.nix; @@ -1272,7 +1273,6 @@ in solanum = runTest ./solanum.nix; sonarr = runTest ./sonarr.nix; sonic-server = runTest ./sonic-server.nix; - sourcehut = handleTest ./sourcehut { }; spacecookie = runTest ./spacecookie.nix; spark = handleTestOn [ "x86_64-linux" "aarch64-linux" ] ./spark { }; spiped = runTest ./spiped.nix; diff --git a/nixos/tests/easytier.nix b/nixos/tests/easytier.nix new file mode 100644 index 000000000000..e5366fb5ce98 --- /dev/null +++ b/nixos/tests/easytier.nix @@ -0,0 +1,121 @@ +import ./make-test-python.nix ( + { lib, ... }: + { + name = "easytier"; + meta.maintainers = with lib.maintainers; [ ltrump ]; + + nodes = + let + genPeer = + hostConfig: settings: + lib.mkMerge [ + { + services.easytier = { + enable = true; + instances.default = { + settings = { + network_name = "easytier_test"; + network_secret = "easytier_test_secret"; + } // settings; + }; + }; + + networking.useDHCP = false; + networking.firewall.allowedTCPPorts = [ + 11010 + 11011 + ]; + networking.firewall.allowedUDPPorts = [ + 11010 + 11011 + ]; + } + hostConfig + ]; + in + { + relay = + genPeer + { + virtualisation.vlans = [ + 1 + 2 + ]; + + networking.interfaces.eth1.ipv4.addresses = [ + { + address = "192.168.1.11"; + prefixLength = 24; + } + ]; + + networking.interfaces.eth2.ipv4.addresses = [ + { + address = "192.168.2.11"; + prefixLength = 24; + } + ]; + } + { + ipv4 = "10.144.144.1"; + listeners = [ + "tcp://0.0.0.0:11010" + "wss://0.0.0.0:11011" + ]; + }; + + peer1 = + genPeer + { + virtualisation.vlans = [ 1 ]; + } + { + ipv4 = "10.144.144.2"; + peers = [ "tcp://192.168.1.11:11010" ]; + }; + + peer2 = + genPeer + { + virtualisation.vlans = [ 2 ]; + } + { + ipv4 = "10.144.144.3"; + peers = [ "wss://192.168.2.11:11011" ]; + }; + }; + + testScript = '' + start_all() + + relay.wait_for_unit("easytier-default.service") + peer1.wait_for_unit("easytier-default.service") + peer2.wait_for_unit("easytier-default.service") + + # relay is accessible by the other hosts + peer1.succeed("ping -c5 192.168.1.11") + peer2.succeed("ping -c5 192.168.2.11") + + # The other hosts are in separate vlans + peer1.fail("ping -c5 192.168.2.11") + peer2.fail("ping -c5 192.168.1.11") + + # Each host can ping themselves through EasyTier + relay.succeed("ping -c5 10.144.144.1") + peer1.succeed("ping -c5 10.144.144.2") + peer2.succeed("ping -c5 10.144.144.3") + + # Relay is accessible by the other hosts through EasyTier + peer1.succeed("ping -c5 10.144.144.1") + peer2.succeed("ping -c5 10.144.144.1") + + # Relay can access the other hosts through EasyTier + relay.succeed("ping -c5 10.144.144.2") + relay.succeed("ping -c5 10.144.144.3") + + # The other hosts in separate vlans can access each other through EasyTier + peer1.succeed("ping -c5 10.144.144.3") + peer2.succeed("ping -c5 10.144.144.2") + ''; + } +) diff --git a/nixos/tests/sourcehut/builds.nix b/nixos/tests/sourcehut/builds.nix deleted file mode 100644 index 1add972cc13f..000000000000 --- a/nixos/tests/sourcehut/builds.nix +++ /dev/null @@ -1,66 +0,0 @@ -import ../make-test-python.nix ( - { pkgs, lib, ... }: - let - domain = "sourcehut.localdomain"; - in - { - name = "sourcehut"; - - meta.maintainers = with pkgs.lib.maintainers; [ - tomberek - nessdoor - ]; - - nodes.machine = - { - config, - pkgs, - nodes, - ... - }: - { - imports = [ - ./nodes/common.nix - ]; - - networking.domain = domain; - networking.extraHosts = '' - ${config.networking.primaryIPAddress} builds.${domain} - ${config.networking.primaryIPAddress} meta.${domain} - ''; - - services.sourcehut = { - builds = { - enable = true; - # FIXME: see why it does not seem to activate fully. - #enableWorker = true; - images = { }; - }; - - settings."builds.sr.ht" = { - oauth-client-secret = pkgs.writeText "buildsrht-oauth-client-secret" "2260e9c4d9b8dcedcef642860e0504bc"; - oauth-client-id = "299db9f9c2013170"; - }; - }; - }; - - testScript = '' - start_all() - machine.wait_for_unit("multi-user.target") - - with subtest("Check whether meta comes up"): - machine.wait_for_unit("meta.sr.ht-api.service") - machine.wait_for_unit("meta.sr.ht.service") - machine.wait_for_unit("meta.sr.ht-webhooks.service") - machine.wait_for_open_port(5000) - machine.succeed("curl -sL http://localhost:5000 | grep meta.${domain}") - machine.succeed("curl -sL http://meta.${domain} | grep meta.${domain}") - - with subtest("Check whether builds comes up"): - machine.wait_for_unit("builds.sr.ht.service") - machine.wait_for_open_port(5002) - machine.succeed("curl -sL http://localhost:5002 | grep builds.${domain}") - #machine.wait_for_unit("buildsrht-worker.service") - ''; - } -) diff --git a/nixos/tests/sourcehut/default.nix b/nixos/tests/sourcehut/default.nix deleted file mode 100644 index 04f1551d70d9..000000000000 --- a/nixos/tests/sourcehut/default.nix +++ /dev/null @@ -1,6 +0,0 @@ -{ system, pkgs, ... }: - -{ - git = import ./git.nix { inherit system pkgs; }; - builds = import ./builds.nix { inherit system pkgs; }; -} diff --git a/nixos/tests/sourcehut/git.nix b/nixos/tests/sourcehut/git.nix deleted file mode 100644 index a06281aafbb4..000000000000 --- a/nixos/tests/sourcehut/git.nix +++ /dev/null @@ -1,109 +0,0 @@ -import ../make-test-python.nix ( - { pkgs, lib, ... }: - let - domain = "sourcehut.localdomain"; - in - { - name = "sourcehut"; - - meta.maintainers = with pkgs.lib.maintainers; [ - tomberek - nessdoor - ]; - - nodes.machine = - { - config, - pkgs, - nodes, - ... - }: - { - imports = [ - ./nodes/common.nix - ]; - - networking.domain = domain; - networking.extraHosts = '' - ${config.networking.primaryIPAddress} git.${domain} - ${config.networking.primaryIPAddress} meta.${domain} - ''; - - services.sourcehut = { - git.enable = true; - settings."git.sr.ht" = { - oauth-client-secret = pkgs.writeText "gitsrht-oauth-client-secret" "3597288dc2c716e567db5384f493b09d"; - oauth-client-id = "d07cb713d920702e"; - }; - }; - - environment.systemPackages = with pkgs; [ - git - ]; - }; - - testScript = - let - userName = "nixos-test"; - userPass = "AutoNixosTestPwd"; - hutConfig = pkgs.writeText "hut-config" '' - instance "${domain}" { - # Will be replaced at runtime with the generated token - access-token "OAUTH-TOKEN" - } - ''; - sshConfig = pkgs.writeText "ssh-config" '' - Host git.${domain} - IdentityFile = ~/.ssh/id_rsa - ''; - in - '' - start_all() - machine.wait_for_unit("multi-user.target") - machine.wait_for_unit("sshd.service") - - with subtest("Check whether meta comes up"): - machine.wait_for_unit("meta.sr.ht-api.service") - machine.wait_for_unit("meta.sr.ht.service") - machine.wait_for_unit("meta.sr.ht-webhooks.service") - machine.wait_for_open_port(5000) - machine.succeed("curl -sL http://localhost:5000 | grep meta.${domain}") - machine.succeed("curl -sL http://meta.${domain} | grep meta.${domain}") - - with subtest("Create a new user account and OAuth access key"): - machine.succeed("echo ${userPass} | meta.sr.ht-manageuser -ps -e ${userName}@${domain}\ - -t USER ${userName}"); - cmd = "srht-gen-oauth-tok -i ${domain} -q ${userName} ${userPass}" - (_, token) = machine.execute("srht-gen-oauth-tok -i ${domain} -q ${userName} ${userPass}") - token = token.strip().replace("/", r"\\/") # Escape slashes in token before passing it to sed - machine.execute("mkdir -p ~/.config/hut/") - machine.execute("sed s/OAUTH-TOKEN/" + token + "/ ${hutConfig} > ~/.config/hut/config") - - with subtest("Check whether git comes up"): - machine.wait_for_unit("git.sr.ht-api.service") - machine.wait_for_unit("git.sr.ht.service") - machine.wait_for_unit("git.sr.ht-webhooks.service") - machine.succeed("curl -sL http://git.${domain} | grep git.${domain}") - - with subtest("Add an SSH key for Git access"): - machine.execute("ssh-keygen -q -N \"\" -t rsa -f ~/.ssh/id_rsa") - machine.execute("cat ${sshConfig} > ~/.ssh/config") - machine.succeed("hut meta ssh-key create ~/.ssh/id_rsa.pub") - - with subtest("Create a new repo and push contents to it"): - machine.execute("git init test") - machine.execute("echo \"Hello world!\" > test/hello.txt") - machine.execute("cd test && git add .") - machine.execute("cd test && git commit -m \"Initial commit\"") - machine.execute("cd test && git tag v0.1") - machine.succeed("cd test && git remote add origin git.sr.ht@git.${domain}:~${userName}/test") - machine.execute("( echo -n 'git.${domain} '; cat /etc/ssh/ssh_host_ed25519_key.pub ) > ~/.ssh/known_hosts") - machine.succeed("hut git create test") - machine.succeed("cd test && git push --tags --set-upstream origin master") - - with subtest("Verify that the repo is downloadable and its contents match the original"): - machine.succeed("curl https://git.${domain}/~${userName}/test/archive/v0.1.tar.gz | tar -xz") - machine.succeed("diff test-v0.1/hello.txt test/hello.txt") - ''; - } -) diff --git a/nixos/tests/sourcehut/nodes/common.nix b/nixos/tests/sourcehut/nodes/common.nix deleted file mode 100644 index 54660a4dade5..000000000000 --- a/nixos/tests/sourcehut/nodes/common.nix +++ /dev/null @@ -1,117 +0,0 @@ -{ - config, - pkgs, - nodes, - ... -}: -let - domain = config.networking.domain; - - # Note that wildcard certificates just under the TLD (eg. *.com) - # would be rejected by clients like curl. - tls-cert = pkgs.runCommand "selfSignedCerts" { buildInputs = [ pkgs.openssl ]; } '' - openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -nodes -days 36500 \ - -subj '/CN=${domain}' -extensions v3_req \ - -addext 'subjectAltName = DNS:*.${domain}' - install -D -t $out key.pem cert.pem - ''; -in -{ - # buildsrht needs space - virtualisation.diskSize = 4 * 1024; - virtualisation.memorySize = 2 * 1024; - networking.enableIPv6 = false; - - services.sourcehut = { - enable = true; - nginx.enable = true; - nginx.virtualHost = { - forceSSL = true; - sslCertificate = "${tls-cert}/cert.pem"; - sslCertificateKey = "${tls-cert}/key.pem"; - }; - postgresql.enable = true; - redis.enable = true; - - meta.enable = true; - - settings."sr.ht" = { - environment = "production"; - global-domain = config.networking.domain; - service-key = pkgs.writeText "service-key" "8b327279b77e32a3620e2fc9aabce491cc46e7d821fd6713b2a2e650ce114d01"; - network-key = pkgs.writeText "network-key" "cEEmc30BRBGkgQZcHFksiG7hjc6_dK1XR2Oo5Jb9_nQ="; - }; - settings.webhooks.private-key = pkgs.writeText "webhook-key" "Ra3IjxgFiwG9jxgp4WALQIZw/BMYt30xWiOsqD0J7EA="; - settings.mail = { - smtp-from = "root+hut@${domain}"; - # WARNING: take care to keep pgp-privkey outside the Nix store in production, - # or use LoadCredentialEncrypted= - pgp-privkey = toString ( - pkgs.writeText "sourcehut.pgp-privkey" '' - -----BEGIN PGP PRIVATE KEY BLOCK----- - - lFgEZrFBKRYJKwYBBAHaRw8BAQdAS1Ffiytk0h0z0jfaT3qyiDUV/plVIUwOg1Yr - AXP2YmsAAP0W6QMC3G2G41rzCGLeSHeGibor1+XuxvcwUpVdW7ge+BH/tDZuaXhv - cy90ZXN0cy9zb3VyY2VodXQgPHJvb3QraHV0QHNvdXJjZWh1dC5sb2NhbGRvbWFp - bj6IkwQTFgoAOxYhBMISh2Z08FCi969cq9R2wSP9QF2bBQJmsUEpAhsDBQsJCAcC - AiICBhUKCQgLAgQWAgMBAh4HAheAAAoJENR2wSP9QF2b4JMA+wQLdxVcod/ppyvH - QguGqqhkpk8KquCddOuFnQVAfHFWAQCK5putVk4mGzsoLTbOJCSGRC4pjEktZawQ - MTqJmnOuC5xdBGaxQSkSCisGAQQBl1UBBQEBB0Aed6UYJyighTY+KuPNQ439st3x - x04T1j58sx3AnKgYewMBCAcAAP9WLB79HO1zFRqTCnk7GIEWWogMFKVpazeBUNu9 - h9rzCA2+iHgEGBYKACAWIQTCEodmdPBQovevXKvUdsEj/UBdmwUCZrFBKQIbDAAK - CRDUdsEj/UBdmwgJAQDVk/px/pSzqreSeDLzxlb6dOo+N1KcicsJ0akhSJUcvwD9 - EPhpEDZu/UBKchAutOhWwz+y6pyoF4Vt7XG+jbJQtA4= - =KaQc - -----END PGP PRIVATE KEY BLOCK----- - '' - ); - pgp-pubkey = pkgs.writeText "sourcehut.pgp-pubkey" '' - -----BEGIN PGP PUBLIC KEY BLOCK----- - - mDMEZrFBKRYJKwYBBAHaRw8BAQdAS1Ffiytk0h0z0jfaT3qyiDUV/plVIUwOg1Yr - AXP2Ymu0Nm5peG9zL3Rlc3RzL3NvdXJjZWh1dCA8cm9vdCtodXRAc291cmNlaHV0 - LmxvY2FsZG9tYWluPoiTBBMWCgA7FiEEwhKHZnTwUKL3r1yr1HbBI/1AXZsFAmax - QSkCGwMFCwkIBwICIgIGFQoJCAsCBBYCAwECHgcCF4AACgkQ1HbBI/1AXZvgkwD7 - BAt3FVyh3+mnK8dCC4aqqGSmTwqq4J1064WdBUB8cVYBAIrmm61WTiYbOygtNs4k - JIZELimMSS1lrBAxOomac64LuDgEZrFBKRIKKwYBBAGXVQEFAQEHQB53pRgnKKCF - Nj4q481Djf2y3fHHThPWPnyzHcCcqBh7AwEIB4h4BBgWCgAgFiEEwhKHZnTwUKL3 - r1yr1HbBI/1AXZsFAmaxQSkCGwwACgkQ1HbBI/1AXZsICQEA1ZP6cf6Us6q3kngy - 88ZW+nTqPjdSnInLCdGpIUiVHL8A/RD4aRA2bv1ASnIQLrToVsM/suqcqBeFbe1x - vo2yULQO - =luxZ - -----END PGP PUBLIC KEY BLOCK----- - ''; - pgp-key-id = "0xC212876674F050A2F7AF5CABD476C123FD405D9B"; - }; - }; - - networking.firewall.allowedTCPPorts = [ - 80 - 443 - ]; - security.pki.certificateFiles = [ "${tls-cert}/cert.pem" ]; - services.nginx = { - enable = true; - recommendedGzipSettings = true; - recommendedOptimisation = true; - recommendedTlsSettings = true; - recommendedProxySettings = true; - }; - - services.postgresql = { - enable = true; - enableTCPIP = false; - settings.unix_socket_permissions = "0770"; - }; - - services.openssh = { - enable = true; - settings.PasswordAuthentication = false; - settings.PermitRootLogin = "no"; - }; - - environment.systemPackages = with pkgs; [ - hut # For interacting with the Sourcehut APIs via CLI - srht-gen-oauth-tok # To automatically generate user OAuth tokens - ]; -} diff --git a/pkgs/applications/emulators/libretro/cores/puae.nix b/pkgs/applications/emulators/libretro/cores/puae.nix index d40f824f5017..e8d1f4bec8dd 100644 --- a/pkgs/applications/emulators/libretro/cores/puae.nix +++ b/pkgs/applications/emulators/libretro/cores/puae.nix @@ -5,13 +5,13 @@ }: mkLibretroCore { core = "puae"; - version = "0-unstable-2025-05-24"; + version = "0-unstable-2025-06-14"; src = fetchFromGitHub { owner = "libretro"; repo = "libretro-uae"; - rev = "f1c248602abb58e7c570feec3f59f4677407b252"; - hash = "sha256-CmdMeAntu+uFp1HowBz3UgMiqFbRrNuMyevTlKxga/M="; + rev = "3eece7a5447fde5ddf12be11bb5cb421d8fd8f97"; + hash = "sha256-NpCbeHcziBMw5IQ/8hD9cYq9zIAMd4H0OCpK8TydieA="; }; makefile = "Makefile"; diff --git a/pkgs/applications/networking/browsers/netsurf/buildsystem.nix b/pkgs/applications/networking/browsers/netsurf/buildsystem.nix index 3aa6ed08e41c..aae1857ba079 100644 --- a/pkgs/applications/networking/browsers/netsurf/buildsystem.nix +++ b/pkgs/applications/networking/browsers/netsurf/buildsystem.nix @@ -21,7 +21,7 @@ stdenv.mkDerivation (finalAttrs: { homepage = "https://www.netsurf-browser.org/"; description = "NetSurf browser shared build system"; license = lib.licenses.mit; - maintainers = with lib.maintainers; [ ]; + maintainers = with lib.maintainers; [ fgaz ]; platforms = lib.platforms.unix; }; }) diff --git a/pkgs/applications/networking/cluster/calico/default.nix b/pkgs/applications/networking/cluster/calico/default.nix index c4f5415c4cb9..7f88ab6e6dd4 100644 --- a/pkgs/applications/networking/cluster/calico/default.nix +++ b/pkgs/applications/networking/cluster/calico/default.nix @@ -14,16 +14,16 @@ builtins.mapAttrs }: buildGoModule rec { inherit pname; - version = "3.30.1"; + version = "3.30.2"; src = fetchFromGitHub { owner = "projectcalico"; repo = "calico"; rev = "v${version}"; - hash = "sha256-MtUoVLF46Z+wnxahZqTAfZwbLOC9gfHAUtIAwAJGUn0="; + hash = "sha256-UvHrCA/1n9dklcMY1AfNNW5/TtxVdmwmQb2DHEBFZhA="; }; - vendorHash = "sha256-5VFjiKFBZIXorc0yd9Vafyaj5ZInkhAD1GIdAw4yaEs="; + vendorHash = "sha256-Cp1Eo8Xa4c0o5l6/p+pyHa/t3jMUpgUDDXEAKwS6aCE="; inherit doCheck subPackages; diff --git a/pkgs/applications/version-management/sourcehut/builds.nix b/pkgs/applications/version-management/sourcehut/builds.nix deleted file mode 100644 index 5896f6b68149..000000000000 --- a/pkgs/applications/version-management/sourcehut/builds.nix +++ /dev/null @@ -1,111 +0,0 @@ -{ - lib, - fetchFromSourcehut, - buildGoModule, - buildPythonPackage, - srht, - redis, - celery, - pyyaml, - markdown, - ansi2html, - lxml, - python, - unzip, - pip, - pythonOlder, - setuptools-scm, -}: -let - version = "0.95.1"; - gqlgen = import ./fix-gqlgen-trimpath.nix { - inherit unzip; - gqlgenVersion = "0.17.64"; - }; - - patches = [ ./patches/core-go-update/builds/patch-deps.patch ]; - - src = fetchFromSourcehut { - owner = "~sircmpwn"; - repo = "builds.sr.ht"; - rev = version; - hash = "sha256-On/dKqIuqsCLAgYkJQOeYL7Ne983JzEYKhuLpD5vNu4="; - }; - - buildsrht-api = buildGoModule ( - { - inherit src version patches; - pname = "buildsrht-api"; - modRoot = "api"; - vendorHash = "sha256-GOM7fmJvfPJW3+XzvlwQZ9hBknlXwBKjGSmtIiapleY="; - } - // gqlgen - ); - - buildsrht-worker = buildGoModule ( - { - inherit src version patches; - pname = "buildsrht-worker"; - modRoot = "worker"; - vendorHash = "sha256-nEXnCeUxlUMNUqhe82MKREXcaC9pvqZqyqhyQW+jQjQ="; - } - // gqlgen - ); -in -buildPythonPackage rec { - inherit src version patches; - pname = "buildsrht"; - pyproject = true; - - disabled = pythonOlder "3.7"; - - nativeBuildInputs = [ - pip - setuptools-scm - ]; - - propagatedBuildInputs = [ - srht - redis - celery - pyyaml - markdown - # Unofficial dependencies - ansi2html - lxml - ]; - - env = { - PKGVER = version; - SRHT_PATH = "${srht}/${python.sitePackages}/srht"; - PREFIX = placeholder "out"; - }; - - postBuild = '' - make SASSC_INCLUDE=-I${srht}/share/sourcehut/scss/ all-share - ''; - - postInstall = '' - mkdir -p $out/lib - mkdir -p $out/bin/builds.sr.ht - - cp -r images $out/lib - cp contrib/submit_image_build $out/bin/builds.sr.ht - ln -s ${buildsrht-api}/bin/api $out/bin/builds.sr.ht-api - ln -s ${buildsrht-worker}/bin/worker $out/bin/builds.sr.ht-worker - install -Dm644 schema.sql $out/share/sourcehut/builds.sr.ht-schema.sql - make install-share - ''; - - pythonImportsCheck = [ "buildsrht" ]; - - meta = with lib; { - homepage = "https://git.sr.ht/~sircmpwn/builds.sr.ht"; - description = "Continuous integration service for the sr.ht network"; - license = licenses.agpl3Only; - maintainers = with maintainers; [ - eadwu - christoph-heiss - ]; - }; -} diff --git a/pkgs/applications/version-management/sourcehut/core.nix b/pkgs/applications/version-management/sourcehut/core.nix deleted file mode 100644 index d600117e225f..000000000000 --- a/pkgs/applications/version-management/sourcehut/core.nix +++ /dev/null @@ -1,104 +0,0 @@ -{ - lib, - fetchFromSourcehut, - buildPythonPackage, - flask, - humanize, - sqlalchemy, - sqlalchemy-utils, - psycopg2, - markdown, - mistletoe, - bleach, - requests, - beautifulsoup4, - pygments, - cryptography, - prometheus-client, - alembic, - redis, - celery, - html5lib, - importlib-metadata, - tinycss2, - sassc, - pythonOlder, - minify, - setuptools-scm, -}: - -buildPythonPackage rec { - pname = "srht"; - version = "0.76.1"; - pyproject = true; - - disabled = pythonOlder "3.7"; - - src = fetchFromSourcehut { - owner = "~sircmpwn"; - repo = "core.sr.ht"; - rev = version; - hash = "sha256-lAN1JZXQuN2zxi/BdBtbNj52LPj9iYn0WB2OpyQcyuU="; - fetchSubmodules = true; - }; - - patches = [ - # Fix Unix socket support in RedisQueueCollector - patches/redis-socket/core/0001-Fix-Unix-socket-support-in-RedisQueueCollector.patch - ]; - - nativeBuildInputs = [ - setuptools-scm - ]; - - propagatedNativeBuildInputs = [ - sassc - minify - ]; - - propagatedBuildInputs = [ - flask - humanize - sqlalchemy - sqlalchemy-utils - psycopg2 - markdown - mistletoe - bleach - requests - beautifulsoup4 - pygments - cryptography - prometheus-client - alembic - redis - celery - # Used transitively through beautifulsoup4 - html5lib - # Used transitively trough bleach.css_sanitizer - tinycss2 - # Used by srht.debug - importlib-metadata - ]; - - env = { - PREFIX = placeholder "out"; - PKGVER = version; - }; - - postInstall = '' - make install - ''; - - pythonImportsCheck = [ "srht" ]; - - meta = with lib; { - homepage = "https://git.sr.ht/~sircmpwn/core.sr.ht"; - description = "Core modules for sr.ht"; - license = licenses.bsd3; - maintainers = with maintainers; [ - eadwu - christoph-heiss - ]; - }; -} diff --git a/pkgs/applications/version-management/sourcehut/default.nix b/pkgs/applications/version-management/sourcehut/default.nix deleted file mode 100644 index ede187a215fc..000000000000 --- a/pkgs/applications/version-management/sourcehut/default.nix +++ /dev/null @@ -1,56 +0,0 @@ -{ - lib, - python3, - callPackage, - recurseIntoAttrs, - nixosTests, - config, -}: - -# To expose the *srht modules, they have to be a python module so we use `buildPythonModule` -# Then we expose them through all-packages.nix as an application through `toPythonApplication` -# https://github.com/NixOS/nixpkgs/pull/54425#discussion_r250688781 -let - python = python3.override { - self = python; - packageOverrides = self: super: { - srht = self.callPackage ./core.nix { }; - - buildsrht = self.callPackage ./builds.nix { }; - gitsrht = self.callPackage ./git.nix { }; - hgsrht = self.callPackage ./hg.nix { }; - hubsrht = self.callPackage ./hub.nix { }; - listssrht = self.callPackage ./lists.nix { }; - mansrht = self.callPackage ./man.nix { }; - metasrht = self.callPackage ./meta.nix { }; - pastesrht = self.callPackage ./paste.nix { }; - todosrht = self.callPackage ./todo.nix { }; - - scmsrht = self.callPackage ./scm.nix { }; - }; - }; -in -with python.pkgs; -recurseIntoAttrs ( - { - inherit python; - coresrht = toPythonApplication srht; - buildsrht = toPythonApplication buildsrht; - gitsrht = toPythonApplication gitsrht; - hgsrht = toPythonApplication hgsrht; - hubsrht = toPythonApplication hubsrht; - listssrht = toPythonApplication listssrht; - mansrht = toPythonApplication mansrht; - metasrht = toPythonApplication metasrht; - pagessrht = callPackage ./pages.nix { }; - pastesrht = toPythonApplication pastesrht; - todosrht = toPythonApplication todosrht; - passthru.tests = { - nixos-sourcehut = nixosTests.sourcehut; - }; - } - // lib.optionalAttrs config.allowAliases { - # Added 2022-10-29 - dispatchsrht = throw "dispatch is deprecated. See https://sourcehut.org/blog/2022-08-01-dispatch-deprecation-plans/ for more information."; - } -) diff --git a/pkgs/applications/version-management/sourcehut/fix-gqlgen-trimpath.nix b/pkgs/applications/version-management/sourcehut/fix-gqlgen-trimpath.nix deleted file mode 100644 index 562ce6e445d3..000000000000 --- a/pkgs/applications/version-management/sourcehut/fix-gqlgen-trimpath.nix +++ /dev/null @@ -1,35 +0,0 @@ -{ - unzip, - gqlgenVersion, -}: -{ - overrideModAttrs = ( - _: { - # No need to workaround -trimpath: it's not used in goModules, - # but do download `go generate`'s dependencies nonetheless. - preBuild = '' - if [ -d ./loaders ]; then go generate ./loaders; fi - if [ -d ./graph ]; then go generate ./graph; fi - ''; - } - ); - - # Workaround this error: - # go: git.sr.ht/~emersion/go-emailthreads@v0.0.0-20220412093310-4fd792e343ba: module lookup disabled by GOPROXY=off - # tidy failed: go mod tidy failed: exit status 1 - # graph/generate.go:10: running "go": exit status 1 - proxyVendor = true; - - nativeBuildInputs = [ unzip ]; - - # Workaround -trimpath in the package derivation: - # https://github.com/99designs/gqlgen/issues/1537 - # This is to give `go generate ./graph` access to gqlgen's *.gotpl files - # If it fails, the gqlgenVersion may have to be updated. - preBuild = '' - unzip ''${GOPROXY#"file://"}/github.com/99designs/gqlgen/@v/v${gqlgenVersion}.zip - if [ -d ./loaders ]; then go generate ./loaders; fi - if [ -d ./graph ]; then go generate ./graph; fi - rm -rf github.com - ''; -} diff --git a/pkgs/applications/version-management/sourcehut/git.nix b/pkgs/applications/version-management/sourcehut/git.nix deleted file mode 100644 index cf58b41994e5..000000000000 --- a/pkgs/applications/version-management/sourcehut/git.nix +++ /dev/null @@ -1,153 +0,0 @@ -{ - lib, - fetchFromSourcehut, - buildGoModule, - buildPythonPackage, - python, - srht, - scmsrht, - pygit2, - minio, - pythonOlder, - unzip, - pip, - setuptools-scm, -}: -let - version = "0.88.10"; - gqlgen = import ./fix-gqlgen-trimpath.nix { - inherit unzip; - gqlgenVersion = "0.17.64"; - }; - - src = fetchFromSourcehut { - owner = "~sircmpwn"; - repo = "git.sr.ht"; - rev = version; - hash = "sha256-o7d2EIx9oJAQSIrMMG/TYjAo7PJwT6rE8kcVMKoYenY="; - }; - - patches = [ ./patches/core-go-update/git/patch-deps.patch ]; - - gitApi = buildGoModule ( - { - inherit src version patches; - pname = "gitsrht-api"; - modRoot = "api"; - vendorHash = "sha256-20SxOZrvj41L8A5nuOro9DYiK6FyhwJK5cNAvxPB7qw="; - } - // gqlgen - ); - - gitDispatch = buildGoModule ( - { - inherit src version patches; - pname = "gitsrht-dispatch"; - modRoot = "dispatch"; - vendorHash = "sha256-MXLF7vO8SmUkU1nOxhObuzjT2ZRQQluIX7TRrxL7/3Y="; - - postPatch = '' - substituteInPlace dispatch/main.go \ - --replace-fail /var/log/git.sr.ht-dispatch /var/log/sourcehut/git.sr.ht-dispatch - ''; - } - // gqlgen - ); - - gitKeys = buildGoModule ( - { - inherit src version patches; - pname = "gitsrht-keys"; - modRoot = "keys"; - vendorHash = "sha256-MXLF7vO8SmUkU1nOxhObuzjT2ZRQQluIX7TRrxL7/3Y="; - - postPatch = '' - substituteInPlace keys/main.go \ - --replace-fail /var/log/git.sr.ht-keys /var/log/sourcehut/git.sr.ht-keys - ''; - } - // gqlgen - ); - - gitShell = buildGoModule ( - { - inherit src version patches; - pname = "gitsrht-shell"; - modRoot = "shell"; - vendorHash = "sha256-MXLF7vO8SmUkU1nOxhObuzjT2ZRQQluIX7TRrxL7/3Y="; - - postPatch = '' - substituteInPlace shell/main.go \ - --replace-fail /var/log/git.sr.ht-shell /var/log/sourcehut/git.sr.ht-shell - ''; - } - // gqlgen - ); - - gitUpdateHook = buildGoModule ( - { - inherit src version patches; - pname = "gitsrht-update-hook"; - modRoot = "update-hook"; - vendorHash = "sha256-MXLF7vO8SmUkU1nOxhObuzjT2ZRQQluIX7TRrxL7/3Y="; - - postPatch = '' - substituteInPlace update-hook/main.go \ - --replace-fail /var/log/git.sr.ht-update-hook /var/log/sourcehut/git.sr.ht-update-hook - ''; - } - // gqlgen - ); -in -buildPythonPackage rec { - inherit src version patches; - pname = "gitsrht"; - pyproject = true; - - disabled = pythonOlder "3.7"; - - nativeBuildInputs = [ - pip - setuptools-scm - ]; - - propagatedBuildInputs = [ - srht - scmsrht - pygit2 - minio - ]; - - env = { - PKGVER = version; - SRHT_PATH = "${srht}/${python.sitePackages}/srht"; - PREFIX = placeholder "out"; - }; - - postBuild = '' - make SASSC_INCLUDE=-I${srht}/share/sourcehut/scss/ all-share - ''; - - postInstall = '' - mkdir -p $out/bin - ln -s ${gitApi}/bin/api $out/bin/git.sr.ht-api - ln -s ${gitDispatch}/bin/dispatch $out/bin/git.sr.ht-dispatch - ln -s ${gitKeys}/bin/keys $out/bin/git.sr.ht-keys - ln -s ${gitShell}/bin/shell $out/bin/git.sr.ht-shell - ln -s ${gitUpdateHook}/bin/update-hook $out/bin/git.sr.ht-update-hook - install -Dm644 schema.sql $out/share/sourcehut/git.sr.ht-schema.sql - make PREFIX=$out install-share - ''; - - pythonImportsCheck = [ "gitsrht" ]; - - meta = with lib; { - homepage = "https://git.sr.ht/~sircmpwn/git.sr.ht"; - description = "Git repository hosting service for the sr.ht network"; - license = licenses.agpl3Only; - maintainers = with maintainers; [ - eadwu - christoph-heiss - ]; - }; -} diff --git a/pkgs/applications/version-management/sourcehut/hg.nix b/pkgs/applications/version-management/sourcehut/hg.nix deleted file mode 100644 index 59642035e236..000000000000 --- a/pkgs/applications/version-management/sourcehut/hg.nix +++ /dev/null @@ -1,117 +0,0 @@ -{ - lib, - fetchFromSourcehut, - fetchpatch, - buildGoModule, - buildPythonPackage, - srht, - python-hglib, - scmsrht, - unidiff, - python, - unzip, - pip, - pythonOlder, - setuptools-scm, -}: - -let - version = "0.36.1"; - gqlgen = import ./fix-gqlgen-trimpath.nix { - inherit unzip; - gqlgenVersion = "0.17.64"; - }; - - patches = [ - (fetchpatch { - name = "update-core-go-and-gqlgen.patch"; - url = "https://hg.sr.ht/~sircmpwn/hg.sr.ht/rev/2765f086c3a67e00219cabe9a1dd01b2012c5c12.patch"; - hash = "sha256-MLZG07tD7vrfvx2GDRUvFd/7VxxZLrAa/C3bB/IvQpI="; - }) - ./patches/core-go-update/hg/patch-deps.patch - ]; - - src = fetchFromSourcehut { - owner = "~sircmpwn"; - repo = "hg.sr.ht"; - rev = version; - hash = "sha256-EeWRUb/BZ+KJXNqmzCFYHkvWUaPvF/F7ZaOYM0IEYwk="; - vc = "hg"; - }; - - hgsrht-api = buildGoModule ( - { - inherit src version patches; - pname = "hgsrht-api"; - modRoot = "api"; - vendorHash = "sha256-elaVmyaO5IbzsnBYRjJvmoOFR8gx1xCfzd3z01KNXVA="; - } - // gqlgen - ); - - hgsrht-keys = buildGoModule { - inherit src version patches; - pname = "hgsrht-keys"; - modRoot = "keys"; - vendorHash = "sha256-U5NtgyUgVqI25XBg51U7glNRpR5MZBCcsuuR6f+gZc8="; - - postPatch = '' - substituteInPlace keys/main.go \ - --replace-fail /var/log/hg.sr.ht-keys /var/log/sourcehut/hg.sr.ht-keys - ''; - }; -in -buildPythonPackage rec { - inherit src version patches; - pname = "hgsrht"; - - pyproject = true; - - disabled = pythonOlder "3.7"; - - postPatch = '' - substituteInPlace hg.sr.ht-shell \ - --replace-fail /var/log/hg.sr.ht-shell /var/log/sourcehut/hg.sr.ht-shell - ''; - - nativeBuildInputs = [ - pip - setuptools-scm - ]; - - propagatedBuildInputs = [ - python-hglib - scmsrht - srht - unidiff - ]; - - env = { - PKGVER = version; - SRHT_PATH = "${srht}/${python.sitePackages}/srht"; - PREFIX = placeholder "out"; - }; - - postBuild = '' - make SASSC_INCLUDE=-I${srht}/share/sourcehut/scss/ all-share - ''; - - postInstall = '' - ln -s ${hgsrht-api}/bin/api $out/bin/hg.sr.ht-api - ln -s ${hgsrht-keys}/bin/hgsrht-keys $out/bin/hg.sr.ht-keys - install -Dm644 schema.sql $out/share/sourcehut/hg.sr.ht-schema.sql - make install-share - ''; - - pythonImportsCheck = [ "hgsrht" ]; - - meta = with lib; { - homepage = "https://hg.sr.ht/~sircmpwn/hg.sr.ht"; - description = "Mercurial repository hosting service for the sr.ht network"; - license = licenses.agpl3Only; - maintainers = with maintainers; [ - eadwu - christoph-heiss - ]; - }; -} diff --git a/pkgs/applications/version-management/sourcehut/hub.nix b/pkgs/applications/version-management/sourcehut/hub.nix deleted file mode 100644 index 52b30b793ab6..000000000000 --- a/pkgs/applications/version-management/sourcehut/hub.nix +++ /dev/null @@ -1,90 +0,0 @@ -{ - lib, - fetchFromSourcehut, - buildGoModule, - buildPythonPackage, - python, - srht, - setuptools-scm, - pip, - pyyaml, - pythonOlder, - unzip, -}: - -let - version = "0.20.2"; - gqlgen = import ./fix-gqlgen-trimpath.nix { - inherit unzip; - gqlgenVersion = "0.17.64"; - }; - - patches = [ ./patches/core-go-update/hub/patch-deps.patch ]; - - src = fetchFromSourcehut { - owner = "~sircmpwn"; - repo = "hub.sr.ht"; - rev = version; - hash = "sha256-blaaJ7kQBkswmSpEVEsDm6vaxuMuCcW2wmeN+fbwzjg="; - }; - - hubsrht-api = buildGoModule ( - { - inherit src version patches; - pname = "hubsrht-api"; - modRoot = "api"; - vendorHash = "sha256-jKNHZrFydp3+cD8MR2izzE8bi4H2uT/7+x/wmPkEIIc="; - } - // gqlgen - ); -in -buildPythonPackage rec { - inherit src version patches; - pname = "hubsrht"; - pyproject = true; - - disabled = pythonOlder "3.7"; - - nativeBuildInputs = [ - pip - setuptools-scm - ]; - - propagatedBuildInputs = [ - srht - pyyaml - ]; - - env = { - PKGVER = version; - SRHT_PATH = "${srht}/${python.sitePackages}/srht"; - PREFIX = placeholder "out"; - }; - - postBuild = '' - make SASSC_INCLUDE=-I${srht}/share/sourcehut/scss/ all-share - ''; - - postInstall = '' - ln -s ${hubsrht-api}/bin/api $out/bin/hub.sr.ht-api - install -Dm644 schema.sql $out/share/sourcehut/hub.sr.ht-schema.sql - make install-share - ''; - - # Module has no tests - doCheck = false; - - pythonImportsCheck = [ - "hubsrht" - ]; - - meta = with lib; { - homepage = "https://git.sr.ht/~sircmpwn/hub.sr.ht"; - description = "Project hub service for the sr.ht network"; - license = licenses.agpl3Only; - maintainers = with maintainers; [ - eadwu - christoph-heiss - ]; - }; -} diff --git a/pkgs/applications/version-management/sourcehut/lists.nix b/pkgs/applications/version-management/sourcehut/lists.nix deleted file mode 100644 index f36515a55b7b..000000000000 --- a/pkgs/applications/version-management/sourcehut/lists.nix +++ /dev/null @@ -1,92 +0,0 @@ -{ - lib, - fetchFromSourcehut, - buildGoModule, - buildPythonPackage, - srht, - aiosmtpd, - asyncpg, - pygit2, - emailthreads, - python, - unzip, - pip, - pythonOlder, - setuptools-scm, -}: - -let - version = "0.62.3"; - gqlgen = import ./fix-gqlgen-trimpath.nix { - inherit unzip; - gqlgenVersion = "0.17.64"; - }; - - patches = [ ./patches/core-go-update/lists/patch-deps.patch ]; - - src = fetchFromSourcehut { - owner = "~sircmpwn"; - repo = "lists.sr.ht"; - rev = version; - hash = "sha256-HU3hnKdIoseCo1/lt3GIOQ5d3joykN11/Bzvk4xvH4Y="; - }; - - listssrht-api = buildGoModule ( - { - inherit src version patches; - pname = "listssrht-api"; - modRoot = "api"; - vendorHash = "sha256-XKDEr8ESs9oBh7DKu2jgPEMDY99nN25inkNwU/rrza8="; - } - // gqlgen - ); -in -buildPythonPackage rec { - inherit src version patches; - pname = "listssrht"; - pyproject = true; - - disabled = pythonOlder "3.7"; - - nativeBuildInputs = [ - pip - setuptools-scm - ]; - - propagatedBuildInputs = [ - srht - aiosmtpd - asyncpg - pygit2 - # Unofficial dependency - emailthreads - ]; - - env = { - PKGVER = version; - SRHT_PATH = "${srht}/${python.sitePackages}/srht"; - PREFIX = placeholder "out"; - }; - - postBuild = '' - make SASSC_INCLUDE=-I${srht}/share/sourcehut/scss/ all-share - ''; - - postInstall = '' - ln -s ${listssrht-api}/bin/api $out/bin/lists.sr.ht-api - install -Dm644 schema.sql $out/share/sourcehut/lists.sr.ht-schema.sql - make install-share - ''; - - pythonImportsCheck = [ "listssrht" ]; - - meta = with lib; { - homepage = "https://git.sr.ht/~sircmpwn/lists.sr.ht"; - description = "Mailing list service for the sr.ht network"; - license = licenses.agpl3Only; - maintainers = with maintainers; [ - eadwu - christoph-heiss - ]; - }; -} diff --git a/pkgs/applications/version-management/sourcehut/man.nix b/pkgs/applications/version-management/sourcehut/man.nix deleted file mode 100644 index 8b9e0525a926..000000000000 --- a/pkgs/applications/version-management/sourcehut/man.nix +++ /dev/null @@ -1,85 +0,0 @@ -{ - lib, - fetchFromSourcehut, - buildGoModule, - buildPythonPackage, - srht, - pygit2, - python, - unzip, - pip, - pythonOlder, - setuptools-scm, -}: - -let - version = "0.18.1"; - gqlgen = import ./fix-gqlgen-trimpath.nix { - inherit unzip; - gqlgenVersion = "0.17.64"; - }; - - patches = [ ./patches/core-go-update/man/patch-deps.patch ]; - - src = fetchFromSourcehut { - owner = "~sircmpwn"; - repo = "man.sr.ht"; - rev = version; - hash = "sha256-c2xFC1pmOSGGMP4RVOmgFogj7CY2kHrADsWsm7M5ZK4="; - }; - - mansrht-api = buildGoModule ( - { - inherit src version patches; - pname = "mansrht-api"; - modRoot = "api"; - vendorHash = "sha256-jKNHZrFydp3+cD8MR2izzE8bi4H2uT/7+x/wmPkEIIc="; - } - // gqlgen - ); -in -buildPythonPackage rec { - inherit src version patches; - pname = "mansrht"; - pyproject = true; - - disabled = pythonOlder "3.7"; - - nativeBuildInputs = [ - pip - setuptools-scm - ]; - - propagatedBuildInputs = [ - srht - pygit2 - ]; - - env = { - PKGVER = version; - SRHT_PATH = "${srht}/${python.sitePackages}/srht"; - PREFIX = placeholder "out"; - }; - - postBuild = '' - make SASSC_INCLUDE=-I${srht}/share/sourcehut/scss/ all-share - ''; - - postInstall = '' - ln -s ${mansrht-api}/bin/api $out/bin/man.sr.ht-api - install -Dm644 schema.sql $out/share/sourcehut/man.sr.ht-schema.sql - make install-share - ''; - - pythonImportsCheck = [ "mansrht" ]; - - meta = with lib; { - homepage = "https://git.sr.ht/~sircmpwn/man.sr.ht"; - description = "Wiki service for the sr.ht network"; - license = licenses.agpl3Only; - maintainers = with maintainers; [ - eadwu - christoph-heiss - ]; - }; -} diff --git a/pkgs/applications/version-management/sourcehut/meta.nix b/pkgs/applications/version-management/sourcehut/meta.nix deleted file mode 100644 index 356812b643d8..000000000000 --- a/pkgs/applications/version-management/sourcehut/meta.nix +++ /dev/null @@ -1,99 +0,0 @@ -{ - lib, - fetchFromSourcehut, - buildPythonPackage, - buildGoModule, - alembic, - bcrypt, - dnspython, - qrcode, - redis, - srht, - stripe, - prometheus-client, - zxcvbn, - python, - unzip, - pip, - pythonOlder, - setuptools-scm, -}: -let - version = "0.72.11"; - gqlgen = import ./fix-gqlgen-trimpath.nix { - inherit unzip; - gqlgenVersion = "0.17.64"; - }; - - patches = [ ./patches/core-go-update/meta/patch-deps.patch ]; - - src = fetchFromSourcehut { - owner = "~sircmpwn"; - repo = "meta.sr.ht"; - rev = version; - hash = "sha256-dh+9wSQLL69xZ2Elmkyb9vEwpE7U7szz62VVS/0IM7Q="; - }; - - metasrht-api = buildGoModule ( - { - inherit src version patches; - pname = "metasrht-api"; - modRoot = "api"; - vendorHash = "sha256-z4gRqI05t3m7ANyDJHmBcOCW476IG/eTfLetPRPbqtg="; - } - // gqlgen - ); -in -buildPythonPackage rec { - pname = "metasrht"; - inherit version src patches; - pyproject = true; - - disabled = pythonOlder "3.7"; - - nativeBuildInputs = [ - pip - setuptools-scm - ]; - - propagatedBuildInputs = [ - alembic - bcrypt - dnspython - qrcode - redis - srht - stripe - prometheus-client - zxcvbn - ]; - - env = { - PKGVER = version; - SRHT_PATH = "${srht}/${python.sitePackages}/srht"; - PREFIX = placeholder "out"; - }; - - postBuild = '' - make SASSC_INCLUDE=-I${srht}/share/sourcehut/scss/ all-share - ''; - - postInstall = '' - mkdir -p $out/bin - ln -s ${metasrht-api}/bin/api $out/bin/meta.sr.ht-api - install -Dm644 schema.sql $out/share/sourcehut/meta.sr.ht-schema.sql - make install-share - ''; - - pythonImportsCheck = [ "metasrht" ]; - - meta = with lib; { - homepage = "https://git.sr.ht/~sircmpwn/meta.sr.ht"; - description = "Account management service for the sr.ht network"; - license = licenses.agpl3Only; - maintainers = with maintainers; [ - eadwu - christoph-heiss - ]; - }; -} diff --git a/pkgs/applications/version-management/sourcehut/pages.nix b/pkgs/applications/version-management/sourcehut/pages.nix deleted file mode 100644 index cd3aa0db0ce7..000000000000 --- a/pkgs/applications/version-management/sourcehut/pages.nix +++ /dev/null @@ -1,51 +0,0 @@ -{ - lib, - fetchFromSourcehut, - buildGoModule, - unzip, -}: - -buildGoModule ( - rec { - pname = "pagessrht"; - version = "0.16.0"; - - src = fetchFromSourcehut { - owner = "~sircmpwn"; - repo = "pages.sr.ht"; - rev = version; - hash = "sha256-XnKNXYzg9wuL4U2twkAspaQJZy2HWLQQQl9AITtipVU="; - }; - - patches = ./patches/core-go-update/pages/patch-deps.patch; - - postPatch = '' - substituteInPlace Makefile \ - --replace-fail "all: server daily" "" - ''; - - vendorHash = "sha256-klDROxNvR7lk79ptckulImVVwsAfcnKtJJAaevlZSWU="; - - postInstall = '' - mkdir -p $out/share/sql/ - cp -r -t $out/share/sql/ schema.sql migrations - ''; - - meta = with lib; { - homepage = "https://git.sr.ht/~sircmpwn/pages.sr.ht"; - description = "Web hosting service for the sr.ht network"; - mainProgram = "pages.sr.ht"; - license = licenses.agpl3Only; - maintainers = with maintainers; [ - eadwu - christoph-heiss - ]; - }; - # There is no ./loaders but this does not cause troubles - # to go generate - } - // import ./fix-gqlgen-trimpath.nix { - inherit unzip; - gqlgenVersion = "0.17.64"; - } -) diff --git a/pkgs/applications/version-management/sourcehut/paste.nix b/pkgs/applications/version-management/sourcehut/paste.nix deleted file mode 100644 index e4208de8cd08..000000000000 --- a/pkgs/applications/version-management/sourcehut/paste.nix +++ /dev/null @@ -1,86 +0,0 @@ -{ - lib, - fetchFromSourcehut, - buildGoModule, - buildPythonPackage, - srht, - pip, - pyyaml, - python, - pythonOlder, - setuptools-scm, - unzip, -}: - -let - version = "0.16.1"; - gqlgen = import ./fix-gqlgen-trimpath.nix { - inherit unzip; - gqlgenVersion = "0.17.64"; - }; - - patches = [ ./patches/core-go-update/paste/patch-deps.patch ]; - - src = fetchFromSourcehut { - owner = "~sircmpwn"; - repo = "paste.sr.ht"; - rev = version; - hash = "sha256-SWtkE2/sTTJo0zAVFRfsA7fVF359OvgiHOT+yRaiads="; - }; - - pastesrht-api = buildGoModule ( - { - inherit src version patches; - pname = "pastesrht-api"; - modRoot = "api"; - vendorHash = "sha256-uVqxPa1YggPgdSzGzXxVNdf4dM2DPGDXajkSXz4NhFM="; - } - // gqlgen - ); -in -buildPythonPackage rec { - inherit src version patches; - pname = "pastesrht"; - pyproject = true; - - disabled = pythonOlder "3.7"; - - nativeBuildInputs = [ - pip - setuptools-scm - ]; - - propagatedBuildInputs = [ - srht - pyyaml - ]; - - env = { - PKGVER = version; - SRHT_PATH = "${srht}/${python.sitePackages}/srht"; - PREFIX = placeholder "out"; - }; - - postBuild = '' - make SASSC_INCLUDE=-I${srht}/share/sourcehut/scss/ all-share - ''; - - postInstall = '' - mkdir -p $out/bin - ln -s ${pastesrht-api}/bin/api $out/bin/paste.sr.ht-api - make install-share - ''; - - pythonImportsCheck = [ "pastesrht" ]; - - meta = with lib; { - homepage = "https://git.sr.ht/~sircmpwn/paste.sr.ht"; - description = "Ad-hoc text file hosting service for the sr.ht network"; - license = licenses.agpl3Only; - maintainers = with maintainers; [ - eadwu - nessdoor - christoph-heiss - ]; - }; -} diff --git a/pkgs/applications/version-management/sourcehut/patches/core-go-update/builds/patch-deps.patch b/pkgs/applications/version-management/sourcehut/patches/core-go-update/builds/patch-deps.patch deleted file mode 100644 index 27017b57ed8c..000000000000 --- a/pkgs/applications/version-management/sourcehut/patches/core-go-update/builds/patch-deps.patch +++ /dev/null @@ -1,25 +0,0 @@ -diff --git a/go.mod b/go.mod -index 07f7c64..972b258 100644 ---- a/go.mod -+++ b/go.mod -@@ -5,7 +5,7 @@ go 1.22.5 - toolchain go1.24.0 - - require ( -- git.sr.ht/~sircmpwn/core-go v0.0.0-20250304085405-cbf919e45b5b -+ git.sr.ht/~sircmpwn/core-go v0.0.0-20250311210855-6ba248d8be1b - git.sr.ht/~sircmpwn/dowork v0.0.0-20241216125407-2b00aa42322c - github.com/99designs/gqlgen v0.17.64 - github.com/Masterminds/squirrel v1.5.4 -diff --git a/go.sum b/go.sum -index aaccf89..73bfe7c 100644 ---- a/go.sum -+++ b/go.sum -@@ -1,5 +1,7 @@ - git.sr.ht/~sircmpwn/core-go v0.0.0-20250304085405-cbf919e45b5b h1:d76irAQODAtl5G1zmKfwf60544fyGz74YT9k+7yYVxc= - git.sr.ht/~sircmpwn/core-go v0.0.0-20250304085405-cbf919e45b5b/go.mod h1:UHi3kXwgfZ/DIbMu5LeqZb3KrY/jsdUDefc8+3YWC3c= -+git.sr.ht/~sircmpwn/core-go v0.0.0-20250311210855-6ba248d8be1b h1:UuQxEJrh/NNdmaVcK34opEz7ypXnPyxeRcT7Aigz+7E= -+git.sr.ht/~sircmpwn/core-go v0.0.0-20250311210855-6ba248d8be1b/go.mod h1:UHi3kXwgfZ/DIbMu5LeqZb3KrY/jsdUDefc8+3YWC3c= - git.sr.ht/~sircmpwn/dowork v0.0.0-20241216125407-2b00aa42322c h1:v2opuaN0C5ZpuCifRNR9ZQ8V9IG+Ja80otK1MFj5RnI= - git.sr.ht/~sircmpwn/dowork v0.0.0-20241216125407-2b00aa42322c/go.mod h1:8neHEO3503w/rNtttnR0JFpQgM/GFhaafVwvkPsFIDw= - git.sr.ht/~sircmpwn/getopt v0.0.0-20191230200459-23622cc906b3/go.mod h1:wMEGFFFNuPos7vHmWXfszqImLppbc0wEhh6JBfJIUgw= diff --git a/pkgs/applications/version-management/sourcehut/patches/core-go-update/git/patch-deps.patch b/pkgs/applications/version-management/sourcehut/patches/core-go-update/git/patch-deps.patch deleted file mode 100644 index f6e1d18e3c5c..000000000000 --- a/pkgs/applications/version-management/sourcehut/patches/core-go-update/git/patch-deps.patch +++ /dev/null @@ -1,26 +0,0 @@ -diff --git a/go.mod b/go.mod -index b1e0834..8299f9b 100644 ---- a/go.mod -+++ b/go.mod -@@ -5,7 +5,7 @@ go 1.22.5 - toolchain go1.24.0 - - require ( -- git.sr.ht/~sircmpwn/core-go v0.0.0-20250304085405-cbf919e45b5b -+ git.sr.ht/~sircmpwn/core-go v0.0.0-20250311210855-6ba248d8be1b - git.sr.ht/~sircmpwn/dowork v0.0.0-20241216125407-2b00aa42322c - git.sr.ht/~sircmpwn/scm.sr.ht/srht-keys v0.0.0-20241202093706-8da5ec7e6b94 - git.sr.ht/~turminal/go-fnmatch v0.0.0-20211021204744-1a55764af6de -diff --git a/go.sum b/go.sum -index 193cce9..9b0bda4 100644 ---- a/go.sum -+++ b/go.sum -@@ -35,6 +35,8 @@ dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7 - git.sr.ht/~sircmpwn/core-go v0.0.0-20240124105042-864816cfbc0c/go.mod h1:OovCpg5LsbYJjmDTpk5wUgHM4tUor736Pmxekm9BUcQ= - git.sr.ht/~sircmpwn/core-go v0.0.0-20250304085405-cbf919e45b5b h1:d76irAQODAtl5G1zmKfwf60544fyGz74YT9k+7yYVxc= - git.sr.ht/~sircmpwn/core-go v0.0.0-20250304085405-cbf919e45b5b/go.mod h1:UHi3kXwgfZ/DIbMu5LeqZb3KrY/jsdUDefc8+3YWC3c= -+git.sr.ht/~sircmpwn/core-go v0.0.0-20250311210855-6ba248d8be1b h1:UuQxEJrh/NNdmaVcK34opEz7ypXnPyxeRcT7Aigz+7E= -+git.sr.ht/~sircmpwn/core-go v0.0.0-20250311210855-6ba248d8be1b/go.mod h1:UHi3kXwgfZ/DIbMu5LeqZb3KrY/jsdUDefc8+3YWC3c= - git.sr.ht/~sircmpwn/dowork v0.0.0-20221010085743-46c4299d76a1/go.mod h1:8neHEO3503w/rNtttnR0JFpQgM/GFhaafVwvkPsFIDw= - git.sr.ht/~sircmpwn/dowork v0.0.0-20241216125407-2b00aa42322c h1:v2opuaN0C5ZpuCifRNR9ZQ8V9IG+Ja80otK1MFj5RnI= - git.sr.ht/~sircmpwn/dowork v0.0.0-20241216125407-2b00aa42322c/go.mod h1:8neHEO3503w/rNtttnR0JFpQgM/GFhaafVwvkPsFIDw= diff --git a/pkgs/applications/version-management/sourcehut/patches/core-go-update/hg/patch-deps.patch b/pkgs/applications/version-management/sourcehut/patches/core-go-update/hg/patch-deps.patch deleted file mode 100644 index 6ab931be71e9..000000000000 --- a/pkgs/applications/version-management/sourcehut/patches/core-go-update/hg/patch-deps.patch +++ /dev/null @@ -1,25 +0,0 @@ -diff --git a/go.mod b/go.mod -index ba49458..3a31083 100644 ---- a/go.mod -+++ b/go.mod -@@ -5,7 +5,7 @@ go 1.22.5 - toolchain go1.24.0 - - require ( -- git.sr.ht/~sircmpwn/core-go v0.0.0-20250304085405-cbf919e45b5b -+ git.sr.ht/~sircmpwn/core-go v0.0.0-20250311210855-6ba248d8be1b - git.sr.ht/~sircmpwn/dowork v0.0.0-20241216125407-2b00aa42322c - github.com/99designs/gqlgen v0.17.64 - github.com/Masterminds/squirrel v1.5.4 -diff --git a/go.sum b/go.sum -index 61766aa..e01c045 100644 ---- a/go.sum -+++ b/go.sum -@@ -1,5 +1,7 @@ - git.sr.ht/~sircmpwn/core-go v0.0.0-20250304085405-cbf919e45b5b h1:d76irAQODAtl5G1zmKfwf60544fyGz74YT9k+7yYVxc= - git.sr.ht/~sircmpwn/core-go v0.0.0-20250304085405-cbf919e45b5b/go.mod h1:UHi3kXwgfZ/DIbMu5LeqZb3KrY/jsdUDefc8+3YWC3c= -+git.sr.ht/~sircmpwn/core-go v0.0.0-20250311210855-6ba248d8be1b h1:UuQxEJrh/NNdmaVcK34opEz7ypXnPyxeRcT7Aigz+7E= -+git.sr.ht/~sircmpwn/core-go v0.0.0-20250311210855-6ba248d8be1b/go.mod h1:UHi3kXwgfZ/DIbMu5LeqZb3KrY/jsdUDefc8+3YWC3c= - git.sr.ht/~sircmpwn/dowork v0.0.0-20241216125407-2b00aa42322c h1:v2opuaN0C5ZpuCifRNR9ZQ8V9IG+Ja80otK1MFj5RnI= - git.sr.ht/~sircmpwn/dowork v0.0.0-20241216125407-2b00aa42322c/go.mod h1:8neHEO3503w/rNtttnR0JFpQgM/GFhaafVwvkPsFIDw= - git.sr.ht/~sircmpwn/getopt v0.0.0-20191230200459-23622cc906b3/go.mod h1:wMEGFFFNuPos7vHmWXfszqImLppbc0wEhh6JBfJIUgw= diff --git a/pkgs/applications/version-management/sourcehut/patches/core-go-update/hub/patch-deps.patch b/pkgs/applications/version-management/sourcehut/patches/core-go-update/hub/patch-deps.patch deleted file mode 100644 index 495783f16b21..000000000000 --- a/pkgs/applications/version-management/sourcehut/patches/core-go-update/hub/patch-deps.patch +++ /dev/null @@ -1,25 +0,0 @@ -diff --git a/go.mod b/go.mod -index ea624d5..3674152 100644 ---- a/go.mod -+++ b/go.mod -@@ -5,7 +5,7 @@ go 1.22.5 - toolchain go1.24.0 - - require ( -- git.sr.ht/~sircmpwn/core-go v0.0.0-20250304085405-cbf919e45b5b -+ git.sr.ht/~sircmpwn/core-go v0.0.0-20250311210855-6ba248d8be1b - git.sr.ht/~sircmpwn/dowork v0.0.0-20241216125407-2b00aa42322c - github.com/99designs/gqlgen v0.17.64 - github.com/vektah/gqlparser/v2 v2.5.23 -diff --git a/go.sum b/go.sum -index f67a555..a366a60 100644 ---- a/go.sum -+++ b/go.sum -@@ -1,5 +1,7 @@ - git.sr.ht/~sircmpwn/core-go v0.0.0-20250304085405-cbf919e45b5b h1:d76irAQODAtl5G1zmKfwf60544fyGz74YT9k+7yYVxc= - git.sr.ht/~sircmpwn/core-go v0.0.0-20250304085405-cbf919e45b5b/go.mod h1:UHi3kXwgfZ/DIbMu5LeqZb3KrY/jsdUDefc8+3YWC3c= -+git.sr.ht/~sircmpwn/core-go v0.0.0-20250311210855-6ba248d8be1b h1:UuQxEJrh/NNdmaVcK34opEz7ypXnPyxeRcT7Aigz+7E= -+git.sr.ht/~sircmpwn/core-go v0.0.0-20250311210855-6ba248d8be1b/go.mod h1:UHi3kXwgfZ/DIbMu5LeqZb3KrY/jsdUDefc8+3YWC3c= - git.sr.ht/~sircmpwn/dowork v0.0.0-20241216125407-2b00aa42322c h1:v2opuaN0C5ZpuCifRNR9ZQ8V9IG+Ja80otK1MFj5RnI= - git.sr.ht/~sircmpwn/dowork v0.0.0-20241216125407-2b00aa42322c/go.mod h1:8neHEO3503w/rNtttnR0JFpQgM/GFhaafVwvkPsFIDw= - git.sr.ht/~sircmpwn/getopt v0.0.0-20191230200459-23622cc906b3/go.mod h1:wMEGFFFNuPos7vHmWXfszqImLppbc0wEhh6JBfJIUgw= diff --git a/pkgs/applications/version-management/sourcehut/patches/core-go-update/lists/patch-deps.patch b/pkgs/applications/version-management/sourcehut/patches/core-go-update/lists/patch-deps.patch deleted file mode 100644 index cd6054d9408c..000000000000 --- a/pkgs/applications/version-management/sourcehut/patches/core-go-update/lists/patch-deps.patch +++ /dev/null @@ -1,26 +0,0 @@ -diff --git a/go.mod b/go.mod -index da34484..24757a0 100644 ---- a/go.mod -+++ b/go.mod -@@ -6,7 +6,7 @@ toolchain go1.24.0 - - require ( - git.sr.ht/~emersion/go-emailthreads v0.0.0-20230220165133-75c43015b6c2 -- git.sr.ht/~sircmpwn/core-go v0.0.0-20250304085405-cbf919e45b5b -+ git.sr.ht/~sircmpwn/core-go v0.0.0-20250311210855-6ba248d8be1b - git.sr.ht/~sircmpwn/dowork v0.0.0-20241216125407-2b00aa42322c - github.com/99designs/gqlgen v0.17.64 - github.com/Masterminds/squirrel v1.5.4 -diff --git a/go.sum b/go.sum -index 4590dd5..0c49985 100644 ---- a/go.sum -+++ b/go.sum -@@ -2,6 +2,8 @@ git.sr.ht/~emersion/go-emailthreads v0.0.0-20230220165133-75c43015b6c2 h1:5CkkRD - git.sr.ht/~emersion/go-emailthreads v0.0.0-20230220165133-75c43015b6c2/go.mod h1:CQUF7XpyupxjwxlNX3PHRCYL+N2COXTRRRS4MgM49R4= - git.sr.ht/~sircmpwn/core-go v0.0.0-20250304085405-cbf919e45b5b h1:d76irAQODAtl5G1zmKfwf60544fyGz74YT9k+7yYVxc= - git.sr.ht/~sircmpwn/core-go v0.0.0-20250304085405-cbf919e45b5b/go.mod h1:UHi3kXwgfZ/DIbMu5LeqZb3KrY/jsdUDefc8+3YWC3c= -+git.sr.ht/~sircmpwn/core-go v0.0.0-20250311210855-6ba248d8be1b h1:UuQxEJrh/NNdmaVcK34opEz7ypXnPyxeRcT7Aigz+7E= -+git.sr.ht/~sircmpwn/core-go v0.0.0-20250311210855-6ba248d8be1b/go.mod h1:UHi3kXwgfZ/DIbMu5LeqZb3KrY/jsdUDefc8+3YWC3c= - git.sr.ht/~sircmpwn/dowork v0.0.0-20241216125407-2b00aa42322c h1:v2opuaN0C5ZpuCifRNR9ZQ8V9IG+Ja80otK1MFj5RnI= - git.sr.ht/~sircmpwn/dowork v0.0.0-20241216125407-2b00aa42322c/go.mod h1:8neHEO3503w/rNtttnR0JFpQgM/GFhaafVwvkPsFIDw= - git.sr.ht/~sircmpwn/getopt v0.0.0-20191230200459-23622cc906b3/go.mod h1:wMEGFFFNuPos7vHmWXfszqImLppbc0wEhh6JBfJIUgw= diff --git a/pkgs/applications/version-management/sourcehut/patches/core-go-update/man/patch-deps.patch b/pkgs/applications/version-management/sourcehut/patches/core-go-update/man/patch-deps.patch deleted file mode 100644 index 581f42528f51..000000000000 --- a/pkgs/applications/version-management/sourcehut/patches/core-go-update/man/patch-deps.patch +++ /dev/null @@ -1,25 +0,0 @@ -diff --git a/go.mod b/go.mod -index 21c7713..8f158a2 100644 ---- a/go.mod -+++ b/go.mod -@@ -5,7 +5,7 @@ go 1.22.5 - toolchain go1.24.0 - - require ( -- git.sr.ht/~sircmpwn/core-go v0.0.0-20250304085405-cbf919e45b5b -+ git.sr.ht/~sircmpwn/core-go v0.0.0-20250311210855-6ba248d8be1b - git.sr.ht/~sircmpwn/dowork v0.0.0-20241216125407-2b00aa42322c - github.com/99designs/gqlgen v0.17.64 - github.com/vektah/gqlparser/v2 v2.5.23 -diff --git a/go.sum b/go.sum -index f67a555..a366a60 100644 ---- a/go.sum -+++ b/go.sum -@@ -1,5 +1,7 @@ - git.sr.ht/~sircmpwn/core-go v0.0.0-20250304085405-cbf919e45b5b h1:d76irAQODAtl5G1zmKfwf60544fyGz74YT9k+7yYVxc= - git.sr.ht/~sircmpwn/core-go v0.0.0-20250304085405-cbf919e45b5b/go.mod h1:UHi3kXwgfZ/DIbMu5LeqZb3KrY/jsdUDefc8+3YWC3c= -+git.sr.ht/~sircmpwn/core-go v0.0.0-20250311210855-6ba248d8be1b h1:UuQxEJrh/NNdmaVcK34opEz7ypXnPyxeRcT7Aigz+7E= -+git.sr.ht/~sircmpwn/core-go v0.0.0-20250311210855-6ba248d8be1b/go.mod h1:UHi3kXwgfZ/DIbMu5LeqZb3KrY/jsdUDefc8+3YWC3c= - git.sr.ht/~sircmpwn/dowork v0.0.0-20241216125407-2b00aa42322c h1:v2opuaN0C5ZpuCifRNR9ZQ8V9IG+Ja80otK1MFj5RnI= - git.sr.ht/~sircmpwn/dowork v0.0.0-20241216125407-2b00aa42322c/go.mod h1:8neHEO3503w/rNtttnR0JFpQgM/GFhaafVwvkPsFIDw= - git.sr.ht/~sircmpwn/getopt v0.0.0-20191230200459-23622cc906b3/go.mod h1:wMEGFFFNuPos7vHmWXfszqImLppbc0wEhh6JBfJIUgw= diff --git a/pkgs/applications/version-management/sourcehut/patches/core-go-update/meta/patch-deps.patch b/pkgs/applications/version-management/sourcehut/patches/core-go-update/meta/patch-deps.patch deleted file mode 100644 index 7163246928a9..000000000000 --- a/pkgs/applications/version-management/sourcehut/patches/core-go-update/meta/patch-deps.patch +++ /dev/null @@ -1,26 +0,0 @@ -diff --git a/go.mod b/go.mod -index 463f022..a7dc400 100644 ---- a/go.mod -+++ b/go.mod -@@ -8,7 +8,7 @@ require ( - git.sr.ht/~emersion/go-oauth2 v0.0.0-20240217160856-2e0d6e20b088 - git.sr.ht/~emersion/gqlclient v0.0.0-20230820050442-8873fe0204b9 - git.sr.ht/~sircmpwn/abused v0.0.0-20240216134550-21e8606c6f89 -- git.sr.ht/~sircmpwn/core-go v0.0.0-20250311090327-1e3cd785af1e -+ git.sr.ht/~sircmpwn/core-go v0.0.0-20250311210855-6ba248d8be1b - git.sr.ht/~sircmpwn/dowork v0.0.0-20241216125407-2b00aa42322c - github.com/99designs/gqlgen v0.17.64 - github.com/Masterminds/squirrel v1.5.4 -diff --git a/go.sum b/go.sum -index 9c08b1a..abf1a58 100644 ---- a/go.sum -+++ b/go.sum -@@ -6,6 +6,8 @@ git.sr.ht/~sircmpwn/abused v0.0.0-20240216134550-21e8606c6f89 h1:usW1i77LjfTfNzX - git.sr.ht/~sircmpwn/abused v0.0.0-20240216134550-21e8606c6f89/go.mod h1:A+FTCDOSRA0naGMcM9OenO7kMhBxj+Kbd+4nBpg6NO4= - git.sr.ht/~sircmpwn/core-go v0.0.0-20250311090327-1e3cd785af1e h1:epi/OdTKtazVbHHn1Qunx+nSHt96+xBBiNgs+SgRGwo= - git.sr.ht/~sircmpwn/core-go v0.0.0-20250311090327-1e3cd785af1e/go.mod h1:UHi3kXwgfZ/DIbMu5LeqZb3KrY/jsdUDefc8+3YWC3c= -+git.sr.ht/~sircmpwn/core-go v0.0.0-20250311210855-6ba248d8be1b h1:UuQxEJrh/NNdmaVcK34opEz7ypXnPyxeRcT7Aigz+7E= -+git.sr.ht/~sircmpwn/core-go v0.0.0-20250311210855-6ba248d8be1b/go.mod h1:UHi3kXwgfZ/DIbMu5LeqZb3KrY/jsdUDefc8+3YWC3c= - git.sr.ht/~sircmpwn/dowork v0.0.0-20241216125407-2b00aa42322c h1:v2opuaN0C5ZpuCifRNR9ZQ8V9IG+Ja80otK1MFj5RnI= - git.sr.ht/~sircmpwn/dowork v0.0.0-20241216125407-2b00aa42322c/go.mod h1:8neHEO3503w/rNtttnR0JFpQgM/GFhaafVwvkPsFIDw= - git.sr.ht/~sircmpwn/getopt v0.0.0-20191230200459-23622cc906b3/go.mod h1:wMEGFFFNuPos7vHmWXfszqImLppbc0wEhh6JBfJIUgw= diff --git a/pkgs/applications/version-management/sourcehut/patches/core-go-update/pages/patch-deps.patch b/pkgs/applications/version-management/sourcehut/patches/core-go-update/pages/patch-deps.patch deleted file mode 100644 index fad46f85377b..000000000000 --- a/pkgs/applications/version-management/sourcehut/patches/core-go-update/pages/patch-deps.patch +++ /dev/null @@ -1,25 +0,0 @@ -diff --git a/go.mod b/go.mod -index 67aa15c..baffe8e 100644 ---- a/go.mod -+++ b/go.mod -@@ -6,7 +6,7 @@ toolchain go1.24.0 - - require ( - git.sr.ht/~adnano/go-gemini v0.2.3 -- git.sr.ht/~sircmpwn/core-go v0.0.0-20250326085317-29a3ebfee9d0 -+ git.sr.ht/~sircmpwn/core-go v0.0.0-20250311210855-6ba248d8be1b - git.sr.ht/~sircmpwn/dowork v0.0.0-20241216125407-2b00aa42322c - github.com/99designs/gqlgen v0.17.64 - github.com/CAFxX/httpcompression v0.0.9 -diff --git a/go.sum b/go.sum -index ccd1f94..0945505 100644 ---- a/go.sum -+++ b/go.sum -@@ -1,5 +1,7 @@ - git.sr.ht/~adnano/go-gemini v0.2.3 h1:oJ+Y0/mheZ4Vg0ABjtf5dlmvq1yoONStiaQvmWWkofc= - git.sr.ht/~adnano/go-gemini v0.2.3/go.mod h1:hQ75Y0i5jSFL+FQ7AzWVAYr5LQsaFC7v3ZviNyj46dY= -+git.sr.ht/~sircmpwn/core-go v0.0.0-20250311210855-6ba248d8be1b h1:UuQxEJrh/NNdmaVcK34opEz7ypXnPyxeRcT7Aigz+7E= -+git.sr.ht/~sircmpwn/core-go v0.0.0-20250311210855-6ba248d8be1b/go.mod h1:UHi3kXwgfZ/DIbMu5LeqZb3KrY/jsdUDefc8+3YWC3c= - git.sr.ht/~sircmpwn/core-go v0.0.0-20250326085317-29a3ebfee9d0 h1:jFSTrW57GbcDoW850vw95zg0pLS1pe+cD5JtAQJ54ho= - git.sr.ht/~sircmpwn/core-go v0.0.0-20250326085317-29a3ebfee9d0/go.mod h1:UHi3kXwgfZ/DIbMu5LeqZb3KrY/jsdUDefc8+3YWC3c= - git.sr.ht/~sircmpwn/dowork v0.0.0-20241216125407-2b00aa42322c h1:v2opuaN0C5ZpuCifRNR9ZQ8V9IG+Ja80otK1MFj5RnI= diff --git a/pkgs/applications/version-management/sourcehut/patches/core-go-update/paste/patch-deps.patch b/pkgs/applications/version-management/sourcehut/patches/core-go-update/paste/patch-deps.patch deleted file mode 100644 index f381b0f186d2..000000000000 --- a/pkgs/applications/version-management/sourcehut/patches/core-go-update/paste/patch-deps.patch +++ /dev/null @@ -1,25 +0,0 @@ -diff --git a/go.mod b/go.mod -index bc39fc4..bd01e53 100644 ---- a/go.mod -+++ b/go.mod -@@ -5,7 +5,7 @@ go 1.22.5 - toolchain go1.24.0 - - require ( -- git.sr.ht/~sircmpwn/core-go v0.0.0-20250304085405-cbf919e45b5b -+ git.sr.ht/~sircmpwn/core-go v0.0.0-20250311210855-6ba248d8be1b - git.sr.ht/~sircmpwn/dowork v0.0.0-20241216125407-2b00aa42322c - github.com/99designs/gqlgen v0.17.64 - github.com/Masterminds/squirrel v1.5.4 -diff --git a/go.sum b/go.sum -index 61766aa..e01c045 100644 ---- a/go.sum -+++ b/go.sum -@@ -1,5 +1,7 @@ - git.sr.ht/~sircmpwn/core-go v0.0.0-20250304085405-cbf919e45b5b h1:d76irAQODAtl5G1zmKfwf60544fyGz74YT9k+7yYVxc= - git.sr.ht/~sircmpwn/core-go v0.0.0-20250304085405-cbf919e45b5b/go.mod h1:UHi3kXwgfZ/DIbMu5LeqZb3KrY/jsdUDefc8+3YWC3c= -+git.sr.ht/~sircmpwn/core-go v0.0.0-20250311210855-6ba248d8be1b h1:UuQxEJrh/NNdmaVcK34opEz7ypXnPyxeRcT7Aigz+7E= -+git.sr.ht/~sircmpwn/core-go v0.0.0-20250311210855-6ba248d8be1b/go.mod h1:UHi3kXwgfZ/DIbMu5LeqZb3KrY/jsdUDefc8+3YWC3c= - git.sr.ht/~sircmpwn/dowork v0.0.0-20241216125407-2b00aa42322c h1:v2opuaN0C5ZpuCifRNR9ZQ8V9IG+Ja80otK1MFj5RnI= - git.sr.ht/~sircmpwn/dowork v0.0.0-20241216125407-2b00aa42322c/go.mod h1:8neHEO3503w/rNtttnR0JFpQgM/GFhaafVwvkPsFIDw= - git.sr.ht/~sircmpwn/getopt v0.0.0-20191230200459-23622cc906b3/go.mod h1:wMEGFFFNuPos7vHmWXfszqImLppbc0wEhh6JBfJIUgw= diff --git a/pkgs/applications/version-management/sourcehut/patches/core-go-update/todo/patch-deps.patch b/pkgs/applications/version-management/sourcehut/patches/core-go-update/todo/patch-deps.patch deleted file mode 100644 index b54e77147ed8..000000000000 --- a/pkgs/applications/version-management/sourcehut/patches/core-go-update/todo/patch-deps.patch +++ /dev/null @@ -1,25 +0,0 @@ -diff --git a/go.mod b/go.mod -index a352cfd..ab4beae 100644 ---- a/go.mod -+++ b/go.mod -@@ -5,7 +5,7 @@ go 1.22.5 - toolchain go1.24.0 - - require ( -- git.sr.ht/~sircmpwn/core-go v0.0.0-20250306104433-8e729e7539f4 -+ git.sr.ht/~sircmpwn/core-go v0.0.0-20250311210855-6ba248d8be1b - git.sr.ht/~sircmpwn/dowork v0.0.0-20241216125407-2b00aa42322c - github.com/99designs/gqlgen v0.17.64 - github.com/Masterminds/squirrel v1.5.4 -diff --git a/go.sum b/go.sum -index 5342a85..50c87f1 100644 ---- a/go.sum -+++ b/go.sum -@@ -1,5 +1,7 @@ - git.sr.ht/~sircmpwn/core-go v0.0.0-20250306104433-8e729e7539f4 h1:LvEcAyN0YDwqsa7QkFXne0bQEWAod6jAI2VIc+kk5sk= - git.sr.ht/~sircmpwn/core-go v0.0.0-20250306104433-8e729e7539f4/go.mod h1:UHi3kXwgfZ/DIbMu5LeqZb3KrY/jsdUDefc8+3YWC3c= -+git.sr.ht/~sircmpwn/core-go v0.0.0-20250311210855-6ba248d8be1b h1:UuQxEJrh/NNdmaVcK34opEz7ypXnPyxeRcT7Aigz+7E= -+git.sr.ht/~sircmpwn/core-go v0.0.0-20250311210855-6ba248d8be1b/go.mod h1:UHi3kXwgfZ/DIbMu5LeqZb3KrY/jsdUDefc8+3YWC3c= - git.sr.ht/~sircmpwn/dowork v0.0.0-20241216125407-2b00aa42322c h1:v2opuaN0C5ZpuCifRNR9ZQ8V9IG+Ja80otK1MFj5RnI= - git.sr.ht/~sircmpwn/dowork v0.0.0-20241216125407-2b00aa42322c/go.mod h1:8neHEO3503w/rNtttnR0JFpQgM/GFhaafVwvkPsFIDw= - git.sr.ht/~sircmpwn/getopt v0.0.0-20191230200459-23622cc906b3/go.mod h1:wMEGFFFNuPos7vHmWXfszqImLppbc0wEhh6JBfJIUgw= diff --git a/pkgs/applications/version-management/sourcehut/patches/redis-socket/core/0001-Fix-Unix-socket-support-in-RedisQueueCollector.patch b/pkgs/applications/version-management/sourcehut/patches/redis-socket/core/0001-Fix-Unix-socket-support-in-RedisQueueCollector.patch deleted file mode 100644 index fb2c32033128..000000000000 --- a/pkgs/applications/version-management/sourcehut/patches/redis-socket/core/0001-Fix-Unix-socket-support-in-RedisQueueCollector.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 76dd636151735671be74ba9d55f773e190e22827 Mon Sep 17 00:00:00 2001 -From: Julien Moutinho -Date: Fri, 13 May 2022 22:40:46 +0200 -Subject: [PATCH core.sr.ht] Fix Unix socket support in RedisQueueCollector - -The broker URL is not necessarily in the format expected by Redis.from_url - -Especially, Redis.from_url supports this format for Unix sockets: - unix:///run/redis-sourcehut-metasrht/redis.sock?db=0 -See https://redis-py.readthedocs.io/en/stable/#redis.ConnectionPool.from_url - -Whereas Celery+Kombu support Redis but also other transports -and thus expect another scheme: - redis+socket:///run/redis-sourcehut-metasrht/redis.sock?virtual_host=1 -See https://docs.celeryproject.org/en/stable/userguide/configuration.html#redis-backend-settings -and https://github.com/celery/celery/blob/e5d99801e4b56a02af4a2e183879c767228d2817/celery/backends/redis.py#L299-L352 -and https://github.com/celery/kombu/blob/master/kombu/utils/url.py ---- - srht/metrics.py | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/srht/metrics.py b/srht/metrics.py -index 68caf8e..2df5777 100644 ---- a/srht/metrics.py -+++ b/srht/metrics.py -@@ -1,12 +1,12 @@ - import time -+from celery import Celery - from prometheus_client.metrics_core import GaugeMetricFamily - from redis import ResponseError --from srht.redis import from_url - - - class RedisQueueCollector: - def __init__(self, broker, name, documentation, queue_name="celery"): -- self.redis = from_url(broker) -+ self.redis = Celery("collector", broker=broker).connection_for_read().channel().client - self.queue_name = queue_name - self.name = name - self.documentation = documentation --- -2.35.1 - diff --git a/pkgs/applications/version-management/sourcehut/scm.nix b/pkgs/applications/version-management/sourcehut/scm.nix deleted file mode 100644 index 0a9bf574620f..000000000000 --- a/pkgs/applications/version-management/sourcehut/scm.nix +++ /dev/null @@ -1,49 +0,0 @@ -{ - lib, - fetchFromSourcehut, - buildPythonPackage, - srht, - pyyaml, - buildsrht, - pythonOlder, - setuptools-scm, -}: - -buildPythonPackage rec { - pname = "scmsrht"; - version = "0.22.28"; - pyproject = true; - - disabled = pythonOlder "3.7"; - - src = fetchFromSourcehut { - owner = "~sircmpwn"; - repo = "scm.sr.ht"; - rev = version; - hash = "sha256-+zxqiz5yPpgTwAw7w8GqJFb3OCcJEH/UhS5u2Xs7pzo="; - }; - - nativeBuildInputs = [ - setuptools-scm - ]; - - propagatedBuildInputs = [ - srht - pyyaml - buildsrht - ]; - - env.PKGVER = version; - - pythonImportsCheck = [ "scmsrht" ]; - - meta = with lib; { - homepage = "https://git.sr.ht/~sircmpwn/scm.sr.ht"; - description = "Shared support code for sr.ht source control services"; - license = licenses.agpl3Only; - maintainers = with maintainers; [ - eadwu - christoph-heiss - ]; - }; -} diff --git a/pkgs/applications/version-management/sourcehut/todo.nix b/pkgs/applications/version-management/sourcehut/todo.nix deleted file mode 100644 index 3d9374185563..000000000000 --- a/pkgs/applications/version-management/sourcehut/todo.nix +++ /dev/null @@ -1,90 +0,0 @@ -{ - lib, - fetchFromSourcehut, - buildGoModule, - buildPythonPackage, - srht, - alembic, - pytest, - factory-boy, - python, - unzip, - pythonOlder, - setuptools-scm, -}: - -let - version = "0.77.5"; - gqlgen = import ./fix-gqlgen-trimpath.nix { - inherit unzip; - gqlgenVersion = "0.17.64"; - }; - - src = fetchFromSourcehut { - owner = "~sircmpwn"; - repo = "todo.sr.ht"; - rev = version; - hash = "sha256-P+ypiW3GHoMClBmW5lUNAG6/sydHHnFGyGajmC3WARg="; - }; - - patches = [ ./patches/core-go-update/todo/patch-deps.patch ]; - - todosrht-api = buildGoModule ( - { - inherit src version patches; - pname = "todosrht-api"; - modRoot = "api"; - vendorHash = "sha256-ny6cyUIgmupeU8SFP8+RSQU7DD3Lk+j+mZQBoXKv63I="; - } - // gqlgen - ); -in -buildPythonPackage rec { - inherit src version patches; - pname = "todosrht"; - pyproject = true; - - disabled = pythonOlder "3.7"; - - nativeBuildInputs = [ - setuptools-scm - ]; - - propagatedBuildInputs = [ - srht - alembic - ]; - - env = { - PKGVER = version; - SRHT_PATH = "${srht}/${python.sitePackages}/srht"; - PREFIX = placeholder "out"; - }; - - postBuild = '' - make SASSC_INCLUDE=-I${srht}/share/sourcehut/scss/ all-share - ''; - - postInstall = '' - ln -s ${todosrht-api}/bin/api $out/bin/todo.sr.ht-api - install -Dm644 schema.sql $out/share/sourcehut/todo.sr.ht-schema.sql - make install-share - ''; - - # pytest tests fail - nativeCheckInputs = [ - pytest - factory-boy - ]; - pythonImportsCheck = [ "todosrht" ]; - - meta = with lib; { - homepage = "https://todo.sr.ht/~sircmpwn/todo.sr.ht"; - description = "Ticket tracking service for the sr.ht network"; - license = licenses.agpl3Only; - maintainers = with maintainers; [ - eadwu - christoph-heiss - ]; - }; -} diff --git a/pkgs/applications/version-management/sourcehut/update.sh b/pkgs/applications/version-management/sourcehut/update.sh deleted file mode 100755 index e5dd0b5baed0..000000000000 --- a/pkgs/applications/version-management/sourcehut/update.sh +++ /dev/null @@ -1,95 +0,0 @@ -#! /usr/bin/env nix-shell -#! nix-shell -i bash -p gnused git mercurial common-updater-scripts -set -eux -o pipefail - -cd "$(dirname "${BASH_SOURCE[0]}")" || exit 1 -root=../../../.. -tmp=$(mktemp -d) -trap 'rm -rf "$tmp"' EXIT - -attr_path() { - case "$1" in - pagessrht) printf "sourcehut.$1";; - *) printf "sourcehut.python.pkgs.$1";; - esac -} - -default() { - local p="$(attr_path "$1")" - (cd "$root" && nix-instantiate --eval --strict -A $p.meta.position | sed -re 's/^"(.*):[0-9]+"$/\1/') -} - -version() { - local p="$(attr_path "$1")" - (cd "$root" && nix-instantiate --eval --strict -A $p.version | tr -d '"') -} - -src_url() { - local p="$(attr_path "$1")" - nix-instantiate --eval --strict --expr " with import $root {}; let src = $p.drvAttrs.src; in src.meta.homepage" | tr -d '"' -} - -get_latest_version() { - src="$(src_url "$1")" - rm -rf "$tmp" - if [ "$1" = "hgsrht" ]; then - hg clone "$src" "$tmp" >/dev/null - printf "%s %s\n" \ - "$(cd "$tmp" && hg log --limit 1 --template '{latesttag}')" \ - "$(cd "$tmp" && sed -ne 's/^\s*github\.com\/99designs\/gqlgen v\(.*\)$/\1/p' go.mod)" - else - git clone "$src" "$tmp" >/dev/null - printf "%s %s\n" \ - "$(cd "$tmp" && git describe "$(git rev-list --tags --max-count=1)")" \ - "$(cd "$tmp" && sed -ne 's/^\s*github\.com\/99designs\/gqlgen v\(.*\)$/\1/p' go.mod)" - fi -} - -update_version() { - default_nix="$(default "$1")" - oldVersion="$(version "$1")" - read -r version gqlgen_ver < <(get_latest_version "$1") - local p="$(attr_path "$1")" - - (cd "$root" && update-source-version "$p" "$version") - - # update `gqlgenVersion` if necessary - old_gqlgen_ver="$(sed -ne 's/^.*gqlgenVersion = "\(.*\)".*$/\1/p' "$default_nix")" - sed -ri "s|gqlgenVersion = \"$old_gqlgen_ver\";|gqlgenVersion = \"$gqlgen_ver\";|w /dev/stdout" "$default_nix" - - # Update vendorHash of Go modules - retry=true - while "$retry"; do - retry=false; - exec < <(exec nix -L build -f "$root" sourcehut.python.pkgs."$1" 2>&1) - while IFS=' :' read -r origin hash; do - case "$origin" in - (expected|specified) oldHash="$hash";; - (got) sed -i "s|$oldHash|$hash|" "$default_nix"; retry=true; break;; - (*) printf >&2 "%s\n" "$origin${hash:+:$hash}" - esac - done - done - - if [ "$oldVersion" != "$version" ] || [ "$old_gqlgen_ver" != "$gqlgen_ver" ]; then - git add "$default_nix" - git commit -m "sourcehut.$1: $oldVersion -> $version" - fi -} - -if [ $# -gt 0 ]; then - services=("$@") -else - # Beware that some packages must be updated before others, - # eg. buildsrht must be updated before gitsrht, - # otherwise this script would enter an infinite loop - # because the reported $oldHash to be changed - # may not actually be in $default_nix - # but in the file of one of its dependencies. - services=( "srht" "scmsrht" "buildsrht" "gitsrht" "hgsrht" "hubsrht" "listssrht" "mansrht" - "metasrht" "pagessrht" "pastesrht" "todosrht" ) -fi - -for service in "${services[@]}"; do - update_version "$service" -done diff --git a/pkgs/applications/video/obs-studio/default.nix b/pkgs/applications/video/obs-studio/default.nix index 85619d66e647..c9e07022bcd0 100644 --- a/pkgs/applications/video/obs-studio/default.nix +++ b/pkgs/applications/video/obs-studio/default.nix @@ -81,13 +81,13 @@ let in stdenv.mkDerivation (finalAttrs: { pname = "obs-studio"; - version = "31.0.3"; + version = "31.0.4"; src = fetchFromGitHub { owner = "obsproject"; repo = "obs-studio"; rev = finalAttrs.version; - hash = "sha256-i1wkGlafPvfMTsQr5Ww5iwmUu+23cr0YmN10llJfohA="; + hash = "sha256-YxBPVXin8oJlo++oJogY1WMamIJmRqtSmKZDBsIZPU4="; fetchSubmodules = true; }; diff --git a/pkgs/applications/video/obs-studio/plugins/default.nix b/pkgs/applications/video/obs-studio/plugins/default.nix index 07e02c9c45d4..2131744b0a54 100644 --- a/pkgs/applications/video/obs-studio/plugins/default.nix +++ b/pkgs/applications/video/obs-studio/plugins/default.nix @@ -14,6 +14,8 @@ droidcam-obs = callPackage ./droidcam-obs { }; + distroav = qt6Packages.callPackage ./distroav { }; + input-overlay = qt6Packages.callPackage ./input-overlay.nix { }; looking-glass-obs = callPackage ./looking-glass-obs.nix { }; @@ -26,6 +28,8 @@ obs-backgroundremoval = callPackage ./obs-backgroundremoval { }; + obs-browser-transition = callPackage ./obs-browser-transition.nix { }; + obs-color-monitor = qt6Packages.callPackage ./obs-color-monitor.nix { }; obs-command-source = callPackage ./obs-command-source.nix { }; @@ -106,6 +110,8 @@ obs-vkcapture32 = pkgsi686Linux.obs-studio-plugins.obs-vkcapture; }; + obs-vnc = callPackage ./obs-vnc.nix { }; + obs-websocket = qt6Packages.callPackage ./obs-websocket.nix { }; # Websocket 4.x compatibility for OBS Studio 28+ obs-webkitgtk = callPackage ./obs-webkitgtk.nix { }; diff --git a/pkgs/applications/video/obs-studio/plugins/distroav/default.nix b/pkgs/applications/video/obs-studio/plugins/distroav/default.nix new file mode 100644 index 000000000000..6654cb08ac40 --- /dev/null +++ b/pkgs/applications/video/obs-studio/plugins/distroav/default.nix @@ -0,0 +1,61 @@ +{ + lib, + stdenv, + fetchFromGitHub, + obs-studio, + cmake, + qtbase, + ndi-6, + curl, +}: + +stdenv.mkDerivation rec { + pname = "distroav"; + version = "6.0.0"; + + nativeBuildInputs = [ + cmake + qtbase + ]; + + buildInputs = [ + obs-studio + qtbase + ndi-6 + curl + ]; + + src = fetchFromGitHub { + owner = "DistroAV"; + repo = "DistroAV"; + tag = version; + hash = "sha256-pr/5XCLo5fzergIQrYFC9o9K+KuP4leDk5/oRe5ct9Q="; + }; + + # Modify plugin-main.cpp file to fix ndi libs path + patches = [ ./hardcode-ndi-path.patch ]; + + postPatch = '' + # Add path (variable added in hardcode-ndi-path.patch + substituteInPlace src/plugin-main.cpp --replace-fail "@NDI@" "${ndi-6}" + + # Replace bundled NDI SDK with the upstream version + # (This fixes soname issues) + rm -rf lib/ndi + ln -s ${ndi-6}/include lib/ndi + ''; + + cmakeFlags = [ "-DENABLE_QT=ON" ]; + + env.NIX_CFLAGS_COMPILE = "-Wno-deprecated-declarations"; + + dontWrapQtApps = true; + + meta = { + description = "Network A/V plugin for OBS Studio (formerly obs-ndi)"; + homepage = "https://github.com/DistroAV/DistroAV"; + license = with lib.licenses; [ gpl2 ]; + maintainers = with lib.maintainers; [ globule655 ]; + platforms = lib.platforms.linux; + }; +} diff --git a/pkgs/applications/video/obs-studio/plugins/distroav/hardcode-ndi-path.patch b/pkgs/applications/video/obs-studio/plugins/distroav/hardcode-ndi-path.patch new file mode 100644 index 000000000000..567d5c4fbcb7 --- /dev/null +++ b/pkgs/applications/video/obs-studio/plugins/distroav/hardcode-ndi-path.patch @@ -0,0 +1,18 @@ +diff --git a/src/plugin-main.cpp b/src/plugin-main.cpp +index 0d94add..617af73 100644 +--- a/src/plugin-main.cpp ++++ b/src/plugin-main.cpp +@@ -369,14 +369,7 @@ const NDIlib_v5 *load_ndilib() + if (!temp_path.isEmpty()) { + locations << temp_path; + } +-#if defined(Q_OS_LINUX) || defined(Q_OS_MACOS) +- // Linux, MacOS +- // https://github.com/DistroAV/DistroAV/blob/master/lib/ndi/NDI%20SDK%20Documentation.pdf +- // "6.1 LOCATING THE LIBRARY +- // ... the redistributable on MacOS is installed within `/usr/local/lib` ..." +- locations << "/usr/lib"; +- locations << "/usr/local/lib"; +-#endif ++ locations << "@NDI@/lib"; + auto lib_path = QString(); diff --git a/pkgs/applications/video/obs-studio/plugins/obs-browser-transition.nix b/pkgs/applications/video/obs-studio/plugins/obs-browser-transition.nix new file mode 100644 index 000000000000..63b5a7d1b2f2 --- /dev/null +++ b/pkgs/applications/video/obs-studio/plugins/obs-browser-transition.nix @@ -0,0 +1,37 @@ +{ + lib, + stdenv, + fetchFromGitHub, + nix-update-script, + cmake, + obs-studio, +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "obs-browser-transition"; + version = "0.1.3"; + + src = fetchFromGitHub { + owner = "exeldro"; + repo = "obs-browser-transition"; + tag = finalAttrs.version; + hash = "sha256-m5UDqnqipkybXAZqS7c2Sj/mJKrDBkXElyc0I+c1BmE="; + }; + + nativeBuildInputs = [ cmake ]; + buildInputs = [ obs-studio ]; + + postInstall = '' + rm -rf $out/obs-plugins $out/data + ''; + + passthru.updateScript = nix-update-script { }; + + meta = { + description = "Plugin for OBS Studio to show a browser source during scene transition"; + homepage = "https://github.com/exeldro/obs-browser-transition"; + maintainers = with lib.maintainers; [ flexiondotorg ]; + license = lib.licenses.gpl2Only; + platforms = lib.platforms.linux; + }; +}) diff --git a/pkgs/applications/video/obs-studio/plugins/obs-vnc.nix b/pkgs/applications/video/obs-studio/plugins/obs-vnc.nix new file mode 100644 index 000000000000..b502735cf32f --- /dev/null +++ b/pkgs/applications/video/obs-studio/plugins/obs-vnc.nix @@ -0,0 +1,45 @@ +{ + lib, + stdenv, + fetchFromGitHub, + cmake, + obs-studio, + pkg-config, + libvncserver, +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "obs-vnc"; + version = "0.6.1"; + + src = fetchFromGitHub { + owner = "norihiro"; + repo = "obs-vnc"; + tag = "${finalAttrs.version}"; + hash = "sha256-eTvKACeVFFw6DOFAiWaG/m14jYyzZc61e79S8oVWrCs="; + }; + + nativeBuildInputs = [ + cmake + pkg-config + ]; + buildInputs = [ + libvncserver + obs-studio + ]; + + postInstall = '' + mkdir $out/lib $out/share + mv $out/obs-plugins/64bit $out/lib/obs-plugins + rm -rf $out/obs-plugins + mv $out/data $out/share/obs + ''; + + meta = { + description = "VNC viewer integrated into OBS Studio as a source plugin"; + homepage = "https://github.com/norihiro/obs-vnc"; + maintainers = with lib.maintainers; [ flexiondotorg ]; + license = lib.licenses.gpl2Only; + platforms = lib.platforms.linux; + }; +}) diff --git a/pkgs/applications/video/obs-studio/plugins/wlrobs.nix b/pkgs/applications/video/obs-studio/plugins/wlrobs.nix index 48c6f588308b..2d169399a8fd 100644 --- a/pkgs/applications/video/obs-studio/plugins/wlrobs.nix +++ b/pkgs/applications/video/obs-studio/plugins/wlrobs.nix @@ -38,6 +38,6 @@ stdenv.mkDerivation { homepage = "https://hg.sr.ht/~scoopta/wlrobs"; maintainers = with maintainers; [ grahamc ]; license = licenses.gpl3Plus; - platforms = [ "x86_64-linux" ]; + platforms = platforms.linux; }; } diff --git a/pkgs/by-name/ap/appium-inspector/package.nix b/pkgs/by-name/ap/appium-inspector/package.nix index ad157375150f..c8df903297b5 100644 --- a/pkgs/by-name/ap/appium-inspector/package.nix +++ b/pkgs/by-name/ap/appium-inspector/package.nix @@ -2,7 +2,7 @@ lib, buildNpmPackage, copyDesktopItems, - electron_34, + electron_36, fetchFromGitHub, makeDesktopItem, makeWrapper, @@ -10,7 +10,7 @@ }: let - electron = electron_34; + electron = electron_36; version = "2025.3.1"; in diff --git a/pkgs/by-name/bi/bibiman/package.nix b/pkgs/by-name/bi/bibiman/package.nix index 405b26b18b10..afd2f9aebf34 100644 --- a/pkgs/by-name/bi/bibiman/package.nix +++ b/pkgs/by-name/bi/bibiman/package.nix @@ -8,18 +8,18 @@ rustPlatform.buildRustPackage rec { pname = "bibiman"; - version = "0.12.3"; + version = "0.12.4"; src = fetchFromGitea { domain = "codeberg.org"; owner = "lukeflo"; repo = "bibiman"; tag = "v${version}"; - hash = "sha256-gjVfJyedZZhSavarBXmpG3jj7mb3706NPKB9oEVhol0="; + hash = "sha256-6duqLBPm6GlBHm3Kr4foHF1MKodYOYKKDITk/BiX6mA="; }; useFetchCargoVendor = true; - cargoHash = "sha256-YtpnKgTIAsDXK6pl/TvU54euOdkbUcyCH4RADYWXkls="; + cargoHash = "sha256-tbgzjTsK88+G4Wxex4Tl0K5Ii99tPNud3UEDzAHaI0M="; nativeInstallCheckInputs = [ versionCheckHook diff --git a/pkgs/by-name/to/tooling-language-server/package.nix b/pkgs/by-name/de/deputy/package.nix similarity index 50% rename from pkgs/by-name/to/tooling-language-server/package.nix rename to pkgs/by-name/de/deputy/package.nix index dc7d529230f3..c9ceffdff9b5 100644 --- a/pkgs/by-name/to/tooling-language-server/package.nix +++ b/pkgs/by-name/de/deputy/package.nix @@ -6,19 +6,19 @@ nix-update-script, }: -rustPlatform.buildRustPackage rec { - pname = "tooling-language-server"; - version = "0.5.0"; +rustPlatform.buildRustPackage (finalAttrs: { + pname = "deputy"; + version = "0.6.0"; src = fetchFromGitHub { owner = "filiptibell"; - repo = "tooling-language-server"; - tag = "v${version}"; - hash = "sha256-0FF9p3Z8C3C/fcTvu66ozCs/G3UAJ/Kf2v+4IZU4eCA="; + repo = "deputy"; + tag = "v${finalAttrs.version}"; + hash = "sha256-dTCikfHqfSVb1F6LYrLqFAEufD6dPgAi6F65yPlCO18="; }; useFetchCargoVendor = true; - cargoHash = "sha256-DxQMAnlE8oWtigU1gUEdTdBIvEtbL8xhaPLx6kt8T2c="; + cargoHash = "sha256-nGheg/HnkYsvfrsd/dPNbFQEHXFtjB5so436nrbKRqo="; nativeInstallCheckInputs = [ versionCheckHook ]; versionCheckProgramArg = "--version"; @@ -28,10 +28,10 @@ rustPlatform.buildRustPackage rec { meta = { description = "Language server for tools and package managers"; - homepage = "https://github.com/filiptibell/tooling-language-server"; - changelog = "https://github.com/filiptibell/tooling-language-server/blob/${src.tag}/CHANGELOG.md"; + homepage = "https://github.com/filiptibell/deputy"; + changelog = "https://github.com/filiptibell/deputy/blob/${finalAttrs.src.tag}/CHANGELOG.md"; license = lib.licenses.mpl20; maintainers = with lib.maintainers; [ niklaskorz ]; - mainProgram = "tooling-language-server"; + mainProgram = "deputy"; }; -} +}) diff --git a/pkgs/by-name/di/dillo/package.nix b/pkgs/by-name/di/dillo/package.nix index e32387f02ca2..53b234f354ca 100644 --- a/pkgs/by-name/di/dillo/package.nix +++ b/pkgs/by-name/di/dillo/package.nix @@ -78,7 +78,7 @@ stdenv.mkDerivation (finalAttrs: { - Helps authors to comply with web standards by using the bug meter. ''; mainProgram = "dillo"; - maintainers = with lib.maintainers; [ ]; + maintainers = with lib.maintainers; [ fgaz ]; license = lib.licenses.gpl3Plus; platforms = lib.platforms.all; }; diff --git a/pkgs/by-name/du/duplicati/package.nix b/pkgs/by-name/du/duplicati/package.nix index aaef3d602b0d..803bada022dd 100644 --- a/pkgs/by-name/du/duplicati/package.nix +++ b/pkgs/by-name/du/duplicati/package.nix @@ -2,44 +2,70 @@ lib, stdenv, fetchzip, - mono, - sqlite, - makeWrapper, + autoPatchelfHook, + gcc-unwrapped, + zlib, + lttng-ust_2_12, + icu, + openssl, + makeBinaryWrapper, }: +let + _supportedPlatforms = { + "armv7l-linux" = "linux-arm7"; + "x86_64-linux" = "linux-x64"; + "aarch64-linux" = "linux-arm64"; + }; + _platform = _supportedPlatforms."${stdenv.hostPlatform.system}"; + # nix hash convert --to sri "sha256:`nix-prefetch-url --unpack https://updates.duplicati.com/stable/duplicati-2.1.0.5_stable_2025-03-04-linux-arm64-cli.zip`" + _fileHashForSystem = { + "armv7l-linux" = "sha256-FQQ07M0rwvxNkHPW6iK5WBTKgFrZ4LOP4vgINfmtq4k="; + "x86_64-linux" = "sha256-1QspF/A3hOtqd8bVbSqClJIHUN9gBrd18J5qvZJLkQE="; + "aarch64-linux" = "sha256-mSNInaCkNf1MBZK2M42SjJnYRtB5SyGMvSGSn5oH1Cs="; + }; +in stdenv.mkDerivation (finalAttrs: { + # TODO build duplicati from source https://github.com/duplicati/duplicati/blob/master/.github/workflows/build-packages.yml pname = "duplicati"; - version = "2.1.0.2"; - channel = "beta"; - build_date = "2024-11-29"; + version = "2.1.0.5"; + channel = "stable"; + buildDate = "2025-03-04"; src = fetchzip { url = with finalAttrs; - "https://github.com/duplicati/duplicati/releases/download/v${version}-${version}_${channel}_${build_date}/duplicati-${version}_${channel}_${build_date}.zip"; - hash = "sha256-LmW6yGutxP33ghFqyOLKrGDNCQdr8DDFn/IHigsLpzA="; - stripRoot = false; + "https://updates.duplicati.com/stable/duplicati-${version}_${channel}_${buildDate}-${_platform}-cli.zip"; + hash = _fileHashForSystem."${stdenv.hostPlatform.system}"; + stripRoot = true; }; - nativeBuildInputs = [ makeWrapper ]; + nativeBuildInputs = [ + autoPatchelfHook + makeBinaryWrapper + ]; + buildInputs = [ + gcc-unwrapped + zlib + lttng-ust_2_12 + ]; installPhase = '' - mkdir -p $out/{bin,share/duplicati-${finalAttrs.version}} - cp -r * $out/share/duplicati-${finalAttrs.version} - makeWrapper "${lib.getExe mono}" $out/bin/duplicati-cli \ - --add-flags "$out/share/duplicati-${finalAttrs.version}/Duplicati.CommandLine.exe" \ + runHook preInstall + + mkdir -p $out/{bin,share} + cp -r * "$out/share/" + for file in $out/share/duplicati-*; do + makeBinaryWrapper "$file" "$out/bin/$(basename $file)" \ --prefix LD_LIBRARY_PATH : ${ lib.makeLibraryPath [ - sqlite - ] - } - makeWrapper "${lib.getExe mono}" $out/bin/duplicati-server \ - --add-flags "$out/share/duplicati-${finalAttrs.version}/Duplicati.Server.exe" \ - --prefix LD_LIBRARY_PATH : ${ - lib.makeLibraryPath [ - sqlite + icu + openssl ] } + done + + runHook postInstall ''; meta = { @@ -51,6 +77,6 @@ stdenv.mkDerivation (finalAttrs: { bot-wxt1221 ]; sourceProvenance = with lib.sourceTypes; [ binaryBytecode ]; - platforms = lib.platforms.all; + platforms = builtins.attrNames _supportedPlatforms; }; }) diff --git a/pkgs/by-name/ea/easytier/package.nix b/pkgs/by-name/ea/easytier/package.nix index dd0d55fad1f9..62c0422bd422 100644 --- a/pkgs/by-name/ea/easytier/package.nix +++ b/pkgs/by-name/ea/easytier/package.nix @@ -4,6 +4,7 @@ fetchFromGitHub, rustPlatform, protobuf, + nixosTests, nix-update-script, withQuic ? false, # with QUIC protocol support }: @@ -33,7 +34,10 @@ rustPlatform.buildRustPackage rec { doCheck = false; # tests failed due to heavy rely on network - passthru.updateScript = nix-update-script { }; + passthru = { + tests = { inherit (nixosTests) easytier; }; + updateScript = nix-update-script { }; + }; meta = { homepage = "https://github.com/EasyTier/EasyTier"; diff --git a/pkgs/by-name/gr/grafana-alloy/package.nix b/pkgs/by-name/gr/grafana-alloy/package.nix index c7847d1ed91f..878af99bd335 100644 --- a/pkgs/by-name/gr/grafana-alloy/package.nix +++ b/pkgs/by-name/gr/grafana-alloy/package.nix @@ -17,17 +17,17 @@ buildGoModule rec { pname = "grafana-alloy"; - version = "1.9.1"; + version = "1.9.2"; src = fetchFromGitHub { owner = "grafana"; repo = "alloy"; tag = "v${version}"; - hash = "sha256-j3zuV+a3hLgHrb1jcPav9AhQpT8WT/cP4KSZ9gJY0p4="; + hash = "sha256-ciM5DbP5OTvAPUNgBTuwb+hbVtKGgQzafLLOjDftPZQ="; }; proxyVendor = true; - vendorHash = "sha256-bePkYhKL8yNzVgX3Can9jyC1WKFQzHoX+L3qapZ0fjQ="; + vendorHash = "sha256-zmNrnCaUrsYJ0S5MQrj07sV+ZCnXbGQmH8Z0pMpJZk4="; nativeBuildInputs = [ fixup-yarn-lock diff --git a/pkgs/by-name/hy/hyprshell/package.nix b/pkgs/by-name/hy/hyprshell/package.nix index 24c7bc6544d8..08494a72ef65 100644 --- a/pkgs/by-name/hy/hyprshell/package.nix +++ b/pkgs/by-name/hy/hyprshell/package.nix @@ -11,17 +11,17 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "hyprshell"; - version = "4.2.13"; + version = "4.5.0"; src = fetchFromGitHub { owner = "H3rmt"; repo = "hyprshell"; tag = "v${finalAttrs.version}"; - hash = "sha256-OgIeNlD2YcW5lWAQvqMvOphIxbIpGOL2WNQmtAGCsbQ="; + hash = "sha256-AfOG2MCHRp/p894mJhCRRGTLd+DpWKAp3Epf5dR7S/E="; }; useFetchCargoVendor = true; - cargoHash = "sha256-/f1AzpuzhVLeSbemgpXkh/ag33bsRMg3lrRPKVGOcK8="; + cargoHash = "sha256-+yjqbTPmfqXGJ85J2+Muhe2/mL1UyBi2XdafY9Mp+Os="; nativeBuildInputs = [ wrapGAppsHook4 diff --git a/pkgs/by-name/nd/ndi-6/package.nix b/pkgs/by-name/nd/ndi-6/package.nix new file mode 100644 index 000000000000..1e121b7e5764 --- /dev/null +++ b/pkgs/by-name/nd/ndi-6/package.nix @@ -0,0 +1,86 @@ +{ + lib, + stdenv, + fetchurl, + avahi, + obs-studio-plugins, +}: + +let + versionJSON = lib.importJSON ./version.json; + ndiPlatform = + if stdenv.hostPlatform.isAarch64 then + "aarch64-rpi4-linux-gnueabi" + else if stdenv.hostPlatform.isAarch32 then + "arm-rpi2-linux-gnueabihf" + else if stdenv.hostPlatform.isx86_64 then + "x86_64-linux-gnu" + else + throw "unsupported platform for NDI SDK"; +in +stdenv.mkDerivation rec { + pname = "ndi-6"; + version = versionJSON.version; + majorVersion = lib.versions.major version; + installerName = "Install_NDI_SDK_v${majorVersion}_Linux"; + + src = fetchurl { + url = "https://downloads.ndi.tv/SDK/NDI_SDK_Linux/${installerName}.tar.gz"; + hash = versionJSON.hash; + }; + + buildInputs = [ avahi ]; + + unpackPhase = '' + unpackFile $src + echo y | ./${installerName}.sh + sourceRoot="NDI SDK for Linux"; + ''; + + installPhase = '' + mkdir $out + mv bin/${ndiPlatform} $out/bin + for i in $out/bin/*; do + if [ -L "$i" ]; then continue; fi + patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" "$i" + done + patchelf --set-rpath "${avahi}/lib:${stdenv.cc.libc}/lib" $out/bin/ndi-record + patchelf --set-rpath "${avahi}/lib:${stdenv.cc.libc}/lib" $out/bin/ndi-free-audio + mv lib/${ndiPlatform} $out/lib + for i in $out/lib/*; do + if [ -L "$i" ]; then continue; fi + patchelf --set-rpath "${avahi}/lib:${stdenv.cc.libc}/lib" "$i" + done + rm $out/bin/libndi.so.${majorVersion} + ln -s $out/lib/libndi.so.${version} $out/bin/libndi.so.${majorVersion} + # Fake ndi version 5 for compatibility with DistroAV (obs plugin using NDI) + ln -s $out/lib/libndi.so.${version} $out/bin/libndi.so.5 + mv include examples $out/ + mkdir -p $out/share/doc/ndi-6 + mv licenses $out/share/doc/ndi-6/licenses + mv documentation/* $out/share/doc/ndi-6/ + ''; + + # Stripping breaks ndi-record. + dontStrip = true; + + passthru.tests = { + inherit (obs-studio-plugins) distroav; + }; + + passthru.updateScript = ./update.py; + + meta = { + homepage = "https://ndi.video/ndi-sdk/"; + description = "NDI Software Developer Kit"; + platforms = [ + "x86_64-linux" + "i686-linux" + "aarch64-linux" + "armv7l-linux" + ]; + sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ]; + license = lib.licenses.unfree; + maintainers = with lib.maintainers; [ globule655 ]; + }; +} diff --git a/pkgs/by-name/nd/ndi-6/update.py b/pkgs/by-name/nd/ndi-6/update.py new file mode 100755 index 000000000000..1f828dab2275 --- /dev/null +++ b/pkgs/by-name/nd/ndi-6/update.py @@ -0,0 +1,77 @@ +#!/usr/bin/env nix-shell +#! nix-shell -i python -p "python3.withPackages (ps: with ps; [ ps.absl-py ps.requests ])" + +import hashlib +import io +import json +import os.path +import tarfile + +import requests +from absl import app, flags + +BASE_NAME = "Install_NDI_SDK_v6_Linux" +NDI_SDK_URL = f"https://downloads.ndi.tv/SDK/NDI_SDK_Linux/{BASE_NAME}.tar.gz" +NDI_EXEC = f"{BASE_NAME}.sh" + +NDI_ARCHIVE_MAGIC = b"__NDI_ARCHIVE_BEGIN__\n" + +FLAG_out = flags.DEFINE_string("out", None, "Path to read/write version.json from/to.") + + +def find_version_json() -> str: + if FLAG_out.value: + return FLAG_out.value + try_paths = ["pkgs/by-name/nd/ndi-6/version.json", "version.json"] + for path in try_paths: + if os.path.exists(path): + return path + raise Exception( + "Couldn't figure out where to write version.json; try specifying --out" + ) + + +def fetch_tarball() -> bytes: + r = requests.get(NDI_SDK_URL) + r.raise_for_status() + return r.content + + +def read_version(tarball: bytes) -> str: + # Find the inner script. + outer_tarfile = tarfile.open(fileobj=io.BytesIO(tarball), mode="r:gz") + eula_script = outer_tarfile.extractfile(NDI_EXEC).read() + + # Now find the archive embedded within the script. + archive_start = eula_script.find(NDI_ARCHIVE_MAGIC) + len(NDI_ARCHIVE_MAGIC) + inner_tarfile = tarfile.open( + fileobj=io.BytesIO(eula_script[archive_start:]), mode="r:gz" + ) + + # Now find Version.txt... + version_txt = ( + inner_tarfile.extractfile("NDI SDK for Linux/Version.txt") + .read() + .decode("utf-8") + ) + _, _, version = version_txt.strip().partition(" v") + return version + + +def main(argv): + tarball = fetch_tarball() + + sha256 = hashlib.sha256(tarball).hexdigest() + version = { + "hash": f"sha256:{sha256}", + "version": read_version(tarball), + } + + out_path = find_version_json() + with open(out_path, "w") as f: + json.dump(version, f) + f.write("\n") + + +if __name__ == "__main__": + app.run(main) diff --git a/pkgs/by-name/nd/ndi-6/version.json b/pkgs/by-name/nd/ndi-6/version.json new file mode 100644 index 000000000000..c4142f42d71f --- /dev/null +++ b/pkgs/by-name/nd/ndi-6/version.json @@ -0,0 +1 @@ +{"hash": "sha256-6iqjexwILth2muLpXWQjDVTvOuMq4jM8KBYnpPmViU8=", "version": "6.1.1"} diff --git a/pkgs/by-name/pa/parallel-disk-usage/package.nix b/pkgs/by-name/pa/parallel-disk-usage/package.nix index 6075ee223d04..cca97919e092 100644 --- a/pkgs/by-name/pa/parallel-disk-usage/package.nix +++ b/pkgs/by-name/pa/parallel-disk-usage/package.nix @@ -5,17 +5,17 @@ }: rustPlatform.buildRustPackage rec { pname = "parallel-disk-usage"; - version = "0.11.1"; + version = "0.12.0"; src = fetchFromGitHub { owner = "KSXGitHub"; repo = "parallel-disk-usage"; rev = version; - hash = "sha256-yjNz51L/r1jqgeO0qhe8uR4Pn52acle+EmurZqVpWfI="; + hash = "sha256-Wj19lWepCrZe36njX+NMdpwXeRRh3ml9jKbbi7irrpg="; }; useFetchCargoVendor = true; - cargoHash = "sha256-v+cJ1Hw4cae/8A1MpHbIfGRVamI58byqfBLNCKKAHWk="; + cargoHash = "sha256-UK+jonM/ZBGoCKFcQlCo5OqYtKeU0VIWtx83oBh3lJQ="; meta = with lib; { description = "Highly parallelized, blazing fast directory tree analyzer"; diff --git a/pkgs/by-name/pa/paretosecurity/package.nix b/pkgs/by-name/pa/paretosecurity/package.nix index c6e774528f2d..b7633bd34361 100644 --- a/pkgs/by-name/pa/paretosecurity/package.nix +++ b/pkgs/by-name/pa/paretosecurity/package.nix @@ -17,13 +17,13 @@ buildGoModule (finalAttrs: { webkitgtk_4_1 ]; pname = "paretosecurity"; - version = "0.2.34"; + version = "0.2.36"; src = fetchFromGitHub { owner = "ParetoSecurity"; repo = "agent"; rev = finalAttrs.version; - hash = "sha256-tTFdgLpu7RRWx2B2VMROqs1HgG0qMbfUOS5KNLQFHQw="; + hash = "sha256-PAH5aswkN8MxK+sZNucXgw50Fc2CkhBLM7+wwxkgAvs="; }; vendorHash = "sha256-RAKYaNi+MXUfNnEJmZF5g9jFBDOPIVBOZWtqZp2FwWY="; diff --git a/pkgs/by-name/pe/perses/package.nix b/pkgs/by-name/pe/perses/package.nix index 88712fdce7c6..969f6fc6a2fd 100644 --- a/pkgs/by-name/pe/perses/package.nix +++ b/pkgs/by-name/pe/perses/package.nix @@ -25,13 +25,13 @@ let in buildGoModule (finalAttrs: { pname = "perses"; - version = "0.51.0"; + version = "0.51.1"; src = fetchFromGitHub { owner = "perses"; repo = "perses"; tag = "v${finalAttrs.version}"; - hash = "sha256-frCSuGEnYab4CTQoAuN876dG7Mwn/RJEnWouUuo7aJQ="; + hash = "sha256-ZijrDYG/HFPBOLEFqMDzoWhRoo/GiHr0dpjhKBJRAH8="; }; outputs = [ @@ -49,7 +49,7 @@ buildGoModule (finalAttrs: { inherit (finalAttrs) version src; pname = "${finalAttrs.pname}-ui"; sourceRoot = "${finalAttrs.src.name}/${finalAttrs.npmRoot}"; - hash = "sha256-nRE4IV8+wCuYXNAxrl7RfBFdY/ZyAIpXs3pDfCeIh74="; + hash = "sha256-yBkdqOLAopEHcS4rbOUL3bLxy27l/gm60nICsL9zigk="; }; npmRoot = "ui"; diff --git a/pkgs/by-name/pe/perses/plugins.nix b/pkgs/by-name/pe/perses/plugins.nix index 07aba9f0710b..884dcce6970d 100644 --- a/pkgs/by-name/pe/perses/plugins.nix +++ b/pkgs/by-name/pe/perses/plugins.nix @@ -57,9 +57,9 @@ hash = "sha256-61k3G+8bCsUErBCwvFxgnYCPLAqpCIcuF3GEZHacMB0="; }; "Table" = { - version = "0.7.0"; - url = "https://github.com/perses/plugins/releases/download/table/v0.7.0/Table-0.7.0.tar.gz"; - hash = "sha256-MemCUd/9RhodqMzDuYCNPYDMaSy7LpVPCTP4IUFE3lM="; + version = "0.7.1"; + url = "https://github.com/perses/plugins/releases/download/table/v0.7.1/Table-0.7.1.tar.gz"; + hash = "sha256-X/W2vSBddGHbEXzBW2MDxMwSMfVweSi5MtztXTURne8="; }; "Tempo" = { version = "0.51.0-rc.3"; diff --git a/pkgs/by-name/pi/pik/package.nix b/pkgs/by-name/pi/pik/package.nix index fff31310e55c..26e87d656308 100644 --- a/pkgs/by-name/pi/pik/package.nix +++ b/pkgs/by-name/pi/pik/package.nix @@ -8,17 +8,17 @@ rustPlatform.buildRustPackage rec { pname = "pik"; - version = "0.24.0"; + version = "0.25.0"; src = fetchFromGitHub { owner = "jacek-kurlit"; repo = "pik"; rev = version; - hash = "sha256-LA60IQtR3IYVDdww79XFsTViGeVKi1MzRBB8ibhITK0="; + hash = "sha256-3ZYABdrODJJ9RUlhL7mIu/py3GCIFG3AUXQuol7o1Zs="; }; useFetchCargoVendor = true; - cargoHash = "sha256-j/BWTCsdAZF3NDj07DY5Mdf6MRGyBe3xpowZZQHSwTU="; + cargoHash = "sha256-333MHDuHYKlTUXSm2C19ZRPXeEGDxbQEImdsleUt1QU="; passthru.tests.version = testers.testVersion { package = pik; }; diff --git a/pkgs/by-name/rs/rspamd/package.nix b/pkgs/by-name/rs/rspamd/package.nix index be3e28a4ffd3..4a773df49f9a 100644 --- a/pkgs/by-name/rs/rspamd/package.nix +++ b/pkgs/by-name/rs/rspamd/package.nix @@ -33,13 +33,13 @@ stdenv.mkDerivation rec { pname = "rspamd"; - version = "3.12.0"; + version = "3.12.1"; src = fetchFromGitHub { owner = "rspamd"; repo = "rspamd"; rev = version; - hash = "sha256-4C+bhUkqdn9RelHf6LfcfxVCIiBUCt4BxuI9TGdlIMc="; + hash = "sha256-bAkT0msUkgGkjAIlF7lnJbimBKW1NSn2zjkCj3ErJ1I="; }; hardeningEnable = [ "pie" ]; diff --git a/pkgs/by-name/ru/rundeck/package.nix b/pkgs/by-name/ru/rundeck/package.nix index 93a77617a353..12da62d4f0f2 100644 --- a/pkgs/by-name/ru/rundeck/package.nix +++ b/pkgs/by-name/ru/rundeck/package.nix @@ -12,11 +12,11 @@ stdenv.mkDerivation (finalAttrs: { pname = "rundeck"; - version = "5.12.0-20250512"; + version = "5.13.0-20250625"; src = fetchurl { url = "https://packagecloud.io/pagerduty/rundeck/packages/java/org.rundeck/rundeck-${finalAttrs.version}.war/artifacts/rundeck-${finalAttrs.version}.war/download?distro_version_id=167"; - hash = "sha256-LsKxMj+XCKTAMC3aIRnJcJkc2jytfTfu/gi0omGkMEk="; + hash = "sha256-RqyJ0/gZQ1gIYSPoYfGGN5VB5ubUMl00pHPlw6v6tBQ="; }; nativeBuildInputs = [ makeWrapper ]; diff --git a/pkgs/by-name/sp/speakersafetyd/package.nix b/pkgs/by-name/sp/speakersafetyd/package.nix index 51f02ac93fa1..bd845006d12c 100644 --- a/pkgs/by-name/sp/speakersafetyd/package.nix +++ b/pkgs/by-name/sp/speakersafetyd/package.nix @@ -2,23 +2,29 @@ stdenv, lib, rustPlatform, - fetchCrate, + fetchFromGitHub, pkg-config, alsa-lib, - rust, udevCheckHook, + nix-update-script, }: -rustPlatform.buildRustPackage rec { +rustPlatform.buildRustPackage (finalAttrs: { pname = "speakersafetyd"; - version = "1.0.2"; + version = "1.1.2"; - src = fetchCrate { - inherit pname version; - hash = "sha256-3DzBNebg1y/+psD2zOpDsnRJmabQLeO1UMxPq9M0CsU="; + src = fetchFromGitHub { + owner = "AsahiLinux"; + repo = "speakersafetyd"; + tag = finalAttrs.version; + hash = "sha256-sSGoF2c5HfPM2FBrBJwJ9NvExYijGx6JH1bJp3epfe0="; }; - useFetchCargoVendor = true; - cargoHash = "sha256-DnOnqi60JsRX8yqEM/5zZ3yX/rk85/ruwL3aW1FRXKg="; + + cargoHash = "sha256-9XbrIY1VwnHtqi/ZfS952SyjNjA/TJRdOqCsPReZI8o="; + + patches = [ + ./remove-install-paths.patch + ]; nativeBuildInputs = [ pkg-config @@ -27,32 +33,43 @@ rustPlatform.buildRustPackage rec { buildInputs = [ alsa-lib ]; postPatch = '' - substituteInPlace speakersafetyd.service --replace "/usr" "$out" - substituteInPlace Makefile --replace "target/release" "target/${stdenv.hostPlatform.rust.cargoShortTarget}/$cargoBuildType" - # creating files in /var does not make sense in a nix package - substituteInPlace Makefile --replace 'install -dDm0755 $(DESTDIR)/$(VARDIR)/lib/speakersafetyd/blackbox' "" + substituteInPlace speakersafetyd.service \ + --replace-fail "User=speakersafetyd" \ + "" \ + --replace-fail "/usr" \ + "$out" + + substituteInPlace Makefile \ + --replace-fail "target/release" \ + "target/${stdenv.hostPlatform.rust.cargoShortTarget}/$cargoBuildType" \ ''; installFlags = [ - "BINDIR=$(out)/bin" - "UNITDIR=$(out)/lib/systemd/system" - "UDEVDIR=$(out)/lib/udev/rules.d" - "SHAREDIR=$(out)/share" - "TMPFILESDIR=$(out)/lib/tmpfiles.d" + "DESTDIR=$(out)" + "BINDIR=bin" + "UNITDIR=lib/systemd/system" + "UDEVDIR=lib/udev/rules.d" + "SHAREDIR=share" + "TMPFILESDIR=lib/tmpfiles.d" ]; dontCargoInstall = true; doInstallCheck = true; - meta = with lib; { - description = "Userspace daemon written in Rust that implements an analogue of the Texas Instruments Smart Amp speaker protection model"; + passthru = { + updateScript = nix-update-script { }; + }; + + meta = { + description = "Userspace daemon that implements the Smart Amp protection model"; mainProgram = "speakersafetyd"; homepage = "https://github.com/AsahiLinux/speakersafetyd"; - maintainers = with maintainers; [ + maintainers = with lib.maintainers; [ + normalcea flokli yuka ]; - license = licenses.mit; - platforms = platforms.linux; + license = lib.licenses.mit; + platforms = lib.platforms.linux; }; -} +}) diff --git a/pkgs/by-name/sp/speakersafetyd/remove-install-paths.patch b/pkgs/by-name/sp/speakersafetyd/remove-install-paths.patch new file mode 100644 index 000000000000..9581dc7ca1e5 --- /dev/null +++ b/pkgs/by-name/sp/speakersafetyd/remove-install-paths.patch @@ -0,0 +1,16 @@ +diff --git a/Makefile b/Makefile +index 41bf7b4..ca14be7 100644 +--- a/Makefile ++++ b/Makefile +@@ -24,11 +24,8 @@ install-data: + install -pm0644 95-speakersafetyd.rules $(DESTDIR)/$(UDEVDIR)/95-speakersafetyd.rules + install -dDm0755 $(DESTDIR)/$(SHAREDIR)/speakersafetyd/apple + install -pm0644 -t $(DESTDIR)/$(SHAREDIR)/speakersafetyd/apple $(wildcard conf/apple/*) +- install -dDm0755 -o $(SPEAKERSAFETYD_USER) -g $(SPEAKERSAFETYD_GROUP) $(DESTDIR)/$(VARDIR)/lib/speakersafetyd +- install -dDm0700 -o $(SPEAKERSAFETYD_USER) -g $(SPEAKERSAFETYD_GROUP) $(DESTDIR)/$(VARDIR)/lib/speakersafetyd/blackbox + install -dDm0755 $(DESTDIR)/$(TMPFILESDIR) + install -pm0644 speakersafetyd.tmpfiles $(DESTDIR)/$(TMPFILESDIR)/speakersafetyd.conf +- install -dDm0755 -o $(SPEAKERSAFETYD_USER) -g $(SPEAKERSAFETYD_GROUP) $(DESTDIR)/run/speakersafetyd + + uninstall: + rm -f $(DESTDIR)/$(BINDIR)/speakersafetyd $(DESTDIR)/$(UNITDIR)/speakersafetyd.service $(DESTDIR)/$(UDEVDIR)/95-speakersafetyd.rules $(DESTDIR)/$(TMPFILESDIR)/speakersafetyd.conf diff --git a/pkgs/by-name/sr/srht-gen-oauth-tok/package.nix b/pkgs/by-name/sr/srht-gen-oauth-tok/package.nix index 547bd4ea229c..2dfa3fc2357c 100644 --- a/pkgs/by-name/sr/srht-gen-oauth-tok/package.nix +++ b/pkgs/by-name/sr/srht-gen-oauth-tok/package.nix @@ -32,8 +32,6 @@ stdenv.mkDerivation rec { installPhase = "install -Dm755 srht-gen-oauth-tok $out/bin/srht-gen-oauth-tok"; - passthru.tests.sourcehut = nixosTests.sourcehut; - meta = { description = "Script to register a new Sourcehut OAuth token for a given user"; longDescription = '' diff --git a/pkgs/by-name/tu/tup/package.nix b/pkgs/by-name/tu/tup/package.nix index 4bccae8ee432..88d66c069e4b 100644 --- a/pkgs/by-name/tu/tup/package.nix +++ b/pkgs/by-name/tu/tup/package.nix @@ -38,7 +38,19 @@ stdenv.mkDerivation rec { patches = [ ./fusermount-setuid.patch ]; configurePhase = '' - substituteInPlace src/tup/link.sh --replace '`git describe' '`echo ${version}' + substituteInPlace src/tup/link.sh --replace-fail '`git describe' '`echo ${version}' + + for path in Tupfile build.sh src/tup/server/Tupfile ; do + substituteInPlace $path --replace-fail "pkg-config" "${stdenv.cc.targetPrefix}pkg-config" + done + + # Replace "pcre2-config --libs8" => "pkg-config libpcre2-8 --libs". + # + # There is prefixed pkg-config for cross-compilation, but no prefixed "pcre2-config". + for path in Tupfile Tuprules.tup ; do + substituteInPlace $path --replace-fail "pcre2-config" "${stdenv.cc.targetPrefix}pkg-config libpcre2-8 " + done + substituteInPlace Tupfile --replace-fail "--libs8" "--libs" cat << EOF > tup.config CONFIG_CC=${stdenv.cc.targetPrefix}cc diff --git a/pkgs/by-name/wa/warp-terminal/versions.json b/pkgs/by-name/wa/warp-terminal/versions.json index f94041720f7c..b5d77222c423 100644 --- a/pkgs/by-name/wa/warp-terminal/versions.json +++ b/pkgs/by-name/wa/warp-terminal/versions.json @@ -1,14 +1,14 @@ { "darwin": { - "hash": "sha256-UJAirS6JFFLW0OsOYj8RNUfG85dRHnxXasNw2QHX1Xs=", - "version": "0.2025.06.20.22.47.stable_05" + "hash": "sha256-7/gSUR9h9PzBrTgxERXNjqzJDtqxebjmD0cF3Vx2ySY=", + "version": "0.2025.06.25.08.12.stable_01" }, "linux_x86_64": { - "hash": "sha256-h0ODaO3SJcZAxFRFBYYjWXQYsRAemGizn/YA7AF36pw=", - "version": "0.2025.06.20.22.47.stable_05" + "hash": "sha256-2VQzEBAAu6YasottOTu3YjQvvXR5gT3DAjGhp63wMNo=", + "version": "0.2025.06.25.08.12.stable_01" }, "linux_aarch64": { - "hash": "sha256-H4xldFBMpfu6UFGFA/IkA1zPFqhFN6abhfHTRdYNpGA=", - "version": "0.2025.06.20.22.47.stable_05" + "hash": "sha256-5jpW7mUHLshGZUWigAJ8QgmpYnfosJN1JpRLeNvVK3Y=", + "version": "0.2025.06.25.08.12.stable_01" } } diff --git a/pkgs/desktops/deepin/core/dde-shell/default.nix b/pkgs/desktops/deepin/core/dde-shell/default.nix index be854c40b97a..deba291f1ce8 100644 --- a/pkgs/desktops/deepin/core/dde-shell/default.nix +++ b/pkgs/desktops/deepin/core/dde-shell/default.nix @@ -40,6 +40,11 @@ stdenv.mkDerivation (finalAttrs: { url = "https://github.com/linuxdeepin/dde-shell/commit/936d62a2c20398b9ca6ae28f9101dd288c8b1678.patch"; hash = "sha256-u5TcPy2kZsOLGUgjTGZ5JX3mWnr/rOQ3SWBRyjWEiw4="; }) + (fetchpatch { + name = "adapt-import-change-of-QtQml-Models-in-Qt-6_9.patch"; + url = "https://github.com/linuxdeepin/dde-shell/commit/ad92c160508a5eb53fd5af558ef1b1ba881b97ac.patch"; + hash = "sha256-3GdkbFEt51EP04RQN54EDsGyXkeZoWhbnQAHkwjUeGY="; + }) ]; diff --git a/pkgs/development/compilers/llvm/default.nix b/pkgs/development/compilers/llvm/default.nix index 41500bcba153..e729f60d6ac4 100644 --- a/pkgs/development/compilers/llvm/default.nix +++ b/pkgs/development/compilers/llvm/default.nix @@ -33,9 +33,9 @@ let "19.1.7".officialRelease.sha256 = "sha256-cZAB5vZjeTsXt9QHbP5xluWNQnAHByHtHnAhVDV0E6I="; "20.1.6".officialRelease.sha256 = "sha256-PfCzECiCM+k0hHqEUSr1TSpnII5nqIxg+Z8ICjmMj0Y="; "21.0.0-git".gitRelease = { - rev = "f9fce4975bbad835deba6e639c21a62154dd8c14"; - rev-version = "21.0.0-unstable-2025-06-22"; - sha256 = "sha256-Xu9RD6R6tQDZ0kaSD7N0GTp1TcUV6BK12fobK0qPkIw="; + rev = "2d94c08d03ada0a4d3c30a93594d0381946aa85a"; + rev-version = "21.0.0-unstable-2025-06-29"; + sha256 = "sha256-waAXH17LNrzbq4kJ1u9EUpYGDky8iEVVCsYpthOrgMY="; }; } // llvmVersions; diff --git a/pkgs/development/coq-modules/bignums/default.nix b/pkgs/development/coq-modules/bignums/default.nix index 6d38525921cf..24acbd14655c 100644 --- a/pkgs/development/coq-modules/bignums/default.nix +++ b/pkgs/development/coq-modules/bignums/default.nix @@ -12,14 +12,15 @@ owner = "coq"; inherit version; defaultVersion = + let + case = case: out: { inherit case out; }; + in with lib.versions; - lib.switch coq.coq-version (lib.lists.sort (x: y: isLe x.out y.out) ( - lib.mapAttrsToList (out: case: { inherit case out; }) { - "9.0.0+rocq${coq.coq-version}" = range "9.0" "9.0"; - "9.0.0+coq${coq.coq-version}" = range "8.13" "8.20"; - "${coq.coq-version}.0" = range "8.6" "8.17"; - } - )) null; + lib.switch coq.coq-version [ + (case (range "9.0" "9.0") "9.0.0+rocq${coq.coq-version}") + (case (range "8.13" "8.20") "9.0.0+coq${coq.coq-version}") + (case (range "8.6" "8.17") "${coq.coq-version}.0") + ] null; release."9.0.0+rocq9.0".sha256 = "sha256-ctnwpyNVhryEUA5YEsAImrcJsNMhtBgDSOz+z5Z4R78="; release."9.0.0+coq8.20".sha256 = "sha256-pkvyDaMXRalc6Uu1eBTuiqTpRauRrzu946c6TavyTKY="; diff --git a/pkgs/development/coq-modules/coq-elpi/default.nix b/pkgs/development/coq-modules/coq-elpi/default.nix index baa817b33138..f6308faaf34c 100644 --- a/pkgs/development/coq-modules/coq-elpi/default.nix +++ b/pkgs/development/coq-modules/coq-elpi/default.nix @@ -15,18 +15,19 @@ let elpi-version else ( + let + case = case: out: { inherit case out; }; + in with lib.versions; - lib.switch coq.coq-version (lib.lists.sort (x: y: lib.versions.isLe x.out y.out) ( - lib.mapAttrsToList (out: case: { inherit case out; }) { - "1.11.4" = "8.11"; - "1.12.0" = "8.12"; - "1.13.7" = range "8.13" "8.14"; - "1.15.0" = "8.15"; - "1.17.0" = range "8.16" "8.17"; - "1.18.1" = range "8.18" "8.19"; - "2.0.7" = range "8.20" "9.0"; - } - )) { } + lib.switch coq.coq-version [ + (case "8.11" "1.11.4") + (case "8.12" "1.12.0") + (case (range "8.13" "8.14") "1.13.7") + (case "8.15" "1.15.0") + (case (range "8.16" "8.17") "1.17.0") + (case (range "8.18" "8.19") "1.18.1") + (case (range "8.20" "9.0") "2.0.7") + ] { } ); elpi = coq.ocamlPackages.elpi.override { version = default-elpi-version; }; propagatedBuildInputs_wo_elpi = [ @@ -38,21 +39,22 @@ let owner = "LPCIC"; inherit version; defaultVersion = + let + case = case: out: { inherit case out; }; + in with lib.versions; - lib.switch coq.coq-version (lib.lists.sort (x: y: lib.versions.isLe x.out y.out) ( - lib.mapAttrsToList (out: case: { inherit case out; }) { - "2.5.2" = range "8.20" "9.0"; - "2.0.1" = "8.19"; - "2.0.0" = "8.18"; - "1.18.0" = "8.17"; - "1.15.6" = "8.16"; - "1.14.0" = "8.15"; - "1.11.2" = "8.14"; - "1.11.1" = "8.13"; - "1.8.3_8.12" = "8.12"; - "1.6.3_8.11" = "8.11"; - } - )) null; + lib.switch coq.coq-version [ + (case (range "8.20" "9.0") "2.5.2") + (case "8.19" "2.0.1") + (case "8.18" "2.0.0") + (case "8.17" "1.18.0") + (case "8.16" "1.15.6") + (case "8.15" "1.14.0") + (case "8.14" "1.11.2") + (case "8.13" "1.11.1") + (case "8.12" "1.8.3_8.12") + (case "8.11" "1.6.3_8.11") + ] null; release."2.5.2".sha256 = "sha256-lLzjPrbVB3rrqox528YiheUb0u89R84Xmrgkn0oplOs="; release."2.5.0".sha256 = "sha256-Z5xjO83X/ZoTQlWnVupGXPH3HuJefr57Kv128I0dltg="; release."2.4.0".sha256 = "sha256-W2+vVGExLLux8e0nSZESSoMVvrLxhL6dmXkb+JuKiqc="; diff --git a/pkgs/development/coq-modules/coqeal/default.nix b/pkgs/development/coq-modules/coqeal/default.nix index 7b0d58845adb..c1810a3730c8 100644 --- a/pkgs/development/coq-modules/coqeal/default.nix +++ b/pkgs/development/coq-modules/coqeal/default.nix @@ -17,27 +17,31 @@ let inherit version; defaultVersion = - with lib.versions; let - cmc = c: mc: [ - c - mc - ]; + case = coq: mc: out: { + cases = [ + coq + mc + ]; + inherit out; + }; in - lib.switch [ coq.coq-version mathcomp.version ] (lib.lists.sort (x: y: isLe x.out y.out) ( - lib.mapAttrsToList (out: cases: { inherit cases out; }) { - "2.1.0" = cmc (range "8.20" "9.0") (isGe "2.3.0"); - "2.0.3" = cmc (range "8.16" "8.20") (isGe "2.1.0"); - "2.0.1" = cmc (range "8.16" "8.20") (isGe "2.0.0"); - "2.0.0" = cmc (range "8.16" "8.17") (isGe "2.0.0"); - "1.1.3" = cmc (range "8.15" "8.18") (range "1.15.0" "1.18.0"); - "1.1.1" = cmc (range "8.13" "8.17") (range "1.13.0" "1.18.0"); - "1.1.0" = cmc (range "8.10" "8.15") (range "1.12.0" "1.18.0"); - "1.0.5" = cmc (isGe "8.10") (range "1.11.0" "1.12.0"); - "1.0.4" = cmc (isGe "8.7") "1.11.0"; - "1.0.3" = cmc (isGe "8.7") "1.10.0"; - } - )) null; + with lib.versions; + lib.switch + [ coq.coq-version mathcomp.version ] + [ + (case (range "8.20" "9.0") (isGe "2.3.0") "2.1.0") + (case (range "8.16" "8.20") (isGe "2.1.0") "2.0.3") + (case (range "8.16" "8.20") (isGe "2.0.0") "2.0.1") + (case (range "8.16" "8.17") (isGe "2.0.0") "2.0.0") + (case (range "8.15" "8.18") (range "1.15.0" "1.18.0") "1.1.3") + (case (range "8.13" "8.17") (range "1.13.0" "1.18.0") "1.1.1") + (case (range "8.10" "8.15") (range "1.12.0" "1.18.0") "1.1.0") + (case (isGe "8.10") (range "1.11.0" "1.12.0") "1.0.5") + (case (isGe "8.7") "1.11.0" "1.0.4") + (case (isGe "8.7") "1.10.0" "1.0.3") + ] + null; release."2.1.0".sha256 = "sha256-UoDxy2BKraDyRsO42GXRo26O74OF51biZQGkIMWLf8Y="; release."2.0.3".sha256 = "sha256-5lDq7IWlEW0EkNzYPu+dA6KOvRgy53W/alikpDr/Kd0="; diff --git a/pkgs/development/coq-modules/coquelicot/default.nix b/pkgs/development/coq-modules/coquelicot/default.nix index 274f41d111ad..b9f3ff50a27c 100644 --- a/pkgs/development/coq-modules/coquelicot/default.nix +++ b/pkgs/development/coq-modules/coquelicot/default.nix @@ -14,18 +14,19 @@ mkCoqDerivation { domain = "gitlab.inria.fr"; inherit version; defaultVersion = + let + case = case: out: { inherit case out; }; + in with lib.versions; - lib.switch coq.coq-version (lib.lists.sort (x: y: isLe x.out y.out) ( - lib.mapAttrsToList (out: case: { inherit case out; }) { - "3.4.3" = range "8.12" "9.0"; - "3.4.2" = range "8.12" "8.20"; - "3.4.0" = range "8.12" "8.18"; - "3.3.0" = range "8.12" "8.17"; - "3.2.0" = range "8.8" "8.16"; - "3.1.0" = range "8.8" "8.13"; - "3.0.2" = range "8.5" "8.9"; - } - )) null; + lib.switch coq.coq-version [ + (case (range "8.12" "9.0") "3.4.3") + (case (range "8.12" "8.20") "3.4.2") + (case (range "8.12" "8.18") "3.4.0") + (case (range "8.12" "8.17") "3.3.0") + (case (range "8.8" "8.16") "3.2.0") + (case (range "8.8" "8.13") "3.1.0") + (case (range "8.5" "8.9") "3.0.2") + ] null; release."3.4.3".sha256 = "sha256-bzzAIENU2OYTtmdBU9Xw8zyBvz9vqTiqjWSm7RnXXRA="; release."3.4.2".sha256 = "sha256-aBTF8ZKu67Rb3ryCqFyejUXf/65KgG8i5je/ZMFSrj4="; release."3.4.1".sha256 = "sha256-REhvIBl3EaL8CQqI34Gn7Xjf9NhPI3nrUAO26pSLbm0="; diff --git a/pkgs/development/coq-modules/deriving/default.nix b/pkgs/development/coq-modules/deriving/default.nix index 0dffe5e50e41..bfa2e99a481e 100644 --- a/pkgs/development/coq-modules/deriving/default.nix +++ b/pkgs/development/coq-modules/deriving/default.nix @@ -13,21 +13,25 @@ mkCoqDerivation { inherit version; defaultVersion = - with lib.versions; let - cmc = c: mc: [ - c - mc - ]; + case = coq: mc: out: { + cases = [ + coq + mc + ]; + inherit out; + }; in - lib.switch [ coq.coq-version ssreflect.version ] (lib.lists.sort (x: y: isLe x.out y.out) ( - lib.mapAttrsToList (out: cases: { inherit cases out; }) { - "0.2.2" = cmc (range "8.17" "9.0") (range "2.0.0" "2.4.0"); - "0.2.1" = cmc (range "8.17" "9.0") (range "2.0.0" "2.3.0"); - "0.2.0" = cmc (range "8.17" "8.20") (range "2.0.0" "2.2.0"); - "0.1.1" = cmc (range "8.11" "8.20") (isLe "2.0.0"); - } - )) null; + with lib.versions; + lib.switch + [ coq.coq-version ssreflect.version ] + [ + (case (range "8.17" "9.0") (range "2.0.0" "2.4.0") "0.2.2") + (case (range "8.17" "9.0") (range "2.0.0" "2.3.0") "0.2.1") + (case (range "8.17" "8.20") (range "2.0.0" "2.2.0") "0.2.0") + (case (range "8.11" "8.20") (isLe "2.0.0") "0.1.1") + ] + null; releaseRev = v: "v${v}"; diff --git a/pkgs/development/coq-modules/dpdgraph/default.nix b/pkgs/development/coq-modules/dpdgraph/default.nix index d48290887f22..936e2f892f58 100644 --- a/pkgs/development/coq-modules/dpdgraph/default.nix +++ b/pkgs/development/coq-modules/dpdgraph/default.nix @@ -15,24 +15,26 @@ mkCoqDerivation { owner = "Karmaki"; repo = "coq-dpdgraph"; inherit version; - defaultVersion = lib.switch coq.coq-version (lib.lists.sort (x: y: lib.versions.isLe x.out y.out) ( - lib.mapAttrsToList (out: case: { inherit case out; }) { - "1.0+8.20" = "8.20"; - "1.0+8.19" = "8.19"; - "1.0+8.18" = "8.18"; - "1.0+8.17" = "8.17"; - "1.0+8.16" = "8.16"; - "1.0+8.15" = "8.15"; - "1.0+8.14" = "8.14"; - "1.0+8.13" = "8.13"; - "0.6.8" = "8.12"; - "0.6.7" = "8.11"; - "0.6.6" = "8.10"; - "0.6.5" = "8.9"; - "0.6.3" = "8.8"; - "0.6.2" = "8.7"; - } - )) null; + defaultVersion = + let + case = case: out: { inherit case out; }; + in + lib.switch coq.coq-version [ + (case "8.20" "1.0+8.20") + (case "8.19" "1.0+8.19") + (case "8.18" "1.0+8.18") + (case "8.17" "1.0+8.17") + (case "8.16" "1.0+8.16") + (case "8.15" "1.0+8.15") + (case "8.14" "1.0+8.14") + (case "8.13" "1.0+8.13") + (case "8.12" "0.6.8") + (case "8.11" "0.6.7") + (case "8.10" "0.6.6") + (case "8.9" "0.6.5") + (case "8.8" "0.6.3") + (case "8.7" "0.6.2") + ] null; release."1.0+8.20".sha256 = "sha256-szfH/OksCH3SCbcFjwEvLwHE5avmHp1vYiJM6KAXFqs="; release."1.0+8.19".sha256 = "sha256-L1vjEydYiwDFTXES3sgfdaO/D50AbTJKBXUKUCgbpto="; diff --git a/pkgs/development/coq-modules/equations/default.nix b/pkgs/development/coq-modules/equations/default.nix index 0ab9f55039ed..9c415098e663 100644 --- a/pkgs/development/coq-modules/equations/default.nix +++ b/pkgs/development/coq-modules/equations/default.nix @@ -12,26 +12,28 @@ repo = "Coq-Equations"; opam-name = "rocq-equations"; inherit version; - defaultVersion = lib.switch coq.coq-version (lib.lists.sort (x: y: lib.versions.isLe x.out y.out) ( - lib.mapAttrsToList (out: case: { inherit case out; }) { - "1.3.1+9.0" = "9.0"; - "1.3.1+8.20" = "8.20"; - "1.3+8.19" = "8.19"; - "1.3+8.18" = "8.18"; - "1.3+8.17" = "8.17"; - "1.3+8.16" = "8.16"; - "1.3+8.15" = "8.15"; - "1.3+8.14" = "8.14"; - "1.3+8.13" = "8.13"; - "1.2.4+coq8.12" = "8.12"; - "1.2.4+coq8.11" = "8.11"; - "1.2.1+coq8.10-2" = "8.10"; - "1.2.1+coq8.9" = "8.9"; - "1.2+coq8.8" = "8.8"; - "1.0+coq8.7" = "8.7"; - "1.0+coq8.6" = "8.6"; - } - )) null; + defaultVersion = + let + case = case: out: { inherit case out; }; + in + lib.switch coq.coq-version [ + (case "9.0" "1.3.1+9.0") + (case "8.20" "1.3.1+8.20") + (case "8.19" "1.3+8.19") + (case "8.18" "1.3+8.18") + (case "8.17" "1.3+8.17") + (case "8.16" "1.3+8.16") + (case "8.15" "1.3+8.15") + (case "8.14" "1.3+8.14") + (case "8.13" "1.3+8.13") + (case "8.12" "1.2.4+coq8.12") + (case "8.11" "1.2.4+coq8.11") + (case "8.10" "1.2.1+coq8.10-2") + (case "8.9" "1.2.1+coq8.9") + (case "8.8" "1.2+coq8.8") + (case "8.7" "1.0+coq8.7") + (case "8.6" "1.0+coq8.6") + ] null; release."1.0+coq8.6".version = "1.0"; release."1.0+coq8.6".rev = "v1.0"; diff --git a/pkgs/development/coq-modules/extructures/default.nix b/pkgs/development/coq-modules/extructures/default.nix index 0635ea5f05e2..cfb2e819e22a 100644 --- a/pkgs/development/coq-modules/extructures/default.nix +++ b/pkgs/development/coq-modules/extructures/default.nix @@ -13,22 +13,26 @@ inherit version; defaultVersion = - with lib.versions; let - cmc = c: mc: [ - c - mc - ]; + case = coq: mc: out: { + cases = [ + coq + mc + ]; + inherit out; + }; in - lib.switch [ coq.coq-version mathcomp-boot.version ] (lib.lists.sort (x: y: isLe x.out y.out) ( - lib.mapAttrsToList (out: cases: { inherit cases out; }) { - "0.5.0" = cmc (range "8.17" "9.0") (range "2.0.0" "2.4.0"); - "0.4.0" = cmc (range "8.17" "8.20") (range "2.0.0" "2.3.0"); - "0.3.1" = cmc (range "8.11" "8.20") (range "1.12.0" "1.19.0"); - "0.3.0" = cmc (range "8.11" "8.14") (isLe "1.12.0"); - "0.2.2" = cmc (range "8.10" "8.12") (isLe "1.12.0"); - } - )) null; + with lib.versions; + lib.switch + [ coq.coq-version mathcomp-boot.version ] + [ + (case (range "8.17" "9.0") (range "2.0.0" "2.4.0") "0.5.0") + (case (range "8.17" "8.20") (range "2.0.0" "2.3.0") "0.4.0") + (case (range "8.11" "8.20") (range "1.12.0" "1.19.0") "0.3.1") + (case (range "8.11" "8.14") (isLe "1.12.0") "0.3.0") + (case (range "8.10" "8.12") (isLe "1.12.0") "0.2.2") + ] + null; releaseRev = v: "v${v}"; diff --git a/pkgs/development/coq-modules/flocq/default.nix b/pkgs/development/coq-modules/flocq/default.nix index 9f83232d6504..1d7871089fa9 100644 --- a/pkgs/development/coq-modules/flocq/default.nix +++ b/pkgs/development/coq-modules/flocq/default.nix @@ -14,18 +14,19 @@ mkCoqDerivation { domain = "gitlab.inria.fr"; inherit version; defaultVersion = + let + case = case: out: { inherit case out; }; + in with lib.versions; - lib.switch coq.coq-version (lib.lists.sort (x: y: isLe x.out y.out) ( - lib.mapAttrsToList (out: case: { inherit case out; }) { - "4.2.1" = range "8.15" "9.0"; - "4.2.0" = range "8.14" "8.20"; - "4.1.3" = range "8.14" "8.18"; - "4.1.1" = range "8.14" "8.17"; - "4.1.0" = range "8.14" "8.16"; - "3.4.3" = range "8.7" "8.15"; - "2.6.1" = range "8.5" "8.8"; - } - )) null; + lib.switch coq.coq-version [ + (case (range "8.15" "9.0") "4.2.1") + (case (range "8.14" "8.20") "4.2.0") + (case (range "8.14" "8.18") "4.1.3") + (case (range "8.14" "8.17") "4.1.1") + (case (range "8.14" "8.16") "4.1.0") + (case (range "8.7" "8.15") "3.4.3") + (case (range "8.5" "8.8") "2.6.1") + ] null; release."4.2.1".sha256 = "sha256-W5hcAm0GGmNsvre79/iGNcoBwFzStC4G177hZ3ds/4E="; release."4.2.0".sha256 = "sha256-uTeo4GCs6wTLN3sLKsj0xLlt1fUDYfozXtq6iooLUgM="; release."4.1.4".sha256 = "sha256-Use6Mlx79yef1CkCPyGoOItsD69B9KR+mQArCtmre4s="; diff --git a/pkgs/development/coq-modules/fourcolor/default.nix b/pkgs/development/coq-modules/fourcolor/default.nix index 10f11f7f236b..7270ac6ffd14 100644 --- a/pkgs/development/coq-modules/fourcolor/default.nix +++ b/pkgs/development/coq-modules/fourcolor/default.nix @@ -22,22 +22,26 @@ mkCoqDerivation { inherit version; defaultVersion = - with lib.versions; let - cmc = c: mc: [ - c - mc - ]; + case = coq: mc: out: { + cases = [ + coq + mc + ]; + inherit out; + }; in - lib.switch [ coq.coq-version mathcomp.version ] (lib.lists.sort (x: y: isLe x.out y.out) ( - lib.mapAttrsToList (out: cases: { inherit cases out; }) { - "1.4.1" = cmc (isGe "8.16") (isGe "2.0"); - "1.3.0" = cmc (isGe "8.16") "2.0.0"; - "1.2.5" = cmc (isGe "8.11") (range "1.12" "1.19"); - "1.2.4" = cmc (isGe "8.11") (range "1.11" "1.14"); - "1.2.3" = cmc (isLe "8.13") (lib.pred.inter (isGe "1.11.0") (isLt "1.13")); - } - )) null; + with lib.versions; + lib.switch + [ coq.coq-version mathcomp.version ] + [ + (case (isGe "8.16") (isGe "2.0") "1.4.1") + (case (isGe "8.16") "2.0.0" "1.3.0") + (case (isGe "8.11") (range "1.12" "1.19") "1.2.5") + (case (isGe "8.11") (range "1.11" "1.14") "1.2.4") + (case (isLe "8.13") (lib.pred.inter (isGe "1.11.0") (isLt "1.13")) "1.2.3") + ] + null; propagatedBuildInputs = [ mathcomp.boot diff --git a/pkgs/development/coq-modules/gaia/default.nix b/pkgs/development/coq-modules/gaia/default.nix index 3157176a6e4b..a716a1ad0363 100644 --- a/pkgs/development/coq-modules/gaia/default.nix +++ b/pkgs/development/coq-modules/gaia/default.nix @@ -22,21 +22,25 @@ mkCoqDerivation { inherit version; defaultVersion = - with lib.versions; let - cmc = c: mc: [ - c - mc - ]; + case = coq: mc: out: { + cases = [ + coq + mc + ]; + inherit out; + }; in - lib.switch [ coq.coq-version mathcomp.version ] (lib.lists.sort (x: y: isLe x.out y.out) ( - lib.mapAttrsToList (out: cases: { inherit cases out; }) { - "2.3" = cmc (range "8.16" "9.0") (range "2.0" "2.4"); - "2.2" = cmc (range "8.16" "9.0") (range "2.0" "2.3"); - "1.17" = cmc (range "8.10" "8.18") (range "1.12.0" "1.18.0"); - "1.11" = cmc (range "8.10" "8.12") "1.11.0"; - } - )) null; + with lib.versions; + lib.switch + [ coq.coq-version mathcomp.version ] + [ + (case (range "8.16" "9.0") (range "2.0" "2.4") "2.3") + (case (range "8.16" "9.0") (range "2.0" "2.3") "2.2") + (case (range "8.10" "8.18") (range "1.12.0" "1.18.0") "1.17") + (case (range "8.10" "8.12") "1.11.0" "1.11") + ] + null; propagatedBuildInputs = [ mathcomp.boot diff --git a/pkgs/development/coq-modules/graph-theory/default.nix b/pkgs/development/coq-modules/graph-theory/default.nix index ab4eb73fc7e9..f600a46b4a93 100644 --- a/pkgs/development/coq-modules/graph-theory/default.nix +++ b/pkgs/development/coq-modules/graph-theory/default.nix @@ -24,23 +24,27 @@ mkCoqDerivation { inherit version; defaultVersion = - with lib.versions; let - cmc = c: mc: [ - c - mc - ]; + case = coq: mc: out: { + cases = [ + coq + mc + ]; + inherit out; + }; in - lib.switch [ coq.coq-version mathcomp.version ] (lib.lists.sort (x: y: isLe x.out y.out) ( - lib.mapAttrsToList (out: cases: { inherit cases out; }) { - "0.9.6" = cmc (range "8.18" "9.0") (range "2.0.0" "2.4.0"); - "0.9.4" = cmc (range "8.16" "8.19") (range "2.0.0" "2.3.0"); - "0.9.3" = cmc (range "8.16" "8.18") (range "2.0.0" "2.1.0"); - "0.9.2" = cmc (range "8.14" "8.18") (range "1.13.0" "1.18.0"); - "0.9.1" = cmc (range "8.14" "8.16") (range "1.13.0" "1.14.0"); - "0.9" = cmc (range "8.12" "8.13") (range "1.12.0" "1.14.0"); - } - )) null; + with lib.versions; + lib.switch + [ coq.coq-version mathcomp.version ] + [ + (case (range "8.18" "9.0") (range "2.0.0" "2.4.0") "0.9.6") + (case (range "8.16" "8.19") (range "2.0.0" "2.3.0") "0.9.4") + (case (range "8.16" "8.18") (range "2.0.0" "2.1.0") "0.9.3") + (case (range "8.14" "8.18") (range "1.13.0" "1.18.0") "0.9.2") + (case (range "8.14" "8.16") (range "1.13.0" "1.14.0") "0.9.1") + (case (range "8.12" "8.13") (range "1.12.0" "1.14.0") "0.9") + ] + null; propagatedBuildInputs = [ mathcomp.algebra diff --git a/pkgs/development/coq-modules/hierarchy-builder/default.nix b/pkgs/development/coq-modules/hierarchy-builder/default.nix index fc57e1b44834..cf37bf147d4c 100644 --- a/pkgs/development/coq-modules/hierarchy-builder/default.nix +++ b/pkgs/development/coq-modules/hierarchy-builder/default.nix @@ -14,20 +14,21 @@ let owner = "math-comp"; inherit version; defaultVersion = + let + case = case: out: { inherit case out; }; + in with lib.versions; - lib.switch coq.coq-version (lib.lists.sort (x: y: isLe x.out y.out) ( - lib.mapAttrsToList (out: case: { inherit case out; }) { - "1.9.1" = range "8.20" "9.0"; - "1.8.0" = range "8.19" "8.20"; - "1.7.1" = range "8.18" "8.20"; - "1.6.0" = range "8.16" "8.18"; - "1.5.0" = range "8.15" "8.18"; - "1.4.0" = range "8.15" "8.17"; - "1.2.0" = range "8.13" "8.14"; - "1.1.0" = range "8.12" "8.13"; - "0.10.0" = isEq "8.11"; - } - )) null; + lib.switch coq.coq-version [ + (case (range "8.20" "9.0") "1.9.1") + (case (range "8.19" "8.20") "1.8.0") + (case (range "8.18" "8.20") "1.7.1") + (case (range "8.16" "8.18") "1.6.0") + (case (range "8.15" "8.18") "1.5.0") + (case (range "8.15" "8.17") "1.4.0") + (case (range "8.13" "8.14") "1.2.0") + (case (range "8.12" "8.13") "1.1.0") + (case (isEq "8.11") "0.10.0") + ] null; release."1.9.1".sha256 = "sha256-AiS0ezMyfIYlXnuNsVLz1GlKQZzJX+ilkrKkbo0GrF0="; release."1.8.1".sha256 = "sha256-Z0WAHDyycqgL+Le/zNfEAoLWzFb7WIL+3G3vEBExlb4="; release."1.8.0".sha256 = "sha256-4s/4ZZKj5tiTtSHGIM8Op/Pak4Vp52WVOpd4l9m19fY="; diff --git a/pkgs/development/coq-modules/http/default.nix b/pkgs/development/coq-modules/http/default.nix index 926f2b743712..9d35d8c6ca84 100644 --- a/pkgs/development/coq-modules/http/default.nix +++ b/pkgs/development/coq-modules/http/default.nix @@ -15,13 +15,12 @@ mkCoqDerivation { defaultVersion = let - inherit (lib.versions) isLe range; + case = case: out: { inherit case out; }; + inherit (lib.versions) range; in - lib.switch coq.coq-version (lib.lists.sort (x: y: isLe x.out y.out) ( - lib.mapAttrsToList (out: case: { inherit case out; }) { - "0.2.1" = range "8.14" "8.19"; - } - )) null; + lib.switch coq.coq-version [ + (case (range "8.14" "8.19") "0.2.1") + ] null; release = { "0.2.1".sha256 = "sha256-CIcaXEojNdajXNoMBjGlQRc1sOJSKgUlditNxbNSPgk="; }; diff --git a/pkgs/development/coq-modules/hydra-battles/default.nix b/pkgs/development/coq-modules/hydra-battles/default.nix index 648a6d3229fc..985cfd2853bf 100644 --- a/pkgs/development/coq-modules/hydra-battles/default.nix +++ b/pkgs/development/coq-modules/hydra-battles/default.nix @@ -19,13 +19,14 @@ inherit version; defaultVersion = + let + case = case: out: { inherit case out; }; + in with lib.versions; - lib.switch coq.coq-version (lib.lists.sort (x: y: isLe x.out y.out) ( - lib.mapAttrsToList (out: case: { inherit case out; }) { - "0.9" = range "8.13" "8.16"; - "0.4" = range "8.11" "8.12"; - } - )) null; + lib.switch coq.coq-version [ + (case (range "8.13" "8.16") "0.9") + (case (range "8.11" "8.12") "0.4") + ] null; useDune = true; diff --git a/pkgs/development/coq-modules/interval/default.nix b/pkgs/development/coq-modules/interval/default.nix index 9ed1576170a0..d46d4cf043c1 100644 --- a/pkgs/development/coq-modules/interval/default.nix +++ b/pkgs/development/coq-modules/interval/default.nix @@ -18,20 +18,23 @@ mkCoqDerivation rec { domain = "gitlab.inria.fr"; inherit version; defaultVersion = + let + case = case: out: { inherit case out; }; + in with lib.versions; - lib.switch coq.coq-version (lib.lists.sort (x: y: isLe x.out y.out) ( - lib.mapAttrsToList (out: case: { inherit case out; }) { - "4.11.1" = range "8.13" "8.20"; - "4.10.0" = range "8.12" "8.19"; - "4.9.0" = range "8.12" "8.18"; - "4.8.0" = range "8.12" "8.17"; - "4.6.0" = range "8.12" "8.16"; - "4.5.2" = range "8.8" "8.16"; - "4.0.0" = range "8.8" "8.12"; - "3.4.2" = range "8.7" "8.11"; - "3.3.0" = range "8.5" "8.6"; - } - )) null; + lib.switch coq.coq-version [ + (case (range "8.13" "9.0") "4.11.2") + (case (range "8.13" "8.20") "4.11.1") + (case (range "8.12" "8.19") "4.10.0") + (case (range "8.12" "8.18") "4.9.0") + (case (range "8.12" "8.17") "4.8.0") + (case (range "8.12" "8.16") "4.6.0") + (case (range "8.8" "8.16") "4.5.2") + (case (range "8.8" "8.12") "4.0.0") + (case (range "8.7" "8.11") "3.4.2") + (case (range "8.5" "8.6") "3.3.0") + ] null; + release."4.11.2".sha256 = "sha256-ouhjHtlxcqt06+Pt+UZAzwp83bVYPh3N+8jnsVvapSU="; release."4.11.1".sha256 = "sha256-QWZvU468rOhK796xCCEawW6rhCRTPnE0iLll9ynKflo="; release."4.11.0".sha256 = "sha256-vPwa4zSjyvxHLGDoNaBnHV2pb77dnQFbC50BL80fcvE="; release."4.10.0".sha256 = "sha256-MZJVoKGLXjDabdv9BuUSK1L9z1cubzC9cqVuWevKIXQ="; diff --git a/pkgs/development/coq-modules/iris/default.nix b/pkgs/development/coq-modules/iris/default.nix index 7bfdd94d3c27..b58ea00f12da 100644 --- a/pkgs/development/coq-modules/iris/default.nix +++ b/pkgs/development/coq-modules/iris/default.nix @@ -12,18 +12,19 @@ mkCoqDerivation { owner = "iris"; inherit version; defaultVersion = + let + case = case: out: { inherit case out; }; + in with lib.versions; - lib.switch coq.coq-version (lib.lists.sort (x: y: isLe x.out y.out) ( - lib.mapAttrsToList (out: case: { inherit case out; }) { - "4.3.0" = range "8.19" "9.0"; - "4.2.0" = range "8.18" "8.19"; - "4.1.0" = range "8.16" "8.18"; - "4.0.0" = range "8.13" "8.17"; - "3.5.0" = range "8.12" "8.14"; - "3.4.0" = range "8.11" "8.13"; - "3.3.0" = range "8.9" "8.10"; - } - )) null; + lib.switch coq.coq-version [ + (case (range "8.19" "9.0") "4.3.0") + (case (range "8.18" "8.19") "4.2.0") + (case (range "8.16" "8.18") "4.1.0") + (case (range "8.13" "8.17") "4.0.0") + (case (range "8.12" "8.14") "3.5.0") + (case (range "8.11" "8.13") "3.4.0") + (case (range "8.9" "8.10") "3.3.0") + ] null; release."4.3.0".sha256 = "sha256-3qhjiFI+A3I3fD8rFfJL5Hek77wScfn/FNNbDyGqA1k="; release."4.2.0".sha256 = "sha256-HuiHIe+5letgr1NN1biZZFq0qlWUbFmoVI7Q91+UIfM="; release."4.1.0".sha256 = "sha256-nTZUeZOXiH7HsfGbMKDE7vGrNVCkbMaWxdMWUcTUNlo="; diff --git a/pkgs/development/coq-modules/itauto/default.nix b/pkgs/development/coq-modules/itauto/default.nix index e7183563d8d4..690298742b9a 100644 --- a/pkgs/development/coq-modules/itauto/default.nix +++ b/pkgs/development/coq-modules/itauto/default.nix @@ -22,19 +22,20 @@ release."8.13+no".sha256 = "sha256-gXoxtLcHPoyjJkt7WqvzfCMCQlh6kL2KtCGe3N6RC/A="; inherit version; defaultVersion = + let + case = case: out: { inherit case out; }; + in with lib.versions; - lib.switch coq.coq-version (lib.lists.sort (x: y: isLe x.out y.out) ( - lib.mapAttrsToList (out: case: { inherit case out; }) { - "8.20.0" = isEq "8.20"; - "8.19.0" = isEq "8.19"; - "8.18.0" = isEq "8.18"; - "8.17.0" = isEq "8.17"; - "8.16.0" = isEq "8.16"; - "8.15.0" = isEq "8.15"; - "8.14.0" = isEq "8.14"; - "8.13+no" = isEq "8.13"; - } - )) null; + lib.switch coq.coq-version [ + (case (isEq "8.20") "8.20.0") + (case (isEq "8.19") "8.19.0") + (case (isEq "8.18") "8.18.0") + (case (isEq "8.17") "8.17.0") + (case (isEq "8.16") "8.16.0") + (case (isEq "8.15") "8.15.0") + (case (isEq "8.14") "8.14.0") + (case (isEq "8.13") "8.13+no") + ] null; mlPlugin = true; nativeBuildInputs = (with coq.ocamlPackages; [ ocamlbuild ]); diff --git a/pkgs/development/coq-modules/itree-io/default.nix b/pkgs/development/coq-modules/itree-io/default.nix index c3df0dbf49a1..1b5624cf5bc9 100644 --- a/pkgs/development/coq-modules/itree-io/default.nix +++ b/pkgs/development/coq-modules/itree-io/default.nix @@ -15,13 +15,12 @@ mkCoqDerivation { defaultVersion = let - inherit (lib.versions) isLe range; + case = case: out: { inherit case out; }; + inherit (lib.versions) range; in - lib.switch coq.coq-version (lib.lists.sort (x: y: isLe x.out y.out) ( - lib.mapAttrsToList (out: case: { inherit case out; }) { - "0.1.1" = range "8.12" "8.19"; - } - )) null; + lib.switch coq.coq-version [ + (case (range "8.12" "8.19") "0.1.1") + ] null; release = { "0.1.1".sha256 = "sha256-IFwIj8dxW4jm2gvuUJ8LKZFSJeljp0bsn8fezxY6t2o="; }; diff --git a/pkgs/development/coq-modules/jasmin/default.nix b/pkgs/development/coq-modules/jasmin/default.nix index c53ab153f3e9..d7545d9bba62 100644 --- a/pkgs/development/coq-modules/jasmin/default.nix +++ b/pkgs/development/coq-modules/jasmin/default.nix @@ -14,19 +14,23 @@ mkCoqDerivation { inherit version; defaultVersion = - with lib.versions; let - cmc = c: mc: [ - c - mc - ]; + case = coq: mc: out: { + cases = [ + coq + mc + ]; + inherit out; + }; in - lib.switch [ coq.coq-version mathcomp.version ] (lib.lists.sort (x: y: isLe x.out y.out) ( - lib.mapAttrsToList (out: cases: { inherit cases out; }) { - "2025.02.0" = cmc (range "8.19" "9.0") (range "2.2" "2.4"); - "2024.07.2" = cmc (isEq "8.18") (isEq "2.2"); - } - )) null; + with lib.versions; + lib.switch + [ coq.coq-version mathcomp.version ] + [ + (case (range "8.19" "9.0") (range "2.2" "2.4") "2025.02.0") + (case (isEq "8.18") (isEq "2.2") "2024.07.2") + ] + null; releaseRev = v: "v${v}"; release."2025.02.0".sha256 = "sha256-Jlf0+VPuYWXdWyKHKHSp7h/HuCCp4VkcrgDAmh7pi5s="; diff --git a/pkgs/development/coq-modules/json/default.nix b/pkgs/development/coq-modules/json/default.nix index b48b8de4ec89..06f18199fcf1 100644 --- a/pkgs/development/coq-modules/json/default.nix +++ b/pkgs/development/coq-modules/json/default.nix @@ -15,14 +15,13 @@ defaultVersion = let - inherit (lib.versions) isLe range; + case = case: out: { inherit case out; }; + inherit (lib.versions) range; in - lib.switch coq.coq-version (lib.lists.sort (x: y: isLe x.out y.out) ( - lib.mapAttrsToList (out: case: { inherit case out; }) { - "0.2.0" = range "8.14" "9.0"; - "0.1.3" = range "8.14" "8.20"; - } - )) null; + lib.switch coq.coq-version [ + (case (range "8.14" "9.0") "0.2.0") + (case (range "8.14" "8.20") "0.1.3") + ] null; release = { "0.2.0".sha256 = "sha256-qDRTgWLUvu4x3/d3BDcqo2I4W5ZmLyRiwuY/Tm/FuKA="; "0.1.3".sha256 = "sha256-lElAzW4IuX+BB6ngDjlyKn0MytLRfbhQanB+Lct/WR0="; diff --git a/pkgs/development/coq-modules/mathcomp-abel/default.nix b/pkgs/development/coq-modules/mathcomp-abel/default.nix index 925cbbdc62a7..833333392536 100644 --- a/pkgs/development/coq-modules/mathcomp-abel/default.nix +++ b/pkgs/development/coq-modules/mathcomp-abel/default.nix @@ -18,20 +18,24 @@ mkCoqDerivation { inherit version; defaultVersion = - with lib.versions; let - cmc = c: mc: [ - c - mc - ]; + case = coq: mc: out: { + cases = [ + coq + mc + ]; + inherit out; + }; in - lib.switch [ coq.coq-version mathcomp.version ] (lib.lists.sort (x: y: isLe x.out y.out) ( - lib.mapAttrsToList (out: cases: { inherit cases out; }) { - "1.2.1" = cmc (range "8.10" "8.16") (range "1.12.0" "1.15.0"); - "1.2.0" = cmc (range "8.10" "8.15") (range "1.12.0" "1.14.0"); - "1.1.2" = cmc (range "8.10" "8.14") (range "1.11.0" "1.12.0"); - } - )) null; + with lib.versions; + lib.switch + [ coq.coq-version mathcomp.version ] + [ + (case (range "8.10" "8.16") (range "1.12.0" "1.15.0") "1.2.1") + (case (range "8.10" "8.15") (range "1.12.0" "1.14.0") "1.2.0") + (case (range "8.10" "8.14") (range "1.11.0" "1.12.0") "1.1.2") + ] + null; release."1.2.1".sha256 = "sha256-M1q6WIPBsayHde2hwlTxylH169hcTs3OuFsEkM0e3yc="; release."1.2.0".sha256 = "1picd4m85ipj22j3b84cv8ab3330radzrhd6kp0gpxq14dhv02c2"; diff --git a/pkgs/development/coq-modules/mathcomp-algebra-tactics/default.nix b/pkgs/development/coq-modules/mathcomp-algebra-tactics/default.nix index fc4cca84b4d0..0bd7cd8a9fb9 100644 --- a/pkgs/development/coq-modules/mathcomp-algebra-tactics/default.nix +++ b/pkgs/development/coq-modules/mathcomp-algebra-tactics/default.nix @@ -19,22 +19,26 @@ mkCoqDerivation { inherit version; defaultVersion = - with lib.versions; let - cmc = c: mc: [ - c - mc - ]; + case = coq: mc: out: { + cases = [ + coq + mc + ]; + inherit out; + }; in - lib.switch [ coq.coq-version mathcomp-algebra.version ] (lib.lists.sort (x: y: isLe x.out y.out) ( - lib.mapAttrsToList (out: cases: { inherit cases out; }) { - "1.2.5" = cmc (range "8.20" "9.0") (isGe "2.4"); - "1.2.4" = cmc (range "8.16" "9.0") (isGe "2.0"); - "1.2.2" = cmc (range "8.16" "8.18") (isGe "2.0"); - "1.1.1" = cmc (range "8.16" "8.19") (isGe "1.15"); - "1.0.0" = cmc (range "8.13" "8.16") (isGe "1.12"); - } - )) null; + with lib.versions; + lib.switch + [ coq.coq-version mathcomp-algebra.version ] + [ + (case (range "8.20" "9.0") (isGe "2.4") "1.2.5") + (case (range "8.16" "9.0") (isGe "2.0") "1.2.4") + (case (range "8.16" "8.18") (isGe "2.0") "1.2.2") + (case (range "8.16" "8.19") (isGe "1.15") "1.1.1") + (case (range "8.13" "8.16") (isGe "1.12") "1.0.0") + ] + null; release."1.0.0".sha256 = "sha256-kszARPBizWbxSQ/Iqpf2vLbxYc6AjpUCLnSNlPcNfls="; release."1.1.1".sha256 = "sha256-5wItMeeTRoJlRBH3zBNc2VUZn6pkDde60YAvXTx+J3U="; diff --git a/pkgs/development/coq-modules/mathcomp-analysis/default.nix b/pkgs/development/coq-modules/mathcomp-analysis/default.nix index b24c6fa18849..5a6ec833428f 100644 --- a/pkgs/development/coq-modules/mathcomp-analysis/default.nix +++ b/pkgs/development/coq-modules/mathcomp-analysis/default.nix @@ -44,32 +44,36 @@ let release."0.2.3".sha256 = "0p9mr8g1qma6h10qf7014dv98ln90dfkwn76ynagpww7qap8s966"; defaultVersion = - with lib.versions; let - cmc = c: mc: [ - c - mc - ]; + case = coq: mc: out: { + cases = [ + coq + mc + ]; + inherit out; + }; in - lib.switch [ coq.coq-version mathcomp.version ] (lib.lists.sort (x: y: isLe x.out y.out) ( - lib.mapAttrsToList (out: cases: { inherit cases out; }) { - "1.11.0" = cmc (range "8.20" "9.0") (range "2.1.0" "2.4.0"); - "1.9.0" = cmc (range "8.19" "8.20") (range "2.1.0" "2.3.0"); - "1.1.0" = cmc (range "8.17" "8.20") (range "2.0.0" "2.2.0"); - "0.7.0" = cmc (range "8.17" "8.19") (range "1.17.0" "1.19.0"); - "0.6.7" = cmc (range "8.17" "8.18") (range "1.15.0" "1.18.0"); - "0.6.6" = cmc (range "8.17" "8.18") (range "1.15.0" "1.18.0"); - "0.6.5" = cmc (range "8.14" "8.18") (range "1.15.0" "1.17.0"); - "0.6.1" = cmc (range "8.14" "8.18") (range "1.13.0" "1.16.0"); - "0.5.2" = cmc (range "8.14" "8.18") (range "1.13" "1.15"); - "0.5.1" = cmc (range "8.13" "8.15") (range "1.13" "1.14"); - "0.3.13" = cmc (range "8.13" "8.15") (range "1.12" "1.14"); - "0.3.10" = cmc (range "8.11" "8.14") (range "1.12" "1.13"); - "0.3.3" = cmc (range "8.10" "8.12") "1.11.0"; - "0.3.1" = cmc (range "8.10" "8.11") "1.11.0"; - "0.2.3" = cmc (range "8.8" "8.11") (range "1.8" "1.10"); - } - )) null; + with lib.versions; + lib.switch + [ coq.coq-version mathcomp.version ] + [ + (case (range "8.20" "9.0") (range "2.1.0" "2.4.0") "1.11.0") + (case (range "8.19" "8.20") (range "2.1.0" "2.3.0") "1.9.0") + (case (range "8.17" "8.20") (range "2.0.0" "2.2.0") "1.1.0") + (case (range "8.17" "8.19") (range "1.17.0" "1.19.0") "0.7.0") + (case (range "8.17" "8.18") (range "1.15.0" "1.18.0") "0.6.7") + (case (range "8.17" "8.18") (range "1.15.0" "1.18.0") "0.6.6") + (case (range "8.14" "8.18") (range "1.15.0" "1.17.0") "0.6.5") + (case (range "8.14" "8.18") (range "1.13.0" "1.16.0") "0.6.1") + (case (range "8.14" "8.18") (range "1.13" "1.15") "0.5.2") + (case (range "8.13" "8.15") (range "1.13" "1.14") "0.5.1") + (case (range "8.13" "8.15") (range "1.12" "1.14") "0.3.13") + (case (range "8.11" "8.14") (range "1.12" "1.13") "0.3.10") + (case (range "8.10" "8.12") "1.11.0" "0.3.3") + (case (range "8.10" "8.11") "1.11.0" "0.3.1") + (case (range "8.8" "8.11") (range "1.8" "1.10") "0.2.3") + ] + null; # list of analysis packages sorted by dependency order packages = { diff --git a/pkgs/development/coq-modules/mathcomp-apery/default.nix b/pkgs/development/coq-modules/mathcomp-apery/default.nix index 697d0e970e6a..3ae89da38c16 100644 --- a/pkgs/development/coq-modules/mathcomp-apery/default.nix +++ b/pkgs/development/coq-modules/mathcomp-apery/default.nix @@ -17,18 +17,22 @@ mkCoqDerivation { inherit version; defaultVersion = - with lib.versions; let - cmc = c: mc: [ - c - mc - ]; + case = coq: mc: out: { + cases = [ + coq + mc + ]; + inherit out; + }; in - lib.switch [ coq.coq-version mathcomp.version ] (lib.lists.sort (x: y: isLe x.out y.out) ( - lib.mapAttrsToList (out: cases: { inherit cases out; }) { - "1.0.2" = cmc (range "8.13" "8.16") (range "1.12.0" "1.17.0"); - } - )) null; + with lib.versions; + lib.switch + [ coq.coq-version mathcomp.version ] + [ + (case (range "8.13" "8.16") (range "1.12.0" "1.17.0") "1.0.2") + ] + null; release."1.0.2".sha256 = "sha256-llxyMKYvWUA7fyroG1S/jtpioAoArmarR1edi3cikcY="; diff --git a/pkgs/development/coq-modules/mathcomp-bigenough/default.nix b/pkgs/development/coq-modules/mathcomp-bigenough/default.nix index 357fd97d93cf..8e50d9a4ea86 100644 --- a/pkgs/development/coq-modules/mathcomp-bigenough/default.nix +++ b/pkgs/development/coq-modules/mathcomp-bigenough/default.nix @@ -22,13 +22,14 @@ mkCoqDerivation { }; inherit version; defaultVersion = + let + case = case: out: { inherit case out; }; + in with lib.versions; - lib.switch coq.coq-version (lib.lists.sort (x: y: isLe x.out y.out) ( - lib.mapAttrsToList (out: case: { inherit case out; }) { - "1.0.2" = range "8.10" "9.0"; - "1.0.0" = range "8.5" "8.14"; - } - )) null; + lib.switch coq.coq-version [ + (case (range "8.10" "9.0") "1.0.2") + (case (range "8.5" "8.14") "1.0.0") + ] null; propagatedBuildInputs = [ mathcomp-boot ]; diff --git a/pkgs/development/coq-modules/mathcomp-finmap/default.nix b/pkgs/development/coq-modules/mathcomp-finmap/default.nix index 97dd95556200..11b177e80910 100644 --- a/pkgs/development/coq-modules/mathcomp-finmap/default.nix +++ b/pkgs/development/coq-modules/mathcomp-finmap/default.nix @@ -16,28 +16,32 @@ mkCoqDerivation { owner = "math-comp"; inherit version; defaultVersion = - with lib.versions; let - cmc = c: mc: [ - c - mc - ]; + case = coq: mc: out: { + cases = [ + coq + mc + ]; + inherit out; + }; in - lib.switch [ coq.coq-version mathcomp-boot.version ] (lib.lists.sort (x: y: isLe x.out y.out) ( - lib.mapAttrsToList (out: cases: { inherit cases out; }) { - "2.2.0" = cmc (range "8.20" "9.0") (range "2.3" "2.4"); - "2.1.0" = cmc (range "8.16" "9.0") (range "2.0" "2.3"); - "2.0.0" = cmc (range "8.16" "8.18") (range "2.0" "2.1"); - "1.5.2" = cmc (range "8.13" "8.20") (range "1.12" "1.19"); - "1.5.1" = cmc (isGe "8.10") (range "1.11" "1.17"); - "1.5.0" = cmc (range "8.7" "8.11") "1.11.0"; - "1.4.0+coq-8.11" = cmc (isEq "8.11") (range "1.8" "1.10"); - "1.4.0" = cmc (range "8.7" "8.11.0") (range "1.8" "1.10"); - "1.3.4" = cmc (range "8.7" "8.11.0") (range "1.8" "1.10"); - "1.1.0" = cmc (range "8.7" "8.9") "1.7.0"; - "1.0.0" = cmc (range "8.6" "8.7") (range "1.6.1" "1.7"); - } - )) null; + with lib.versions; + lib.switch + [ coq.coq-version mathcomp-boot.version ] + [ + (case (range "8.20" "9.0") (range "2.3" "2.4") "2.2.0") + (case (range "8.16" "9.0") (range "2.0" "2.3") "2.1.0") + (case (range "8.16" "8.18") (range "2.0" "2.1") "2.0.0") + (case (range "8.13" "8.20") (range "1.12" "1.19") "1.5.2") + (case (isGe "8.10") (range "1.11" "1.17") "1.5.1") + (case (range "8.7" "8.11") "1.11.0" "1.5.0") + (case (isEq "8.11") (range "1.8" "1.10") "1.4.0+coq-8.11") + (case (range "8.7" "8.11.0") (range "1.8" "1.10") "1.4.0") + (case (range "8.7" "8.11.0") (range "1.8" "1.10") "1.3.4") + (case (range "8.7" "8.9") "1.7.0" "1.1.0") + (case (range "8.6" "8.7") (range "1.6.1" "1.7") "1.0.0") + ] + null; release = { "2.2.0".sha256 = "sha256-oDQEZOutrJxmN8FvzovUIhqw0mwc8Ej7thrieJrW8BY="; "2.1.0".sha256 = "sha256-gh0cnhdVDyo+D5zdtxLc10kGKQLQ3ITzHnMC45mCtpY="; diff --git a/pkgs/development/coq-modules/mathcomp-infotheo/default.nix b/pkgs/development/coq-modules/mathcomp-infotheo/default.nix index 25d3827a89e3..c3bb32a15cc5 100644 --- a/pkgs/development/coq-modules/mathcomp-infotheo/default.nix +++ b/pkgs/development/coq-modules/mathcomp-infotheo/default.nix @@ -19,27 +19,31 @@ inherit version; defaultVersion = - with lib.versions; let - cmc = c: mc: [ - c - mc - ]; + case = coq: mc: out: { + cases = [ + coq + mc + ]; + inherit out; + }; in - lib.switch [ coq.coq-version mathcomp-analysis.version ] (lib.lists.sort (x: y: isLe x.out y.out) ( - lib.mapAttrsToList (out: cases: { inherit cases out; }) { - "0.9.3" = cmc (range "8.20" "8.20") (isGe "1.10"); - "0.9.1" = cmc (range "8.19" "8.20") (isGe "1.9"); - "0.7.7" = cmc (range "8.19" "8.20") (isGe "1.7"); - "0.7.5" = cmc (range "8.19" "8.20") (isGe "1.7"); - "0.7.3" = cmc (range "8.18" "8.20") (isGe "1.5"); - "0.7.2" = cmc (range "8.18" "8.19") (isGe "1.2"); - "0.7.1" = cmc (range "8.17" "8.19") (isGe "1.0"); - "0.6.1" = cmc (isGe "8.17") (range "0.6.6" "0.7.0"); - "0.5.2" = cmc (range "8.17" "8.18") (range "0.6.0" "0.6.7"); - "0.5.1" = cmc (range "8.15" "8.16") (range "0.5.4" "0.6.5"); - } - )) null; + with lib.versions; + lib.switch + [ coq.coq-version mathcomp-analysis.version ] + [ + (case (range "8.20" "8.20") (isGe "1.10") "0.9.3") + (case (range "8.19" "8.20") (isGe "1.9") "0.9.1") + (case (range "8.19" "8.20") (isGe "1.7") "0.7.7") + (case (range "8.19" "8.20") (isGe "1.7") "0.7.5") + (case (range "8.18" "8.20") (isGe "1.5") "0.7.3") + (case (range "8.18" "8.19") (isGe "1.2") "0.7.2") + (case (range "8.17" "8.19") (isGe "1.0") "0.7.1") + (case (isGe "8.17") (range "0.6.6" "0.7.0") "0.6.1") + (case (range "8.17" "8.18") (range "0.6.0" "0.6.7") "0.5.2") + (case (range "8.15" "8.16") (range "0.5.4" "0.6.5") "0.5.1") + ] + null; release."0.9.3".sha256 = "sha256-8+cnVKNAvZ3MVV3BpS8UmCIxJphsQRBv3swek1eEBjE="; release."0.9.1".sha256 = "sha256-WI20HxMHr1ZUwOGPIUl+nRI8TxVUa2+F1xcGjRDHO9g="; release."0.7.7".sha256 = "sha256-kEbpMl7U+I2kvqi1VrjhIVFkZFO6h0tTHEUZRbHYG7E="; diff --git a/pkgs/development/coq-modules/mathcomp-tarjan/default.nix b/pkgs/development/coq-modules/mathcomp-tarjan/default.nix index a8d233af7d3b..e5f1b9ee1b9e 100644 --- a/pkgs/development/coq-modules/mathcomp-tarjan/default.nix +++ b/pkgs/development/coq-modules/mathcomp-tarjan/default.nix @@ -18,21 +18,25 @@ mkCoqDerivation { inherit version; defaultVersion = - with lib.versions; let - cmc = c: mc: [ - c - mc - ]; + case = coq: mc: out: { + cases = [ + coq + mc + ]; + inherit out; + }; in - lib.switch [ coq.coq-version mathcomp-ssreflect.version ] (lib.lists.sort (x: y: isLe x.out y.out) ( - lib.mapAttrsToList (out: cases: { inherit cases out; }) { - "1.0.3" = cmc (range "8.16" "9.0") (range "2.0.0" "2.4.0"); - "1.0.2" = cmc (range "8.16" "9.0") (range "2.0.0" "2.3.0"); - "1.0.1" = cmc (range "8.12" "8.18") (range "1.12.0" "1.17.0"); - "1.0.0" = cmc (range "8.10" "8.16") (range "1.12.0" "1.17.0"); - } - )) null; + with lib.versions; + lib.switch + [ coq.coq-version mathcomp-ssreflect.version ] + [ + (case (range "8.16" "9.0") (range "2.0.0" "2.4.0") "1.0.3") + (case (range "8.16" "9.0") (range "2.0.0" "2.3.0") "1.0.2") + (case (range "8.12" "8.18") (range "1.12.0" "1.17.0") "1.0.1") + (case (range "8.10" "8.16") (range "1.12.0" "1.17.0") "1.0.0") + ] + null; release."1.0.3".sha256 = "sha256-5lpOCDyH6NFzGLvnXHHAnR7Qv5oXsUyC8TLBFrIiBag="; release."1.0.2".sha256 = "sha256-U20xgA+e9KTRdvILD1cxN6ia+dlA8uBTIbc4QlKz9ss="; release."1.0.1".sha256 = "sha256-utNjFCAqC5xOuhdyKhfMZkRYJD0xv9Gt6U3ZdQ56mek="; diff --git a/pkgs/development/coq-modules/mathcomp-word/default.nix b/pkgs/development/coq-modules/mathcomp-word/default.nix index c43d7a34f2f6..0041eca094ad 100644 --- a/pkgs/development/coq-modules/mathcomp-word/default.nix +++ b/pkgs/development/coq-modules/mathcomp-word/default.nix @@ -56,19 +56,23 @@ mkCoqDerivation { inherit version; defaultVersion = - with lib.versions; let - cmc = c: mc: [ - c - mc - ]; + case = coq: mc: out: { + cases = [ + coq + mc + ]; + inherit out; + }; in - lib.switch [ coq.coq-version mathcomp.version ] (lib.lists.sort (x: y: isLe x.out y.out) ( - lib.mapAttrsToList (out: cases: { inherit cases out; }) { - "3.2" = cmc (range "8.16" "9.0") (isGe "2.0"); - "2.4" = cmc (range "8.12" "8.20") (range "1.12" "1.19"); - } - )) null; + with lib.versions; + lib.switch + [ coq.coq-version mathcomp.version ] + [ + (case (range "8.16" "9.0") (isGe "2.0") "3.2") + (case (range "8.12" "8.20") (range "1.12" "1.19") "2.4") + ] + null; propagatedBuildInputs = [ mathcomp.algebra diff --git a/pkgs/development/coq-modules/mathcomp-zify/default.nix b/pkgs/development/coq-modules/mathcomp-zify/default.nix index 2c91a5056496..e1d1a9fdec83 100644 --- a/pkgs/development/coq-modules/mathcomp-zify/default.nix +++ b/pkgs/development/coq-modules/mathcomp-zify/default.nix @@ -20,20 +20,24 @@ mkCoqDerivation { inherit version; defaultVersion = - with lib.versions; let - cmc = c: mc: [ - c - mc - ]; + case = coq: mc: out: { + cases = [ + coq + mc + ]; + inherit out; + }; in - lib.switch [ coq.coq-version mathcomp-algebra.version ] (lib.lists.sort (x: y: isLe x.out y.out) ( - lib.mapAttrsToList (out: cases: { inherit cases out; }) { - "1.5.0+2.0+8.16" = cmc (range "8.16" "9.0") (isGe "2.0.0"); - "1.3.0+1.12+8.13" = cmc (range "8.13" "8.20") (range "1.12" "1.19.0"); - "1.1.0+1.12+8.13" = cmc (range "8.13" "8.16") (range "1.12" "1.17.0"); - } - )) null; + with lib.versions; + lib.switch + [ coq.coq-version mathcomp-algebra.version ] + [ + (case (range "8.16" "9.0") (isGe "2.0.0") "1.5.0+2.0+8.16") + (case (range "8.13" "8.20") (range "1.12" "1.19.0") "1.3.0+1.12+8.13") + (case (range "8.13" "8.16") (range "1.12" "1.17.0") "1.1.0+1.12+8.13") + ] + null; release."1.0.0+1.12+8.13".sha256 = "1j533vx6lacr89bj1bf15l1a0s7rvrx4l00wyjv99aczkfbz6h6k"; release."1.1.0+1.12+8.13".sha256 = "1plf4v6q5j7wvmd5gsqlpiy0vwlw6hy5daq2x42gqny23w9mi2pr"; diff --git a/pkgs/development/coq-modules/mathcomp/default.nix b/pkgs/development/coq-modules/mathcomp/default.nix index 0311a33a406c..f988a6284376 100644 --- a/pkgs/development/coq-modules/mathcomp/default.nix +++ b/pkgs/development/coq-modules/mathcomp/default.nix @@ -31,31 +31,30 @@ let withDoc = single && (args.withDoc or false); defaultVersion = let - inherit (lib.versions) isLe range; + case = case: out: { inherit case out; }; + inherit (lib.versions) range; in - lib.switch coq.coq-version (lib.lists.sort (x: y: isLe x.out y.out) ( - lib.mapAttrsToList (out: case: { inherit case out; }) { - "2.4.0" = range "8.20" "9.0"; - "2.3.0" = range "8.19" "9.0"; - "2.2.0" = range "8.17" "8.20"; - "2.1.0" = range "8.17" "8.18"; - "2.0.0" = range "8.17" "8.18"; - "1.19.0" = range "8.19" "8.20"; - "1.18.0" = range "8.17" "8.18"; - "1.17.0" = range "8.15" "8.18"; - "1.16.0" = range "8.13" "8.18"; - "1.15.0" = range "8.14" "8.16"; - "1.14.0" = range "8.11" "8.15"; - "1.13.0" = range "8.11" "8.15"; - "1.12.0" = range "8.10" "8.13"; - "1.11.0" = range "8.7" "8.12"; - "1.10.0" = range "8.7" "8.11"; - "1.9.0" = range "8.7" "8.11"; - "1.8.0" = range "8.7" "8.9"; - "1.7.0" = range "8.6" "8.9"; - "1.6.4" = range "8.5" "8.7"; - } - )) null; + lib.switch coq.coq-version [ + (case (range "8.20" "9.0") "2.4.0") + (case (range "8.19" "9.0") "2.3.0") + (case (range "8.17" "8.20") "2.2.0") + (case (range "8.17" "8.18") "2.1.0") + (case (range "8.17" "8.18") "2.0.0") + (case (range "8.19" "8.20") "1.19.0") + (case (range "8.17" "8.18") "1.18.0") + (case (range "8.15" "8.18") "1.17.0") + (case (range "8.13" "8.18") "1.16.0") + (case (range "8.14" "8.16") "1.15.0") + (case (range "8.11" "8.15") "1.14.0") + (case (range "8.11" "8.15") "1.13.0") + (case (range "8.10" "8.13") "1.12.0") + (case (range "8.7" "8.12") "1.11.0") + (case (range "8.7" "8.11") "1.10.0") + (case (range "8.7" "8.11") "1.9.0") + (case (range "8.7" "8.9") "1.8.0") + (case (range "8.6" "8.9") "1.7.0") + (case (range "8.5" "8.7") "1.6.4") + ] null; release = { "2.4.0".sha256 = "sha256-A1XgLLwZRvKS8QyceCkSQa7ue6TYyf5fMft5gSx9NOs="; "2.3.0".sha256 = "sha256-wa6OBig8rhAT4iwupSylyCAMhO69rADa0MQIX5zzL+Q="; diff --git a/pkgs/development/coq-modules/metacoq/default.nix b/pkgs/development/coq-modules/metacoq/default.nix index 2856547930ad..bb78843c736f 100644 --- a/pkgs/development/coq-modules/metacoq/default.nix +++ b/pkgs/development/coq-modules/metacoq/default.nix @@ -10,22 +10,24 @@ let repo = "metacoq"; owner = "MetaCoq"; - defaultVersion = lib.switch coq.coq-version (lib.lists.sort (x: y: lib.versions.isLe x.out y.out) ( - lib.mapAttrsToList (out: case: { inherit case out; }) { - "1.0-beta2-8.11" = "8.11"; - "1.0-beta2-8.12" = "8.12"; + defaultVersion = + let + case = case: out: { inherit case out; }; + in + lib.switch coq.coq-version [ + (case "8.11" "1.0-beta2-8.11") + (case "8.12" "1.0-beta2-8.12") # Do not provide 8.13 because it does not compile with equations 1.3 provided by default (only 1.2.3) - # "1.0-beta2-8.13" = "8.13"; - "1.1-8.14" = "8.14"; - "1.1-8.15" = "8.15"; - "1.1-8.16" = "8.16"; - "1.3.1-8.17" = "8.17"; - "1.3.1-8.18" = "8.18"; - "1.3.3-8.19" = "8.19"; - "1.3.4-8.20" = "8.20"; - "1.3.4-9.0" = "9.0"; - } - )) null; + # (case "8.13" "1.0-beta2-8.13") + (case "8.14" "1.1-8.14") + (case "8.15" "1.1-8.15") + (case "8.16" "1.1-8.16") + (case "8.17" "1.3.1-8.17") + (case "8.18" "1.3.1-8.18") + (case "8.19" "1.3.3-8.19") + (case "8.20" "1.3.4-8.20") + (case "9.0" "1.3.4-9.0") + ] null; release = { "1.0-beta2-8.11".sha256 = "sha256-I9YNk5Di6Udvq5/xpLSNflfjRyRH8fMnRzbo3uhpXNs="; "1.0-beta2-8.12".sha256 = "sha256-I8gpmU9rUQJh0qfp5KOgDNscVvCybm5zX4TINxO1TVA="; diff --git a/pkgs/development/coq-modules/metarocq/default.nix b/pkgs/development/coq-modules/metarocq/default.nix index a90df150f409..aa7b39918427 100644 --- a/pkgs/development/coq-modules/metarocq/default.nix +++ b/pkgs/development/coq-modules/metarocq/default.nix @@ -10,11 +10,13 @@ let repo = "metarocq"; owner = "MetaRocq"; - defaultVersion = lib.switch coq.coq-version (lib.lists.sort (x: y: lib.versions.isLe x.out y.out) ( - lib.mapAttrsToList (out: case: { inherit case out; }) { - "1.4-9.0" = "9.0"; - } - )) null; + defaultVersion = + let + case = case: out: { inherit case out; }; + in + lib.switch coq.coq-version [ + (case ("9.0") "1.4-9.0") + ] null; release = { "1.4-9.0".sha256 = "sha256-5QecDAMkvgfDPZ7/jDfnOgcE+Eb1LTAozP7nz6nkuxg="; }; diff --git a/pkgs/development/coq-modules/multinomials/default.nix b/pkgs/development/coq-modules/multinomials/default.nix index 6cb2adc7aba6..bf6a7eaef0f3 100644 --- a/pkgs/development/coq-modules/multinomials/default.nix +++ b/pkgs/development/coq-modules/multinomials/default.nix @@ -20,30 +20,34 @@ mkCoqDerivation { inherit version; defaultVersion = - with lib.versions; let - cmc = c: mc: [ - c - mc - ]; + case = coq: mc: out: { + cases = [ + coq + mc + ]; + inherit out; + }; in - lib.switch [ coq.coq-version mathcomp.version ] (lib.lists.sort (x: y: isLe x.out y.out) ( - lib.mapAttrsToList (out: cases: { inherit cases out; }) { - "2.4.0" = cmc (range "8.18" "9.0") (range "2.1.0" "2.4.0"); - "2.3.0" = cmc (range "8.17" "9.0") (range "2.1.0" "2.3.0"); - "2.2.0" = cmc (range "8.17" "8.20") (isGe "2.1.0"); - "2.1.0" = cmc (range "8.16" "8.18") "2.1.0"; - "2.0.0" = cmc (range "8.16" "8.18") "2.0.0"; - "1.6.0" = cmc (isGe "8.15") (range "1.15.0" "1.19.0"); - "1.5.6" = cmc (isGe "8.10") (range "1.13.0" "1.17.0"); - "1.5.5" = cmc (range "8.10" "8.16") (range "1.12.0" "1.15.0"); - "1.5.3" = cmc (range "8.10" "8.12") "1.12.0"; - "1.5.2" = cmc (range "8.7" "8.12") "1.11.0"; - "1.5.0" = cmc (range "8.7" "8.11") (range "1.8" "1.10"); - "1.4" = cmc (range "8.7" "8.10") (range "1.8" "1.10"); - "1.1" = cmc "8.6" (range "1.6" "1.7"); - } - )) null; + with lib.versions; + lib.switch + [ coq.coq-version mathcomp.version ] + [ + (case (range "8.18" "9.0") (range "2.1.0" "2.4.0") "2.4.0") + (case (range "8.17" "9.0") (range "2.1.0" "2.3.0") "2.3.0") + (case (range "8.17" "8.20") (isGe "2.1.0") "2.2.0") + (case (range "8.16" "8.18") "2.1.0" "2.1.0") + (case (range "8.16" "8.18") "2.0.0" "2.0.0") + (case (isGe "8.15") (range "1.15.0" "1.19.0") "1.6.0") + (case (isGe "8.10") (range "1.13.0" "1.17.0") "1.5.6") + (case (range "8.10" "8.16") (range "1.12.0" "1.15.0") "1.5.5") + (case (range "8.10" "8.12") "1.12.0" "1.5.3") + (case (range "8.7" "8.12") "1.11.0" "1.5.2") + (case (range "8.7" "8.11") (range "1.8" "1.10") "1.5.0") + (case (range "8.7" "8.10") (range "1.8" "1.10") "1.4") + (case "8.6" (range "1.6" "1.7") "1.1") + ] + null; release = { "2.4.0".sha256 = "sha256-7zfIddRH+Sl4nhEPtS/lMZwRUZI45AVFpcC/UC8Z0Yo="; "2.3.0".sha256 = "sha256-usIcxHOAuN+f/j3WjVbPrjz8Hl9ac8R6kYeAKi3CEts="; diff --git a/pkgs/development/coq-modules/odd-order/default.nix b/pkgs/development/coq-modules/odd-order/default.nix index 9c0b721141fc..82c0272c16f3 100644 --- a/pkgs/development/coq-modules/odd-order/default.nix +++ b/pkgs/development/coq-modules/odd-order/default.nix @@ -18,16 +18,17 @@ mkCoqDerivation { inherit version; defaultVersion = + let + case = case: out: { inherit case out; }; + in with lib.versions; - lib.switch mathcomp.character.version (lib.lists.sort (x: y: isLe x.out y.out) ( - lib.mapAttrsToList (out: case: { inherit case out; }) { - "2.2.0" = (range "2.2.0" "2.4.0"); - "2.1.0" = (range "2.1.0" "2.3.0"); - "1.14.0" = (range "1.13.0" "1.15.0"); - "1.13.0" = (range "1.12.0" "1.14.0"); - "1.12.0" = (range "1.10.0" "1.12.0"); - } - )) null; + lib.switch mathcomp.character.version [ + (case (range "2.2.0" "2.4.0") "2.2.0") + (case (range "2.1.0" "2.3.0") "2.1.0") + (case (range "1.13.0" "1.15.0") "1.14.0") + (case (range "1.12.0" "1.14.0") "1.13.0") + (case (range "1.10.0" "1.12.0") "1.12.0") + ] null; propagatedBuildInputs = [ mathcomp.character diff --git a/pkgs/development/coq-modules/reglang/default.nix b/pkgs/development/coq-modules/reglang/default.nix index d3d1bfc15ff9..adbb2bfbae98 100644 --- a/pkgs/development/coq-modules/reglang/default.nix +++ b/pkgs/development/coq-modules/reglang/default.nix @@ -20,21 +20,25 @@ mkCoqDerivation { inherit version; defaultVersion = - with lib.versions; let - cmc = c: mc: [ - c - mc - ]; + case = coq: mc: out: { + cases = [ + coq + mc + ]; + inherit out; + }; in - lib.switch [ coq.coq-version mathcomp.version ] (lib.lists.sort (x: y: isLe x.out y.out) ( - lib.mapAttrsToList (out: cases: { inherit cases out; }) { - "1.2.2" = cmc (range "8.16" "9.0") (range "2.0.0" "2.4.0"); - "1.2.1" = cmc (range "8.16" "9.0") (range "2.0.0" "2.3.0"); - "1.2.0" = cmc (range "8.16" "8.18") (range "2.0.0" "2.1.0"); - "1.1.3" = cmc (range "8.10" "8.20") (isLt "2.0.0"); - } - )) null; + with lib.versions; + lib.switch + [ coq.coq-version mathcomp.version ] + [ + (case (range "8.16" "9.0") (range "2.0.0" "2.4.0") "1.2.2") + (case (range "8.16" "9.0") (range "2.0.0" "2.3.0") "1.2.1") + (case (range "8.16" "8.18") (range "2.0.0" "2.1.0") "1.2.0") + (case (range "8.10" "8.20") (isLt "2.0.0") "1.1.3") + ] + null; propagatedBuildInputs = [ mathcomp.ssreflect diff --git a/pkgs/development/coq-modules/relation-algebra/default.nix b/pkgs/development/coq-modules/relation-algebra/default.nix index d512613fad9b..4f0302a72915 100644 --- a/pkgs/development/coq-modules/relation-algebra/default.nix +++ b/pkgs/development/coq-modules/relation-algebra/default.nix @@ -27,22 +27,23 @@ mkCoqDerivation { inherit version; defaultVersion = + let + case = case: out: { inherit case out; }; + in with lib.versions; - lib.switch coq.coq-version (lib.lists.sort (x: y: isLe x.out y.out) ( - lib.mapAttrsToList (out: case: { inherit case out; }) { - "1.7.11" = isEq "8.20"; - "1.7.10" = range "8.18" "8.19"; - "1.7.9" = isEq "8.17"; - "1.7.8" = isEq "8.16"; - "1.7.7" = isEq "8.15"; - "1.7.6" = isEq "8.14"; - "1.7.5" = isEq "8.13"; - "1.7.4" = isEq "8.12"; - "1.7.3" = isEq "8.11"; - "1.7.2" = isEq "8.10"; - "1.7.1" = isEq "8.9"; - } - )) null; + lib.switch coq.coq-version [ + (case (isEq "8.20") "1.7.11") + (case (range "8.18" "8.19") "1.7.10") + (case (isEq "8.17") "1.7.9") + (case (isEq "8.16") "1.7.8") + (case (isEq "8.15") "1.7.7") + (case (isEq "8.14") "1.7.6") + (case (isEq "8.13") "1.7.5") + (case (isEq "8.12") "1.7.4") + (case (isEq "8.11") "1.7.3") + (case (isEq "8.10") "1.7.2") + (case (isEq "8.9") "1.7.1") + ] null; mlPlugin = true; diff --git a/pkgs/development/coq-modules/simple-io/default.nix b/pkgs/development/coq-modules/simple-io/default.nix index d2a3ae0a26df..cc8c427619fb 100644 --- a/pkgs/development/coq-modules/simple-io/default.nix +++ b/pkgs/development/coq-modules/simple-io/default.nix @@ -13,14 +13,15 @@ repo = "coq-simple-io"; inherit version; defaultVersion = + let + case = case: out: { inherit case out; }; + in with lib.versions; - lib.switch coq.coq-version (lib.lists.sort (x: y: isLe x.out y.out) ( - lib.mapAttrsToList (out: case: { inherit case out; }) { - "1.10.0" = range "8.17" "9.0"; - "1.8.0" = range "8.11" "8.19"; - "1.3.0" = range "8.7" "8.13"; - } - )) null; + lib.switch coq.coq-version [ + (case (range "8.17" "9.0") "1.10.0") + (case (range "8.11" "8.19") "1.8.0") + (case (range "8.7" "8.13") "1.3.0") + ] null; release."1.10.0".sha256 = "sha256-67cBhLvRMWLWBL7NXK1zZTQC4PtSKu9qtesU4SqKkOw="; release."1.8.0".sha256 = "sha256-3ADNeXrBIpYRlfUW+LkLHUWV1w1HFrVc/TZISMuwvRY="; release."1.7.0".sha256 = "sha256:1a1q9x2abx71hqvjdai3n12jxzd49mhf3nqqh3ya2ssl2lj609ci"; diff --git a/pkgs/development/coq-modules/ssprove/default.nix b/pkgs/development/coq-modules/ssprove/default.nix index b91ef56a36b7..1b8ad91a51b9 100644 --- a/pkgs/development/coq-modules/ssprove/default.nix +++ b/pkgs/development/coq-modules/ssprove/default.nix @@ -18,28 +18,32 @@ inherit version; defaultVersion = - with lib.versions; let - cmc = c: mc: [ - c - mc - ]; + case = coq: mc: out: { + cases = [ + coq + mc + ]; + inherit out; + }; in - lib.switch [ coq.coq-version mathcomp-boot.version ] (lib.lists.sort (x: y: isLe x.out y.out) ( - lib.mapAttrsToList (out: cases: { inherit cases out; }) { - "0.2.4" = cmc (range "8.18" "9.0") (range "2.3.0" "2.4.0"); - "0.2.3" = cmc (range "8.18" "8.20") (range "2.3.0" "2.3.0"); - "0.2.2" = cmc (range "8.18" "8.20") (range "2.1.0" "2.2.0"); + with lib.versions; + lib.switch + [ coq.coq-version mathcomp-boot.version ] + [ + (case (range "8.18" "9.0") (range "2.3.0" "2.4.0") "0.2.4") + (case (range "8.18" "8.20") (range "2.3.0" "2.3.0") "0.2.3") + (case (range "8.18" "8.20") (range "2.1.0" "2.2.0") "0.2.2") # This is the original dependency: - # "0.1.0" = ["8.17" "1.18.0"]; + # (case "8.17" "1.18.0" "0.1.0") # But it is not loadable. The math-comp nixpkgs configuration # will always only output version 1.18.0 for Coq 8.17. # Hence, the Coq 8.17 and math-comp 1.17.0 must be explicitly set # to load it. # (This version is not on the math-comp CI and hence not checked.) - "0.1.0" = cmc "8.17" "1.17.0"; - } - )) null; + (case "8.17" "1.17.0" "0.1.0") + ] + null; releaseRev = v: "v${v}"; diff --git a/pkgs/development/coq-modules/stalmarck/default.nix b/pkgs/development/coq-modules/stalmarck/default.nix index 2da766715881..e493321d8a0a 100644 --- a/pkgs/development/coq-modules/stalmarck/default.nix +++ b/pkgs/development/coq-modules/stalmarck/default.nix @@ -9,12 +9,13 @@ let repo = "stalmarck"; defaultVersion = + let + case = case: out: { inherit case out; }; + in with lib.versions; - lib.switch coq.coq-version (lib.lists.sort (x: y: isLe x.out y.out) ( - lib.mapAttrsToList (out: case: { inherit case out; }) { - "8.20.0" = isEq "8.20"; - } - )) null; + lib.switch coq.coq-version [ + (case (isEq "8.20") "8.20.0") + ] null; release = { "8.20.0".sha256 = "sha256-jITxQT1jLyZvWCGPnmK8i3IrwsZwMPOV0aBe9r22TIQ="; }; diff --git a/pkgs/development/coq-modules/stdlib/default.nix b/pkgs/development/coq-modules/stdlib/default.nix index 90933aa24d75..474fd188afdf 100644 --- a/pkgs/development/coq-modules/stdlib/default.nix +++ b/pkgs/development/coq-modules/stdlib/default.nix @@ -14,13 +14,14 @@ inherit version; defaultVersion = + let + case = case: out: { inherit case out; }; + in with lib.versions; - lib.switch coq.coq-version (lib.lists.sort (x: y: isLe x.out y.out) ( - lib.mapAttrsToList (out: case: { inherit case out; }) { - "9.0.0" = isLe "9.0"; - # the < 9.0 above is artificial as stdlib was included in Coq before - } - )) null; + lib.switch coq.coq-version [ + (case (isLe "9.0") "9.0.0") + # the < 9.0 above is artificial as stdlib was included in Coq before + ] null; releaseRev = v: "V${v}"; release."9.0.0".sha256 = "sha256-2l7ak5Q/NbiNvUzIVXOniEneDXouBMNSSVFbD1Pf8cQ="; diff --git a/pkgs/development/coq-modules/stdpp/default.nix b/pkgs/development/coq-modules/stdpp/default.nix index 41eaacb7fde9..3f64dc57f47c 100644 --- a/pkgs/development/coq-modules/stdpp/default.nix +++ b/pkgs/development/coq-modules/stdpp/default.nix @@ -12,18 +12,19 @@ mkCoqDerivation { domain = "gitlab.mpi-sws.org"; owner = "iris"; defaultVersion = + let + case = case: out: { inherit case out; }; + in with lib.versions; - lib.switch coq.coq-version (lib.lists.sort (x: y: isLe x.out y.out) ( - lib.mapAttrsToList (out: case: { inherit case out; }) { - "1.11.0" = range "8.19" "9.0"; - "1.10.0" = range "8.18" "8.19"; - "1.9.0" = range "8.16" "8.18"; - "1.8.0" = range "8.13" "8.17"; - "1.6.0" = range "8.12" "8.14"; - "1.5.0" = range "8.11" "8.13"; - "1.4.0" = range "8.8" "8.10"; - } - )) null; + lib.switch coq.coq-version [ + (case (range "8.19" "9.0") "1.11.0") + (case (range "8.18" "8.19") "1.10.0") + (case (range "8.16" "8.18") "1.9.0") + (case (range "8.13" "8.17") "1.8.0") + (case (range "8.12" "8.14") "1.6.0") + (case (range "8.11" "8.13") "1.5.0") + (case (range "8.8" "8.10") "1.4.0") + ] null; release."1.11.0".sha256 = "sha256-yqnkaA5gUdZBJZ3JnvPYh11vKQRl0BAnior1yGowG7k="; release."1.10.0".sha256 = "sha256-bfynevIKxAltvt76lsqVxBmifFkzEhyX8lRgTKxr21I="; release."1.9.0".sha256 = "sha256-OXeB+XhdyzWMp5Karsz8obp0rTeMKrtG7fu/tmc9aeI="; diff --git a/pkgs/development/python-modules/bangla/default.nix b/pkgs/development/python-modules/bangla/default.nix index c5b00393bada..46dcbbb43aba 100644 --- a/pkgs/development/python-modules/bangla/default.nix +++ b/pkgs/development/python-modules/bangla/default.nix @@ -6,12 +6,12 @@ buildPythonPackage rec { pname = "bangla"; - version = "0.0.2"; + version = "0.0.5"; format = "setuptools"; src = fetchPypi { inherit pname version; - hash = "sha256-F8j9UBMhZgB31atqebdGu6cfnkk573isDZp1171xXag="; + hash = "sha256-rX2/rUUf9g4otYMNX0LDPXSIDRbIE8xRl95NamHzRwQ="; }; pythonImportsCheck = [ "bangla" ]; diff --git a/pkgs/development/python-modules/basswood-av/default.nix b/pkgs/development/python-modules/basswood-av/default.nix index 2216ffce3500..38b9997efb63 100644 --- a/pkgs/development/python-modules/basswood-av/default.nix +++ b/pkgs/development/python-modules/basswood-av/default.nix @@ -4,19 +4,10 @@ fetchFromGitHub, setuptools, pkg-config, - cython, + cython_3_1, ffmpeg, }: -let - cython' = cython.overrideAttrs (oldAttrs: rec { - version = "3.1.0"; - src = oldAttrs.src.override { - tag = version; - hash = "sha256-3/C0+ygGgNvw75ZN02Q70TLFa1U4jVgWQDG5FGWErTg="; - }; - }); -in buildPythonPackage rec { pname = "basswood-av"; version = "15.2.1"; @@ -31,7 +22,7 @@ buildPythonPackage rec { build-system = [ setuptools - cython' + cython_3_1 ]; nativeBuildInputs = [ pkg-config ]; diff --git a/pkgs/development/python-modules/cloudflare/default.nix b/pkgs/development/python-modules/cloudflare/default.nix index 7fb8db480f51..b19641a9c278 100644 --- a/pkgs/development/python-modules/cloudflare/default.nix +++ b/pkgs/development/python-modules/cloudflare/default.nix @@ -15,14 +15,14 @@ buildPythonPackage rec { pname = "cloudflare"; - version = "4.2.0"; + version = "4.3.1"; pyproject = true; disabled = pythonOlder "3.7"; src = fetchPypi { inherit pname version; - hash = "sha256-QKpxgWOpsHYagVvVKnzBilBioQvjF3yy1Kk2dwzACCY="; + hash = "sha256-seHGvuuNmPY7/gocuodPxOIuAAvMSQVE+VbGibO1slg="; }; postPatch = '' diff --git a/pkgs/development/python-modules/coredis/default.nix b/pkgs/development/python-modules/coredis/default.nix index e83a0b36ddba..8a955a192973 100644 --- a/pkgs/development/python-modules/coredis/default.nix +++ b/pkgs/development/python-modules/coredis/default.nix @@ -18,14 +18,14 @@ buildPythonPackage rec { pname = "coredis"; - version = "4.22.0"; + version = "4.23.1"; pyproject = true; src = fetchFromGitHub { owner = "alisaifee"; repo = "coredis"; tag = version; - hash = "sha256-EMiZkKUcVbinWtYimNSQ715PH7pCrXpNKqseLFCu/48="; + hash = "sha256-5Ho9X2VCOwKo079M2ReJ93jqEpG2ZV6vKM5/qrgzjxM="; }; postPatch = '' diff --git a/pkgs/development/python-modules/flashinfer/default.nix b/pkgs/development/python-modules/flashinfer/default.nix index 83b91b746e7c..efd7d39bcbcb 100644 --- a/pkgs/development/python-modules/flashinfer/default.nix +++ b/pkgs/development/python-modules/flashinfer/default.nix @@ -77,6 +77,7 @@ buildPythonPackage { preConfigure = '' export FLASHINFER_ENABLE_AOT=1 export TORCH_NVCC_FLAGS="--maxrregcount=64" + export MAX_JOBS="$NIX_BUILD_CORES" ''; TORCH_CUDA_ARCH_LIST = lib.concatStringsSep ";" torch.cudaCapabilities; diff --git a/pkgs/development/python-modules/glyphslib/default.nix b/pkgs/development/python-modules/glyphslib/default.nix index 449b52c4c35a..3cd569339bf0 100644 --- a/pkgs/development/python-modules/glyphslib/default.nix +++ b/pkgs/development/python-modules/glyphslib/default.nix @@ -17,20 +17,20 @@ buildPythonPackage rec { pname = "glyphslib"; - version = "6.10.3"; + version = "6.11.0"; - format = "pyproject"; + pyproject = true; src = fetchFromGitHub { owner = "googlefonts"; repo = "glyphsLib"; tag = "v${version}"; - hash = "sha256-DLyWuFrAwc/ElGFjLxWY4RihwlQ143AUnWBzzJttZT4="; + hash = "sha256-hJLJ30ZT6uRSVTUi6XPGyn9fncy1A1hvhgRKTL9a2gs="; }; - nativeBuildInputs = [ setuptools-scm ]; + build-system = [ setuptools-scm ]; - propagatedBuildInputs = [ + dependencies = [ fonttools openstep-plist ufolib2 diff --git a/pkgs/development/python-modules/google-cloud-artifact-registry/default.nix b/pkgs/development/python-modules/google-cloud-artifact-registry/default.nix index afa2e4d8dcd9..bb24a56b763f 100644 --- a/pkgs/development/python-modules/google-cloud-artifact-registry/default.nix +++ b/pkgs/development/python-modules/google-cloud-artifact-registry/default.nix @@ -14,7 +14,7 @@ buildPythonPackage rec { pname = "google-cloud-artifact-registry"; - version = "1.16.0"; + version = "1.16.1"; pyproject = true; disabled = pythonOlder "3.7"; @@ -22,7 +22,7 @@ buildPythonPackage rec { src = fetchPypi { pname = "google_cloud_artifact_registry"; inherit version; - hash = "sha256-PDikL/ECsIdQn7gXoF04SVxpp7aZ9allTJL+pnd947E="; + hash = "sha256-X3v503uTPImEhSFw/oQlAaitx/MSgagblK1hkkSL7M4="; }; build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/msgraph-sdk/default.nix b/pkgs/development/python-modules/msgraph-sdk/default.nix index f40c1ac5d571..cb4f42b8c8b2 100644 --- a/pkgs/development/python-modules/msgraph-sdk/default.nix +++ b/pkgs/development/python-modules/msgraph-sdk/default.nix @@ -17,7 +17,7 @@ buildPythonPackage rec { pname = "msgraph-sdk"; - version = "1.33.0"; + version = "1.34.0"; pyproject = true; disabled = pythonOlder "3.8"; @@ -26,7 +26,7 @@ buildPythonPackage rec { owner = "microsoftgraph"; repo = "msgraph-sdk-python"; tag = "v${version}"; - hash = "sha256-s8YUxM8wqQ3I9ckcyArriTK70+YTBzY4jH2WsQh8jtM="; + hash = "sha256-fd3ts6El2b3spg0T+awnNlkY7SxXKIAdvbIpo0SkHec="; }; build-system = [ flit-core ]; diff --git a/pkgs/development/python-modules/publicsuffixlist/default.nix b/pkgs/development/python-modules/publicsuffixlist/default.nix index 32df78e57854..affe129fb9eb 100644 --- a/pkgs/development/python-modules/publicsuffixlist/default.nix +++ b/pkgs/development/python-modules/publicsuffixlist/default.nix @@ -11,14 +11,14 @@ buildPythonPackage rec { pname = "publicsuffixlist"; - version = "1.0.2.20250617"; + version = "1.0.2.20250627"; pyproject = true; disabled = pythonOlder "3.7"; src = fetchPypi { inherit pname version; - hash = "sha256-UELX/GP1cvkmMpNu+zzmQywaKkZPJP1D8lr3QmGHkOY="; + hash = "sha256-AwLhjTojOEML4vU/xmv99M3TjtYXJAX1AcjCZuu58Ds="; }; build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/pytest-cases/default.nix b/pkgs/development/python-modules/pytest-cases/default.nix index d74ffcb45d2a..f6fac10aaadf 100644 --- a/pkgs/development/python-modules/pytest-cases/default.nix +++ b/pkgs/development/python-modules/pytest-cases/default.nix @@ -4,6 +4,7 @@ fetchPypi, makefun, decopatch, + packaging, pythonOlder, pytest, setuptools-scm, @@ -11,24 +12,24 @@ buildPythonPackage rec { pname = "pytest-cases"; - version = "3.8.6"; + version = "3.9.1"; pyproject = true; - disabled = pythonOlder "3.6"; + disabled = pythonOlder "3.9"; src = fetchPypi { pname = "pytest_cases"; inherit version; - hash = "sha256-XCTgqwy2+OgCpGm3llkGozPTuruHRYbrxW9+LL4afEQ="; + hash = "sha256-xOGB8bUlyTGjGNSBL6jeZWwsj7d/zPFXHs8Mxf6Of48="; }; build-system = [ setuptools-scm ]; - buildInputs = [ pytest ]; - dependencies = [ decopatch makefun + packaging + pytest ]; # Tests have dependencies (pytest-harvest, pytest-steps) which diff --git a/pkgs/development/python-modules/robotframework-databaselibrary/default.nix b/pkgs/development/python-modules/robotframework-databaselibrary/default.nix index efc09a7c95f3..15e766dd0a83 100644 --- a/pkgs/development/python-modules/robotframework-databaselibrary/default.nix +++ b/pkgs/development/python-modules/robotframework-databaselibrary/default.nix @@ -5,20 +5,19 @@ setuptools, robotframework, robotframework-assertion-engine, - robotframework-excellib, pytestCheckHook, }: buildPythonPackage rec { pname = "robotframework-databaselibrary"; - version = "2.0.4"; + version = "2.1.3"; pyproject = true; src = fetchFromGitHub { owner = "MarketSquare"; repo = "Robotframework-Database-Library"; tag = "v.${version}"; - hash = "sha256-ixgKw5iZw81TlgvvbsJXI753OkHuyJHhSeNVqXtsY4w="; + hash = "sha256-XsRXQU31Q2iGUMJgDvIIcSsT8guALZO5tnIjwGLR8+Q="; }; nativeBuildInputs = [ @@ -29,7 +28,6 @@ buildPythonPackage rec { propagatedBuildInputs = [ robotframework robotframework-assertion-engine - robotframework-excellib ]; pythonImportsCheck = [ "DatabaseLibrary" ]; diff --git a/pkgs/development/python-modules/streamlit/default.nix b/pkgs/development/python-modules/streamlit/default.nix index 80a8fe7e51fb..6f8fa1272adb 100644 --- a/pkgs/development/python-modules/streamlit/default.nix +++ b/pkgs/development/python-modules/streamlit/default.nix @@ -28,14 +28,14 @@ buildPythonPackage rec { pname = "streamlit"; - version = "1.45.1"; + version = "1.46.0"; pyproject = true; disabled = pythonOlder "3.9"; src = fetchPypi { inherit pname version; - hash = "sha256-431WwK9SQNvCQJdogOgTZmicKQpVk3ZBckb5s/UbQhc="; + hash = "sha256-Cyc0tI8R8eXIBGARtrGiJ0mC3GV+7yrejbcPDh3FPdo="; }; build-system = [ diff --git a/pkgs/development/python-modules/wgpu-py/default.nix b/pkgs/development/python-modules/wgpu-py/default.nix index eab8ceb8a1dc..e951f5a30933 100644 --- a/pkgs/development/python-modules/wgpu-py/default.nix +++ b/pkgs/development/python-modules/wgpu-py/default.nix @@ -27,35 +27,48 @@ imageio, numpy, psutil, + pypng, pytest, ruff, trio, # passthru - wgpu-py, testers, + wgpu-py, }: buildPythonPackage rec { pname = "wgpu-py"; - version = "0.21.1"; + version = "0.22.2"; pyproject = true; src = fetchFromGitHub { owner = "pygfx"; repo = "wgpu-py"; tag = "v${version}"; - hash = "sha256-XlV0ovIF3w/u6f65+3c4zAfisCoQDbzMiINJJTR/I6o="; + hash = "sha256-HGpOEsTj4t57z38qKF6i1oUj7R7aFl8Xgk5y0TtgyMg="; }; - # `requests` is only used to fetch a copy of `wgpu-native` via `tools/hatch_build.py`. - # As we retrieve `wgpu-native` from nixpkgs instead, none of this is needed, and - # remove an extra dependency. - postPatch = '' - substituteInPlace pyproject.toml \ - --replace-fail 'requires = ["requests", "hatchling"]' 'requires = ["hatchling"]' \ - --replace-fail '[tool.hatch.build.targets.wheel.hooks.custom]' "" \ - --replace-fail 'path = "tools/hatch_build.py"' "" - ''; + postPatch = + # `requests` is only used to fetch a copy of `wgpu-native` via `tools/hatch_build.py`. + # As we retrieve `wgpu-native` from nixpkgs instead, none of this is needed, and + # remove an extra dependency. + '' + substituteInPlace pyproject.toml \ + --replace-fail 'requires = ["requests", "hatchling"]' 'requires = ["hatchling"]' \ + --replace-fail '[tool.hatch.build.targets.wheel.hooks.custom]' "" \ + --replace-fail 'path = "tools/hatch_build.py"' "" + '' + # Skip the compute_textures / astronauts example during testing, as it uses `imageio` to + # retrieve an image of an astronaut, which touches the network. + + '' + substituteInPlace examples/compute_textures.py \ + --replace-fail 'import wgpu' 'import wgpu # run_example = false' + '' + # Tweak tests that fail due to a dependency of `wgpu-native`, `naga`, adding an `ir` module + + '' + substituteInPlace tests/test_wgpu_native_errors.py \ + --replace-fail 'naga::' 'naga::ir::' + ''; # wgpu-py expects to have an appropriately named wgpu-native library in wgpu/resources preBuild = '' @@ -96,66 +109,38 @@ buildPythonPackage rec { imageio numpy psutil + pypng pytest ruff trio ]; - # Tests break due to sandboxing on everything except darwin - # Prefer to run them in passthru - doCheck = false; + # Tests break in Linux CI due to wgpu being unable to find any adapters. + # Ordinarily, this would be fixed in an approach similar to `pkgs/by-name/wg/wgpu-native/examples.nix`'s + # usage of `runtimeInputs` and `makeWrapperArgs`. + # Unfortunately, as this is a Python module without a `mainProgram`, `makeWrapperArgs` will not apply here, + # as there is no "script" to wrap. + doCheck = stdenv.hostPlatform.isDarwin; - passthru = { - tests = - { - version = testers.testVersion { - package = wgpu-py; - command = "python3 -c 'import wgpu; print(wgpu.__version__)'"; - }; - } - // lib.optionalAttrs stdenv.buildPlatform.isDarwin { - tests = testers.runCommand { - name = "tests"; - script = '' - WGPU_LIB_PATH=${wgpu-native}/lib/libwgpu_native${stdenv.hostPlatform.extensions.library} \ - pytest -v ${wgpu-py.src}/tests - ''; - nativeBuildInputs = [ wgpu-py ] ++ nativeCheckInputs; - }; + installCheckPhase = '' + runHook preInstallCheck - examples = testers.runCommand { - name = "examples"; - script = '' - WGPU_LIB_PATH=${wgpu-native}/lib/libwgpu_native${stdenv.hostPlatform.extensions.library} \ - pytest -v ${wgpu-py.src}/examples - ''; - nativeBuildInputs = [ wgpu-py ] ++ nativeCheckInputs; - }; + for suite in tests examples codegen tests_mem; do + pytest -vvv $suite + done - codegen = testers.runCommand { - name = "codegen"; - script = '' - WGPU_LIB_PATH=${wgpu-native}/lib/libwgpu_native${stdenv.hostPlatform.extensions.library} \ - pytest -v ${wgpu-py.src}/codegen - ''; - nativeBuildInputs = [ wgpu-py ] ++ nativeCheckInputs; - }; + runHook postInstallCheck + ''; - tests_mem = testers.runCommand { - name = "tests_mem"; - script = '' - WGPU_LIB_PATH=${wgpu-native}/lib/libwgpu_native${stdenv.hostPlatform.extensions.library} \ - pytest -v ${wgpu-py.src}/tests_mem - ''; - nativeBuildInputs = [ wgpu-py ] ++ nativeCheckInputs; - }; - }; + passthru.tests.version = testers.testVersion { + package = wgpu-py; + command = "python3 -c 'import wgpu; print(wgpu.__version__)'"; }; meta = { description = "WebGPU for Python"; homepage = "https://github.com/pygfx/wgpu-py"; - changelog = "https://github.com/pygfx/wgpu-py/blob/v${version}/CHANGELOG.md"; + changelog = "https://github.com/pygfx/wgpu-py/blob/${src.tag}/CHANGELOG.md"; platforms = lib.platforms.all; license = lib.licenses.bsd2; diff --git a/pkgs/development/python-modules/yangson/default.nix b/pkgs/development/python-modules/yangson/default.nix index b72e32eea1b0..2e82d5c33962 100644 --- a/pkgs/development/python-modules/yangson/default.nix +++ b/pkgs/development/python-modules/yangson/default.nix @@ -10,14 +10,14 @@ buildPythonPackage rec { pname = "yangson"; - version = "1.6.2"; + version = "1.6.3"; pyproject = true; src = fetchFromGitHub { owner = "CZ-NIC"; repo = "yangson"; tag = version; - hash = "sha256-gGunbQVRV9cFRnwGDIaGi/NM75rtw5vYVz2PiPiZlQo="; + hash = "sha256-WOeSGGOd5+g+8dSyeml+mdehEjaSHtUkNSdkGl4xSao="; }; build-system = [ poetry-core ]; diff --git a/pkgs/development/rocq-modules/bignums/default.nix b/pkgs/development/rocq-modules/bignums/default.nix index 3eced2572c69..238e16b3f9ce 100644 --- a/pkgs/development/rocq-modules/bignums/default.nix +++ b/pkgs/development/rocq-modules/bignums/default.nix @@ -11,12 +11,13 @@ mkRocqDerivation { owner = "coq"; inherit version; defaultVersion = + let + case = case: out: { inherit case out; }; + in with lib.versions; - lib.switch rocq-core.rocq-version (lib.lists.sort (x: y: isLe x.out y.out) ( - lib.mapAttrsToList (out: case: { inherit case out; }) { - "9.0.0+rocq${rocq-core.rocq-version}" = range "9.0" "9.0"; - } - )) null; + lib.switch rocq-core.rocq-version [ + (case (range "9.0" "9.0") "9.0.0+rocq${rocq-core.rocq-version}") + ] null; release."9.0.0+rocq9.0".sha256 = "sha256-ctnwpyNVhryEUA5YEsAImrcJsNMhtBgDSOz+z5Z4R78="; releaseRev = v: "${if lib.versions.isGe "9.0" v then "v" else "V"}${v}"; diff --git a/pkgs/development/rocq-modules/hierarchy-builder/default.nix b/pkgs/development/rocq-modules/hierarchy-builder/default.nix index 30be49a216e1..bb9efa9727cc 100644 --- a/pkgs/development/rocq-modules/hierarchy-builder/default.nix +++ b/pkgs/development/rocq-modules/hierarchy-builder/default.nix @@ -12,12 +12,13 @@ let owner = "math-comp"; inherit version; defaultVersion = + let + case = case: out: { inherit case out; }; + in with lib.versions; - lib.switch rocq-core.rocq-version (lib.lists.sort (x: y: isLe x.out y.out) ( - lib.mapAttrsToList (out: case: { inherit case out; }) { - "1.9.1" = range "9.0" "9.0"; - } - )) null; + lib.switch rocq-core.rocq-version [ + (case (range "9.0" "9.0") "1.9.1") + ] null; release."1.9.1".sha256 = "sha256-AiS0ezMyfIYlXnuNsVLz1GlKQZzJX+ilkrKkbo0GrF0="; releaseRev = v: "v${v}"; diff --git a/pkgs/development/rocq-modules/rocq-elpi/default.nix b/pkgs/development/rocq-modules/rocq-elpi/default.nix index 8d27cf2e0dfc..ea6ce3f6595e 100644 --- a/pkgs/development/rocq-modules/rocq-elpi/default.nix +++ b/pkgs/development/rocq-modules/rocq-elpi/default.nix @@ -12,11 +12,12 @@ let if elpi-version != null then elpi-version else - (lib.switch rocq-core.rocq-version (lib.lists.sort (x: y: lib.versions.isLe x.out y.out) ( - lib.mapAttrsToList (out: case: { inherit case out; }) { - "2.0.7" = "9.0"; - } - )) { }); + let + case = case: out: { inherit case out; }; + in + lib.switch rocq-core.rocq-version [ + (case ("9.0") "2.0.7") + ] { }; elpi = rocq-core.ocamlPackages.elpi.override { version = default-elpi-version; }; propagatedBuildInputs_wo_elpi = [ rocq-core.ocamlPackages.findlib @@ -27,14 +28,13 @@ let repo = "coq-elpi"; owner = "LPCIC"; inherit version; - defaultVersion = lib.switch rocq-core.rocq-version (lib.lists.sort - (x: y: lib.versions.isLe x.out y.out) - ( - lib.mapAttrsToList (out: case: { inherit case out; }) { - "2.5.2" = "9.0"; - } - ) - ) null; + defaultVersion = + let + case = case: out: { inherit case out; }; + in + lib.switch rocq-core.rocq-version [ + (case ("9.0") "2.5.2") + ] null; release."2.5.2".sha256 = "sha256-lLzjPrbVB3rrqox528YiheUb0u89R84Xmrgkn0oplOs="; releaseRev = v: "v${v}"; diff --git a/pkgs/development/rocq-modules/stdlib/default.nix b/pkgs/development/rocq-modules/stdlib/default.nix index 17fe604d1df4..595080b1f92d 100644 --- a/pkgs/development/rocq-modules/stdlib/default.nix +++ b/pkgs/development/rocq-modules/stdlib/default.nix @@ -13,12 +13,13 @@ mkRocqDerivation { inherit version; defaultVersion = + let + case = case: out: { inherit case out; }; + in with lib.versions; - lib.switch rocq-core.version (lib.lists.sort (x: y: isLe x.out y.out) ( - lib.mapAttrsToList (out: case: { inherit case out; }) { - "9.0.0" = isEq "9.0"; - } - )) null; + lib.switch rocq-core.version [ + (case (isEq "9.0") "9.0.0") + ] null; releaseRev = v: "V${v}"; release."9.0.0".sha256 = "sha256-2l7ak5Q/NbiNvUzIVXOniEneDXouBMNSSVFbD1Pf8cQ="; diff --git a/pkgs/development/tcl-modules/by-name/rl/rl_json/package.nix b/pkgs/development/tcl-modules/by-name/rl/rl_json/package.nix index 7a10f70c8d5d..fd67dfc347f9 100644 --- a/pkgs/development/tcl-modules/by-name/rl/rl_json/package.nix +++ b/pkgs/development/tcl-modules/by-name/rl/rl_json/package.nix @@ -8,13 +8,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "rl_json"; - version = "0.15.2"; + version = "0.15.3"; src = fetchFromGitHub { owner = "RubyLane"; repo = "rl_json"; rev = finalAttrs.version; - hash = "sha256-y62N4DK80baJx7tQ562ZWOEpKcDldKS1pEwR7NpzuZQ="; + hash = "sha256-JyJBf8lMrO/P5grOMojqs1PRoMPRsPWGQYS33eB7bRI="; fetchSubmodules = true; }; diff --git a/pkgs/development/tools/electron/binary/generic.nix b/pkgs/development/tools/electron/binary/generic.nix index fc526ec15c7f..8bd49c6ed39c 100644 --- a/pkgs/development/tools/electron/binary/generic.nix +++ b/pkgs/development/tools/electron/binary/generic.nix @@ -58,7 +58,7 @@ let ]; sourceProvenance = with sourceTypes; [ binaryNativeCode ]; # https://www.electronjs.org/docs/latest/tutorial/electron-timelines - knownVulnerabilities = optional (versionOlder version "34.0.0") "Electron version ${version} is EOL"; + knownVulnerabilities = optional (versionOlder version "35.0.0") "Electron version ${version} is EOL"; }; fetcher = diff --git a/pkgs/development/tools/electron/binary/info.json b/pkgs/development/tools/electron/binary/info.json index 12bfb8450616..65989393576a 100644 --- a/pkgs/development/tools/electron/binary/info.json +++ b/pkgs/development/tools/electron/binary/info.json @@ -42,5 +42,16 @@ "x86_64-linux": "6a0decb3e382f32d4ab3db90aabd082ef9ee1154fe205808f887e228fdb2d355" }, "version": "36.6.0" + }, + "37": { + "hashes": { + "aarch64-darwin": "31c57a288b262d17751e6bb6f3862bfaaa7eb2f0a5dfb17965013538d2ceeeb1", + "aarch64-linux": "0aca9ed706f48e1b13c14d9379473c617d906bae8a4ee3a7cc1699ad8feea79b", + "armv7l-linux": "88d33b77debc1d7c189350b9ba411bced78328dca86d4d7e805c4322502fc254", + "headers": "0wizghk8sbggxjcxyxga20021by5b6a4vdr92nkmaadpishs1ylh", + "x86_64-darwin": "78e3c798b65d1e740e92bc2acac56b43aadf803be9fc3de799fd40407548dd83", + "x86_64-linux": "c03c227b2ac340e4a4093b7157e3290581bccf798bc3e0a40b280b0083453299" + }, + "version": "37.1.0" } } diff --git a/pkgs/development/tools/electron/chromedriver/info.json b/pkgs/development/tools/electron/chromedriver/info.json index 5373b55ee742..e6536e6699fd 100644 --- a/pkgs/development/tools/electron/chromedriver/info.json +++ b/pkgs/development/tools/electron/chromedriver/info.json @@ -42,5 +42,16 @@ "x86_64-linux": "859c853712a4addb77d4fb1019e27063ef8825004bb93219e991cf5b4103ccb8" }, "version": "36.6.0" + }, + "37": { + "hashes": { + "aarch64-darwin": "f17ed19aa221a0105f688e86de3b2ef2328fcd367cc0c3a1a4ef8470c82f4776", + "aarch64-linux": "b41893387748f0ab996979d16e38852c9c9a27a647f1931b8cc227b6bea079af", + "armv7l-linux": "abb11bb11e40f029061551bdc183b57515ee095de2019ec946bc63018454163d", + "headers": "0wizghk8sbggxjcxyxga20021by5b6a4vdr92nkmaadpishs1ylh", + "x86_64-darwin": "e45df1088579f802258bce0f17ebb5791140ac7b568a6e17047cace76ab9f045", + "x86_64-linux": "aed73451a604782e1be5826a6455e63264ddace4e2d4552a5a400fa16398ab96" + }, + "version": "37.1.0" } } diff --git a/pkgs/development/tools/electron/info.json b/pkgs/development/tools/electron/info.json index 66a1203fa894..73ca102ee2bf 100644 --- a/pkgs/development/tools/electron/info.json +++ b/pkgs/development/tools/electron/info.json @@ -1,1281 +1,4 @@ { - "34": { - "chrome": "132.0.6834.210", - "chromium": { - "deps": { - "gn": { - "hash": "sha256-zZoD5Bx7wIEP2KJkHef6wHrxU3px+8Vseq29QcK32bg=", - "rev": "feafd1012a32c05ec6095f69ddc3850afb621f3a", - "url": "https://gn.googlesource.com/gn", - "version": "2024-10-14" - } - }, - "version": "132.0.6834.210" - }, - "chromium_npm_hash": "sha256-H1/h3x+Cgp1x94Ze3UPPHxRVpylZDvpMXMOuS+jk2dw=", - "deps": { - "src": { - "args": { - "hash": "sha256-NVaErCSvuTQyt7yv2sc4aIX2J/6mxM648Wbbut2Jjxc=", - "postFetch": "rm -r $out/third_party/blink/web_tests; rm -r $out/content/test/data; rm -rf $out/courgette/testdata; rm -r $out/extensions/test/data; rm -r $out/media/test/data; ", - "tag": "132.0.6834.210", - "url": "https://chromium.googlesource.com/chromium/src.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/chrome/test/data/perf/canvas_bench": { - "args": { - "hash": "sha256-svOuyBGKloBLM11xLlWCDsB4PpRjdKTBdW2UEW4JQjM=", - "rev": "a7b40ea5ae0239517d78845a5fc9b12976bfc732", - "url": "https://chromium.googlesource.com/chromium/canvas_bench.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/chrome/test/data/perf/frame_rate/content": { - "args": { - "hash": "sha256-t4kcuvH0rkPBkcdiMsoNQaRwU09eU+oSvyHDiAHrKXo=", - "rev": "c10272c88463efeef6bb19c9ec07c42bc8fe22b9", - "url": "https://chromium.googlesource.com/chromium/frame_rate/content.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/chrome/test/data/xr/webvr_info": { - "args": { - "hash": "sha256-BsAPwc4oEWri0TlqhyxqFNqKdfgVSrB0vQyISmYY4eg=", - "rev": "c58ae99b9ff9e2aa4c524633519570bf33536248", - "url": "https://chromium.googlesource.com/external/github.com/toji/webvr.info.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/docs/website": { - "args": { - "hash": "sha256-CqveHvjPEcRWnzi8w13xr2OainrmABNO8uj0GzKmQqo=", - "rev": "be9c3dfd3781964fc0bab0d6c91d9ad117b71b02", - "url": "https://chromium.googlesource.com/website.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/electron": { - "args": { - "hash": "sha256-ABlVuW0EUsFUyuIaugoI09EsHF+g7fxRSS/bOaOAkjg=", - "owner": "electron", - "repo": "electron", - "tag": "v34.5.8" - }, - "fetcher": "fetchFromGitHub" - }, - "src/media/cdm/api": { - "args": { - "hash": "sha256-6J6aSYW0or99VAgMNJJOdJqMJspoG7w1HxDN50MV5bw=", - "rev": "eb21edc44e8e5a82095037be80c8b15c51624293", - "url": "https://chromium.googlesource.com/chromium/cdm.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/net/third_party/quiche/src": { - "args": { - "hash": "sha256-Z2uFWfZDYcY0m4R6mFMZJLnnVHu3/hQOAkCPQ5049SQ=", - "rev": "9616efc903b7469161996006c8cf963238e26503", - "url": "https://quiche.googlesource.com/quiche.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/testing/libfuzzer/fuzzers/wasm_corpus": { - "args": { - "hash": "sha256-gItDOfNqm1tHlmelz3l2GGdiKi9adu1EpPP6U7+8EQY=", - "rev": "1df5e50a45db9518a56ebb42cb020a94a090258b", - "url": "https://chromium.googlesource.com/v8/fuzzer_wasm_corpus.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/accessibility_test_framework/src": { - "args": { - "hash": "sha256-mzVgoxxBWebesG6okyMxxmO6oH+TITA4o9ucHHMMzkQ=", - "rev": "4a764c690353ea136c82f1a696a70bf38d1ef5fe", - "url": "https://chromium.googlesource.com/external/github.com/google/Accessibility-Test-Framework-for-Android.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/angle": { - "args": { - "hash": "sha256-fMIHpa2QFsQQ19LGyhvV3Ihh6Ls8wwwhqTtpLoTEaf4=", - "rev": "ce13a00a2b049a1ef5e0e70a3d333ce70838ef7b", - "url": "https://chromium.googlesource.com/angle/angle.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/angle/third_party/VK-GL-CTS/src": { - "args": { - "hash": "sha256-2ZhG4cJf85zO7x+SGG6RD2qgOxZVosxAIbuZt9GYUKs=", - "rev": "f674555ab03e6355e0981a647c115097e9fe5324", - "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/angle/third_party/glmark2/src": { - "args": { - "hash": "sha256-L7+zWM0qn8WFhmON7DGvarTsN1YHt1sn5+hazTOZrrk=", - "rev": "ca8de51fedb70bace5351c6b002eb952c747e889", - "url": "https://chromium.googlesource.com/external/github.com/glmark2/glmark2" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/angle/third_party/rapidjson/src": { - "args": { - "hash": "sha256-btUl1a/B0sXwf/+hyvCvVJjWqIkXfVYCpHm3TeBuOxk=", - "rev": "781a4e667d84aeedbeb8184b7b62425ea66ec59f", - "url": "https://chromium.googlesource.com/external/github.com/Tencent/rapidjson" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/anonymous_tokens/src": { - "args": { - "hash": "sha256-PMB49+zW9ewlS9ym+xi0xYQYLN0j5Urx6yBXWd8FjjI=", - "rev": "6ea6ec78f9e4998d0a7a5677b2aec08f0ac858f8", - "url": "https://chromium.googlesource.com/external/github.com/google/anonymous-tokens.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/beto-core/src": { - "args": { - "hash": "sha256-QPFGjtu/I0r4+dTQ2eSlWIEYwJ43B3yW0q4QtVFTVGY=", - "rev": "89563fec14c756482afa08b016eeba9087c8d1e3", - "url": "https://beto-core.googlesource.com/beto-core.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/boringssl/src": { - "args": { - "hash": "sha256-ib9wbV6S64OFc4zx0wQsQ84+5RxbETK0PS9Wm1BFQ1U=", - "rev": "571c76e919c0c48219ced35bef83e1fc83b00eed", - "url": "https://boringssl.googlesource.com/boringssl.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/breakpad/breakpad": { - "args": { - "hash": "sha256-cFXUi2oO/614jF0GV7oW0ss62dXWFHDNWNT8rWHAiQc=", - "rev": "47f7823bdf4b1f39e462b2a497a674860e922e38", - "url": "https://chromium.googlesource.com/breakpad/breakpad.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/cast_core/public/src": { - "args": { - "hash": "sha256-o5/Lbhh6HHSWCVCEyDwDCgs+PLm67si981w0HuIWY7c=", - "rev": "fbc5e98031e1271a0a566fcd4d9092b2d3275d05", - "url": "https://chromium.googlesource.com/cast_core/public" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/catapult": { - "args": { - "hash": "sha256-65cZPyqZUdSnYPJYUMYeJgx3mUC6L/qb9P2bDqd2Zkk=", - "rev": "b91cf840ac3255ef03b23cc93621369627422a1a", - "url": "https://chromium.googlesource.com/catapult.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/ced/src": { - "args": { - "hash": "sha256-ySG74Rj2i2c/PltEgHVEDq+N8yd9gZmxNktc56zIUiY=", - "rev": "ba412eaaacd3186085babcd901679a48863c7dd5", - "url": "https://chromium.googlesource.com/external/github.com/google/compact_enc_det.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/chromium-variations": { - "args": { - "hash": "sha256-mg5mu2jcy0xyNJ650ywWUMC94keRsqhZQuPZclHmyLI=", - "rev": "c170abb48f7715c237f4c06eaed0fe6f8a4c6f8d", - "url": "https://chromium.googlesource.com/chromium-variations.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/clang-format/script": { - "args": { - "hash": "sha256-whD8isX2ZhLrFzdxHhFP1S/sZDRgyrzLFaVd7OEFqYo=", - "rev": "3c0acd2d4e73dd911309d9e970ba09d58bf23a62", - "url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/clang/tools/clang-format.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/cld_3/src": { - "args": { - "hash": "sha256-C3MOMBUy9jgkT9BAi/Fgm2UH4cxRuwSBEcRl3hzM2Ss=", - "rev": "b48dc46512566f5a2d41118c8c1116c4f96dc661", - "url": "https://chromium.googlesource.com/external/github.com/google/cld_3.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/colorama/src": { - "args": { - "hash": "sha256-6ZTdPYSHdQOLYMSnE+Tp7PgsVTs3U2awGu9Qb4Rg/tk=", - "rev": "3de9f013df4b470069d03d250224062e8cf15c49", - "url": "https://chromium.googlesource.com/external/colorama.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/content_analysis_sdk/src": { - "args": { - "hash": "sha256-f5Jmk1MiGjaRdLun+v/GKVl8Yv9hOZMTQUSxgiJalcY=", - "rev": "9a408736204513e0e95dd2ab3c08de0d95963efc", - "url": "https://chromium.googlesource.com/external/github.com/chromium/content_analysis_sdk.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/cpu_features/src": { - "args": { - "hash": "sha256-E8LoVzhe+TAmARWZTSuINlsVhzpUJMxPPCGe/dHZcyA=", - "rev": "936b9ab5515dead115606559502e3864958f7f6e", - "url": "https://chromium.googlesource.com/external/github.com/google/cpu_features.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/cpuinfo/src": { - "args": { - "hash": "sha256-FlvmSjY8kt5XHymDLaZdPuZ4k5xcagJk8w/U6adTkWI=", - "rev": "8df44962d437a0477f07ba6b8843d0b6a48646a4", - "url": "https://chromium.googlesource.com/external/github.com/pytorch/cpuinfo.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/crabbyavif/src": { - "args": { - "hash": "sha256-hO5epHYNYI6pGwVSUv1Hp3qb7qOv8uOs4u+IdhDxd8Q=", - "rev": "c3548280e0a516ed7cad7ff1591b5807cef64aa4", - "url": "https://chromium.googlesource.com/external/github.com/webmproject/CrabbyAvif.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/crc32c/src": { - "args": { - "hash": "sha256-KBraGaO5LmmPP+p8RuDogGldbTWdNDK+WzF4Q09keuE=", - "rev": "d3d60ac6e0f16780bcfcc825385e1d338801a558", - "url": "https://chromium.googlesource.com/external/github.com/google/crc32c.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/cros-components/src": { - "args": { - "hash": "sha256-owXaTIj0pbhUeJkirxaRoCmgIN9DwNzY3h771kaN+Fc=", - "rev": "9129cf4b2a5ca775c280243257a0b4856a93c7fb", - "url": "https://chromium.googlesource.com/external/google3/cros_components.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/cros_system_api": { - "args": { - "hash": "sha256-fvGypRhgl2uX9YE2cwjL7d3pYBa3Imd5p0RLhMYRgrc=", - "rev": "554629b9242e6ae832ef14e3384654426f7fcc06", - "url": "https://chromium.googlesource.com/chromiumos/platform2/system_api.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/crossbench": { - "args": { - "hash": "sha256-/K6eM9s+fd2wjCrK0g0CgFNy0zxEN9SxTvmE50hMtXw=", - "rev": "ae6f165652e0ea983d73f5d04b7470d08c869e4f", - "url": "https://chromium.googlesource.com/crossbench.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/dav1d/libdav1d": { - "args": { - "hash": "sha256-Q2CaWvDqOmfaPG6a+SUHG5rFHalPEf4Oq/ytT3xuSOk=", - "rev": "93f12c117a4e1c0cc2b129dcc52e84dbd9b84200", - "url": "https://chromium.googlesource.com/external/github.com/videolan/dav1d.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/dawn": { - "args": { - "hash": "sha256-1d8cCtqBIfYbVqUQ4q4BtH2FujbNJeeW9agJUjcktgE=", - "rev": "c3530f2883610bb6606a5f55935c189e732e67d0", - "url": "https://dawn.googlesource.com/dawn.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/dawn/third_party/dxc": { - "args": { - "hash": "sha256-rhUNPA5b0H3PBsOpXbAeRLpS0tNQkiHbjRBWmJycSAY=", - "rev": "ac36a797d3470e8ee906b98457a59270d01db30d", - "url": "https://chromium.googlesource.com/external/github.com/microsoft/DirectXShaderCompiler" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/dawn/third_party/dxheaders": { - "args": { - "hash": "sha256-0Miw1Cy/jmOo7bLFBOHuTRDV04cSeyvUEyPkpVsX9DA=", - "rev": "980971e835876dc0cde415e8f9bc646e64667bf7", - "url": "https://chromium.googlesource.com/external/github.com/microsoft/DirectX-Headers" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/dawn/third_party/glfw": { - "args": { - "hash": "sha256-E1zXIDiw87badrLOZTvV+Wh9NZHu51nb70ZK9vlAlqE=", - "rev": "b35641f4a3c62aa86a0b3c983d163bc0fe36026d", - "url": "https://chromium.googlesource.com/external/github.com/glfw/glfw" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/dawn/third_party/khronos/EGL-Registry": { - "args": { - "hash": "sha256-Z6DwLfgQ1wsJXz0KKJyVieOatnDmx3cs0qJ6IEgSq1A=", - "rev": "7dea2ed79187cd13f76183c4b9100159b9e3e071", - "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/EGL-Registry" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/dawn/third_party/khronos/OpenGL-Registry": { - "args": { - "hash": "sha256-K3PcRIiD3AmnbiSm5TwaLs4Gu9hxaN8Y91WMKK8pOXE=", - "rev": "5bae8738b23d06968e7c3a41308568120943ae77", - "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/OpenGL-Registry" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/dawn/third_party/webgpu-cts": { - "args": { - "hash": "sha256-ArbHGjkHd1sko7gDPFksYz7XHKNge+e6tVy6oKPuqzg=", - "rev": "8690defa74b6975c10e85c113f121d4b2a3f2564", - "url": "https://chromium.googlesource.com/external/github.com/gpuweb/cts" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/dawn/third_party/webgpu-headers": { - "args": { - "hash": "sha256-J3PcwYoO79HqrACFgk77BZLTCi7oi5k2J6v3wlcFVD4=", - "rev": "8049c324dc7b3c09dc96ea04cb02860f272c8686", - "url": "https://chromium.googlesource.com/external/github.com/webgpu-native/webgpu-headers" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/depot_tools": { - "args": { - "hash": "sha256-m/6b4VZZTUQOeED1mYvZOQCx8Re+Zd4O8SKDMjJ9Djo=", - "rev": "41d43a2a2290450aeab946883542f8049b155c87", - "url": "https://chromium.googlesource.com/chromium/tools/depot_tools.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/devtools-frontend/src": { - "args": { - "hash": "sha256-mBWZdbgZfO01Pt2lZSHX/d5r+8A/+qCZA8MRtZdeTrs=", - "rev": "f2f3682c9db8ca427f8c64f0402cc2c5152c6c24", - "url": "https://chromium.googlesource.com/devtools/devtools-frontend" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/dom_distiller_js/dist": { - "args": { - "hash": "sha256-yuEBD2XQlV3FGI/i7lTmJbCqzeBiuG1Qow8wvsppGJw=", - "rev": "199de96b345ada7c6e7e6ba3d2fa7a6911b8767d", - "url": "https://chromium.googlesource.com/chromium/dom-distiller/dist.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/domato/src": { - "args": { - "hash": "sha256-fYxoA0fxKe9U23j+Jp0MWj4m7RfsRpM0XjF6/yOhX1I=", - "rev": "053714bccbda79cf76dac3fee48ab2b27f21925e", - "url": "https://chromium.googlesource.com/external/github.com/googleprojectzero/domato.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/eigen3/src": { - "args": { - "hash": "sha256-UroGjERR5TW9KbyLwR/NBpytXrW1tHfu6ZvQPngROq4=", - "rev": "b396a6fbb2e173f52edb3360485dedf3389ef830", - "url": "https://chromium.googlesource.com/external/gitlab.com/libeigen/eigen.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/electron_node": { - "args": { - "hash": "sha256-vc3Ztw8m0P96QoCjtyu2Nb0TpVMu9ifrVlkJY15aVbE=", - "owner": "nodejs", - "repo": "node", - "tag": "v20.19.1" - }, - "fetcher": "fetchFromGitHub" - }, - "src/third_party/emoji-segmenter/src": { - "args": { - "hash": "sha256-KdQdKBBipEBRT8UmNGao6yCB4m2CU8/SrMVvcXlb5qE=", - "rev": "955936be8b391e00835257059607d7c5b72ce744", - "url": "https://chromium.googlesource.com/external/github.com/google/emoji-segmenter.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/engflow-reclient-configs": { - "args": { - "hash": "sha256-aZXYPj9KYBiZnljqOLlWJWS396Fg3EhjiQLZmkwCBsY=", - "owner": "EngFlow", - "repo": "reclient-configs", - "rev": "955335c30a752e9ef7bff375baab5e0819b6c00d" - }, - "fetcher": "fetchFromGitHub" - }, - "src/third_party/expat/src": { - "args": { - "hash": "sha256-Iwu9+i/0vsPyu6pOWFxjNNblVxMl6bTPW5eWyaju4Mg=", - "rev": "624da0f593bb8d7e146b9f42b06d8e6c80d032a3", - "url": "https://chromium.googlesource.com/external/github.com/libexpat/libexpat.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/farmhash/src": { - "args": { - "hash": "sha256-5n58VEUxa/K//jAfZqG4cXyfxrp50ogWDNYcgiXVHdc=", - "rev": "816a4ae622e964763ca0862d9dbd19324a1eaf45", - "url": "https://chromium.googlesource.com/external/github.com/google/farmhash.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/fast_float/src": { - "args": { - "hash": "sha256-0eVovauN7SnO3nSIWBRWAJ4dR7q5beZrIGUZ18M2pao=", - "rev": "3e57d8dcfb0a04b5a8a26b486b54490a2e9b310f", - "url": "https://chromium.googlesource.com/external/github.com/fastfloat/fast_float.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/ffmpeg": { - "args": { - "hash": "sha256-wwHxNuZe2hBmGBpVg/iQJBoL350jfPYPTPqDn3RiqZE=", - "rev": "591ae4b02eaff9a03e2ec863da895128b0b49910", - "url": "https://chromium.googlesource.com/chromium/third_party/ffmpeg.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/flac": { - "args": { - "hash": "sha256-gvTFPNOlBfozptaH7lTb9iD/09AmpdT3kCl9ClszjEs=", - "rev": "689da3a7ed50af7448c3f1961d1791c7c1d9c85c", - "url": "https://chromium.googlesource.com/chromium/deps/flac.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/flatbuffers/src": { - "args": { - "hash": "sha256-tbc45o0MbMvK5XqRUJt5Eg8BU6+TJqlmwFgQhHq6wRM=", - "rev": "8db59321d9f02cdffa30126654059c7d02f70c32", - "url": "https://chromium.googlesource.com/external/github.com/google/flatbuffers.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/fontconfig/src": { - "args": { - "hash": "sha256-W5WIgC6A52kY4fNkbsDEa0o+dfd97Rl5NKfgnIRpI00=", - "rev": "14d466b30a8ab4a9d789977ed94f2c30e7209267", - "url": "https://chromium.googlesource.com/external/fontconfig.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/fp16/src": { - "args": { - "hash": "sha256-m2d9bqZoGWzuUPGkd29MsrdscnJRtuIkLIMp3fMmtRY=", - "rev": "0a92994d729ff76a58f692d3028ca1b64b145d91", - "url": "https://chromium.googlesource.com/external/github.com/Maratyszcza/FP16.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/freetype-testing/src": { - "args": { - "hash": "sha256-2aHPchIK5Oce5+XxdXVCC+8EM6i0XT0rFbjSIVa2L1A=", - "rev": "7a69b1a2b028476f840ab7d4a2ffdfe4eb2c389f", - "url": "https://chromium.googlesource.com/external/github.com/freetype/freetype2-testing.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/freetype/src": { - "args": { - "hash": "sha256-+nbRZi3vAMTURhhFVUu5+59fVIv0GH3YZog2JavyVLY=", - "rev": "0ae7e607370cc66218ccfacf5de4db8a35424c2f", - "url": "https://chromium.googlesource.com/chromium/src/third_party/freetype2.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/fuzztest/src": { - "args": { - "hash": "sha256-UYmzjOX8k+CWL+xOIF3NiEL3TRUjS8JflortB2RUT4o=", - "rev": "0021f30508bc7f73fa5270962d022acb480d242f", - "url": "https://chromium.googlesource.com/external/github.com/google/fuzztest.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/fxdiv/src": { - "args": { - "hash": "sha256-LjX5kivfHbqCIA5pF9qUvswG1gjOFo3CMpX0VR+Cn38=", - "rev": "63058eff77e11aa15bf531df5dd34395ec3017c8", - "url": "https://chromium.googlesource.com/external/github.com/Maratyszcza/FXdiv.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/gemmlowp/src": { - "args": { - "hash": "sha256-O5wD8wxgis0qYMaY+xZ21GBDVQFphMRvInCOswS6inA=", - "rev": "13d57703abca3005d97b19df1f2db731607a7dc2", - "url": "https://chromium.googlesource.com/external/github.com/google/gemmlowp.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/glslang/src": { - "args": { - "hash": "sha256-twWSeJp9bNbLYFszCWv9BCztfbXUBKSWV55/U+hd2hw=", - "rev": "9c644fcb5b9a1a9c975c50a790fd14c5451292b0", - "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/google_benchmark/src": { - "args": { - "hash": "sha256-cH8s1gP6kCcojAAfTt5iQCVqiAaSooNk4BdaILujM3w=", - "rev": "761305ec3b33abf30e08d50eb829e19a802581cc", - "url": "https://chromium.googlesource.com/external/github.com/google/benchmark.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/googletest/src": { - "args": { - "hash": "sha256-n7tiIFAj8AiSCa9Tw+1j+ro9cSt5vagZpkbBBUUtYQY=", - "rev": "d144031940543e15423a25ae5a8a74141044862f", - "url": "https://chromium.googlesource.com/external/github.com/google/googletest.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/grpc/src": { - "args": { - "hash": "sha256-64JEVCx/PCM0dvv7kAQvSjLc0QbRAZVBDzwD/FAV6T8=", - "rev": "822dab21d9995c5cf942476b35ca12a1aa9d2737", - "url": "https://chromium.googlesource.com/external/github.com/grpc/grpc.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/harfbuzz-ng/src": { - "args": { - "hash": "sha256-iR49rfGDKxPObCff1/30hYHpP5FpZ28ROgMZhNk9eFY=", - "rev": "1da053e87f0487382404656edca98b85fe51f2fd", - "url": "https://chromium.googlesource.com/external/github.com/harfbuzz/harfbuzz.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/highway/src": { - "args": { - "hash": "sha256-IS7m1wBwpPBUNhx2GttY1fzvmLIeAp3o2gXfrFpRdvY=", - "rev": "00fe003dac355b979f36157f9407c7c46448958e", - "url": "https://chromium.googlesource.com/external/github.com/google/highway.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/hunspell_dictionaries": { - "args": { - "hash": "sha256-67mvpJRFFa9eMfyqFMURlbxOaTJBICnk+gl0b0mEHl8=", - "rev": "41cdffd71c9948f63c7ad36e1fb0ff519aa7a37e", - "url": "https://chromium.googlesource.com/chromium/deps/hunspell_dictionaries.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/icu": { - "args": { - "hash": "sha256-WtCoxcbEkkZayB6kXdQEhZ7/ue+ka6cguhFbpeWUBJA=", - "rev": "ba7ed88cc5ffa428a82a0f787dd61031aa5ef4ca", - "url": "https://chromium.googlesource.com/chromium/deps/icu.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/ink/src": { - "args": { - "hash": "sha256-+Ikr9E7KlXBFyf6fSDmIF3ygNUiwlXeA5bmO2CtkI7Q=", - "rev": "4300dc7402a257b85fc5bf2559137edacb050227", - "url": "https://chromium.googlesource.com/external/github.com/google/ink.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/ink_stroke_modeler/src": { - "args": { - "hash": "sha256-IQ+n+kHdEq8Q8/qaPGMvgD7cPN3zzaY8dbiokq6r/Vs=", - "rev": "0999e4cf816b42c770d07916698bce943b873048", - "url": "https://chromium.googlesource.com/external/github.com/google/ink-stroke-modeler.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/instrumented_libs": { - "args": { - "hash": "sha256-kHKGADAgzlaeckXFbpU1GhJK+zkiRd9XvdtPF6qrQFY=", - "rev": "bb6dbcf2df7a9beb34c3773ef4df161800e3aed9", - "url": "https://chromium.googlesource.com/chromium/third_party/instrumented_libraries.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/jsoncpp/source": { - "args": { - "hash": "sha256-bSLNcoYBz3QCt5VuTR056V9mU2PmBuYBa0W6hFg2m8Q=", - "rev": "42e892d96e47b1f6e29844cc705e148ec4856448", - "url": "https://chromium.googlesource.com/external/github.com/open-source-parsers/jsoncpp.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/leveldatabase/src": { - "args": { - "hash": "sha256-y3awFXL8ih2UhEqWj8JRgkhzSxfQciLztb020JHJ350=", - "rev": "23e35d792b9154f922b8b575b12596a4d8664c65", - "url": "https://chromium.googlesource.com/external/leveldb.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/libFuzzer/src": { - "args": { - "hash": "sha256-jPS+Xi/ia0sMspxSGN38zasmVS/HslxH/qOFsV9TguE=", - "rev": "a7128317fe7935a43d6c9f39df54f21113951941", - "url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/compiler-rt/lib/fuzzer.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/libaddressinput/src": { - "args": { - "hash": "sha256-xvUUQSPrvqUp5DI9AqlRTWurwDW087c6v4RvI+4sfOQ=", - "rev": "e8712e415627f22d0b00ebee8db99547077f39bd", - "url": "https://chromium.googlesource.com/external/libaddressinput.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/libaom/source/libaom": { - "args": { - "hash": "sha256-9VhEVOG9cReDOGoX+x5G/jJ8Y5RDoQIiLMoZtt5c9pI=", - "rev": "be60f06ab420d6a65c477213f04c8b0f2e12ba2e", - "url": "https://aomedia.googlesource.com/aom.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/libavif/src": { - "args": { - "hash": "sha256-lUuVyh2srhWMNUp4lEivyDic3MSZf5s63iAb84We80M=", - "rev": "1cdeff7ecf456492c47cf48fc0cef6591cdc95da", - "url": "https://chromium.googlesource.com/external/github.com/AOMediaCodec/libavif.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/libc++/src": { - "args": { - "hash": "sha256-kmhTlz/qjvN0Qlra7Wz05O6X058hPPn0nVvAxFXQDC4=", - "rev": "8e31ad42561900383e10dbefc1d3e8f38cedfbe9", - "url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxx.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/libc++abi/src": { - "args": { - "hash": "sha256-CwiK9Td8aRS08RywItHKFvibzDAUYYd0YNRKxYPLTD8=", - "rev": "cec7f478354a8c8599f264ed8bb6043b5468f72d", - "url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/libdrm/src": { - "args": { - "hash": "sha256-woSYEDUfcEBpYOYnli13wLMt754A7KnUbmTEcFQdFGw=", - "rev": "ad78bb591d02162d3b90890aa4d0a238b2a37cde", - "url": "https://chromium.googlesource.com/chromiumos/third_party/libdrm.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/libgav1/src": { - "args": { - "hash": "sha256-+ss9S5t+yoHzqbtX68+5OyyUbJVecYLwp+C3EXfAziE=", - "rev": "a2f139e9123bdb5edf7707ac6f1b73b3aa5038dd", - "url": "https://chromium.googlesource.com/codecs/libgav1.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/libipp/libipp": { - "args": { - "hash": "sha256-gxU92lHLd6uxO8T3QWhZIK0hGy97cki705DV0VimCPY=", - "rev": "2209bb84a8e122dab7c02fe66cc61a7b42873d7f", - "url": "https://chromium.googlesource.com/chromiumos/platform2/libipp.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/libjpeg_turbo": { - "args": { - "hash": "sha256-qgHXAjCDFxQ+QqJ8pSmI1NUvHvKKTi4MkIe1I/+hUAI=", - "rev": "927aabfcd26897abb9776ecf2a6c38ea5bb52ab6", - "url": "https://chromium.googlesource.com/chromium/deps/libjpeg_turbo.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/liblouis/src": { - "args": { - "hash": "sha256-EI/uaHXe0NlqdEw764q0SjerThYEVLRogUlmrsZwXnY=", - "rev": "9700847afb92cb35969bdfcbbfbbb74b9c7b3376", - "url": "https://chromium.googlesource.com/external/liblouis-github.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/libphonenumber/dist": { - "args": { - "hash": "sha256-3hSnTFTD3KAdbyxfKg12qbIYTmw6YlTCH64gMP/HUJo=", - "rev": "140dfeb81b753388e8a672900fb7a971e9a0d362", - "url": "https://chromium.googlesource.com/external/libphonenumber.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/libprotobuf-mutator/src": { - "args": { - "hash": "sha256-ZyPweW+V5foxFQwjjMLkaRUo+FNV+kEDGIH/4oRV614=", - "rev": "a304ec48dcf15d942607032151f7e9ee504b5dcf", - "url": "https://chromium.googlesource.com/external/github.com/google/libprotobuf-mutator.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/libsrtp": { - "args": { - "hash": "sha256-4qEZ9MD97MoqCUlZtbEhIKy+fDO1iIWqyrBsKwkjXTg=", - "rev": "000edd791434c8738455f10e0dd6b268a4852c0b", - "url": "https://chromium.googlesource.com/chromium/deps/libsrtp.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/libsync/src": { - "args": { - "hash": "sha256-Mkl6C1LxF3RYLwYbxiSfoQPt8QKFwQWj/Ati2sNJ32E=", - "rev": "f4f4387b6bf2387efbcfd1453af4892e8982faf6", - "url": "https://chromium.googlesource.com/aosp/platform/system/core/libsync.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/libunwind/src": { - "args": { - "hash": "sha256-uA+t5Ecc/iK3mllHR8AMVGRfU/7z1G3yrw0TamPQiOY=", - "rev": "5b01ea4a6f3b666b7d190e7cb7c31db2ed4d94ce", - "url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libunwind.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/libvpx/source/libvpx": { - "args": { - "hash": "sha256-QGm37X4uid8zv+vRu0pVTvoQd2WcKztrj3tJkDjx82o=", - "rev": "727319a77ffe68e9aacb08e09ae7151b3a8f70a3", - "url": "https://chromium.googlesource.com/webm/libvpx.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/libwebm/source": { - "args": { - "hash": "sha256-Mn3snC2g4BDKBJsS6cxT3BZL7LZknOWg77+60Nr4Hy0=", - "rev": "26d9f667170dc75e8d759a997bb61c64dec42dda", - "url": "https://chromium.googlesource.com/webm/libwebm.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/libwebp/src": { - "args": { - "hash": "sha256-xuRpEwOnaLGZmrPvfUn3DSoJANd94CG+JXcN7Mdmk5I=", - "rev": "845d5476a866141ba35ac133f856fa62f0b7445f", - "url": "https://chromium.googlesource.com/webm/libwebp.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/libyuv": { - "args": { - "hash": "sha256-vPVq7RzqO7gBUgYuNX0Fwxqok9jtXXJZgbhVFchG5Ws=", - "rev": "6ac7c8f25170c85265fca69fd1fe5d31baf3344f", - "url": "https://chromium.googlesource.com/libyuv/libyuv.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/llvm-libc/src": { - "args": { - "hash": "sha256-av9JdqLOQbezgRS4P8QXmvfB5l47v04WRagNJJgT5u4=", - "rev": "ca74a72e2b32ad804522bbef04dfe32560a10206", - "url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libc.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/lss": { - "args": { - "hash": "sha256-hE8uZf9Fst66qJkoVYChiB8G41ie+k9M4X0W+5JUSdw=", - "rev": "ce877209e11aa69dcfffbd53ef90ea1d07136521", - "url": "https://chromium.googlesource.com/linux-syscall-support.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/material_color_utilities/src": { - "args": { - "hash": "sha256-Y85XU+z9W6tvmDNHJ/dXQnUKXvvDkO3nH/kUJRLqbc4=", - "rev": "13434b50dcb64a482cc91191f8cf6151d90f5465", - "url": "https://chromium.googlesource.com/external/github.com/material-foundation/material-color-utilities.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/minigbm/src": { - "args": { - "hash": "sha256-9HwvjTETerbQ7YKXH9kUB2eWa8PxGWMAJfx1jAluhrs=", - "rev": "3018207f4d89395cc271278fb9a6558b660885f5", - "url": "https://chromium.googlesource.com/chromiumos/platform/minigbm.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/nan": { - "args": { - "hash": "sha256-cwti+BWmF/l/dqa/cN0C587EK4WwRWcWy6gjFVkaMTg=", - "owner": "nodejs", - "repo": "nan", - "rev": "e14bdcd1f72d62bca1d541b66da43130384ec213" - }, - "fetcher": "fetchFromGitHub" - }, - "src/third_party/nasm": { - "args": { - "hash": "sha256-SiRXHsUlWXtH6dbDjDjqNAm105ibEB3jOfNtQAM4CaY=", - "rev": "f477acb1049f5e043904b87b825c5915084a9a29", - "url": "https://chromium.googlesource.com/chromium/deps/nasm.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/nearby/src": { - "args": { - "hash": "sha256-DO3FW5Q233ctFKk4K5F8oZec9kfrVl6uxAwMn0niKz4=", - "rev": "8e87a6e51c93e7836ecdbcc0a520c7992f3ece13", - "url": "https://chromium.googlesource.com/external/github.com/google/nearby-connections.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/neon_2_sse/src": { - "args": { - "hash": "sha256-299ZptvdTmCnIuVVBkrpf5ZTxKPwgcGUob81tEI91F0=", - "rev": "a15b489e1222b2087007546b4912e21293ea86ff", - "url": "https://chromium.googlesource.com/external/github.com/intel/ARM_NEON_2_x86_SSE.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/openh264/src": { - "args": { - "hash": "sha256-S7dS2IZwt4p4ZrF6K7E5HnwKuI3owU2I7vwtu95uTkE=", - "rev": "478e5ab3eca30e600006d5a0a08b176fd34d3bd1", - "url": "https://chromium.googlesource.com/external/github.com/cisco/openh264" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/openscreen/src": { - "args": { - "hash": "sha256-IlGxfw6Mhc7FYvhU2+Ngt9qflqr4JMC2OcplvksGI+U=", - "rev": "cb6fd42532fc3a831d6863d5006217e32a67c417", - "url": "https://chromium.googlesource.com/openscreen" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/openscreen/src/buildtools": { - "args": { - "hash": "sha256-suuxUL//BfAMmG8os8ChI7ic9EjGTi7y5kjxiAyrEQc=", - "rev": "4e0e9c73a0f26735f034f09a9cab2a5c0178536b", - "url": "https://chromium.googlesource.com/chromium/src/buildtools" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/openscreen/src/third_party/tinycbor/src": { - "args": { - "hash": "sha256-fMKBFUSKmODQyg4hKIa1hwnEKIV6WBbY1Gb8DOSnaHA=", - "rev": "d393c16f3eb30d0c47e6f9d92db62272f0ec4dc7", - "url": "https://chromium.googlesource.com/external/github.com/intel/tinycbor.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/ots/src": { - "args": { - "hash": "sha256-kiUXrXsaGOzPkKh0dVmU1I13WHt0Stzj7QLMqHN9FbU=", - "rev": "46bea9879127d0ff1c6601b078e2ce98e83fcd33", - "url": "https://chromium.googlesource.com/external/github.com/khaledhosny/ots.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/pdfium": { - "args": { - "hash": "sha256-d8qJECIdq01ct+sS7cHVKFulYJarwahKCEcVf762JNI=", - "rev": "84a8011ec69d0e2de271c05be7d62979608040d9", - "url": "https://pdfium.googlesource.com/pdfium.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/perfetto": { - "args": { - "hash": "sha256-3vervpsq/QLMrR7RcJMwwh+CdFvSEj8yAzj6s9d1XMo=", - "rev": "ea011a2c2d3aecdc4f1674887e107a56d2905edd", - "url": "https://android.googlesource.com/platform/external/perfetto.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/protobuf-javascript/src": { - "args": { - "hash": "sha256-TmP6xftUVTD7yML7UEM/DB8bcsL5RFlKPyCpcboD86U=", - "rev": "e34549db516f8712f678fcd4bc411613b5cc5295", - "url": "https://chromium.googlesource.com/external/github.com/protocolbuffers/protobuf-javascript" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/pthreadpool/src": { - "args": { - "hash": "sha256-rGg6lgLkmbYo+a9CdaXz9ZUyrqJ1rxLcjLJeBEOPAlE=", - "rev": "560c60d342a76076f0557a3946924c6478470044", - "url": "https://chromium.googlesource.com/external/github.com/Maratyszcza/pthreadpool.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/pyelftools": { - "args": { - "hash": "sha256-I/7p3IEvfP/gkes4kx18PvWwhAKilQKb67GXoW4zFB4=", - "rev": "19b3e610c86fcadb837d252c794cb5e8008826ae", - "url": "https://chromium.googlesource.com/chromiumos/third_party/pyelftools.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/pywebsocket3/src": { - "args": { - "hash": "sha256-WEqqu2/7fLqcf/2/IcD7/FewRSZ6jTgVlVBvnihthYQ=", - "rev": "50602a14f1b6da17e0b619833a13addc6ea78bc2", - "url": "https://chromium.googlesource.com/external/github.com/GoogleChromeLabs/pywebsocket3.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/quic_trace/src": { - "args": { - "hash": "sha256-N1uFoNd3mz/LH1z06581Ds7BUyc67SNXUPzqomYREr8=", - "rev": "413da873d93a03d3662f24b881ea459a79f9c589", - "url": "https://chromium.googlesource.com/external/github.com/google/quic-trace.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/re2/src": { - "args": { - "hash": "sha256-IeANwJlJl45yf8iu/AZNDoiyIvTCZIeK1b74sdCfAIc=", - "rev": "6dcd83d60f7944926bfd308cc13979fc53dd69ca", - "url": "https://chromium.googlesource.com/external/github.com/google/re2.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/ruy/src": { - "args": { - "hash": "sha256-4NVvqUZn2BdwTxJINTHwPeRqbGXZrWdcd7jv1Y+eoKY=", - "rev": "c08ec529fc91722bde519628d9449258082eb847", - "url": "https://chromium.googlesource.com/external/github.com/google/ruy.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/securemessage/src": { - "args": { - "hash": "sha256-GS4ccnuiqxMs/LVYAtvSlVAYFp4a5GoZsxcriTX3k78=", - "rev": "fa07beb12babc3b25e0c5b1f38c16aa8cb6b8f84", - "url": "https://chromium.googlesource.com/external/github.com/google/securemessage.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/skia": { - "args": { - "hash": "sha256-e+oaFqj0D7jKiyDJRmT3BWZEd9j9BKkTdMg8hUOAvzA=", - "rev": "ee9db7d1348f76780fd0184b9b0243d653e36411", - "url": "https://skia.googlesource.com/skia.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/smhasher/src": { - "args": { - "hash": "sha256-RyC//me08hwGXRrWcK8GZ1uhIkBq4FByA7fHCVDsniw=", - "rev": "e87738e57558e0ec472b2fc3a643b838e5b6e88f", - "url": "https://chromium.googlesource.com/external/smhasher.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/snappy/src": { - "args": { - "hash": "sha256-5fV6NfO8vmqK+iCwpLtE2YjYOzjsshctauyjNIOxrH0=", - "rev": "c9f9edf6d75bb065fa47468bf035e051a57bec7c", - "url": "https://chromium.googlesource.com/external/github.com/google/snappy.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/speedometer/v3.0": { - "args": { - "hash": "sha256-qMQ4naX+4uUu3vtzzinjkhxX9/dNoTwj6vWCu4FdQmU=", - "rev": "8d67f28d0281ac4330f283495b7f48286654ad7d", - "url": "https://chromium.googlesource.com/external/github.com/WebKit/Speedometer.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/spirv-cross/src": { - "args": { - "hash": "sha256-H43M9DXfEuyKuvo6rjb5k0KEbYOSFodbPJh8ZKY4PQg=", - "rev": "b8fcf307f1f347089e3c46eb4451d27f32ebc8d3", - "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/spirv-headers/src": { - "args": { - "hash": "sha256-FrT/kVIMjcu2zv+7kDeNKM77NnOyMBb8pV0w8DBP42A=", - "rev": "996c728cf7dcfb29845cfa15222822318f047810", - "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/spirv-tools/src": { - "args": { - "hash": "sha256-m/a1i26u8lzpKuQHyAy6ktWWjbLZEaio1awz8VovTGE=", - "rev": "9117e042b93d4ff08d2406542708170f77aaa2a3", - "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/sqlite/src": { - "args": { - "hash": "sha256-ltl3OTk/wZPSj3yYthNlKd3mBxef6l5uW6UYTwebNek=", - "rev": "567495a62a62dc013888500526e82837d727fe01", - "url": "https://chromium.googlesource.com/chromium/deps/sqlite.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/squirrel.mac": { - "args": { - "hash": "sha256-4GfKQg0u3c9GI+jl3ixESNqWXQJKRMi+00QT0s2Shqw=", - "owner": "Squirrel", - "repo": "Squirrel.Mac", - "rev": "0e5d146ba13101a1302d59ea6e6e0b3cace4ae38" - }, - "fetcher": "fetchFromGitHub" - }, - "src/third_party/squirrel.mac/vendor/Mantle": { - "args": { - "hash": "sha256-ogFkMJybf2Ue606ojXJu6Gy5aXSi1bSKm60qcTAIaPk=", - "owner": "Mantle", - "repo": "Mantle", - "rev": "78d3966b3c331292ea29ec38661b25df0a245948" - }, - "fetcher": "fetchFromGitHub" - }, - "src/third_party/squirrel.mac/vendor/ReactiveObjC": { - "args": { - "hash": "sha256-/MCqC1oFe3N9TsmfVLgl+deR6qHU6ZFQQjudb9zB5Mo=", - "owner": "ReactiveCocoa", - "repo": "ReactiveObjC", - "rev": "74ab5baccc6f7202c8ac69a8d1e152c29dc1ea76" - }, - "fetcher": "fetchFromGitHub" - }, - "src/third_party/swiftshader": { - "args": { - "hash": "sha256-h2BHyaOM0oscfX5cu8s4N1yyOkg/yQbvwD1DxF+RAQc=", - "rev": "d5c4284774115bb1e32c012a2be1b5fbeb1ab1f9", - "url": "https://swiftshader.googlesource.com/SwiftShader.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/text-fragments-polyfill/src": { - "args": { - "hash": "sha256-4rW2u1cQAF4iPWHAt1FvVXIpz2pmI901rEPks/w/iFA=", - "rev": "c036420683f672d685e27415de0a5f5e85bdc23f", - "url": "https://chromium.googlesource.com/external/github.com/GoogleChromeLabs/text-fragments-polyfill.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/tflite/src": { - "args": { - "hash": "sha256-gOUt/NljRK5wMFwy2aLqZ5NHwk4y/GxbQ+AZ3MxM0M8=", - "rev": "658227d3b535287dc6859788bde6076c4fe3fe7c", - "url": "https://chromium.googlesource.com/external/github.com/tensorflow/tensorflow.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/ukey2/src": { - "args": { - "hash": "sha256-aaLs6ZS+CdBlCJ6ZhsmdAPFxiBIij6oufsDcNeRSV1E=", - "rev": "0275885d8e6038c39b8a8ca55e75d1d4d1727f47", - "url": "https://chromium.googlesource.com/external/github.com/google/ukey2.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/vulkan-deps": { - "args": { - "hash": "sha256-LVWvbMLjkMyAUM+0UpQ4oRsfcRU5F/xY60wiwxth4Ko=", - "rev": "0b56dd5952b25fad65139b64096fcd187048ed38", - "url": "https://chromium.googlesource.com/vulkan-deps" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/vulkan-headers/src": { - "args": { - "hash": "sha256-exXzafLgrgxyRvaF+4pCF+OLtPT2gDmcvzazQ4EQ1eA=", - "rev": "cbcad3c0587dddc768d76641ea00f5c45ab5a278", - "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/vulkan-loader/src": { - "args": { - "hash": "sha256-NDp2TLeMLAHb92R+PjaPDTx8ckIlpSsS3BNx3lerB68=", - "rev": "b0177a972b8d47e823a4500cf88df88a8c27add7", - "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/vulkan-tools/src": { - "args": { - "hash": "sha256-PiWKL045DAOGm+Hl/UyO6vmD4fVfuf2fSvXK6gSYbwo=", - "rev": "15f2de809304aba619ee327f3273425418ca83de", - "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/vulkan-utility-libraries/src": { - "args": { - "hash": "sha256-luDw6g/EMSK67Et2wNta74PHGQU6Y7IRpDlSpgDYV6Q=", - "rev": "87ab6b39a97d084a2ef27db85e3cbaf5d2622a09", - "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Utility-Libraries" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/vulkan-validation-layers/src": { - "args": { - "hash": "sha256-WWV+P++0Czeqg5p2UTqIP81pY8oz7cS7E7Z/sc0km6g=", - "rev": "bc2c38412f739c298d6f5c076c064e6b5696959f", - "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/vulkan_memory_allocator": { - "args": { - "hash": "sha256-YzxHZagz/M8Y54UnI4h1wu5jSTuaOgv0ifC9d3fJZlQ=", - "rev": "56300b29fbfcc693ee6609ddad3fdd5b7a449a21", - "url": "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/wayland-protocols/gtk": { - "args": { - "hash": "sha256-75XNnLkF5Lt1LMRGT+T61k0/mLa3kkynfN+QWvZ0LiQ=", - "rev": "40ebed3a03aef096addc0af09fec4ec529d882a0", - "url": "https://chromium.googlesource.com/external/github.com/GNOME/gtk.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/wayland-protocols/kde": { - "args": { - "hash": "sha256-Dmcp/2ms/k7NxPPmPkp0YNfM9z2Es1ZO0uX10bc7N2Y=", - "rev": "0b07950714b3a36c9b9f71fc025fc7783e82926e", - "url": "https://chromium.googlesource.com/external/github.com/KDE/plasma-wayland-protocols.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/wayland-protocols/src": { - "args": { - "hash": "sha256-o/adWEXYSqWib6KoK7XMCWbojapcS4O/CEPxv7iFCw8=", - "rev": "7d5a3a8b494ae44cd9651f9505e88a250082765e", - "url": "https://chromium.googlesource.com/external/anongit.freedesktop.org/git/wayland/wayland-protocols.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/wayland/src": { - "args": { - "hash": "sha256-oK0Z8xO2ILuySGZS0m37ZF0MOyle2l8AXb0/6wai0/w=", - "rev": "a156431ea66fe67d69c9fbba8a8ad34dabbab81c", - "url": "https://chromium.googlesource.com/external/anongit.freedesktop.org/git/wayland/wayland.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/webdriver/pylib": { - "args": { - "hash": "sha256-WIqWXIKVgElgg8P8laLAlUrgwodGdeVcwohZxnPKedw=", - "rev": "fc5e7e70c098bfb189a9a74746809ad3c5c34e04", - "url": "https://chromium.googlesource.com/external/github.com/SeleniumHQ/selenium/py.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/webgl/src": { - "args": { - "hash": "sha256-32r3BdmsNA89mo0k+vK1G3718AOjseE7cJlopZ/0pSw=", - "rev": "450cceb587613ac1469c5a131fac15935c99e0e7", - "url": "https://chromium.googlesource.com/external/khronosgroup/webgl.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/webgpu-cts/src": { - "args": { - "hash": "sha256-Dd5uWNtnBIc2jiMkh9KjI5O1tJtmMvdlMA2nf+VOkQQ=", - "rev": "b9f32fd2943dd2b3d0033bf938c9d843f4b5c9a9", - "url": "https://chromium.googlesource.com/external/github.com/gpuweb/cts.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/webrtc": { - "args": { - "hash": "sha256-S8kGTd3+lf5OTayCMOqqrjxH4tcbT0NLZBpKmTCysMs=", - "rev": "afaf497805cbb502da89991c2dcd783201efdd08", - "url": "https://webrtc.googlesource.com/src.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/weston/src": { - "args": { - "hash": "sha256-y2srFaPUOoB2umzpo4+hFfhNlqXM2AoMGOpUy/ZSacg=", - "rev": "ccf29cb237c3ed09c5f370f35239c93d07abfdd7", - "url": "https://chromium.googlesource.com/external/anongit.freedesktop.org/git/wayland/weston.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/wuffs/src": { - "args": { - "hash": "sha256-373d2F/STcgCHEq+PO+SCHrKVOo6uO1rqqwRN5eeBCw=", - "rev": "e3f919ccfe3ef542cfc983a82146070258fb57f8", - "url": "https://skia.googlesource.com/external/github.com/google/wuffs-mirror-release-c.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/xdg-utils": { - "args": { - "hash": "sha256-WuQ9uDq+QD17Y20ACFGres4nbkeOiTE2y+tY1avAT5U=", - "rev": "cb54d9db2e535ee4ef13cc91b65a1e2741a94a44", - "url": "https://chromium.googlesource.com/chromium/deps/xdg-utils.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/xnnpack/src": { - "args": { - "hash": "sha256-aDPlmLxNY9M5+Qb8VtdfxphHXU/X6JwYhkUSXkLh/FE=", - "rev": "d1d33679661a34f03a806af2b813f699db3004f9", - "url": "https://chromium.googlesource.com/external/github.com/google/XNNPACK.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/third_party/zstd/src": { - "args": { - "hash": "sha256-4J/F2v2W3mMdhqQ4q35gYkGaqTKlcG6OxUt3vQ8pcLs=", - "rev": "7fb5347e88f10472226c9aa1962a148e55d8c480", - "url": "https://chromium.googlesource.com/external/github.com/facebook/zstd.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/tools/page_cycler/acid3": { - "args": { - "hash": "sha256-s/49EaYQRsyxuLejXc1zGDYTD7uO0ddaQIJBP50Bvw0=", - "rev": "a926d0a32e02c4c03ae95bb798e6c780e0e184ba", - "url": "https://chromium.googlesource.com/chromium/deps/acid3.git" - }, - "fetcher": "fetchFromGitiles" - }, - "src/v8": { - "args": { - "hash": "sha256-o+THwG/lBFw495DxAckGPeoiTV5zOopVF4B3MXmraf0=", - "rev": "7130a7a08a7075cc1967528402ec536f6fd85ed2", - "url": "https://chromium.googlesource.com/v8/v8.git" - }, - "fetcher": "fetchFromGitiles" - } - }, - "electron_yarn_hash": "0gh5bcsh23s3rqxqc2l3jz5vjb553sk0a1jycn94zm821pc3csd2", - "modules": "132", - "node": "20.19.1", - "version": "34.5.8" - }, "35": { "chrome": "134.0.6998.205", "chromium": { @@ -3909,5 +2632,1338 @@ "modules": "135", "node": "22.16.0", "version": "36.6.0" + }, + "37": { + "chrome": "138.0.7204.35", + "chromium": { + "deps": { + "gn": { + "hash": "sha256-UB9a7Fr1W0yYld6WbXyRR8dFqWsj/zx4KumDZ5JQKSM=", + "rev": "ebc8f16ca7b0d36a3e532ee90896f9eb48e5423b", + "url": "https://gn.googlesource.com/gn", + "version": "2025-05-21" + } + }, + "version": "138.0.7204.35" + }, + "chromium_npm_hash": "sha256-8d5VTHutv51libabhxv7SqPRcHfhVmGDSOvTSv013rE=", + "deps": { + "src": { + "args": { + "hash": "sha256-0C2lONJHtUyEAQ8PNSk5Z4zCZa5XFI2LH4Ew9PgWfuU=", + "postFetch": "rm -r $out/third_party/blink/web_tests; rm -r $out/content/test/data; rm -rf $out/courgette/testdata; rm -r $out/extensions/test/data; rm -r $out/media/test/data; ", + "tag": "138.0.7204.35", + "url": "https://chromium.googlesource.com/chromium/src.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/chrome/test/data/perf/canvas_bench": { + "args": { + "hash": "sha256-svOuyBGKloBLM11xLlWCDsB4PpRjdKTBdW2UEW4JQjM=", + "rev": "a7b40ea5ae0239517d78845a5fc9b12976bfc732", + "url": "https://chromium.googlesource.com/chromium/canvas_bench.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/chrome/test/data/perf/frame_rate/content": { + "args": { + "hash": "sha256-t4kcuvH0rkPBkcdiMsoNQaRwU09eU+oSvyHDiAHrKXo=", + "rev": "c10272c88463efeef6bb19c9ec07c42bc8fe22b9", + "url": "https://chromium.googlesource.com/chromium/frame_rate/content.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/chrome/test/data/xr/webvr_info": { + "args": { + "hash": "sha256-BsAPwc4oEWri0TlqhyxqFNqKdfgVSrB0vQyISmYY4eg=", + "rev": "c58ae99b9ff9e2aa4c524633519570bf33536248", + "url": "https://chromium.googlesource.com/external/github.com/toji/webvr.info.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/docs/website": { + "args": { + "hash": "sha256-X9GIZkPokZ8ojNVDScDQL8D0tJGsaQMg8ncenuBzFHk=", + "rev": "d21d90790d8ea421b317c4cb52a0d94133422796", + "url": "https://chromium.googlesource.com/website.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/electron": { + "args": { + "hash": "sha256-c/Gm/qLWy96407+XVXF+4z99jNUQwkWSwlHxnvfCbK0=", + "owner": "electron", + "repo": "electron", + "tag": "v37.1.0" + }, + "fetcher": "fetchFromGitHub" + }, + "src/media/cdm/api": { + "args": { + "hash": "sha256-3JBBcBg2ep/7LnvMHBWnqAFG+etETArFXZr4Klv30T4=", + "rev": "852a81f0ae3ab350041d2e44d207a42fb0436ae1", + "url": "https://chromium.googlesource.com/chromium/cdm.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/net/third_party/quiche/src": { + "args": { + "hash": "sha256-UYyBMjv6ATIwBXYngGof85pBCHXb/jYXetVo0oBrHf8=", + "rev": "3b42119c3e4be5d4720c3c1b384106fa43e9b5e3", + "url": "https://quiche.googlesource.com/quiche.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/testing/libfuzzer/fuzzers/wasm_corpus": { + "args": { + "hash": "sha256-gItDOfNqm1tHlmelz3l2GGdiKi9adu1EpPP6U7+8EQY=", + "rev": "1df5e50a45db9518a56ebb42cb020a94a090258b", + "url": "https://chromium.googlesource.com/v8/fuzzer_wasm_corpus.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/accessibility_test_framework/src": { + "args": { + "hash": "sha256-mzVgoxxBWebesG6okyMxxmO6oH+TITA4o9ucHHMMzkQ=", + "rev": "4a764c690353ea136c82f1a696a70bf38d1ef5fe", + "url": "https://chromium.googlesource.com/external/github.com/google/Accessibility-Test-Framework-for-Android.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/angle": { + "args": { + "hash": "sha256-jGnuunyWvu43LLpejJTcoSlhCukhv8pX2OAQ7n1adcU=", + "rev": "d1fb74c940fef262809f4a513039b70e94c91440", + "url": "https://chromium.googlesource.com/angle/angle.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/angle/third_party/VK-GL-CTS/src": { + "args": { + "hash": "sha256-EFhi4dELfyq6FcB+YFlzKfoXz44i5ieFK1KUlFzqE1I=", + "rev": "c9d2e24d1a6da00165a0b5908ea4ba05c2e5f0b2", + "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/angle/third_party/glmark2/src": { + "args": { + "hash": "sha256-VebUALLFKwEa4+oE+jF8mBSzhJd6aflphPmcK1Em8bw=", + "rev": "6edcf02205fd1e8979dc3f3964257a81959b80c8", + "url": "https://chromium.googlesource.com/external/github.com/glmark2/glmark2" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/angle/third_party/rapidjson/src": { + "args": { + "hash": "sha256-btUl1a/B0sXwf/+hyvCvVJjWqIkXfVYCpHm3TeBuOxk=", + "rev": "781a4e667d84aeedbeb8184b7b62425ea66ec59f", + "url": "https://chromium.googlesource.com/external/github.com/Tencent/rapidjson" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/anonymous_tokens/src": { + "args": { + "hash": "sha256-GaRtZmYqajLUpt7ToRfMLBlyMiJB5yT9BaaT9pHH7OM=", + "rev": "d708a2602a5947ee068f784daa1594a673d47c4a", + "url": "https://chromium.googlesource.com/external/github.com/google/anonymous-tokens.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/boringssl/src": { + "args": { + "hash": "sha256-+Gs+efB1ZizjMYRSRTQrMDPZsDC+dgNJ9+yHXkzm/ZM=", + "rev": "9295969e1dad2c31d0d99481734c1c68dcbc6403", + "url": "https://boringssl.googlesource.com/boringssl.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/breakpad/breakpad": { + "args": { + "hash": "sha256-+Z7KphmQYCeN0aJkqyMrJ4tIi3BhqN16KoPNLb/bMGo=", + "rev": "2625edb085169e92cf036c236ac79ab594a7b1cc", + "url": "https://chromium.googlesource.com/breakpad/breakpad.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/cast_core/public/src": { + "args": { + "hash": "sha256-yQxm1GMMne80bLl1P7OAN3bJLz1qRNAvou2/5MKp2ig=", + "rev": "f5ee589bdaea60418f670fa176be15ccb9a34942", + "url": "https://chromium.googlesource.com/cast_core/public" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/catapult": { + "args": { + "hash": "sha256-xHe9WoAq1FElMSnu5mlEzrH+EzKiwWXeXMCH69KL5a0=", + "rev": "5477c6dfde1132b685c73edc16e1bc71449a691d", + "url": "https://chromium.googlesource.com/catapult.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/ced/src": { + "args": { + "hash": "sha256-ySG74Rj2i2c/PltEgHVEDq+N8yd9gZmxNktc56zIUiY=", + "rev": "ba412eaaacd3186085babcd901679a48863c7dd5", + "url": "https://chromium.googlesource.com/external/github.com/google/compact_enc_det.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/clang-format/script": { + "args": { + "hash": "sha256-d9uweklBffiuCWEb03ti1eFLnMac2qRtvggzXY1n/RU=", + "rev": "37f6e68a107df43b7d7e044fd36a13cbae3413f2", + "url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/clang/tools/clang-format.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/cld_3/src": { + "args": { + "hash": "sha256-C3MOMBUy9jgkT9BAi/Fgm2UH4cxRuwSBEcRl3hzM2Ss=", + "rev": "b48dc46512566f5a2d41118c8c1116c4f96dc661", + "url": "https://chromium.googlesource.com/external/github.com/google/cld_3.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/colorama/src": { + "args": { + "hash": "sha256-6ZTdPYSHdQOLYMSnE+Tp7PgsVTs3U2awGu9Qb4Rg/tk=", + "rev": "3de9f013df4b470069d03d250224062e8cf15c49", + "url": "https://chromium.googlesource.com/external/colorama.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/compiler-rt/src": { + "args": { + "hash": "sha256-FVdcKGwRuno3AzS6FUvI8OTj3mBMRfFR2A8GzYcwIU4=", + "rev": "57196dd146582915c955f6d388e31aea93220c51", + "url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/compiler-rt.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/content_analysis_sdk/src": { + "args": { + "hash": "sha256-f5Jmk1MiGjaRdLun+v/GKVl8Yv9hOZMTQUSxgiJalcY=", + "rev": "9a408736204513e0e95dd2ab3c08de0d95963efc", + "url": "https://chromium.googlesource.com/external/github.com/chromium/content_analysis_sdk.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/cpu_features/src": { + "args": { + "hash": "sha256-E8LoVzhe+TAmARWZTSuINlsVhzpUJMxPPCGe/dHZcyA=", + "rev": "936b9ab5515dead115606559502e3864958f7f6e", + "url": "https://chromium.googlesource.com/external/github.com/google/cpu_features.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/cpuinfo/src": { + "args": { + "hash": "sha256-uochXC0AtOw8N/ycyVJdiRw4pibCW2ENrFMT3jtxDSg=", + "rev": "39ea79a3c132f4e678695c579ea9353d2bd29968", + "url": "https://chromium.googlesource.com/external/github.com/pytorch/cpuinfo.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/crabbyavif/src": { + "args": { + "hash": "sha256-IxtMAqN3O/s1GrVKzcge9cQ+DVtJtFvHYvsfjmflwVQ=", + "rev": "eb883022a5886739f07f0241f918e2be97d65ff0", + "url": "https://chromium.googlesource.com/external/github.com/webmproject/CrabbyAvif.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/crc32c/src": { + "args": { + "hash": "sha256-KBraGaO5LmmPP+p8RuDogGldbTWdNDK+WzF4Q09keuE=", + "rev": "d3d60ac6e0f16780bcfcc825385e1d338801a558", + "url": "https://chromium.googlesource.com/external/github.com/google/crc32c.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/cros-components/src": { + "args": { + "hash": "sha256-CT9c4LqTwhldsxoEny8MesULwQC4k95F4tfCtRZErGM=", + "rev": "97dc8c7a1df880206cc54d9913a7e9d73677072a", + "url": "https://chromium.googlesource.com/external/google3/cros_components.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/cros_system_api": { + "args": { + "hash": "sha256-WlSxI1J+HjAD2UaQjW3oOQpZDnMn/ROpTLYTP4efTi4=", + "rev": "fe88d943e5f328b34e38b91296db39650f6ec6f3", + "url": "https://chromium.googlesource.com/chromiumos/platform2/system_api.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/crossbench": { + "args": { + "hash": "sha256-YomhvLtDFkGWyivN81gRxtOh9U32Zt6+/obTwccJuRo=", + "rev": "feff46a3cd49eb39667205cdfa2b490bcffc9ba1", + "url": "https://chromium.googlesource.com/crossbench.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/dav1d/libdav1d": { + "args": { + "hash": "sha256-+DY4p41VuAlx7NvOfXjWzgEhvtpebjkjbFwSYOzSjv4=", + "rev": "8d956180934f16244bdb58b39175824775125e55", + "url": "https://chromium.googlesource.com/external/github.com/videolan/dav1d.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/dawn": { + "args": { + "hash": "sha256-N9DVbQE56WWBmJ/PJlYhU+pr8I+PFf/7FzMLCNqx3hg=", + "rev": "86772f20cca54b46f62b65ece1ef61224aef09db", + "url": "https://dawn.googlesource.com/dawn.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/dawn/third_party/dxc": { + "args": { + "hash": "sha256-0LfNcR1FXy5GcL2yHHA6A7EJIWtZU1U/2xSq/eysUa0=", + "rev": "d72e2b1a15d22fc825e2f3c939f1baac43281ae9", + "url": "https://chromium.googlesource.com/external/github.com/microsoft/DirectXShaderCompiler" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/dawn/third_party/dxheaders": { + "args": { + "hash": "sha256-0Miw1Cy/jmOo7bLFBOHuTRDV04cSeyvUEyPkpVsX9DA=", + "rev": "980971e835876dc0cde415e8f9bc646e64667bf7", + "url": "https://chromium.googlesource.com/external/github.com/microsoft/DirectX-Headers" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/dawn/third_party/glfw": { + "args": { + "hash": "sha256-E1zXIDiw87badrLOZTvV+Wh9NZHu51nb70ZK9vlAlqE=", + "rev": "b35641f4a3c62aa86a0b3c983d163bc0fe36026d", + "url": "https://chromium.googlesource.com/external/github.com/glfw/glfw" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/dawn/third_party/khronos/EGL-Registry": { + "args": { + "hash": "sha256-Z6DwLfgQ1wsJXz0KKJyVieOatnDmx3cs0qJ6IEgSq1A=", + "rev": "7dea2ed79187cd13f76183c4b9100159b9e3e071", + "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/EGL-Registry" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/dawn/third_party/khronos/OpenGL-Registry": { + "args": { + "hash": "sha256-K3PcRIiD3AmnbiSm5TwaLs4Gu9hxaN8Y91WMKK8pOXE=", + "rev": "5bae8738b23d06968e7c3a41308568120943ae77", + "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/OpenGL-Registry" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/dawn/third_party/webgpu-cts": { + "args": { + "hash": "sha256-eMDb0nG9HDiesd8KPajbMej8JTll4JkIf17KMnKvW1s=", + "rev": "905c7cbfeaac1cf3feb4c6056dd6f3dbaa06b074", + "url": "https://chromium.googlesource.com/external/github.com/gpuweb/cts" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/dawn/third_party/webgpu-headers/src": { + "args": { + "hash": "sha256-+Kf4yPBhM6y2kYTZud9vCavT/BBOzDBsph5+/bUuwkM=", + "rev": "60cd9020309b87a30cd7240aad32accd24262a5e", + "url": "https://chromium.googlesource.com/external/github.com/webgpu-native/webgpu-headers" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/depot_tools": { + "args": { + "hash": "sha256-1avxBlK0WLHTru5wUecbiGpSEYv8Epobsl4EfCaWX9A=", + "rev": "a8900cc0f023d6a662eb66b317e8ddceeb113490", + "url": "https://chromium.googlesource.com/chromium/tools/depot_tools.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/devtools-frontend/src": { + "args": { + "hash": "sha256-7ygnGBAeiLxwbTx5s7LRs9+ZOe06tr8VFcSY5cVHnS4=", + "rev": "f8dfe8b36e516cef8a5a169e88d16480d8abdc68", + "url": "https://chromium.googlesource.com/devtools/devtools-frontend" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/dom_distiller_js/dist": { + "args": { + "hash": "sha256-yuEBD2XQlV3FGI/i7lTmJbCqzeBiuG1Qow8wvsppGJw=", + "rev": "199de96b345ada7c6e7e6ba3d2fa7a6911b8767d", + "url": "https://chromium.googlesource.com/chromium/dom-distiller/dist.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/domato/src": { + "args": { + "hash": "sha256-fYxoA0fxKe9U23j+Jp0MWj4m7RfsRpM0XjF6/yOhX1I=", + "rev": "053714bccbda79cf76dac3fee48ab2b27f21925e", + "url": "https://chromium.googlesource.com/external/github.com/googleprojectzero/domato.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/dragonbox/src": { + "args": { + "hash": "sha256-AOniXMPgwKpkJqivRd+GazEnhdw53FzhxKqG+GdU+cc=", + "rev": "6c7c925b571d54486b9ffae8d9d18a822801cbda", + "url": "https://chromium.googlesource.com/external/github.com/jk-jeon/dragonbox.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/eigen3/src": { + "args": { + "hash": "sha256-dWWjpQ6M7udOQqUV6P9go3R3O4J2XYpvkngJjRDY4v8=", + "rev": "ae3aba99db4c829b4cc4d9fdd54321dedd814dc4", + "url": "https://chromium.googlesource.com/external/gitlab.com/libeigen/eigen.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/electron_node": { + "args": { + "hash": "sha256-rp48HOQB13nZJUByXaL8MMkHNFp/V0qtbDZgoFBIcJY=", + "owner": "nodejs", + "repo": "node", + "tag": "v22.16.0" + }, + "fetcher": "fetchFromGitHub" + }, + "src/third_party/emoji-segmenter/src": { + "args": { + "hash": "sha256-KdQdKBBipEBRT8UmNGao6yCB4m2CU8/SrMVvcXlb5qE=", + "rev": "955936be8b391e00835257059607d7c5b72ce744", + "url": "https://chromium.googlesource.com/external/github.com/google/emoji-segmenter.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/engflow-reclient-configs": { + "args": { + "hash": "sha256-aZXYPj9KYBiZnljqOLlWJWS396Fg3EhjiQLZmkwCBsY=", + "owner": "EngFlow", + "repo": "reclient-configs", + "rev": "955335c30a752e9ef7bff375baab5e0819b6c00d" + }, + "fetcher": "fetchFromGitHub" + }, + "src/third_party/expat/src": { + "args": { + "hash": "sha256-qe8O7otL6YcDDBx2DS/+c5mWIS8Rf8RQXVtLFMIAeyk=", + "rev": "69d6c054c1bd5258c2a13405a7f5628c72c177c2", + "url": "https://chromium.googlesource.com/external/github.com/libexpat/libexpat.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/farmhash/src": { + "args": { + "hash": "sha256-5n58VEUxa/K//jAfZqG4cXyfxrp50ogWDNYcgiXVHdc=", + "rev": "816a4ae622e964763ca0862d9dbd19324a1eaf45", + "url": "https://chromium.googlesource.com/external/github.com/google/farmhash.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/fast_float/src": { + "args": { + "hash": "sha256-CG5je117WYyemTe5PTqznDP0bvY5TeXn8Vu1Xh5yUzQ=", + "rev": "cb1d42aaa1e14b09e1452cfdef373d051b8c02a4", + "url": "https://chromium.googlesource.com/external/github.com/fastfloat/fast_float.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/ffmpeg": { + "args": { + "hash": "sha256-noc3iZ1yCEgkwWyznx48rXC8JuKxla9QgC/CIjRL/y8=", + "rev": "dcdd0fa51b65a0b1688ff6b8f0cc81908f09ded2", + "url": "https://chromium.googlesource.com/chromium/third_party/ffmpeg.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/flac": { + "args": { + "hash": "sha256-gvTFPNOlBfozptaH7lTb9iD/09AmpdT3kCl9ClszjEs=", + "rev": "689da3a7ed50af7448c3f1961d1791c7c1d9c85c", + "url": "https://chromium.googlesource.com/chromium/deps/flac.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/flatbuffers/src": { + "args": { + "hash": "sha256-tbc45o0MbMvK5XqRUJt5Eg8BU6+TJqlmwFgQhHq6wRM=", + "rev": "8db59321d9f02cdffa30126654059c7d02f70c32", + "url": "https://chromium.googlesource.com/external/github.com/google/flatbuffers.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/fontconfig/src": { + "args": { + "hash": "sha256-Kz7KY+evfOciKFHIBLG1JxIRgHRTzuBLgxXHv3m/Y1Y=", + "rev": "8cf0ce700a8abe0d97ace4bf7efc7f9534b729ba", + "url": "https://chromium.googlesource.com/external/fontconfig.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/fp16/src": { + "args": { + "hash": "sha256-m2d9bqZoGWzuUPGkd29MsrdscnJRtuIkLIMp3fMmtRY=", + "rev": "0a92994d729ff76a58f692d3028ca1b64b145d91", + "url": "https://chromium.googlesource.com/external/github.com/Maratyszcza/FP16.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/freetype-testing/src": { + "args": { + "hash": "sha256-cpzz5QDeAT3UgAZzwW7c0SgLDQsBwy/1Q+5hz2XW4lE=", + "rev": "04fa94191645af39750f5eff0a66c49c5cb2c2cc", + "url": "https://chromium.googlesource.com/external/github.com/freetype/freetype2-testing.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/freetype/src": { + "args": { + "hash": "sha256-j5FPldhIOzsOsFBAMyNh44FTeOD8Gm3scoi3B3hhgKQ=", + "rev": "738905b34bd1f5a8ff51bd2bc8e38a2d8be9bfd6", + "url": "https://chromium.googlesource.com/chromium/src/third_party/freetype2.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/fuzztest/src": { + "args": { + "hash": "sha256-MHli8sadgC3OMesBGhkjPM/yW49KFOtdFuBII1bcFas=", + "rev": "f03aafb7516050ea73f617bf969f03eac641aefc", + "url": "https://chromium.googlesource.com/external/github.com/google/fuzztest.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/fxdiv/src": { + "args": { + "hash": "sha256-LjX5kivfHbqCIA5pF9qUvswG1gjOFo3CMpX0VR+Cn38=", + "rev": "63058eff77e11aa15bf531df5dd34395ec3017c8", + "url": "https://chromium.googlesource.com/external/github.com/Maratyszcza/FXdiv.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/gemmlowp/src": { + "args": { + "hash": "sha256-O5wD8wxgis0qYMaY+xZ21GBDVQFphMRvInCOswS6inA=", + "rev": "13d57703abca3005d97b19df1f2db731607a7dc2", + "url": "https://chromium.googlesource.com/external/github.com/google/gemmlowp.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/glslang/src": { + "args": { + "hash": "sha256-0PocroQj02mdpmFVXr6XB7mVVNzQOaBXm/2GNacZLF0=", + "rev": "93231001597dad1149a5d035af30eda50b9e6b6c", + "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/google_benchmark/src": { + "args": { + "hash": "sha256-cH8s1gP6kCcojAAfTt5iQCVqiAaSooNk4BdaILujM3w=", + "rev": "761305ec3b33abf30e08d50eb829e19a802581cc", + "url": "https://chromium.googlesource.com/external/github.com/google/benchmark.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/googletest/src": { + "args": { + "hash": "sha256-md/jPkFrs/0p0BYGyquh57Zxh+1dKaK26PDtUN1+Ce0=", + "rev": "09ffd0015395354774c059a17d9f5bee36177ff9", + "url": "https://chromium.googlesource.com/external/github.com/google/googletest.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/harfbuzz-ng/src": { + "args": { + "hash": "sha256-lNnCtgIegUy4DLhYaGZXcEaFw83KWAHoKpz69AEsWp4=", + "rev": "9f83bbbe64654b45ba5bb06927ff36c2e7588495", + "url": "https://chromium.googlesource.com/external/github.com/harfbuzz/harfbuzz.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/highway/src": { + "args": { + "hash": "sha256-IS7m1wBwpPBUNhx2GttY1fzvmLIeAp3o2gXfrFpRdvY=", + "rev": "00fe003dac355b979f36157f9407c7c46448958e", + "url": "https://chromium.googlesource.com/external/github.com/google/highway.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/hunspell_dictionaries": { + "args": { + "hash": "sha256-67mvpJRFFa9eMfyqFMURlbxOaTJBICnk+gl0b0mEHl8=", + "rev": "41cdffd71c9948f63c7ad36e1fb0ff519aa7a37e", + "url": "https://chromium.googlesource.com/chromium/deps/hunspell_dictionaries.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/icu": { + "args": { + "hash": "sha256-/T7uyzwTCDaamLwSvutvbn6BJuoG1RqeR+xhXI5jmJw=", + "rev": "b929596baebf0ab4ac7ec07f38365db4c50a559d", + "url": "https://chromium.googlesource.com/chromium/deps/icu.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/ink/src": { + "args": { + "hash": "sha256-MqJXwtUGL/IakwOO63JX4gx0gTocgQT3hbhw6OcYUbc=", + "rev": "da9cb551ada1e55309b0ac89b9fbff2d29dbfe1e", + "url": "https://chromium.googlesource.com/external/github.com/google/ink.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/ink_stroke_modeler/src": { + "args": { + "hash": "sha256-jnIljheEBq96e6zZO87bhVJbA1vIjiRzm1Hh6YMBdnU=", + "rev": "03db1ed37b8b10b47d62ed0fa142d198a3861689", + "url": "https://chromium.googlesource.com/external/github.com/google/ink-stroke-modeler.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/instrumented_libs": { + "args": { + "hash": "sha256-8kokdsnn5jD9KgM/6g0NuITBbKkGXWEM4BMr1nCrfdU=", + "rev": "69015643b3f68dbd438c010439c59adc52cac808", + "url": "https://chromium.googlesource.com/chromium/third_party/instrumented_libraries.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/jetstream/main": { + "args": { + "hash": "sha256-mE6IoHpLV0LUWEeeiWycXtOhIbhkPvVdLvsPSyv4xPk=", + "rev": "539ab943598b505832a25a2222aa8957f1a20d6f", + "url": "https://chromium.googlesource.com/external/github.com/WebKit/JetStream.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/jetstream/v2.2": { + "args": { + "hash": "sha256-zucA2tqNOsvjhwYQKZ5bFUC73ZF/Fu7KpBflSelvixw=", + "rev": "2145cedef4ca2777b792cb0059d3400ee2a6153c", + "url": "https://chromium.googlesource.com/external/github.com/WebKit/JetStream.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/jsoncpp/source": { + "args": { + "hash": "sha256-bSLNcoYBz3QCt5VuTR056V9mU2PmBuYBa0W6hFg2m8Q=", + "rev": "42e892d96e47b1f6e29844cc705e148ec4856448", + "url": "https://chromium.googlesource.com/external/github.com/open-source-parsers/jsoncpp.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/leveldatabase/src": { + "args": { + "hash": "sha256-ANtMVRZmW6iOjDVn2y15ak2fTagFTTaz1Se6flUHL8w=", + "rev": "4ee78d7ea98330f7d7599c42576ca99e3c6ff9c5", + "url": "https://chromium.googlesource.com/external/leveldb.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/libFuzzer/src": { + "args": { + "hash": "sha256-Lb+HczYax0T7qvC0/Nwhc5l2szQTUYDouWRMD/Qz7sA=", + "rev": "e31b99917861f891308269c36a32363b120126bb", + "url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/compiler-rt/lib/fuzzer.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/libaddressinput/src": { + "args": { + "hash": "sha256-6h4/DQUBoBtuGfbaTL5Te1Z+24qjTaBuIydcTV18j80=", + "rev": "2610f7b1043d6784ada41392fc9392d1ea09ea07", + "url": "https://chromium.googlesource.com/external/libaddressinput.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/libaom/source/libaom": { + "args": { + "hash": "sha256-pyLKjLG83Jlx6I+0M8Ah94ku4NIFcrHNYswfVHMvdrc=", + "rev": "2cca4aba034f99842c2e6cdc173f83801d289764", + "url": "https://aomedia.googlesource.com/aom.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/libc++/src": { + "args": { + "hash": "sha256-36ulJk/YTfP5k1sDeA/WQyIO8xaplRKK4cQhfTZdpko=", + "rev": "a01c02c9d4acbdae3b7e8a2f3ee58579a9c29f96", + "url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxx.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/libc++abi/src": { + "args": { + "hash": "sha256-DkCvfFjMztFTzKf081XyiefW6tMBSZ1AdzcPzXAVPnk=", + "rev": "9810fb23f6ba666f017c2b67c67de2bcac2b44bd", + "url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/libdrm/src": { + "args": { + "hash": "sha256-woSYEDUfcEBpYOYnli13wLMt754A7KnUbmTEcFQdFGw=", + "rev": "ad78bb591d02162d3b90890aa4d0a238b2a37cde", + "url": "https://chromium.googlesource.com/chromiumos/third_party/libdrm.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/libgav1/src": { + "args": { + "hash": "sha256-BgTfWmbcMvJB1KewJpRcMtbOd2FVuJ+fi1zAXBXfkrg=", + "rev": "c05bf9be660cf170d7c26bd06bb42b3322180e58", + "url": "https://chromium.googlesource.com/codecs/libgav1.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/libipp/libipp": { + "args": { + "hash": "sha256-gxU92lHLd6uxO8T3QWhZIK0hGy97cki705DV0VimCPY=", + "rev": "2209bb84a8e122dab7c02fe66cc61a7b42873d7f", + "url": "https://chromium.googlesource.com/chromiumos/platform2/libipp.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/libjpeg_turbo": { + "args": { + "hash": "sha256-Ig+tmprZDvlf/M72/DTar2pbxat9ZElgSqdXdoM0lPs=", + "rev": "e14cbfaa85529d47f9f55b0f104a579c1061f9ad", + "url": "https://chromium.googlesource.com/chromium/deps/libjpeg_turbo.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/liblouis/src": { + "args": { + "hash": "sha256-EI/uaHXe0NlqdEw764q0SjerThYEVLRogUlmrsZwXnY=", + "rev": "9700847afb92cb35969bdfcbbfbbb74b9c7b3376", + "url": "https://chromium.googlesource.com/external/liblouis-github.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/libphonenumber/dist": { + "args": { + "hash": "sha256-ZbuDrZEUVp/ekjUP8WO/FsjAomRjeDBptT4nQZvTVi4=", + "rev": "9d46308f313f2bf8dbce1dfd4f364633ca869ca7", + "url": "https://chromium.googlesource.com/external/libphonenumber.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/libprotobuf-mutator/src": { + "args": { + "hash": "sha256-EaEC6R7SzqLw4QjEcWXFXhZc84lNBp6RSa9izjGnWKE=", + "rev": "7bf98f78a30b067e22420ff699348f084f802e12", + "url": "https://chromium.googlesource.com/external/github.com/google/libprotobuf-mutator.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/libsrtp": { + "args": { + "hash": "sha256-bkG1+ss+1a2rCHGwZjhvf5UaNVbPPZJt9HZSIPBKGwM=", + "rev": "a52756acb1c5e133089c798736dd171567df11f5", + "url": "https://chromium.googlesource.com/chromium/deps/libsrtp.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/libsync/src": { + "args": { + "hash": "sha256-Mkl6C1LxF3RYLwYbxiSfoQPt8QKFwQWj/Ati2sNJ32E=", + "rev": "f4f4387b6bf2387efbcfd1453af4892e8982faf6", + "url": "https://chromium.googlesource.com/aosp/platform/system/core/libsync.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/libunwind/src": { + "args": { + "hash": "sha256-O1S3ijnoVrTHmZDGmgQQe0MVGsSZL7usXAPflGFmMXY=", + "rev": "8575f4ae4fcf8892938bd9766cf1a5c90a0ed04e", + "url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libunwind.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/libva-fake-driver/src": { + "args": { + "hash": "sha256-em/8rNqwv6szlxyji7mnYr3nObSW/x3OzEEnkiLuqpI=", + "rev": "a9bcab9cd6b15d4e3634ca44d5e5f7652c612194", + "url": "https://chromium.googlesource.com/chromiumos/platform/libva-fake-driver.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/libvpx/source/libvpx": { + "args": { + "hash": "sha256-SFdYF8vnwNHQbZ1N/ZHr4kxfi9o+BAtuqbak80m9uP4=", + "rev": "b84ca9b63730e7d4563573a56a66317eb0087ebf", + "url": "https://chromium.googlesource.com/webm/libvpx.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/libwebm/source": { + "args": { + "hash": "sha256-tfji0yPV7v/DETViEp2T7AO6P5xCjPYScTlV3eWFV0w=", + "rev": "c4522d6cd68582d66f1adfd24debfa9bee202afa", + "url": "https://chromium.googlesource.com/webm/libwebm.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/libwebp/src": { + "args": { + "hash": "sha256-0sKGhXr6Rrpq0eoitAdLQ4l4fgNOzMWIEICrPyzwNz4=", + "rev": "2af6c034ac871c967e04c8c9f8bf2dbc2e271b18", + "url": "https://chromium.googlesource.com/webm/libwebp.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/libyuv": { + "args": { + "hash": "sha256-J9Wi3aCc6OjtQCP8JnrY7PYrY587dKLaa1KGAMWmE0c=", + "rev": "61bdaee13a701d2b52c6dc943ccc5c888077a591", + "url": "https://chromium.googlesource.com/libyuv/libyuv.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/llvm-libc/src": { + "args": { + "hash": "sha256-BsoHIvdqgYzBUkd23++enEHIhq5GeVWrWdVdhXrHh9A=", + "rev": "9c3ae3120fe83b998d0498dcc9ad3a56c29fad0c", + "url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libc.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/lss": { + "args": { + "hash": "sha256-rhp4EcZYdgSfu9cqn+zxxGx6v2IW8uX8V+iA0UfZhFY=", + "rev": "ed31caa60f20a4f6569883b2d752ef7522de51e0", + "url": "https://chromium.googlesource.com/linux-syscall-support.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/material_color_utilities/src": { + "args": { + "hash": "sha256-Y85XU+z9W6tvmDNHJ/dXQnUKXvvDkO3nH/kUJRLqbc4=", + "rev": "13434b50dcb64a482cc91191f8cf6151d90f5465", + "url": "https://chromium.googlesource.com/external/github.com/material-foundation/material-color-utilities.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/minigbm/src": { + "args": { + "hash": "sha256-9HwvjTETerbQ7YKXH9kUB2eWa8PxGWMAJfx1jAluhrs=", + "rev": "3018207f4d89395cc271278fb9a6558b660885f5", + "url": "https://chromium.googlesource.com/chromiumos/platform/minigbm.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/nan": { + "args": { + "hash": "sha256-cwti+BWmF/l/dqa/cN0C587EK4WwRWcWy6gjFVkaMTg=", + "owner": "nodejs", + "repo": "nan", + "rev": "e14bdcd1f72d62bca1d541b66da43130384ec213" + }, + "fetcher": "fetchFromGitHub" + }, + "src/third_party/nasm": { + "args": { + "hash": "sha256-neYrS4kQ76ihUh22Q3uPR67Ld8+yerA922YSZU1KxJs=", + "rev": "9f916e90e6fc34ec302573f6ce147e43e33d68ca", + "url": "https://chromium.googlesource.com/chromium/deps/nasm.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/nearby/src": { + "args": { + "hash": "sha256-qFLs3gMV0v6c0gjyn29D6pRxSAKumpzAWVgHabPFWRw=", + "rev": "959322177f40f2e0f1ecacd8a1aea2805e67b62b", + "url": "https://chromium.googlesource.com/external/github.com/google/nearby-connections.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/neon_2_sse/src": { + "args": { + "hash": "sha256-AkDAHOPO5NdXXk0hETS5D67mzw0RVXwPDDKqM0XXo5g=", + "rev": "eb8b80b28f956275e291ea04a7beb5ed8289e872", + "url": "https://chromium.googlesource.com/external/github.com/intel/ARM_NEON_2_x86_SSE.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/openh264/src": { + "args": { + "hash": "sha256-tf0lnxATCkoq+xRti6gK6J47HwioAYWnpEsLGSA5Xdg=", + "rev": "652bdb7719f30b52b08e506645a7322ff1b2cc6f", + "url": "https://chromium.googlesource.com/external/github.com/cisco/openh264" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/openscreen/src": { + "args": { + "hash": "sha256-YlcvSDSCHHqDA43+hd5hpajZrIGqpn3KxhMJD8Wf+rs=", + "rev": "8cc5a0e8f6695263d44206cf5930641979cb3179", + "url": "https://chromium.googlesource.com/openscreen" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/openscreen/src/buildtools": { + "args": { + "hash": "sha256-WnbgaCzZ/BJli6M60kP9e4mVPFDx0yu3eCac5wmQ7iM=", + "rev": "077a66f30fcf281b066fafb6dfc60818c238efb6", + "url": "https://chromium.googlesource.com/chromium/src/buildtools" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/openscreen/src/third_party/tinycbor/src": { + "args": { + "hash": "sha256-fMKBFUSKmODQyg4hKIa1hwnEKIV6WBbY1Gb8DOSnaHA=", + "rev": "d393c16f3eb30d0c47e6f9d92db62272f0ec4dc7", + "url": "https://chromium.googlesource.com/external/github.com/intel/tinycbor.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/ots/src": { + "args": { + "hash": "sha256-kiUXrXsaGOzPkKh0dVmU1I13WHt0Stzj7QLMqHN9FbU=", + "rev": "46bea9879127d0ff1c6601b078e2ce98e83fcd33", + "url": "https://chromium.googlesource.com/external/github.com/khaledhosny/ots.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/pdfium": { + "args": { + "hash": "sha256-FF0iXahVfqbi4OOdH9PPgCTAIQT/q0nlT/H70pubCMQ=", + "rev": "cf433ae5520d061db56391155b59b34e67484f39", + "url": "https://pdfium.googlesource.com/pdfium.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/perfetto": { + "args": { + "hash": "sha256-kzVsti2tygOMgT61TmCz26AByMd3gIXA6xz8RE0iCz4=", + "rev": "dd35b295cd359ba094404218414955f961a0d6ae", + "url": "https://chromium.googlesource.com/external/github.com/google/perfetto.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/protobuf-javascript/src": { + "args": { + "hash": "sha256-c/aC+LZQtedL5oouUXw2eTF6xD7LN3J3C0q3D0wl+W0=", + "rev": "28bf5df73ef2f345a936d9cc95d64ba8ed426a53", + "url": "https://chromium.googlesource.com/external/github.com/protocolbuffers/protobuf-javascript" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/pthreadpool/src": { + "args": { + "hash": "sha256-qogacGPNy6SKQaK8CZvGC8YZbVjhDTXuhDqGopB0Eps=", + "rev": "dcc9f28589066af0dbd4555579281230abbf74dd", + "url": "https://chromium.googlesource.com/external/github.com/google/pthreadpool.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/pyelftools": { + "args": { + "hash": "sha256-I/7p3IEvfP/gkes4kx18PvWwhAKilQKb67GXoW4zFB4=", + "rev": "19b3e610c86fcadb837d252c794cb5e8008826ae", + "url": "https://chromium.googlesource.com/chromiumos/third_party/pyelftools.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/pywebsocket3/src": { + "args": { + "hash": "sha256-WEqqu2/7fLqcf/2/IcD7/FewRSZ6jTgVlVBvnihthYQ=", + "rev": "50602a14f1b6da17e0b619833a13addc6ea78bc2", + "url": "https://chromium.googlesource.com/external/github.com/GoogleChromeLabs/pywebsocket3.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/quic_trace/src": { + "args": { + "hash": "sha256-vbXqddDgwqetU0bDYn3qo7OBqT5eG926/MbA1hKkCT0=", + "rev": "ed3deb8a056b260c59f2fd42af6dfa3db48a8cad", + "url": "https://chromium.googlesource.com/external/github.com/google/quic-trace.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/re2/src": { + "args": { + "hash": "sha256-f/k2rloV2Nwb0KuJGUX4SijFxAx69EXcsXOG4vo+Kis=", + "rev": "c84a140c93352cdabbfb547c531be34515b12228", + "url": "https://chromium.googlesource.com/external/github.com/google/re2.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/ruy/src": { + "args": { + "hash": "sha256-O3JEtXchCdIHdGvjD6kGMJzj7TWVczQCW2YUHK3cABA=", + "rev": "83fd40d730feb0804fafbc2d8814bcc19a17b2e5", + "url": "https://chromium.googlesource.com/external/github.com/google/ruy.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/search_engines_data/resources": { + "args": { + "hash": "sha256-x7zGPqha12Og/AjQp1mkO0MNydM4xXvIcaapNziW0Kw=", + "rev": "09fd22f3a4fb77ab03b7734e0c03ff7d7f97ef88", + "url": "https://chromium.googlesource.com/external/search_engines_data.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/securemessage/src": { + "args": { + "hash": "sha256-GS4ccnuiqxMs/LVYAtvSlVAYFp4a5GoZsxcriTX3k78=", + "rev": "fa07beb12babc3b25e0c5b1f38c16aa8cb6b8f84", + "url": "https://chromium.googlesource.com/external/github.com/google/securemessage.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/skia": { + "args": { + "hash": "sha256-k0vE2K9KfeYsTVZchvKEA8M7GJQcekbuO5wHJeycBZo=", + "rev": "a46d5732d9fca93eaec23e502e2eef814b707e6b", + "url": "https://skia.googlesource.com/skia.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/smhasher/src": { + "args": { + "hash": "sha256-OgZQwkQcVgRMf62ROGuY+3zQhBoWuUSP4naTmSKdq8s=", + "rev": "0ff96f7835817a27d0487325b6c16033e2992eb5", + "url": "https://chromium.googlesource.com/external/smhasher.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/snappy/src": { + "args": { + "hash": "sha256-jUwnjbaqXz7fgI2TPRK7SlUPQUVzcpjp4ZlFbEzwA+o=", + "rev": "32ded457c0b1fe78ceb8397632c416568d6714a0", + "url": "https://chromium.googlesource.com/external/github.com/google/snappy.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/speedometer/main": { + "args": { + "hash": "sha256-1/G06WCO5ssBS3+T6E3rnGdIf0r205wVxfJX7lgivR4=", + "rev": "dd661c033abdde11022779f40375c52632a9f43a", + "url": "https://chromium.googlesource.com/external/github.com/WebKit/Speedometer.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/speedometer/v2.0": { + "args": { + "hash": "sha256-p7WUS8gZUaS+LOm7pNmRkwgxjx+V8R6yy7bbaEHaIs4=", + "rev": "732af0dfe867f8815e662ac637357e55f285dbbb", + "url": "https://chromium.googlesource.com/external/github.com/WebKit/Speedometer.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/speedometer/v2.1": { + "args": { + "hash": "sha256-0z5tZlz32fYh9I1ALqfLm2WWO8HiRBwt0hcmgKQhaeM=", + "rev": "8bf7946e39e47c875c00767177197aea5727e84a", + "url": "https://chromium.googlesource.com/external/github.com/WebKit/Speedometer.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/speedometer/v3.0": { + "args": { + "hash": "sha256-qMQ4naX+4uUu3vtzzinjkhxX9/dNoTwj6vWCu4FdQmU=", + "rev": "8d67f28d0281ac4330f283495b7f48286654ad7d", + "url": "https://chromium.googlesource.com/external/github.com/WebKit/Speedometer.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/speedometer/v3.1": { + "args": { + "hash": "sha256-G89mrrgRaANT1vqzhKPQKemHbz56YwR+oku7rlRoCHw=", + "rev": "1386415be8fef2f6b6bbdbe1828872471c5d802a", + "url": "https://chromium.googlesource.com/external/github.com/WebKit/Speedometer.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/spirv-cross/src": { + "args": { + "hash": "sha256-H43M9DXfEuyKuvo6rjb5k0KEbYOSFodbPJh8ZKY4PQg=", + "rev": "b8fcf307f1f347089e3c46eb4451d27f32ebc8d3", + "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/spirv-headers/src": { + "args": { + "hash": "sha256-/KfUxWDczLQ/0DOiFC4Z66o+gtoF/7vgvAvKyv9Z9OA=", + "rev": "c9aad99f9276817f18f72a4696239237c83cb775", + "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/spirv-tools/src": { + "args": { + "hash": "sha256-04CWBDu4Q+H7EtVTealNyGx0Hml7OjIf0FfK0IuzisY=", + "rev": "01021466b5e71deaac9054f56082566c782bfd51", + "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/sqlite/src": { + "args": { + "hash": "sha256-jqelU2bFZ4XwI5dpkusvgUobmRyYo/41ZKqbEmOdpis=", + "rev": "0a1397d274701c5d39e661e948160da2b9a8db1e", + "url": "https://chromium.googlesource.com/chromium/deps/sqlite.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/squirrel.mac": { + "args": { + "hash": "sha256-4GfKQg0u3c9GI+jl3ixESNqWXQJKRMi+00QT0s2Shqw=", + "owner": "Squirrel", + "repo": "Squirrel.Mac", + "rev": "0e5d146ba13101a1302d59ea6e6e0b3cace4ae38" + }, + "fetcher": "fetchFromGitHub" + }, + "src/third_party/squirrel.mac/vendor/Mantle": { + "args": { + "hash": "sha256-ogFkMJybf2Ue606ojXJu6Gy5aXSi1bSKm60qcTAIaPk=", + "owner": "Mantle", + "repo": "Mantle", + "rev": "78d3966b3c331292ea29ec38661b25df0a245948" + }, + "fetcher": "fetchFromGitHub" + }, + "src/third_party/squirrel.mac/vendor/ReactiveObjC": { + "args": { + "hash": "sha256-/MCqC1oFe3N9TsmfVLgl+deR6qHU6ZFQQjudb9zB5Mo=", + "owner": "ReactiveCocoa", + "repo": "ReactiveObjC", + "rev": "74ab5baccc6f7202c8ac69a8d1e152c29dc1ea76" + }, + "fetcher": "fetchFromGitHub" + }, + "src/third_party/swiftshader": { + "args": { + "hash": "sha256-Fd6T9zFJVPJaF2sbBy+uK0Ia0C6AIZsDbNvPSkbuTJM=", + "rev": "a8133cbb3c8969e3c1e6b3cea2c02ec8312ef9ca", + "url": "https://swiftshader.googlesource.com/SwiftShader.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/text-fragments-polyfill/src": { + "args": { + "hash": "sha256-4rW2u1cQAF4iPWHAt1FvVXIpz2pmI901rEPks/w/iFA=", + "rev": "c036420683f672d685e27415de0a5f5e85bdc23f", + "url": "https://chromium.googlesource.com/external/github.com/GoogleChromeLabs/text-fragments-polyfill.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/tflite/src": { + "args": { + "hash": "sha256-qpwF2+/dw1u24O5+4bW74R43AgGN//NZwzEmlkyHlr0=", + "rev": "151774faba661a5985a8264653f4457c70a56dea", + "url": "https://chromium.googlesource.com/external/github.com/tensorflow/tensorflow.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/ukey2/src": { + "args": { + "hash": "sha256-aaLs6ZS+CdBlCJ6ZhsmdAPFxiBIij6oufsDcNeRSV1E=", + "rev": "0275885d8e6038c39b8a8ca55e75d1d4d1727f47", + "url": "https://chromium.googlesource.com/external/github.com/google/ukey2.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/vulkan-deps": { + "args": { + "hash": "sha256-kIj8sncNg6dJzg1fgORev/o164G3kMXCGHzlzb09n0U=", + "rev": "5912cbdd295c2bacb5798432a7b1cac9d20c0725", + "url": "https://chromium.googlesource.com/vulkan-deps" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/vulkan-headers/src": { + "args": { + "hash": "sha256-vB49bFCx9VVEtpwIFcxdqYT+Pk4DgjoPz4rzPfmuRps=", + "rev": "75ad707a587e1469fb53a901b9b68fe9f6fbc11f", + "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/vulkan-loader/src": { + "args": { + "hash": "sha256-D5S1xQbsJ4Ov+3u84Mxj3L/3elyW78jpKRbYo8FpD28=", + "rev": "c913466fdc5004584890f89ff91121bdb2ffd4ba", + "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/vulkan-tools/src": { + "args": { + "hash": "sha256-snLYtiXK1eBZYsc7X18/wk4TnhmkSqquWxyjmw9IF2A=", + "rev": "60b640cb931814fcc6dabe4fc61f4738c56579f6", + "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/vulkan-utility-libraries/src": { + "args": { + "hash": "sha256-2mi5gtacSDxtZB8a3oGZqgLhwntSLXlEzDq6W14RHp4=", + "rev": "49ac28931f28bffaa3cd73dc4ad997284d574962", + "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Utility-Libraries" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/vulkan-validation-layers/src": { + "args": { + "hash": "sha256-K0KZ8wXTCVRBBN9AWy63ukmE6QkQHKcRgo+YluOhjyc=", + "rev": "f7ceb1d01a292846db77ec87786be84d6fd568d9", + "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/vulkan_memory_allocator": { + "args": { + "hash": "sha256-YzxHZagz/M8Y54UnI4h1wu5jSTuaOgv0ifC9d3fJZlQ=", + "rev": "56300b29fbfcc693ee6609ddad3fdd5b7a449a21", + "url": "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/wasm_tts_engine/src": { + "args": { + "hash": "sha256-TFkniS4XvP0RlPnI1lv4RxxSY44RUuwCMKmmybENEBw=", + "rev": "352880bb49e2410707543c252ef6b94a21b0f47f", + "url": "https://chromium.googlesource.com/chromium/wasm-tts-engine" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/wayland-protocols/gtk": { + "args": { + "hash": "sha256-75XNnLkF5Lt1LMRGT+T61k0/mLa3kkynfN+QWvZ0LiQ=", + "rev": "40ebed3a03aef096addc0af09fec4ec529d882a0", + "url": "https://chromium.googlesource.com/external/github.com/GNOME/gtk.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/wayland-protocols/kde": { + "args": { + "hash": "sha256-Dmcp/2ms/k7NxPPmPkp0YNfM9z2Es1ZO0uX10bc7N2Y=", + "rev": "0b07950714b3a36c9b9f71fc025fc7783e82926e", + "url": "https://chromium.googlesource.com/external/github.com/KDE/plasma-wayland-protocols.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/wayland-protocols/src": { + "args": { + "hash": "sha256-o/adWEXYSqWib6KoK7XMCWbojapcS4O/CEPxv7iFCw8=", + "rev": "7d5a3a8b494ae44cd9651f9505e88a250082765e", + "url": "https://chromium.googlesource.com/external/anongit.freedesktop.org/git/wayland/wayland-protocols.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/wayland/src": { + "args": { + "hash": "sha256-oK0Z8xO2ILuySGZS0m37ZF0MOyle2l8AXb0/6wai0/w=", + "rev": "a156431ea66fe67d69c9fbba8a8ad34dabbab81c", + "url": "https://chromium.googlesource.com/external/anongit.freedesktop.org/git/wayland/wayland.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/webdriver/pylib": { + "args": { + "hash": "sha256-WIqWXIKVgElgg8P8laLAlUrgwodGdeVcwohZxnPKedw=", + "rev": "fc5e7e70c098bfb189a9a74746809ad3c5c34e04", + "url": "https://chromium.googlesource.com/external/github.com/SeleniumHQ/selenium/py.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/webgl/src": { + "args": { + "hash": "sha256-mSketnpcDtz3NnhPkXMpMpq8MWcFiSviJbK6h06fcnw=", + "rev": "c01b768bce4a143e152c1870b6ba99ea6267d2b0", + "url": "https://chromium.googlesource.com/external/khronosgroup/webgl.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/webgpu-cts/src": { + "args": { + "hash": "sha256-eMDb0nG9HDiesd8KPajbMej8JTll4JkIf17KMnKvW1s=", + "rev": "905c7cbfeaac1cf3feb4c6056dd6f3dbaa06b074", + "url": "https://chromium.googlesource.com/external/github.com/gpuweb/cts.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/webpagereplay": { + "args": { + "hash": "sha256-qJnO3fFJhaQA77v1lTJ4B7cbXivquTcSvx/m+OcI3No=", + "rev": "18172a359f6dab8e3f70b6c5c8c7c55d3e97537a", + "url": "https://chromium.googlesource.com/webpagereplay.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/webrtc": { + "args": { + "hash": "sha256-72NbtdYbyMxSGULvOGsZqLj4kvT79pu+TKcnEmcj/Pc=", + "rev": "e4445e46a910eb407571ec0b0b8b7043562678cf", + "url": "https://webrtc.googlesource.com/src.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/weston/src": { + "args": { + "hash": "sha256-VNHUAtfTB24SIf2kl+MMXF3rG5cJOPM93WU/sVSIQ1A=", + "rev": "4eb10b123b483327214d8da5da67e8bbeeaed8fe", + "url": "https://chromium.googlesource.com/external/anongit.freedesktop.org/git/wayland/weston.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/wuffs/src": { + "args": { + "hash": "sha256-373d2F/STcgCHEq+PO+SCHrKVOo6uO1rqqwRN5eeBCw=", + "rev": "e3f919ccfe3ef542cfc983a82146070258fb57f8", + "url": "https://skia.googlesource.com/external/github.com/google/wuffs-mirror-release-c.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/xdg-utils": { + "args": { + "hash": "sha256-WuQ9uDq+QD17Y20ACFGres4nbkeOiTE2y+tY1avAT5U=", + "rev": "cb54d9db2e535ee4ef13cc91b65a1e2741a94a44", + "url": "https://chromium.googlesource.com/chromium/deps/xdg-utils.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/xnnpack/src": { + "args": { + "hash": "sha256-aavq+i8EpQmIMPaym6JxwBFjbpqKtHshXUkdBIXDtpw=", + "rev": "f82ad65ca52cb4d39b73088468a5fe00f56fb47c", + "url": "https://chromium.googlesource.com/external/github.com/google/XNNPACK.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/third_party/zstd/src": { + "args": { + "hash": "sha256-emmJF7XLq5CxXFd0KUrtUtw1YGOHDSiz39vtgVoEPd0=", + "rev": "f9938c217da17ec3e9dcd2a2d99c5cf39536aeb9", + "url": "https://chromium.googlesource.com/external/github.com/facebook/zstd.git" + }, + "fetcher": "fetchFromGitiles" + }, + "src/v8": { + "args": { + "hash": "sha256-MXQyDv45BDnLwKCqbueY2a5VBEgmf33Xy8WXLE9Rwsc=", + "rev": "a14ab029e21658cba458b7001281c5d526e67636", + "url": "https://chromium.googlesource.com/v8/v8.git" + }, + "fetcher": "fetchFromGitiles" + } + }, + "electron_yarn_hash": "10n86jnzcq8kh0nk29ljw9wi1fgj13f07h92b009i1dryagliyrs", + "modules": "136", + "node": "22.16.0", + "version": "37.1.0" } } diff --git a/pkgs/games/path-of-building/default.nix b/pkgs/games/path-of-building/default.nix index e362f7ac0447..5f9dde343b59 100644 --- a/pkgs/games/path-of-building/default.nix +++ b/pkgs/games/path-of-building/default.nix @@ -17,13 +17,13 @@ let data = stdenv.mkDerivation (finalAttrs: { pname = "path-of-building-data"; - version = "2.54.0"; + version = "2.55.1"; src = fetchFromGitHub { owner = "PathOfBuildingCommunity"; repo = "PathOfBuilding"; rev = "v${finalAttrs.version}"; - hash = "sha256-NMSr5HJ/YvrqE8uVINzH0b9+U3snQGQYalSJ4bNRh1I="; + hash = "sha256-O3XD52UdkjxtWdsXs6QbXzfik3ZT9TEc2PPZCIGJdCQ="; }; nativeBuildInputs = [ unzip ]; diff --git a/pkgs/kde/gear/gwenview/default.nix b/pkgs/kde/gear/gwenview/default.nix index 68a93a36738b..55d5a8b7d331 100644 --- a/pkgs/kde/gear/gwenview/default.nix +++ b/pkgs/kde/gear/gwenview/default.nix @@ -4,6 +4,7 @@ qtwayland, qtimageformats, phonon, + phonon-vlc, pkg-config, cfitsio, exiv2, @@ -23,6 +24,7 @@ mkKdeDerivation { qtimageformats phonon + phonon-vlc cfitsio exiv2 diff --git a/pkgs/tools/package-management/nix/common-autoconf.nix b/pkgs/tools/package-management/nix/common-autoconf.nix index 1d7ed8cba374..4ad05d61d01b 100644 --- a/pkgs/tools/package-management/nix/common-autoconf.nix +++ b/pkgs/tools/package-management/nix/common-autoconf.nix @@ -11,6 +11,7 @@ inherit hash; }, patches ? [ ], + knownVulnerabilities ? [ ], maintainers ? [ lib.maintainers.lovesegfault lib.maintainers.artturin @@ -335,7 +336,7 @@ let ''; homepage = "https://nixos.org/"; license = licenses.lgpl21Plus; - inherit maintainers teams; + inherit knownVulnerabilities maintainers teams; platforms = platforms.unix; outputsToInstall = [ "out" ] ++ optional enableDocumentation "man"; mainProgram = "nix"; diff --git a/pkgs/tools/package-management/nix/default.nix b/pkgs/tools/package-management/nix/default.nix index 974532d99be4..10f93abf8f51 100644 --- a/pkgs/tools/package-management/nix/default.nix +++ b/pkgs/tools/package-management/nix/default.nix @@ -159,6 +159,15 @@ lib.makeExtensible ( patch-monitorfdhup ]; self_attribute_name = "nix_2_3"; + knownVulnerabilities = [ + "CVE-2024-38531" + "CVE-2024-47174" + "CVE-2025-46415" + "CVE-2025-46416" + "CVE-2025-52991" + "CVE-2025-52992" + "CVE-2025-52993" + ]; maintainers = with lib.maintainers; [ flokli ]; teams = [ ]; }).overrideAttrs diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index ba3d010473e2..07089066fcd1 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -1852,6 +1852,7 @@ mapAliases { source-han-serif-simplified-chinese = source-han-serif; source-han-serif-traditional-chinese = source-han-serif; + sourcehut = throw "'sourcehut.*' has been removed due to being broken and unmaintained"; # Added 2025-06-15 solana-validator = throw "'solana-validator' is obsoleted by solana-cli, which also includes the validator binary"; # Added 2024-12-20 spectral = throw "'spectral' has been renamed to/replaced by 'neochat'"; # Converted to throw 2024-10-17 # spidermonkey is not ABI upwards-compatible, so only allow this for nix-shell @@ -1974,6 +1975,7 @@ mapAliases { tokyo-night-gtk = tokyonight-gtk-theme; # Added 2024-01-28 tomcat_connectors = apacheHttpdPackages.mod_jk; # Added 2024-06-07 ton = throw "'ton' has been removed as there were insufficient maintainer resources to keep up with updates"; # Added 2025-04-27 + tooling-language-server = deputy; # Added 2025-06-22 tor-browser-bundle-bin = tor-browser; # Added 2023-09-23 torrenttools = throw "torrenttools has been removed due to lack of maintanance upstream"; # Added 2025-04-06 torq = throw "torq has been removed because the project went closed source"; # Added 2024-11-24 diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index df8999ddae6e..9d8b52bf32f8 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -4396,8 +4396,6 @@ with pkgs; splot = haskell.lib.compose.justStaticExecutables haskellPackages.splot; - sourcehut = callPackage ../applications/version-management/sourcehut { }; - sshfs = sshfs-fuse; # added 2017-08-14 inherit (callPackages ../tools/misc/sshx { }) @@ -6835,6 +6833,7 @@ with pkgs; electron_34-bin electron_35-bin electron_36-bin + electron_37-bin ; inherit (callPackages ../development/tools/electron/chromedriver { }) @@ -6842,14 +6841,11 @@ with pkgs; electron-chromedriver_34 electron-chromedriver_35 electron-chromedriver_36 + electron-chromedriver_37 ; electron_33 = electron_33-bin; - electron_34 = - if lib.meta.availableOn stdenv.hostPlatform electron-source.electron_34 then - electron-source.electron_34 - else - electron_34-bin; + electron_34 = electron_34-bin; electron_35 = if lib.meta.availableOn stdenv.hostPlatform electron-source.electron_35 then electron-source.electron_35 @@ -6860,6 +6856,11 @@ with pkgs; electron-source.electron_36 else electron_36-bin; + electron_37 = + if lib.meta.availableOn stdenv.hostPlatform electron-source.electron_37 then + electron-source.electron_37 + else + electron_37-bin; electron = electron_35; electron-bin = electron_35-bin; electron-chromedriver = electron-chromedriver_35; diff --git a/pkgs/top-level/make-tarball.nix b/pkgs/top-level/make-tarball.nix index 1b90e4bfdb66..b1ddef188d93 100644 --- a/pkgs/top-level/make-tarball.nix +++ b/pkgs/top-level/make-tarball.nix @@ -3,7 +3,13 @@ officialRelease, pkgs ? import nixpkgs.outPath { }, nix ? pkgs.nix, - lib-tests ? import ../../lib/tests/release.nix { inherit pkgs; }, + lib-tests ? import ../../lib/tests/release.nix { + pkgs = import nixpkgs.outPath { + config = { + permittedInsecurePackages = [ "nix-2.3.18" ]; + }; + }; + }, }: pkgs.releaseTools.sourceTarball { diff --git a/pkgs/top-level/release.nix b/pkgs/top-level/release.nix index 61218537e7e3..49ee9782ad53 100644 --- a/pkgs/top-level/release.nix +++ b/pkgs/top-level/release.nix @@ -86,6 +86,7 @@ let id isDerivation optionals + recursiveUpdate ; inherit (release-lib.lib.attrsets) unionOfDisjoint; @@ -95,8 +96,15 @@ let "aarch64" ] (arch: elem "${arch}-darwin" supportedSystems); - nonPackageJobs = { - tarball = import ./make-tarball.nix { inherit pkgs nixpkgs officialRelease; }; + nonPackageJobs = rec { + tarball = import ./make-tarball.nix { + inherit + pkgs + lib-tests + nixpkgs + officialRelease + ; + }; release-checks = import ./nixpkgs-basic-release-checks.nix { inherit pkgs nixpkgs supportedSystems; @@ -104,7 +112,20 @@ let manual = pkgs.nixpkgs-manual.override { inherit nixpkgs; }; metrics = import ./metrics.nix { inherit pkgs nixpkgs; }; - lib-tests = import ../../lib/tests/release.nix { inherit pkgs; }; + lib-tests = import ../../lib/tests/release.nix { + pkgs = import nixpkgs ( + recursiveUpdate + (recursiveUpdate { + inherit system; + config.allowUnsupportedSystem = true; + } nixpkgsArgs) + { + config.permittedInsecurePackages = nixpkgsArgs.config.permittedInsecurePackages or [ ] ++ [ + "nix-2.3.18" + ]; + } + ); + }; pkgs-lib-tests = import ../pkgs-lib/tests { inherit pkgs; }; darwin-tested =