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 =