diff --git a/.hydra/config.json b/.hydra/config.json index 57c1d0b7e..f74ffdad2 100644 --- a/.hydra/config.json +++ b/.hydra/config.json @@ -4,7 +4,7 @@ "inputs": { "nixpkgs": { "type": "git", - "value": "https://github.com/flyingcircusio/nixpkgs.git nixos-23.11", + "value": "https://github.com/flyingcircusio/nixpkgs.git nixos-24.05", "emailresponsible": false }, "platformDoc": { @@ -19,7 +19,7 @@ }, "branch": { "type": "string", - "value": "fc-23.11-dev", + "value": "fc-24.05-dev", "emailresponsible": false } } diff --git a/.hydra/project.json b/.hydra/project.json index ecbb343bb..ba7a62dda 100644 --- a/.hydra/project.json +++ b/.hydra/project.json @@ -12,7 +12,7 @@ "inputs": { "generator_config": { "type": "git", - "value": "https://github.com/flyingcircusio/fc-nixos.git fc-23.11-dev", + "value": "https://github.com/flyingcircusio/fc-nixos.git fc-24.05-dev", "emailresponsible": false }, "inputPath": { diff --git a/README.md b/README.md index 200a245af..8f7ddf499 100644 --- a/README.md +++ b/README.md @@ -140,7 +140,7 @@ We use our [nixpkgs fork](https://github.com/flyingcircusio/nixpkgs) and the nix The typical workflow for a nixpkgs update looks like this (run in the dev shell): -1. Rebase local nixpkgs onto current upstream version: `update_nixpkgs --nixpkgs-path ~/worksets/nixpkgs/fc/nixos-23.11 nixpkgs` +1. Rebase local nixpkgs onto current upstream version: `update_nixpkgs --nixpkgs-path ~/worksets/nixpkgs/fc/nixos-24.05 nixpkgs` 2. Update `versions.json` and `package-versions.json` (must be able to talk to hydra01): `update_nixpkgs fc-nixos` 3. Create a draft PR with the changes and wait until Hydra finishes building. 4. When Hydra is green, try it out on a test VM. Don't forget to run `build_channels_dir` if you haven't set up direnv! diff --git a/doc/default.nix b/doc/default.nix index ea3d07d21..c6cd40589 100644 --- a/doc/default.nix +++ b/doc/default.nix @@ -9,8 +9,8 @@ # --arg docObjectsInventory https://hydra.flyingcircus.io/job/flyingcircus/doc-test/platformDoc/latest/download-by-type/file/inventory { - pkgs ? import (fetchTarball https://hydra.flyingcircus.io/build/207931/download/1/nixexprs.tar.xz) {} -, branch ? "23.11" + pkgs ? import (fetchTarball https://hydra.flyingcircus.io/build/402189/download/1/nixexprs.tar.xz) {} +, branch ? "24.05" , updated ? "1970-01-01 01:00" , docObjectsInventory ? null # path to objects.inv generated by flyingcircusio/doc , failOnWarnings ? false @@ -21,7 +21,9 @@ let linkify-it-py myst-docutils sphinx + sphinx-copybutton sphinx_rtd_theme + furo ]); rg = "${pkgs.ripgrep}/bin/rg"; diff --git a/doc/src/_static/RZ_FC-Logo_RGB_100-1080.svg b/doc/src/_static/RZ_FC-Logo_RGB_100-1080.svg new file mode 100644 index 000000000..335b7ef9a --- /dev/null +++ b/doc/src/_static/RZ_FC-Logo_RGB_100-1080.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/src/_static/RZ_FC-Logo_RGB_INV-BL_100-1080.svg b/doc/src/_static/RZ_FC-Logo_RGB_INV-BL_100-1080.svg new file mode 100644 index 000000000..aceafe05f --- /dev/null +++ b/doc/src/_static/RZ_FC-Logo_RGB_INV-BL_100-1080.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/src/_static/flyingcircus.css b/doc/src/_static/flyingcircus.css index 63d1fede1..464607530 100644 --- a/doc/src/_static/flyingcircus.css +++ b/doc/src/_static/flyingcircus.css @@ -1,10 +1,31 @@ +@import "https://flyingcircus.io/fileadmin/global-data/fira/fira-small.css"; -img.logo { - float: right; - margin-left: 2em; - margin-bottom: 2em; +.highlight { + background: var(--color-highlight-on-target); } -img.logo.frame { - border:2px solid black; +h1, h2, h3, h4, h5, h6 { + color: var(--color-headings); +} + +/* Layout */ +.sidebar-logo { + width: 80%; + max-width: 300px; + margin: 0; +} + +.sidebar-container { + box-sizing: border-box; + width: 85%; +} + +.toctree-l1, +ul, +ul ul { + list-style-type: square; +} + +li::marker { + color: var(--color-brand-content); } diff --git a/doc/src/base.md b/doc/src/base.md index d083c0d1e..6bb3451a7 100644 --- a/doc/src/base.md +++ b/doc/src/base.md @@ -55,7 +55,7 @@ You can look up packages and their descriptions via the [NixOS Package Search](h - netcat - ngrep - nix-top -- nixfmt +- nixfmt-rfc-style - nmap - nvd - openssl diff --git a/doc/src/conf.py b/doc/src/conf.py index bdbf8d4c8..d1e3ac6d7 100644 --- a/doc/src/conf.py +++ b/doc/src/conf.py @@ -34,10 +34,28 @@ # The theme to use for HTML and HTML Help pages. Major themes that come with # Sphinx are currently 'default' and 'sphinxdoc'. -import sphinx_rtd_theme - -html_theme = "sphinx_rtd_theme" -html_theme_path = [sphinx_rtd_theme.get_html_theme_path()] +import furo + +html_theme = "furo" + +html_theme_options = { + "sidebar_hide_name": True, + "dark_logo": "RZ_FC-Logo_RGB_INV-BL_100-1080.svg", + "dark_css_variables": { + "color-brand-content": "#a9d2b6", + "color-brand-primary": "#a9d2b6", + "color-highlight-on-target": "#666", + "color-headings": "#fff", + }, + "light_logo": "RZ_FC-Logo_RGB_100-1080.svg", + "light_css_variables": { + "color-brand-content": "#52a46c", + "color-brand-primary": "#52a46c", + "color-highlight-on-target": "#f2f5f8", + "color-headings": "#002855", + "font-stack": "Fira Sans, Helvetica, Arial, sans-serif", + }, +} # The name for this set of Sphinx documents. If None, it defaults to # " v documentation". @@ -48,7 +66,7 @@ # The name of an image file (relative to this directory) to place at the top # of the sidebar. -html_logo = "images/flying-circus-logo.png" +# html_logo = "images/flying-circus-logo.png" # The name of an image file (within the static path) to use as favicon of the # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 diff --git a/doc/src/docker.md b/doc/src/docker.md index 24e1c2c95..70f7aa828 100644 --- a/doc/src/docker.md +++ b/doc/src/docker.md @@ -39,9 +39,9 @@ Currently, docker is using the `overlay2` storage driver for new installations. For existing installations, Docker auto-detects the storage driver if not configured explicitly. -Older versions of docker (NixOS 15.09) used the `devicemapper` storage driver which has been deprecated for some time. It will be removed in a future version of Docker. +Older versions of docker (NixOS 15.09) used the `devicemapper` storage driver which has been deprecated for some time. It will be removed in version 25 of Docker. -On 23.11, docker refuses to start if it detects `devicemapper` and is not explicitly configured to use it. You can still choose to continue using `devicemapper` or migrate to `overlay2`. +On 24.05, docker refuses to start if it detects `devicemapper` and is not explicitly configured to use it. You can still choose to continue using `devicemapper` or migrate to `overlay2`. To find out which storage driver Docker is using, run as service user: @@ -53,6 +53,13 @@ Docker also logs warnings to the journal on startup if it is using `devicemapper ### Continue using devicemapper +:::{warning} +As Docker 25 has removed the *devicemapper* backend, it is now clear that storage driver +migration has to happen. We expect that Docker >= 25 might become the new default in the next +platform release 24.11, so be prepared to have a migration plan for all containers that need +to persist until then. +::: + Add {ref}`custom NixOS config ` like: ```nix diff --git a/doc/src/fc_collect_garbage_userscan.md b/doc/src/fc_collect_garbage_userscan.md index b397d5a87..797083b6b 100644 --- a/doc/src/fc_collect_garbage_userscan.md +++ b/doc/src/fc_collect_garbage_userscan.md @@ -93,6 +93,11 @@ Currently, the following paths are ignored: **/journal/ **/lucene/ **/solr/data/ +# Very big, has misleading store paths which shouldn't be registered. +**/nixpkgs*/ +# If we missed a nixpkgs directory: test files from this directory trip +# userscan over as they contain store paths which are too long on purpose. +**/pkgs/test/make-binary-wrapper/* # Files in sub-directories to ignore (anywhere in the home directory) **/.local/share/fish/fish_history **/diagnostic.data/metrics.* diff --git a/doc/src/lamp.md b/doc/src/lamp.md index f8d204d43..bcba741e0 100644 --- a/doc/src/lamp.md +++ b/doc/src/lamp.md @@ -227,15 +227,6 @@ know what you are doing. ;) ) For more information about PHP packaging on Nix, refer to the [PHP section of the Nixpkgs manual](https://nixos.org/manual/nixpkgs/stable/#sec-php). -### `flyingcircus.roles.lamp.tideways_api_key` (optional) - -If you have an account with tideways.com then you can quickly enable the -tideways profiler for your application by setting the API key here: - -```Nix -flyingcircus.roles.lamp.tideways_api_key = "my-api-key"; -``` - ### `flyingcircus.roles.lamp.php_ini` (optional) We deliver a production-tested PHP configuration that you can extend by placing @@ -277,17 +268,6 @@ The Apache server listens on the {external+doc:ref}`srv interface " >> /etc/local/lamp/php.ini -$ sudo fc-manage -b -``` - ## Logging Apache logs are available in {file}`/var/log/httpd`. diff --git a/doc/src/local.md b/doc/src/local.md index 24f530a3a..b4d2dfd92 100644 --- a/doc/src/local.md +++ b/doc/src/local.md @@ -83,6 +83,6 @@ Run `sudo fc-manage -b` to activate the changes (**may restart services!**). For more information about writing NixOS modules, refer to the [NixOS manual](https://nixos.org/nixos/manual/index.html#sec-writing-modules) -Look up NixOS options here, with channel *23.11* selected: +Look up NixOS options here, with channel *24.05* selected: [https://nixos.org/nixos/options.html](https://nixos.org/nixos/options.html) diff --git a/doc/src/mailserver.md b/doc/src/mailserver.md index 84d71a054..3345b5717 100644 --- a/doc/src/mailserver.md +++ b/doc/src/mailserver.md @@ -13,9 +13,6 @@ spam control. User accounts can be created/modified dynamically. There is, however, no default mechanism for user management besides text files. -```{contents} -``` - ## Which components are included? The main ingredients of this role are [Postfix] for mail delivery, [Dovecot] as diff --git a/doc/src/mongodb.md b/doc/src/mongodb.md index ece802ef8..0b3f57e35 100644 --- a/doc/src/mongodb.md +++ b/doc/src/mongodb.md @@ -5,7 +5,7 @@ :::{warning} Platform support for MongoDB will be discontinued. The supported MongoDB versions are outdated and are only provided for the purpose of upgrading -older machines to 23.11. +older machines to 24.05. New projects should not use MongoDB. As a replacement, we offer a {ref}`FerretDB role ` which is currently in beta. diff --git a/doc/src/mysql.md b/doc/src/mysql.md index 38269f0db..dc4688d77 100644 --- a/doc/src/mysql.md +++ b/doc/src/mysql.md @@ -4,14 +4,30 @@ This component sets up a managed instance of the MySQL database server. +We use the [Percona Distribution for MySQL](https://percona.com/software/mysql-database) +which provides useful improvements over the standard Oracle MySQL/MariaDB implementations. + +(nixos-mysql-versions)= + +## Supported versions + There's a role for each supported major version, currently: - mysql57: Percona 5.7.x (End-of-life) -- percona80: Percona 8.0.x -- percona81: Percona 8.1.x - -We use the [Percona Distribution for MySQL](https://percona.com/software/mysql-database) -which provides useful improvements over the standard Oracle MySQL/MariaDB implementations. +- percona80: Percona 8.0.x (*LTS* release) +- percona83: Percona 8.3.x (*Innovation* release) + +Percona and MySQL currently follow a [two-fold release model](https://www.percona.com/blog/lts-and-innovation-releases-for-percona-server-for-mysql/) +and provide support for 2 releases in parallel: + +- *LTS (recommended)*: These long-term support releases are supported throughout the full release life-time + of this NixOS platform release and only receive minor bug and security fixes. +- *Innovation*: A new innovation release is made roughly each quarter of a year, + containing new features and potentially breaking changes.\ + Please note that these releases won't receive any further upstream support once the successor + is out. Our platform will keep each Innovation release made during the release life-time + available, enabling you to update at your own pace. But we won't backport changes from + newer Percona Innovation releases. ## Configuration diff --git a/doc/src/opensearch.md b/doc/src/opensearch.md index 8d3aa2741..d53437f7a 100644 --- a/doc/src/opensearch.md +++ b/doc/src/opensearch.md @@ -2,7 +2,7 @@ # OpenSearch -Managed instance of [OpenSearch](https://opensearch.org) in version 2.11.x. +Managed instance of [OpenSearch](https://opensearch.org) in version 2.14.x. ## Interaction @@ -141,11 +141,11 @@ The current upgrade path is: - On 22.11, switch from Elasticsearch 6 to 7 and reindex. - Migrate from Elasticsearch 7 to OpenSearch. -- Upgrade the VM to 23.11 which also upgrades OpenSearch. +- Upgrade the VM to 24.05 which also upgrades OpenSearch. See the [22.11 OpenSearch role docs](https://doc.flyingcircus.io/roles/fc-22.11-production/opensearch.html#migrate-upgrade-from-elasticsearch) for the migration process. -We will provide Elasticsearch roles on 23.11 in the future to allow upgrading the VM first +We will provide Elasticsearch roles on 24.05 in the future to allow upgrading the VM first while keeping the same ES versions. You can migrate to OpenSearch later. ## Monitoring diff --git a/doc/src/rabbitmq.md b/doc/src/rabbitmq.md index 5f24b9db3..50cff68b3 100644 --- a/doc/src/rabbitmq.md +++ b/doc/src/rabbitmq.md @@ -39,7 +39,7 @@ sudo -u rabbitmq rabbitmqctl enable_feature_flag all To be able to upgrade NixOS 20.09 machines using the `rabbitmq36_5` role, we provide a way to keep the unchanged rabbitmq service running after the system upgrade. This conserves the specific rabbitmq config for the machine and -cannot be used on new 23.11 machines. +cannot be used on new 24.05 machines. The upgrade process starts with generating Nix config on the running machine. Put the generated config in {file}`/etc/local/nixos/rabbitmq365-frozen.nix`. @@ -50,20 +50,20 @@ service=$(realpath /etc/systemd/system/rabbitmq.service) storePath=${service%%/rabbitmq.service} cat <`, {ref}`mongodb42 ` -- Removed packages: `nodejs_14`, `nodejs_16`, `wkhtmltopdf`, `wkhtmltopdf_0_12_5`, `wkhtmltopdf_0_12_6` +- New roles: {ref}`percona83 ` +- Removed roles: {ref}`percona81 ` +- Removed packages: - Roles affected by significant breaking changes: - {ref}`docker `, - {ref}`postgresql15 `, - {ref}`rabbitmq ` ## Why upgrade? Security @@ -33,7 +31,7 @@ We do back-ports for critical security issues but this may take longer in some cases and less important security fixes will not be back-ported most of the time. NixOS provides regular security updates for about one month after the release. -Upstream support for 23.11 ends on **2024-06-30**. +Upstream support for 24.05 ends on **2024-12-31**. New platform features are always developed for the current stable platform version and only critical bug fixes are back-ported to older versions. @@ -77,7 +75,7 @@ also subscribe to updates. ### Upgrade to the next platform version We recommend upgrading platform versions one at a time without skipping -versions. Here we assume that you are upgrading from the 23.05 platform. +versions. Here we assume that you are upgrading from the 23.11 platform. Direct upgrades from older versions are possible in principle, but we cannot reliably test all combinations for all roles and custom configuration also @@ -111,118 +109,31 @@ time-window. ## Significant breaking changes -These changes often require action before the upgrade. Please review the -following common breaking changes and role-specific notes below. +(nixos-upgrade-percona)= -(nixos-upgrade-docker)= +### Percona/ MySQL -### Docker +Our Percona roles now reflect the upstream two-fold release model of the Percona +and Oracle MySQL projects of providing both an *LTS* release and a more short-lived +*Innovation* release in parallel. \ +We still recommend using the LTS `percona80` for most use cases, see +{ref}`nixos-mysql-versions` for details. -The deprecated `devicemapper` storage driver must be enabled explicitly now or -Docker won't start. This problem only affects old machines which already used -Docker on NixOS 15.09. +### K3S -:::{warning} -Before upgrading, check the current storage driver and add the recommended -config, if needed, to avoid downtime. -::: - -See {ref}`nixos-docker-storage-driver` for details. - - -(nixos-upgrade-postgresql)= - -### PostgreSQL - -- PostgreSQL 11 is not supported anymore as it reached its end of life. - Upgrade to at least version 12 or preferably 15 as described in - {ref}`nixos-postgresql-major-upgrade`. -- `services.postgresql.ensurePermissions` has been deprecated in favor of - `services.postgresql.ensureUsers.*.ensureDBOwnership` which simplifies the - setup of database owned by a certain system user in local database - contexts (which make use of peer authentication via UNIX sockets), - migration guidelines were provided in the NixOS manual, please refer to - them if you are affected by a PostgreSQL 15 changing the way `GRANT ALL - PRIVILEGES` is working. `services.postgresql.ensurePermissions` will be - removed in 24.05. - -(nixos-upgrade-mongodb)= - -### MongoDB - -`mongodb42` role and package have been removed. Machines that use MongoDB -should stay on 23.05 for now. We will bring back older MongoDB versions(up to -and including 4.2) for upgrading purposes only. As a long-term solution we -are evaluating [FerretDB](https://www.ferretdb.com/) which builds on -PostgreSQL and is compatible to MongoDB for many use cases. - -(nixos-upgrade-rabbitmq)= - -### RabbitMQ - -`rabbitmq` is upgraded to 3.12. Before upgrading to NixOS 23.11, make sure that all -[Feature Flags](https://www.rabbitmq.com/feature-flags.html) are enabled. -3.12 requires **all** flags to be enabled or it won't start. - -If all nodes in a cluster are the same version (3.11 on NixOS 23.05), -just enable all feature flags: +TODO details about used package version depending on NixOS state release, upgrade path -```shell -sudo -u rabbitmq rabbitmqctl enable_feature_flag all -``` +### ... ## Other notable changes -- `python3` now defaults to Python 3.11. -- PHP now defaults to PHP 8.2, updated from 8.1. When using the `lamp` role, - the default package changed from `lamp_php80` to `lamp_php82`. -- Upstream NixOS dropped support for PHP 8.0 as it is end-of-life. It is still - useable on our platform but users should upgrade as soon as possible. -- `nodejs_14` and `nodejs_16` packages have been removed. -- Docker now defaults to version 24. -- `wkhtmltopdf` packages have been removed. They require a Qt version which - has been unsupported for many years and wkhtmltopdf didn't get updates in a - long time. -- Certificate generation via `security.acme` (used by the webgateway role) now - limits the concurrent number of running certificate renewals and generation - jobs, to avoid spiking resource usage when processing many certificates at - once. The limit defaults to *5* and can be adjusted via - `maxConcurrentRenewals`. Setting it to *0* disables the limits altogether. -- `services.github-runner` / `services.github-runners.` gained the - option `nodeRuntimes`. The option defaults to `[ "node20" ]`, i.e., the - service supports Node.js 20 GitHub Actions only. The list of Node.js - versions accepted by `nodeRuntimes` tracks the versions the upstream GitHub - Actions runner supports. +- ... +- `lamp` roles: Platform integration for the application profiler has been dropped, the respective NixOS options are not available anymore. +- TODO php packages: new versions, dropped versions? - For more details, see the - [release notes of NixOS 23.11](https://nixos.org/manual/nixos/stable/release-notes.html#sec-release-23.11-notable-changes). + [release notes of NixOS 24.05](https://nixos.org/manual/nixos/stable/release-notes.html#sec-release-24.05-notable-changes). ## Significant package updates -- curl: 8.1 -> 8.4 -- docker: 20.10 -> 24.0 -- docker-compose: 2.18 -> 2.23 -- git: 2.40 -> 2.42 -- glibc: 2.37 -> 2.38 -- grafana: 9.5 -> 10.2 -- haproxy: 2.7 -> 2.8 -- k3s: 1.26 -> 1.27 -- keycloak: 21.1 -> 22.0 -- kubernetes-helm: 3.11 -> 3.13 -- mastodon: 4.1 -> 4.2 -- nginxMainline: 1.24 -> 1.25 -- nix: 2.13 -> 2.18 -- opensearch: 2.6 -> 2.11 -- opensearch-dashboards: 2.6 -> 2.11 -- openssh: 9.3 -> 9.5 -- phpPackages.composer: 2.5 -> 2.6 -- podman: 4.5 -> 4.7 -- poetry: 1.4 -> 1.7 -- powerdns: 4.7 -> 4.8 -- prometheus: 2.44 -> 2.48 -- redis: 7.0 -> 7.2 -- sudo: 1.9.13p3 -> 1.9.15p2 -- systemd: 253 -> 254 -- util-linux: 2.38 -> 2.39 -- varnish: 7.2 -> 7.4 -- zlib: 1.2.13 -> 1.3 +- ... diff --git a/doc/src/webgateway.md b/doc/src/webgateway.md index 64631f78c..697d4f530 100644 --- a/doc/src/webgateway.md +++ b/doc/src/webgateway.md @@ -6,15 +6,10 @@ This role provides a stack of components that enables you to serve a web application via HTTP. In addition, you can do load balancing and configure failover support. -```{contents} Table of Contents -:local: true -:depth: 2 -``` - ## Versions -- HAProxy: 2.8.x -- Nginx: 1.24.x +- HAProxy: 2.9.x +- Nginx: 1.26.x ## Role architecture @@ -266,7 +261,7 @@ This enables the following TLS 1.2 ciphers: The DH param file is located at /var/lib/dhparams/nginx.pem. This path can be referenced from Nix code by `security.dhparams.params.nginx.path` as shown in the config example above. -The [services.nginx.sslCiphers](https://search.nixos.org/options?channel=23.11&show=services.nginx.sslCiphers&from=0&size=50&sort=relevance&query=sslCiphers) +The [services.nginx.sslCiphers](https://search.nixos.org/options?channel=24.05&show=services.nginx.sslCiphers&from=0&size=50&sort=relevance&query=sslCiphers) option can be used to change the cipher list. If you enable weaker ciphers, you should also set `services.nginx.legacyTlsSettings` to true @@ -319,7 +314,7 @@ $ journalctl --since -1h -u nginx Starting with NixOS 23.05, nginx uses a version of `libxcrypt` which only supports algorithms marked as [`strong`](https://github.com/besser82/libxcrypt/blob/v4.4.33/lib/hashes.conf#L48). You will encounter errors when password files for HTTP basic auth use algorithms like MD5 (hash prefix`$1$`) and SHA256 (`$5$`). Password hashes using these algorithms should be replaced as soon as possible. -If you still need them on 23.05/23.11, use the Nginx package which still supports all algorithms: +If you still need them on 24.05, use the Nginx package which still supports all algorithms: ~~~ # /etc/local/nixos/nginx-legacy-crypt.nix diff --git a/flake.lock b/flake.lock index 222497e11..924ca6f4f 100644 --- a/flake.lock +++ b/flake.lock @@ -57,11 +57,11 @@ "pre-commit-hooks": "pre-commit-hooks" }, "locked": { - "lastModified": 1716772813, - "narHash": "sha256-PLQ5Ap2BJ/EnLTY8KybwuOHDveVaH7Fvh+ItXzLL38M=", + "lastModified": 1719323427, + "narHash": "sha256-f4ppP2MBPJzkuy/q+PIfyyTWX9OzqgPV1XSphX71tdA=", "owner": "cachix", "repo": "devenv", - "rev": "a1290a186b9420e2c0b21700f300b486ad90dcc9", + "rev": "f810f8d8cb4e674d7e635107510bcbbabaa755a3", "type": "github" }, "original": { @@ -136,11 +136,11 @@ "flake-compat_3": { "flake": false, "locked": { - "lastModified": 1668681692, - "narHash": "sha256-Ht91NGdewz8IQLtWZ9LCeNXMSXHUss+9COoqu6JLmXU=", + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", "owner": "edolstra", "repo": "flake-compat", - "rev": "009399224d5e398d03b22badca40a37ac85412a1", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", "type": "github" }, "original": { @@ -154,11 +154,11 @@ "nixpkgs-lib": "nixpkgs-lib" }, "locked": { - "lastModified": 1715865404, - "narHash": "sha256-/GJvTdTpuDjNn84j82cU6bXztE0MSkdnTWClUCRub78=", + "lastModified": 1717285511, + "narHash": "sha256-iKzJcpdXih14qYVcZ9QC9XuZYnPc6T8YImb6dX166kw=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "8dc45382d5206bd292f9c2768b8058a8fd8311d9", + "rev": "2a55567fcf15b1b1c7ed712a2c6fadaec7412ea8", "type": "github" }, "original": { @@ -309,21 +309,18 @@ "nixpkgs": [ "nixpkgs" ], - "nixpkgs-22_11": [ - "nixpkgs" - ], - "nixpkgs-23_05": [ + "nixpkgs-24_05": [ "nixpkgs" ], "utils": "utils" }, "locked": { "host": "gitlab.flyingcircus.io", - "lastModified": 1711404790, - "narHash": "sha256-8zLBr6NNLZYirvuFL1bVNU8pAzEv3Z0BBjcU8tK6aH8=", + "lastModified": 1717507921, + "narHash": "sha256-T3BiZRyD/jsEYKYO8iBA0kBlAiyC2wnJehWO0Ky5tLU=", "owner": "flyingcircus", "repo": "nixos-mailserver", - "rev": "871e767a7450630ce0180ac68846dcd2d6981ed9", + "rev": "a03b2ae33db2f20961ef29b41e4696db58e0483a", "type": "gitlab" }, "original": { @@ -351,14 +348,14 @@ }, "nixpkgs-lib": { "locked": { - "lastModified": 1714640452, - "narHash": "sha256-QBx10+k6JWz6u7VsohfSw8g8hjdBZEf8CFzXH1/1Z94=", + "lastModified": 1717284937, + "narHash": "sha256-lIbdfCsf8LMFloheeE6N31+BMIeixqyQWbSr2vk79EQ=", "type": "tarball", - "url": "https://github.com/NixOS/nixpkgs/archive/50eb7ecf4cd0a5756d7275c8ba36790e5bd53e33.tar.gz" + "url": "https://github.com/NixOS/nixpkgs/archive/eb9ceca17df2ea50a250b6b27f7bf6ab0186f198.tar.gz" }, "original": { "type": "tarball", - "url": "https://github.com/NixOS/nixpkgs/archive/50eb7ecf4cd0a5756d7275c8ba36790e5bd53e33.tar.gz" + "url": "https://github.com/NixOS/nixpkgs/archive/eb9ceca17df2ea50a250b6b27f7bf6ab0186f198.tar.gz" } }, "nixpkgs-regression": { @@ -411,16 +408,16 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1716842013, - "narHash": "sha256-xe+bTKopBu/5JfCl8B4OIazxLcYG6LoZYkqorqubGNw=", + "lastModified": 1719856949, + "narHash": "sha256-Uajr8Rm4pTsCXXDsttmUwoKfMX/xw8jLCBhkbZQnwCI=", "owner": "flyingcircusio", "repo": "nixpkgs", - "rev": "c7a78f96557f5ab6144173d69866658973a88b41", + "rev": "11e806085509a1517f33fe94019d969b13b323a6", "type": "github" }, "original": { "owner": "flyingcircusio", - "ref": "nixos-23.11", + "ref": "nixos-24.05", "repo": "nixpkgs", "type": "github" } @@ -516,13 +513,31 @@ "type": "github" } }, + "systems_3": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, "utils": { + "inputs": { + "systems": "systems_3" + }, "locked": { - "lastModified": 1605370193, - "narHash": "sha256-YyMTf3URDL/otKdKgtoMChu4vfVL3vCMkRqpGifhUn0=", + "lastModified": 1709126324, + "narHash": "sha256-q6EQdSeUZOG26WelxqkmR7kArjgWCdw5sfJVHPH/7j8=", "owner": "numtide", "repo": "flake-utils", - "rev": "5021eac20303a61fafe17224c087f5519baed54d", + "rev": "d465f4819400de7c8d874d50b982301f28a84605", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 436e70e11..52ace7f96 100644 --- a/flake.nix +++ b/flake.nix @@ -23,15 +23,14 @@ description = "Flying Circus NixOS platform (dev/release tooling)"; inputs = { - nixpkgs.url = "github:flyingcircusio/nixpkgs/nixos-23.11"; + nixpkgs.url = "github:flyingcircusio/nixpkgs/nixos-24.05"; nixos-mailserver = { - url = "gitlab:flyingcircus/nixos-mailserver?host=gitlab.flyingcircus.io"; + url = "gitlab:flyingcircus/nixos-mailserver/23.11?host=gitlab.flyingcircus.io"; inputs.nixpkgs.follows = "nixpkgs"; - inputs.nixpkgs-22_11.follows = "nixpkgs"; - inputs.nixpkgs-23_05.follows = "nixpkgs"; + inputs.nixpkgs-24_05.follows = "nixpkgs"; }; devenv = { - url = "github:cachix/devenv"; + url = "github:cachix/devenv/a1290a186b9420e2c0b21700f300b486ad90dcc9"; inputs.nixpkgs.follows = "nixpkgs"; }; flake-parts.url = "github:hercules-ci/flake-parts"; diff --git a/nix-phps/pkgs/build-support/php/build-composer-project.nix b/nix-phps/pkgs/build-support/php/build-composer-project.nix new file mode 100644 index 000000000..778aa35fa --- /dev/null +++ b/nix-phps/pkgs/build-support/php/build-composer-project.nix @@ -0,0 +1,85 @@ +{ callPackage, stdenvNoCC, lib, writeTextDir, php, makeBinaryWrapper, fetchFromGitHub, fetchurl }: + +let + buildComposerProjectOverride = finalAttrs: previousAttrs: + + let + phpDrv = finalAttrs.php or php; + composer = finalAttrs.composer or phpDrv.packages.composer; + composer-local-repo-plugin = callPackage ./pkgs/composer-local-repo-plugin.nix { }; + in + { + composerLock = previousAttrs.composerLock or null; + composerNoDev = previousAttrs.composerNoDev or true; + composerNoPlugins = previousAttrs.composerNoPlugins or true; + composerNoScripts = previousAttrs.composerNoScripts or true; + composerStrictValidation = previousAttrs.composerStrictValidation or true; + + nativeBuildInputs = (previousAttrs.nativeBuildInputs or [ ]) ++ [ + composer + composer-local-repo-plugin + phpDrv + phpDrv.composerHooks.composerInstallHook + ]; + + buildInputs = (previousAttrs.buildInputs or [ ]) ++ [ + phpDrv + ]; + + patches = previousAttrs.patches or [ ]; + strictDeps = previousAttrs.strictDeps or true; + + # Should we keep these empty phases? + configurePhase = previousAttrs.configurePhase or '' + runHook preConfigure + + runHook postConfigure + ''; + + buildPhase = previousAttrs.buildPhase or '' + runHook preBuild + + runHook postBuild + ''; + + doCheck = previousAttrs.doCheck or true; + checkPhase = previousAttrs.checkPhase or '' + runHook preCheck + + runHook postCheck + ''; + + installPhase = previousAttrs.installPhase or '' + runHook preInstall + + runHook postInstall + ''; + + doInstallCheck = previousAttrs.doInstallCheck or false; + installCheckPhase = previousAttrs.installCheckPhase or '' + runHook preCheckInstall + + runHook postCheckInstall + ''; + + composerRepository = phpDrv.mkComposerRepository { + inherit composer composer-local-repo-plugin; + inherit (finalAttrs) patches pname src vendorHash version; + + composerLock = previousAttrs.composerLock or null; + composerNoDev = previousAttrs.composerNoDev or true; + composerNoPlugins = previousAttrs.composerNoPlugins or true; + composerNoScripts = previousAttrs.composerNoScripts or true; + composerStrictValidation = previousAttrs.composerStrictValidation or true; + }; + + COMPOSER_CACHE_DIR="/dev/null"; + COMPOSER_DISABLE_NETWORK="1"; + COMPOSER_MIRROR_PATH_REPOS="1"; + + meta = previousAttrs.meta or { } // { + platforms = lib.platforms.all; + }; + }; +in +args: (stdenvNoCC.mkDerivation args).overrideAttrs buildComposerProjectOverride diff --git a/nix-phps/pkgs/build-support/php/build-composer-repository.nix b/nix-phps/pkgs/build-support/php/build-composer-repository.nix new file mode 100644 index 000000000..5b31f86e6 --- /dev/null +++ b/nix-phps/pkgs/build-support/php/build-composer-repository.nix @@ -0,0 +1,96 @@ +{ callPackage, stdenvNoCC, lib, writeTextDir, fetchFromGitHub, php }: + +let + mkComposerRepositoryOverride = + /* + We cannot destruct finalAttrs since the attrset below is used to construct it + and Nix currently does not support lazy attribute names. + { + php ? null, + composer ? null, + composerLock ? "composer.lock", + src, + vendorHash, + ... + }@finalAttrs: + */ + finalAttrs: previousAttrs: + + let + phpDrv = finalAttrs.php or php; + composer = finalAttrs.composer or phpDrv.packages.composer; + composer-local-repo-plugin = callPackage ./pkgs/composer-local-repo-plugin.nix { }; + in + assert (lib.assertMsg (previousAttrs ? src) "mkComposerRepository expects src argument."); + assert (lib.assertMsg (previousAttrs ? vendorHash) "mkComposerRepository expects vendorHash argument."); + assert (lib.assertMsg (previousAttrs ? version) "mkComposerRepository expects version argument."); + assert (lib.assertMsg (previousAttrs ? pname) "mkComposerRepository expects pname argument."); + assert (lib.assertMsg (previousAttrs ? composerNoDev) "mkComposerRepository expects composerNoDev argument."); + assert (lib.assertMsg (previousAttrs ? composerNoPlugins) "mkComposerRepository expects composerNoPlugins argument."); + assert (lib.assertMsg (previousAttrs ? composerNoScripts) "mkComposerRepository expects composerNoScripts argument."); + { + composerNoDev = previousAttrs.composerNoDev or true; + composerNoPlugins = previousAttrs.composerNoPlugins or true; + composerNoScripts = previousAttrs.composerNoScripts or true; + composerStrictValidation = previousAttrs.composerStrictValidation or true; + + name = "${previousAttrs.pname}-${previousAttrs.version}-composer-repository"; + + # See https://github.com/NixOS/nix/issues/6660 + dontPatchShebangs = previousAttrs.dontPatchShebangs or true; + + nativeBuildInputs = (previousAttrs.nativeBuildInputs or [ ]) ++ [ + composer + composer-local-repo-plugin + phpDrv + phpDrv.composerHooks.composerRepositoryHook + ]; + + buildInputs = previousAttrs.buildInputs or [ ]; + + strictDeps = previousAttrs.strictDeps or true; + + # Should we keep these empty phases? + configurePhase = previousAttrs.configurePhase or '' + runHook preConfigure + + runHook postConfigure + ''; + + buildPhase = previousAttrs.buildPhase or '' + runHook preBuild + + runHook postBuild + ''; + + doCheck = previousAttrs.doCheck or true; + checkPhase = previousAttrs.checkPhase or '' + runHook preCheck + + runHook postCheck + ''; + + installPhase = previousAttrs.installPhase or '' + runHook preInstall + + runHook postInstall + ''; + + doInstallCheck = previousAttrs.doInstallCheck or false; + installCheckPhase = previousAttrs.installCheckPhase or '' + runHook preCheckInstall + + runHook postCheckInstall + ''; + + COMPOSER_CACHE_DIR = "/dev/null"; + COMPOSER_MIRROR_PATH_REPOS = "1"; + COMPOSER_HTACCESS_PROTECT = "0"; + COMPOSER_DISABLE_NETWORK = "0"; + + outputHashMode = "recursive"; + outputHashAlgo = if (finalAttrs ? vendorHash && finalAttrs.vendorHash != "") then null else "sha256"; + outputHash = finalAttrs.vendorHash or ""; + }; +in +args: (stdenvNoCC.mkDerivation args).overrideAttrs mkComposerRepositoryOverride diff --git a/nix-phps/pkgs/build-support/build-pecl.nix b/nix-phps/pkgs/build-support/php/build-pecl.nix similarity index 91% rename from nix-phps/pkgs/build-support/build-pecl.nix rename to nix-phps/pkgs/build-support/php/build-pecl.nix index 389447e06..6f38a668f 100644 --- a/nix-phps/pkgs/build-support/build-pecl.nix +++ b/nix-phps/pkgs/build-support/php/build-pecl.nix @@ -8,10 +8,9 @@ , nativeBuildInputs ? [ ] , postPhpize ? "" , makeFlags ? [ ] -, src ? fetchurl { +, src ? fetchurl ({ url = "https://pecl.php.net/get/${pname}-${version}.tgz"; - inherit (args) sha256; - } + } // lib.filterAttrs (attrName: _: lib.elem attrName [ "sha256" "hash" ]) args) , passthru ? { } , ... }@args: diff --git a/nix-phps/pkgs/build-support/php/hooks/composer-install-hook.sh b/nix-phps/pkgs/build-support/php/hooks/composer-install-hook.sh new file mode 100644 index 000000000..6e7fb5d75 --- /dev/null +++ b/nix-phps/pkgs/build-support/php/hooks/composer-install-hook.sh @@ -0,0 +1,164 @@ +declare composerRepository +declare version +declare composerNoDev +declare composerNoPlugins +declare composerNoScripts + +preConfigureHooks+=(composerInstallConfigureHook) +preBuildHooks+=(composerInstallBuildHook) +preCheckHooks+=(composerInstallCheckHook) +preInstallHooks+=(composerInstallInstallHook) + +composerInstallConfigureHook() { + echo "Executing composerInstallConfigureHook" + + if [[ ! -e "${composerRepository}" ]]; then + echo "No local composer repository found." + exit 1 + fi + + if [[ -e "$composerLock" ]]; then + cp "$composerLock" composer.lock + fi + + if [[ ! -f "composer.lock" ]]; then + composer \ + --no-ansi \ + --no-install \ + --no-interaction \ + ${composerNoDev:+--no-dev} \ + ${composerNoPlugins:+--no-plugins} \ + ${composerNoScripts:+--no-scripts} \ + update + + mkdir -p $out + cp composer.lock $out/ + + echo + echo -e "\e[31mERROR: No composer.lock found\e[0m" + echo + echo -e '\e[31mNo composer.lock file found, consider adding one to your repository to ensure reproducible builds.\e[0m' + echo -e "\e[31mIn the meantime, a composer.lock file has been generated for you in $out/composer.lock\e[0m" + echo + echo -e '\e[31mTo fix the issue:\e[0m' + echo -e "\e[31m1. Copy the composer.lock file from $out/composer.lock to the project's source:\e[0m" + echo -e "\e[31m cp $out/composer.lock \e[0m" + echo -e '\e[31m2. Add the composerLock attribute, pointing to the copied composer.lock file:\e[0m' + echo -e '\e[31m composerLock = ./composer.lock;\e[0m' + echo + + exit 1 + fi + + echo "Validating consistency between composer.lock and ${composerRepository}/composer.lock" + if ! @cmp@ -s "composer.lock" "${composerRepository}/composer.lock"; then + echo + echo -e "\e[31mERROR: vendorHash is out of date\e[0m" + echo + echo -e "\e[31mcomposer.lock is not the same in $composerRepository\e[0m" + echo + echo -e "\e[31mTo fix the issue:\e[0m" + echo -e '\e[31m1. Set vendorHash to an empty string: `vendorHash = "";`\e[0m' + echo -e '\e[31m2. Build the derivation and wait for it to fail with a hash mismatch\e[0m' + echo -e '\e[31m3. Copy the "got: sha256-..." value back into the vendorHash field\e[0m' + echo -e '\e[31m You should have: vendorHash = "sha256-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX=";\e[0m' + echo + + exit 1 + fi + + chmod +w composer.json composer.lock + + echo "Finished composerInstallConfigureHook" +} + +composerInstallBuildHook() { + echo "Executing composerInstallBuildHook" + + # Since this file cannot be generated in the composer-repository-hook.sh + # because the file contains hardcoded nix store paths, we generate it here. + composer-local-repo-plugin --no-ansi build-local-repo -m "${composerRepository}" . + + # Remove all the repositories of type "composer" and "vcs" + # from the composer.json file. + jq -r -c 'del(try .repositories[] | select(.type == "composer" or .type == "vcs"))' composer.json | sponge composer.json + + # Configure composer to disable packagist and avoid using the network. + composer config repo.packagist false + # Configure composer to use the local repository. + composer config repo.composer composer file://"$PWD"/packages.json + + # Since the composer.json file has been modified in the previous step, the + # composer.lock file needs to be updated. + COMPOSER_ROOT_VERSION="${version}" \ + composer \ + --lock \ + --no-ansi \ + --no-install \ + --no-interaction \ + ${composerNoDev:+--no-dev} \ + ${composerNoPlugins:+--no-plugins} \ + ${composerNoScripts:+--no-scripts} \ + update + + echo "Finished composerInstallBuildHook" +} + +composerInstallCheckHook() { + echo "Executing composerInstallCheckHook" + + if ! composer validate --strict --no-ansi --no-interaction --quiet; then + if [ ! -z "${composerStrictValidation-}" ]; then + echo + echo -e "\e[31mERROR: composer files validation failed\e[0m" + echo + echo -e '\e[31mThe validation of the composer.json and composer.lock failed.\e[0m' + echo -e '\e[31mMake sure that the file composer.lock is consistent with composer.json.\e[0m' + echo + exit 1 + else + echo + echo -e "\e[33mWARNING: composer files validation failed\e[0m" + echo + echo -e '\e[33mThe validation of the composer.json and composer.lock failed.\e[0m' + echo -e '\e[33mMake sure that the file composer.lock is consistent with composer.json.\e[0m' + echo + echo -e '\e[33mThis check is not blocking, but it is recommended to fix the issue.\e[0m' + echo + fi + fi + + echo "Finished composerInstallCheckHook" +} + +composerInstallInstallHook() { + echo "Executing composerInstallInstallHook" + + # Finally, run `composer install` to install the dependencies and generate + # the autoloader. + # The COMPOSER_ROOT_VERSION environment variable is needed only for + # vimeo/psalm. + COMPOSER_ROOT_VERSION="${version}" \ + composer \ + --no-ansi \ + --no-interaction \ + ${composerNoDev:+--no-dev} \ + ${composerNoPlugins:+--no-plugins} \ + ${composerNoScripts:+--no-scripts} \ + install + + # Remove packages.json, we don't need it in the store. + rm packages.json + + # Copy the relevant files only in the store. + mkdir -p "$out"/share/php/"${pname}" + cp -r . "$out"/share/php/"${pname}"/ + + # Create symlinks for the binaries. + jq -r -c 'try (.bin[] | select(test(".bat$")? | not) )' composer.json | while read -r bin; do + mkdir -p "$out"/share/php/"${pname}" "$out"/bin + makeWrapper "$out"/share/php/"${pname}"/"$bin" "$out"/bin/"$(basename "$bin")" + done + + echo "Finished composerInstallInstallHook" +} diff --git a/nix-phps/pkgs/build-support/php/hooks/composer-repository-hook.sh b/nix-phps/pkgs/build-support/php/hooks/composer-repository-hook.sh new file mode 100644 index 000000000..03783d9d6 --- /dev/null +++ b/nix-phps/pkgs/build-support/php/hooks/composer-repository-hook.sh @@ -0,0 +1,105 @@ +declare composerLock +declare version +declare composerNoDev +declare composerNoPlugins +declare composerNoScripts +declare composerStrictValidation + +preConfigureHooks+=(composerRepositoryConfigureHook) +preBuildHooks+=(composerRepositoryBuildHook) +preCheckHooks+=(composerRepositoryCheckHook) +preInstallHooks+=(composerRepositoryInstallHook) + +composerRepositoryConfigureHook() { + echo "Executing composerRepositoryConfigureHook" + + if [[ -e "$composerLock" ]]; then + cp $composerLock composer.lock + fi + + if [[ ! -f "composer.lock" ]]; then + COMPOSER_ROOT_VERSION="${version}" \ + composer \ + --no-ansi \ + --no-install \ + --no-interaction \ + ${composerNoDev:+--no-dev} \ + ${composerNoPlugins:+--no-plugins} \ + ${composerNoScripts:+--no-scripts} \ + update + + mkdir -p $out + cp composer.lock $out/ + + echo + echo -e "\e[31mERROR: No composer.lock found\e[0m" + echo + echo -e '\e[31mNo composer.lock file found, consider adding one to your repository to ensure reproducible builds.\e[0m' + echo -e "\e[31mIn the meantime, a composer.lock file has been generated for you in $out/composer.lock\e[0m" + echo + echo -e '\e[31mTo fix the issue:\e[0m' + echo -e "\e[31m1. Copy the composer.lock file from $out/composer.lock to the project's source:\e[0m" + echo -e "\e[31m cp $out/composer.lock \e[0m" + echo -e '\e[31m2. Add the composerLock attribute, pointing to the copied composer.lock file:\e[0m' + echo -e '\e[31m composerLock = ./composer.lock;\e[0m' + echo + + exit 1 + fi + + echo "Finished composerRepositoryConfigureHook" +} + +composerRepositoryBuildHook() { + echo "Executing composerRepositoryBuildHook" + + mkdir -p repository + + # Build the local composer repository + # The command 'build-local-repo' is provided by the Composer plugin + # nix-community/composer-local-repo-plugin. + composer-local-repo-plugin --no-ansi build-local-repo ${composerNoDev:+--no-dev} -r repository + + echo "Finished composerRepositoryBuildHook" +} + +composerRepositoryCheckHook() { + echo "Executing composerRepositoryCheckHook" + + if ! composer validate --strict --no-ansi --no-interaction --quiet; then + if [ ! -z "${composerStrictValidation-}" ]; then + echo + echo -e "\e[31mERROR: composer files validation failed\e[0m" + echo + echo -e '\e[31mThe validation of the composer.json and composer.lock failed.\e[0m' + echo -e '\e[31mMake sure that the file composer.lock is consistent with composer.json.\e[0m' + echo + exit 1 + else + echo + echo -e "\e[33mWARNING: composer files validation failed\e[0m" + echo + echo -e '\e[33mThe validation of the composer.json and composer.lock failed.\e[0m' + echo -e '\e[33mMake sure that the file composer.lock is consistent with composer.json.\e[0m' + echo + echo -e '\e[33mThis check is not blocking, but it is recommended to fix the issue.\e[0m' + echo + fi + fi + + echo "Finished composerRepositoryCheckHook" +} + +composerRepositoryInstallHook() { + echo "Executing composerRepositoryInstallHook" + + mkdir -p $out + + cp -ar repository/. $out/ + + # Copy the composer.lock files to the output directory, to be able to validate consistency with + # the src composer.lock file where this fixed-output derivation is used + cp composer.lock $out/ + + echo "Finished composerRepositoryInstallHook" +} diff --git a/nix-phps/pkgs/build-support/php/hooks/default.nix b/nix-phps/pkgs/build-support/php/hooks/default.nix new file mode 100644 index 000000000..240ec6407 --- /dev/null +++ b/nix-phps/pkgs/build-support/php/hooks/default.nix @@ -0,0 +1,29 @@ +{ lib +, makeSetupHook +, diffutils +, jq +, moreutils +, makeBinaryWrapper +, cacert +, buildPackages +}: + +{ + composerRepositoryHook = makeSetupHook + { + name = "composer-repository-hook.sh"; + propagatedBuildInputs = [ jq moreutils cacert ]; + substitutions = { }; + } ./composer-repository-hook.sh; + + composerInstallHook = makeSetupHook + { + name = "composer-install-hook.sh"; + propagatedBuildInputs = [ jq makeBinaryWrapper moreutils cacert ]; + substitutions = { + # Specify the stdenv's `diff` by abspath to ensure that the user's build + # inputs do not cause us to find the wrong `diff`. + cmp = "${lib.getBin buildPackages.diffutils}/bin/cmp"; + }; + } ./composer-install-hook.sh; +} diff --git a/nix-phps/pkgs/build-support/php/pkgs/composer-local-repo-plugin.nix b/nix-phps/pkgs/build-support/php/pkgs/composer-local-repo-plugin.nix new file mode 100644 index 000000000..48d05b7a0 --- /dev/null +++ b/nix-phps/pkgs/build-support/php/pkgs/composer-local-repo-plugin.nix @@ -0,0 +1,113 @@ +{ php, callPackage, stdenvNoCC, lib, fetchFromGitHub, makeBinaryWrapper }: + +let + composer = callPackage ./composer-phar.nix { + inherit (php.packages.composer) version pharHash; + }; + + composerKeys = stdenvNoCC.mkDerivation (finalComposerKeysAttrs: { + pname = "composer-keys"; + version = "fa5a62092f33e094073fbda23bbfc7188df3cbc5"; + + src = fetchFromGitHub { + owner = "composer"; + repo = "composer.github.io"; + rev = "${finalComposerKeysAttrs.version}"; + hash = "sha256-3Sfn71LDG1jHwuEIU8iEnV3k6D6QTX7KVIKVaNSuCVE="; + }; + + installPhase = '' + runHook preInstall + + mkdir -p $out + install releases.pub $out/keys.tags.pub + install snapshots.pub $out/keys.dev.pub + + runHook postInstall + ''; + }); +in +stdenvNoCC.mkDerivation (finalAttrs: { + pname = "composer-local-repo-plugin"; + version = "1.0.3"; + + src = fetchFromGitHub { + owner = "nix-community"; + repo = "composer-local-repo-plugin"; + rev = finalAttrs.version; + hash = "sha256-fLJlxcAQ7X28GDK8PVYKxJgTzbspfWxvgRmRK4NZRIA="; + }; + + COMPOSER_CACHE_DIR = "/dev/null"; + COMPOSER_MIRROR_PATH_REPOS = "1"; + COMPOSER_HTACCESS_PROTECT = "0"; + COMPOSER_DISABLE_NETWORK = "1"; + + nativeBuildInputs = [ + makeBinaryWrapper + ]; + + buildInputs = [ + composer + ]; + + configurePhase = '' + runHook preConfigure + + export COMPOSER_HOME=${placeholder "out"} + + runHook postConfigure + ''; + + buildPhase = '' + runHook preBuild + + # Configure composer globally + composer global init --quiet --no-interaction --no-ansi \ + --name="nixos/composer" \ + --homepage "https://nixos.org/" \ + --description "Composer with nix-community/composer-local-repo-plugin" \ + --license "MIT" + + composer global config --quiet minimum-stability dev + composer global config --quiet prefer-stable true + composer global config --quiet apcu-autoloader false + composer global config --quiet allow-plugins.nix-community/composer-local-repo-plugin true + composer global config --quiet repo.packagist false + composer global config --quiet repo.plugin path $src + + # Install the local repository plugin + composer global require --quiet --no-ansi --no-interaction nix-community/composer-local-repo-plugin + + runHook postBuild + ''; + + checkPhase = '' + runHook preCheck + + composer global validate --no-ansi + composer global show --no-ansi nix-community/composer-local-repo-plugin + + runHook postCheck + ''; + + installPhase = '' + runHook preInstall + + mkdir -p $out + cp -ar ${composerKeys}/* $out/ + + makeWrapper ${composer}/bin/composer $out/bin/composer-local-repo-plugin \ + --prefix COMPOSER_HOME : $out + + runHook postInstall + ''; + + meta = { + description = "Composer local repo plugin for Composer"; + homepage = "https://github.com/nix-community/composer-local-repo-plugin"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ drupol ]; + platforms = lib.platforms.all; + }; +}) diff --git a/nix-phps/pkgs/build-support/php/pkgs/composer-phar.nix b/nix-phps/pkgs/build-support/php/pkgs/composer-phar.nix new file mode 100644 index 000000000..f281334ab --- /dev/null +++ b/nix-phps/pkgs/build-support/php/pkgs/composer-phar.nix @@ -0,0 +1,50 @@ +{ + _7zz + , cacert + , curl + , fetchurl + , git + , lib + , makeBinaryWrapper + , php + , stdenvNoCC + , unzip + , xz + , version + , pharHash +}: + +stdenvNoCC.mkDerivation (finalAttrs: { + pname = "composer-phar"; + inherit version; + + src = fetchurl { + url = "https://github.com/composer/composer/releases/download/${finalAttrs.version}/composer.phar"; + hash = pharHash; + }; + + dontUnpack = true; + + nativeBuildInputs = [ makeBinaryWrapper ]; + + installPhase = '' + runHook preInstall + + mkdir -p $out/bin + install -D $src $out/libexec/composer/composer.phar + makeWrapper ${php}/bin/php $out/bin/composer \ + --add-flags "$out/libexec/composer/composer.phar" \ + --prefix PATH : ${lib.makeBinPath [ _7zz cacert curl git unzip xz ]} + + runHook postInstall + ''; + + meta = { + changelog = "https://github.com/composer/composer/releases/tag/${finalAttrs.version}"; + description = "Dependency Manager for PHP, shipped from the PHAR file"; + homepage = "https://getcomposer.org/"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ drupol ]; + platforms = lib.platforms.all; + }; +}) diff --git a/nix-phps/pkgs/composer/1.x.nix b/nix-phps/pkgs/composer/1.x.nix index 5d561f86f..0d223ae7e 100644 --- a/nix-phps/pkgs/composer/1.x.nix +++ b/nix-phps/pkgs/composer/1.x.nix @@ -1,14 +1,14 @@ { mkDerivation, fetchurl, makeWrapper, unzip, lib, php }: let pname = "composer"; - version = "1.10.26"; + version = "1.10.27"; in mkDerivation { inherit pname version; src = fetchurl { url = "https://getcomposer.org/download/${version}/composer.phar"; - sha256 = "sha256-y/4fhSdsV6vkZNk0UD2TWqITSUrChidcjfq/qR49vcQ="; + hash = "sha256-Iw0o+ynzxsB6sjgjkL7zE+Nt4Xhosr0jsuBwVUyuI9I="; }; dontUnpack = true; diff --git a/nix-phps/pkgs/composer/2.2.nix b/nix-phps/pkgs/composer/2.2.nix index 6a3340f6e..b9b604fe9 100644 --- a/nix-phps/pkgs/composer/2.2.nix +++ b/nix-phps/pkgs/composer/2.2.nix @@ -1,14 +1,14 @@ { mkDerivation, fetchurl, makeWrapper, unzip, lib, php }: let pname = "composer"; - version = "2.2.21"; + version = "2.2.22"; in mkDerivation { inherit pname version; src = fetchurl { url = "https://getcomposer.org/download/${version}/composer.phar"; - sha256 = "UhFYStOa8mcE2p9iCbxdgQSi1XboDOnH7YNo3dd50K8="; + hash = "sha256-fTUAzIyadLR+FBA94VCslcJcoiezn/yJyzqLSVtdsdI="; }; dontUnpack = true; diff --git a/nix-phps/pkgs/development/interpreters/php/8.1.nix b/nix-phps/pkgs/development/interpreters/php/8.1.nix index c05ac442c..ff76b64d7 100644 --- a/nix-phps/pkgs/development/interpreters/php/8.1.nix +++ b/nix-phps/pkgs/development/interpreters/php/8.1.nix @@ -1,11 +1,18 @@ -{ callPackage, ... }@_args: +{ callPackage, fetchpatch, ... }@_args: let - base = callPackage ./generic.nix (_args // { - version = "8.1.22"; - hash = "sha256-mSNU44LGxhjQHtS+Br7qjewxeLFBU99k08jEi4Xp+8I="; + base = callPackage ./generic.nix ((removeAttrs _args [ "fetchpatch" ]) // { + version = "8.1.27"; + hash = "sha256-oV/XPqRPLfMLB9JHhuB9GUiw6j7tC4uEVzXVANwov/E="; + extraPatches = [ + # Fix build with libxml 2.12+. + # Patch from https://github.com/php/php-src/commit/0a39890c967aa57225bb6bdf4821aff7a3a3c082 + (fetchpatch { + url = "https://github.com/php/php-src/commit/0a39890c967aa57225bb6bdf4821aff7a3a3c082.patch"; + hash = "sha256-HvpTL7aXO9gr4glFdhqUWQPrG8TYTlvbNINq33M3zS0="; + }) + ]; }); - in base.withExtensions ({ all, ... }: with all; ([ bcmath diff --git a/nix-phps/pkgs/development/interpreters/php/8.2.nix b/nix-phps/pkgs/development/interpreters/php/8.2.nix index b27d3539e..2d2a705c3 100644 --- a/nix-phps/pkgs/development/interpreters/php/8.2.nix +++ b/nix-phps/pkgs/development/interpreters/php/8.2.nix @@ -2,10 +2,9 @@ let base = callPackage ./generic.nix (_args // { - version = "8.2.8"; - hash = "sha256-mV7UAJx5F8li0xg3oaNljzbUr081e2c8l//b5kA/hRc="; + version = "8.2.15"; + hash = "sha256-UMPiILeqY6hXFiM8kC60TMCkZn7QuDNXIq4jkbE1Xno="; }); - in base.withExtensions ({ all, ... }: with all; ([ bcmath diff --git a/nix-phps/pkgs/development/interpreters/php/8.3.nix b/nix-phps/pkgs/development/interpreters/php/8.3.nix index a12feb9c4..877bde775 100644 --- a/nix-phps/pkgs/development/interpreters/php/8.3.nix +++ b/nix-phps/pkgs/development/interpreters/php/8.3.nix @@ -1,14 +1,9 @@ -{ callPackage, fetchurl, ... }@_args: +{ callPackage, ... }@_args: let - base = (callPackage ./generic.nix (_args // { - version = "8.3.0beta2"; - hash = null; - })).overrideAttrs (oldAttrs: { - src = fetchurl { - url = "https://downloads.php.net/~jakub/php-8.3.0beta2.tar.xz"; - hash = "sha256-ND1OlmSMtBxTE/0qfgy3Cz/gF08eIzydU2W/eKg58wQ="; - }; + base = callPackage ./generic.nix (_args // { + version = "8.3.2"; + hash = "sha256-WCs8g3qNlS7//idKXklwbEOojBYoMMKow1gIn+dEkoQ="; }); in base.withExtensions ({ all, ... }: with all; ([ diff --git a/nix-phps/pkgs/development/interpreters/php/generic.nix b/nix-phps/pkgs/development/interpreters/php/generic.nix index 4a563d4fd..3bea507ad 100644 --- a/nix-phps/pkgs/development/interpreters/php/generic.nix +++ b/nix-phps/pkgs/development/interpreters/php/generic.nix @@ -33,10 +33,12 @@ let , jq , version - , hash + , phpSrc ? null + , hash ? null , extraPatches ? [ ] , packageOverrides ? (final: prev: { }) , phpAttrsOverrides ? (attrs: { }) + , pearInstallPhar ? (callPackage ./install-pear-nozlib-phar.nix { }) # Sapi flags , cgiSupport ? true @@ -51,7 +53,10 @@ let , argon2Support ? true , cgotoSupport ? false , embedSupport ? false + , staticSupport ? false , ipv6Support ? true + , zendSignalsSupport ? true + , zendMaxExecutionTimersSupport ? false , systemdSupport ? lib.meta.availableOn stdenv.hostPlatform systemd , valgrindSupport ? !stdenv.isDarwin && lib.meta.availableOn stdenv.hostPlatform valgrind , ztsSupport ? apxs2Support @@ -85,7 +90,7 @@ let php-packages = (callPackage ../../../top-level/php-packages.nix { phpPackage = phpWithExtensions; - }).overrideScope' packageOverrides; + }).overrideScope packageOverrides; allExtensionFunctions = prevExtensionFunctions ++ [ extensions ]; enabledExtensions = @@ -159,7 +164,7 @@ let nixos = lib.recurseIntoAttrs nixosTests."php${lib.strings.replaceStrings [ "." ] [ "" ] (lib.versions.majorMinor php.version)}"; package = tests.php; }; - inherit (php-packages) extensions buildPecl mkExtension; + inherit (php-packages) extensions buildPecl mkComposerRepository buildComposerProject composerHooks mkExtension; packages = php-packages.tools; meta = php.meta // { outputsToInstall = [ "out" ]; @@ -192,6 +197,11 @@ let mkWithExtensions = prevArgs: prevExtensionFunctions: extensions: mkBuildEnv prevArgs prevExtensionFunctions { inherit extensions; }; + + defaultPhpSrc = fetchurl { + url = "https://www.php.net/distributions/php-${version}.tar.bz2"; + inherit hash; + }; in stdenv.mkDerivation ( let @@ -229,7 +239,6 @@ let # PCRE ++ [ "--with-external-pcre=${pcre2.dev}" ] - # Enable sapis ++ lib.optional (!cgiSupport) "--disable-cgi" ++ lib.optional (!cliSupport) "--disable-cli" @@ -243,11 +252,14 @@ let ++ lib.optional apxs2Support "--with-apxs2=${apacheHttpd.dev}/bin/apxs" ++ lib.optional argon2Support "--with-password-argon2=${libargon2}" ++ lib.optional cgotoSupport "--enable-re2c-cgoto" - ++ lib.optional embedSupport "--enable-embed" + ++ lib.optional embedSupport "--enable-embed${lib.optionalString staticSupport "=static"}" ++ lib.optional (!ipv6Support) "--disable-ipv6" ++ lib.optional systemdSupport "--with-fpm-systemd" ++ lib.optional valgrindSupport "--with-valgrind=${valgrind.dev}" ++ lib.optional ztsSupport "--enable-zts" + ++ lib.optional staticSupport "--enable-static" + ++ lib.optional (!zendSignalsSupport) ["--disable-zend-signals"] + ++ lib.optional zendMaxExecutionTimersSupport "--enable-zend-max-execution-timers" # Sendmail @@ -271,13 +283,22 @@ let ./buildconf --copy --force - if test -f $src/genfiles; then - ./genfiles + if [ -f "scripts/dev/genfiles" ]; then + ./scripts/dev/genfiles fi '' + lib.optionalString stdenv.isDarwin '' substituteInPlace configure --replace "-lstdc++" "-lc++" ''; + # When compiling PHP sources from Github, this file is missing and we + # need to install it ourselves. + # On the other hand, a distribution includes this file by default. + preInstall = '' + if [[ ! -f ./pear/install-pear-nozlib.phar ]]; then + cp ${pearInstallPhar} ./pear/install-pear-nozlib.phar + fi + ''; + postInstall = '' test -d $out/etc || mkdir $out/etc cp php.ini-production $out/etc/php.ini @@ -291,10 +312,7 @@ let $dev/share/man/man1/ ''; - src = fetchurl { - url = "https://www.php.net/distributions/php-${version}.tar.bz2"; - inherit hash; - }; + src = if phpSrc == null then defaultPhpSrc else phpSrc; patches = [ ./fix-paths-php7.patch ] ++ extraPatches; diff --git a/nix-phps/pkgs/development/interpreters/php/install-pear-nozlib-phar.nix b/nix-phps/pkgs/development/interpreters/php/install-pear-nozlib-phar.nix new file mode 100644 index 000000000..9de0ec441 --- /dev/null +++ b/nix-phps/pkgs/development/interpreters/php/install-pear-nozlib-phar.nix @@ -0,0 +1,8 @@ +{ + fetchurl +}: + +fetchurl { + url = "https://github.com/pear/pearweb_phars/raw/v1.10.21/install-pear-nozlib.phar"; + hash = "sha256-UblKVcsm030tNSA6mdeab+h7ZhANNz7MkFf4Z1iigjs="; +} diff --git a/nix-phps/pkgs/development/interpreters/php/skip-sqlite3_bind_bug68849.phpt.patch b/nix-phps/pkgs/development/interpreters/php/skip-sqlite3_bind_bug68849.phpt.patch new file mode 100644 index 000000000..8e208e52d --- /dev/null +++ b/nix-phps/pkgs/development/interpreters/php/skip-sqlite3_bind_bug68849.phpt.patch @@ -0,0 +1,75 @@ +diff --git a/ext/sqlite3/tests/sqlite3_bind_bug68849.phpt b/ext/sqlite3/tests/sqlite3_bind_bug68849.phpt +deleted file mode 100644 +index 6324d079..00000000 +--- a/ext/sqlite3/tests/sqlite3_bind_bug68849.phpt ++++ /dev/null +@@ -1,69 +0,0 @@ +---TEST-- +-Bug #68849 bindValue is not using the right data type +---EXTENSIONS-- +-sqlite3 +---FILE-- +-exec("CREATE TABLE test (a INTEGER, b TEXT, c REAL);" . +- "INSERT INTO test VALUES (1, 'hello', 3.14);" . +- "INSERT INTO test VALUES (3, 'world', 3.15);" . +- "INSERT INTO test VALUES (0, '42', 0.42);" +-); +- +-$s = $db->prepare('SELECT * FROM test WHERE (a+2) = ?;'); +-$s->bindValue(1, 3); +-$r = $s->execute(); +-var_dump($r->fetchArray(SQLITE3_ASSOC)); +- +-$s = $db->prepare('SELECT * FROM test WHERE a = ?;'); +-$s->bindValue(1, true); +-$r = $s->execute(); +-var_dump($r->fetchArray(SQLITE3_ASSOC)); +- +-$s = $db->prepare('SELECT * FROM test WHERE a = ?;'); +-$s->bindValue(1, false); +-$r = $s->execute(); +-var_dump($r->fetchArray(SQLITE3_ASSOC)); +- +-$s = $db->prepare('SELECT * FROM test WHERE c = ?;'); +-$s->bindValue(1, 3.15); +-$r = $s->execute(); +-var_dump($r->fetchArray(SQLITE3_ASSOC)); +- +-?> +---EXPECT-- +-array(3) { +- ["a"]=> +- int(1) +- ["b"]=> +- string(5) "hello" +- ["c"]=> +- float(3.14) +-} +-array(3) { +- ["a"]=> +- int(1) +- ["b"]=> +- string(5) "hello" +- ["c"]=> +- float(3.14) +-} +-array(3) { +- ["a"]=> +- int(0) +- ["b"]=> +- string(2) "42" +- ["c"]=> +- float(0.42) +-} +-array(3) { +- ["a"]=> +- int(3) +- ["b"]=> +- string(5) "world" +- ["c"]=> +- float(3.15) +-} diff --git a/nix-phps/pkgs/development/php-packages/amqp/default.nix b/nix-phps/pkgs/development/php-packages/amqp/default.nix index bc9555531..4d19fd758 100644 --- a/nix-phps/pkgs/development/php-packages/amqp/default.nix +++ b/nix-phps/pkgs/development/php-packages/amqp/default.nix @@ -1,7 +1,7 @@ { buildPecl, lib, rabbitmq-c, fetchFromGitHub }: let - version = "1.11.0"; + version = "2.1.2"; in buildPecl { inherit version; pname = "amqp"; @@ -10,7 +10,7 @@ in buildPecl { owner = "php-amqp"; repo = "php-amqp"; rev = "v${version}"; - sha256 = "sha256-CDhNDk78D15MtljbtyYj8euPnCruLZnc2NEHqXDX8HY="; + sha256 = "sha256-jVD5dq2kgFnprj190W9hnLG+9yPLWm19AjoGBBz6v8c="; }; buildInputs = [ rabbitmq-c ]; diff --git a/nix-phps/pkgs/development/php-packages/apcu/default.nix b/nix-phps/pkgs/development/php-packages/apcu/default.nix index ffb3ef377..9aec7d660 100644 --- a/nix-phps/pkgs/development/php-packages/apcu/default.nix +++ b/nix-phps/pkgs/development/php-packages/apcu/default.nix @@ -1,7 +1,7 @@ { buildPecl, lib, pcre2, fetchFromGitHub, php, fetchpatch }: let - version = "5.1.22"; + version = "5.1.23"; in buildPecl { inherit version; pname = "apcu"; @@ -10,16 +10,9 @@ in buildPecl { owner = "krakjoe"; repo = "apcu"; rev = "v${version}"; - sha256 = "sha256-L4a+/kWT95a1Km+FzFNiAaBw8enU6k4ZiCFRErjj9o8="; + sha256 = "sha256-UDKLLCCnYJj/lCD8ZkkDf2WYZMoIbcP75+0/IXo4vdQ="; }; - patches = lib.optionals (lib.versionAtLeast php.version "8.3") [ - (fetchpatch { - url = "https://github.com/krakjoe/apcu/commit/c9a29161c68c0faf71046e8f03f6a90900023ded.patch"; - hash = "sha256-B0ZKk9TJy2+sYGs7TEX2KxUiOVawIb+RXNgToU1Fz5I="; - }) - ]; - buildInputs = [ pcre2 ]; doCheck = true; checkTarget = "test"; @@ -30,8 +23,8 @@ in buildPecl { meta = with lib; { changelog = "https://github.com/krakjoe/apcu/releases/tag/v${version}"; description = "Userland cache for PHP"; - license = licenses.php301; homepage = "https://pecl.php.net/package/APCu"; + license = licenses.php301; maintainers = teams.php.members; }; } diff --git a/nix-phps/pkgs/development/php-packages/ast/default.nix b/nix-phps/pkgs/development/php-packages/ast/default.nix index 8f94bf925..d04ba25b7 100644 --- a/nix-phps/pkgs/development/php-packages/ast/default.nix +++ b/nix-phps/pkgs/development/php-packages/ast/default.nix @@ -1,7 +1,7 @@ { buildPecl, lib, fetchFromGitHub }: let - version = "1.1.0"; + version = "1.1.1"; in buildPecl { inherit version; pname = "ast"; @@ -10,7 +10,7 @@ in buildPecl { owner = "nikic"; repo = "php-ast"; rev = "v${version}"; - sha256 = "sha256-e9J6O4A+8xRBlR9m4OK1kTVpzgzsviD0Eqi0iY4AgkY="; + sha256 = "sha256-ulMLufhLf9E11Z6+rVBZ14CY3ILp/NrhMjRXmrUHnBA="; }; meta = with lib; { diff --git a/nix-phps/pkgs/development/php-packages/box/default.nix b/nix-phps/pkgs/development/php-packages/box/default.nix index 043e52ae4..d504d7339 100644 --- a/nix-phps/pkgs/development/php-packages/box/default.nix +++ b/nix-phps/pkgs/development/php-packages/box/default.nix @@ -1,35 +1,24 @@ -{ mkDerivation, fetchurl, makeWrapper, lib, php }: +{ lib, php82, fetchFromGitHub }: -let +php82.buildComposerProject (finalAttrs: { pname = "box"; - version = "4.3.8"; -in -mkDerivation { - inherit pname version; + version = "4.6.0"; - src = fetchurl { - url = "https://github.com/box-project/box/releases/download/${version}/box.phar"; - sha256 = "sha256-g9Y92yTsyXU4NWuQwyB3PRrKJxLRSBO9J77jumXPOxg="; + src = fetchFromGitHub { + owner = "box-project"; + repo = "box"; + rev = finalAttrs.version; + hash = "sha256-s3FnpfKWmsLLXwa/xI80NZ1030fB9LcrMVzNWGeFkn4="; }; - dontUnpack = true; + vendorHash = "sha256-t1DvlcgTSq4n8xVUMcEIfs5ZAq9XIqL3qUqabheVVrs="; - nativeBuildInputs = [ makeWrapper ]; - - installPhase = '' - runHook preInstall - mkdir -p $out/bin - install -D $src $out/libexec/box/box.phar - makeWrapper ${php}/bin/php $out/bin/box \ - --add-flags "-d phar.readonly=0 $out/libexec/box/box.phar" - runHook postInstall - ''; - - meta = with lib; { - changelog = "https://github.com/box-project/box/releases/tag/${version}"; + meta = { + changelog = "https://github.com/box-project/box/releases/tag/${finalAttrs.version}"; description = "An application for building and managing Phars"; - license = licenses.mit; homepage = "https://github.com/box-project/box"; - maintainers = with maintainers; [ ] ++ teams.php.members; + license = lib.licenses.mit; + mainProgram = "box"; + maintainers = lib.teams.php.members; }; -} +}) diff --git a/nix-phps/pkgs/development/php-packages/castor/default.nix b/nix-phps/pkgs/development/php-packages/castor/default.nix new file mode 100644 index 000000000..70d07c1b8 --- /dev/null +++ b/nix-phps/pkgs/development/php-packages/castor/default.nix @@ -0,0 +1,50 @@ +{ lib +, fetchFromGitHub +, installShellFiles +, php +, nix-update-script +, testers +}: + +php.buildComposerProject (finalAttrs: { + pname = "castor"; + version = "0.11.1"; + + src = fetchFromGitHub { + owner = "jolicode"; + repo = "castor"; + rev = "v${finalAttrs.version}"; + hash = "sha256-FqFCKvhOEtDERNRLB3613geEiNDOlQuLeCa5uVvoMdM="; + }; + + vendorHash = "sha256-+ORwa3+tkVJ9KU+9URg+1lyHoL1swxg6DG5ex8HjigE="; + + nativeBuildInputs = [ installShellFiles ]; + + # install shell completions + postInstall = '' + echo "yes" | ${php}/bin/php $out/share/php/castor/bin/castor + installShellCompletion --cmd castor \ + --bash <(${php}/bin/php $out/share/php/castor/bin/castor completion bash) \ + --fish <(${php}/bin/php $out/share/php/castor/bin/castor completion fish) \ + --zsh <(${php}/bin/php $out/share/php/castor/bin/castor completion zsh) + ''; + + passthru = { + updateScript = nix-update-script { }; + tests.version = testers.testVersion { + command = "castor --version"; + package = php.packages.castor; + version = "v${finalAttrs.version}"; + }; + }; + + meta = { + changelog = "https://github.com/jolicode/castor/blob/v${finalAttrs.version}/CHANGELOG.md"; + description = "DX oriented task runner and command launcher built with PHP"; + homepage = "https://github.com/jolicode/castor"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ gaelreyrol ]; + mainProgram = "castor"; + }; +}) diff --git a/nix-phps/pkgs/development/php-packages/composer/default.nix b/nix-phps/pkgs/development/php-packages/composer/default.nix index 2a5633976..9cfc8683e 100644 --- a/nix-phps/pkgs/development/php-packages/composer/default.nix +++ b/nix-phps/pkgs/development/php-packages/composer/default.nix @@ -1,33 +1,42 @@ -{ mkDerivation, fetchurl, makeBinaryWrapper, unzip, lib, php }: +{ lib, callPackage, fetchFromGitHub, php, unzip, _7zz, xz, git, curl, cacert, makeBinaryWrapper }: -mkDerivation (finalAttrs: { - pname = "composer"; - version = "2.5.8"; +php.buildComposerProject (finalAttrs: { + # Hash used by ../../../build-support/php/pkgs/composer-phar.nix to + # use together with the version from this package to keep the + # bootstrap phar file up-to-date together with the end user composer + # package. + passthru.pharHash = "sha256-cmACAcc8fEshjxwFEbNthTeWPjaq+iRHV/UjCfiFsxQ="; - src = fetchurl { - url = "https://github.com/composer/composer/releases/download/${finalAttrs.version}/composer.phar"; - hash = "sha256-8Hk0+tRPkEjA3IdaUGzKMcwnlNauv8GGfzsfv0jc4sU="; + composer = callPackage ../../../build-support/php/pkgs/composer-phar.nix { + inherit (finalAttrs) version; + inherit (finalAttrs.passthru) pharHash; }; - dontUnpack = true; + pname = "composer"; + version = "2.6.6"; + + src = fetchFromGitHub { + owner = "composer"; + repo = "composer"; + rev = finalAttrs.version; + hash = "sha256-KsTZi7dSlQcAxoen9rpofbptVdLYhK+bZeDSXQY7o5M="; + }; nativeBuildInputs = [ makeBinaryWrapper ]; - installPhase = '' - runHook preInstall - mkdir -p $out/bin - install -D $src $out/libexec/composer/composer.phar - makeWrapper ${php}/bin/php $out/bin/composer \ - --add-flags "$out/libexec/composer/composer.phar" \ - --prefix PATH : ${lib.makeBinPath [ unzip ]} - runHook postInstall + postInstall = '' + wrapProgram $out/bin/composer \ + --prefix PATH : ${lib.makeBinPath [ _7zz cacert curl git unzip xz ]} ''; + vendorHash = "sha256-50M1yeAKl9KRsjs34cdb5ZTBFgbukgg0cMtHTYGJ/EM="; + meta = { changelog = "https://github.com/composer/composer/releases/tag/${finalAttrs.version}"; description = "Dependency Manager for PHP"; homepage = "https://getcomposer.org/"; license = lib.licenses.mit; - maintainers = with lib.maintainers; [ offline ] ++ lib.teams.php.members; + mainProgram = "composer"; + maintainers = lib.teams.php.members; }; }) diff --git a/nix-phps/pkgs/development/php-packages/datadog_trace/Cargo.lock b/nix-phps/pkgs/development/php-packages/datadog_trace/Cargo.lock index dda6204e3..22375053b 100644 --- a/nix-phps/pkgs/development/php-packages/datadog_trace/Cargo.lock +++ b/nix-phps/pkgs/development/php-packages/datadog_trace/Cargo.lock @@ -2,6 +2,15 @@ # It is not intended for manual editing. version = 3 +[[package]] +name = "addr2line" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" +dependencies = [ + "gimli", +] + [[package]] name = "adler" version = "1.0.2" @@ -19,15 +28,33 @@ dependencies = [ "version_check 0.9.4", ] +[[package]] +name = "ahash" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c99f64d1e06488f620f932677e24bc6e2897582980441ae90a671415bd7ec2f" +dependencies = [ + "cfg-if", + "getrandom", + "once_cell", + "version_check 0.9.4", +] + [[package]] name = "aho-corasick" -version = "1.0.2" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43f6cb1bf222025340178f382c426f13757b2960e89779dfcb319c32542a5a41" +checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" dependencies = [ "memchr", ] +[[package]] +name = "aliasable" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "250f629c0161ad8107cf89319e990051fae62832fd343083bea452d93e2205fd" + [[package]] name = "android-tzdata" version = "0.1.1" @@ -40,7 +67,7 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" dependencies = [ - "libc 0.2.146", + "libc 0.2.149", ] [[package]] @@ -49,11 +76,17 @@ version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299" +[[package]] +name = "anstyle" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87" + [[package]] name = "anyhow" -version = "1.0.71" +version = "1.0.75" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c7d0618f0e0b7e8ff11427422b64564d5fb0be1940354bfe2e0529b18a9d9b8" +checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6" [[package]] name = "assert-type-eq" @@ -69,13 +102,13 @@ checksum = "9b34d609dfbaf33d6889b2b7106d3ca345eacad44200913df5ba02bfd31d2ba9" [[package]] name = "async-trait" -version = "0.1.68" +version = "0.1.73" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9ccdd8f2a161be9bd5c023df56f1b2a0bd1d83872ae53b71a84a12c9bf6e842" +checksum = "bc00ceb34980c03614e35a3a4e218276a0a824e911d07651cd0d858a51e8c0f0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.18", + "syn 2.0.38", ] [[package]] @@ -85,7 +118,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" dependencies = [ "hermit-abi 0.1.19", - "libc 0.2.146", + "libc 0.2.149", "winapi", ] @@ -95,17 +128,83 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" +[[package]] +name = "axum" +version = "0.6.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b829e4e32b91e643de6eafe82b1d90675f5874230191a4ffbc1b336dec4d6bf" +dependencies = [ + "async-trait", + "axum-core", + "bitflags 1.3.2", + "bytes", + "futures-util", + "http", + "http-body", + "hyper", + "itoa", + "matchit", + "memchr", + "mime", + "percent-encoding", + "pin-project-lite", + "rustversion", + "serde", + "sync_wrapper", + "tower", + "tower-layer", + "tower-service", +] + +[[package]] +name = "axum-core" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "759fa577a247914fd3f7f76d62972792636412fbfd634cd452f6a385a74d2d2c" +dependencies = [ + "async-trait", + "bytes", + "futures-util", + "http", + "http-body", + "mime", + "rustversion", + "tower-layer", + "tower-service", +] + +[[package]] +name = "backtrace" +version = "0.3.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837" +dependencies = [ + "addr2line", + "cc", + "cfg-if", + "libc 0.2.149", + "miniz_oxide", + "object 0.32.1", + "rustc-demangle", +] + +[[package]] +name = "base64" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" + [[package]] name = "base64" -version = "0.21.2" +version = "0.21.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "604178f6c5c21f02dc555784810edfb88d34ac2c73b2eae109655649ee73ce3d" +checksum = "9ba43ea6f343b788c8764558649e08df62f86c6ef251fdaeb1ffd010a9ae50a2" [[package]] name = "basic-toml" -version = "0.1.2" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c0de75129aa8d0cceaf750b89013f0e08804d6ec61416da787b35ad0d7cddf1" +checksum = "7bfc506e7a2370ec239e1d072507b2a80c833083699d3c6fa176fbb4de8448c6" dependencies = [ "serde", ] @@ -125,20 +224,20 @@ version = "0.66.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f2b84e06fc203107bfbad243f4aba2af864eb7db3b1cf46ea0a023b0b433d2a7" dependencies = [ - "bitflags 2.3.3", + "bitflags 2.4.0", "cexpr", "clang-sys", "lazy_static", "lazycell", "log", "peeking_take_while", - "prettyplease", + "prettyplease 0.2.15", "proc-macro2", "quote", "regex", "rustc-hash", "shlex", - "syn 2.0.18", + "syn 2.0.38", "which", ] @@ -156,9 +255,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.3.3" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "630be753d4e58660abd17930c71b647fe46c27ea6b63cc59e1e3851406972e42" +checksum = "b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635" [[package]] name = "bitmaps" @@ -168,21 +267,21 @@ checksum = "703642b98a00b3b90513279a8ede3fcfa479c126c5fb46e78f3051522f021403" [[package]] name = "bumpalo" -version = "3.13.0" +version = "3.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1" +checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" [[package]] name = "byteorder" -version = "1.4.3" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be" +checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" dependencies = [ "serde", ] @@ -199,7 +298,7 @@ version = "0.24.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4b922faaf31122819ec80c4047cc684c6979a087366c069611e33649bf98e18d" dependencies = [ - "clap", + "clap 3.2.25", "heck", "indexmap 1.9.3", "log", @@ -214,9 +313,12 @@ dependencies = [ [[package]] name = "cc" -version = "1.0.79" +version = "1.0.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f" +checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" +dependencies = [ + "libc 0.2.149", +] [[package]] name = "cc_utils" @@ -243,14 +345,14 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "chrono" -version = "0.4.26" +version = "0.4.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec837a71355b28f6556dbd569b37b3f363091c0bd4b2e735674521b4c5fd9bc5" +checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38" dependencies = [ "android-tzdata", "iana-time-zone", "num-traits", - "winapi", + "windows-targets", ] [[package]] @@ -287,7 +389,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c688fc74432808e3eb684cae8830a86be1d66a2bd58e1f248ed0960a590baf6f" dependencies = [ "glob", - "libc 0.2.146", + "libc 0.2.149", "libloading", ] @@ -299,13 +401,32 @@ checksum = "4ea181bf566f71cb9a5d17a59e1871af638180a18fb0035c92ae62b705207123" dependencies = [ "atty", "bitflags 1.3.2", - "clap_lex", + "clap_lex 0.2.4", "indexmap 1.9.3", "strsim", "termcolor", "textwrap", ] +[[package]] +name = "clap" +version = "4.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d04704f56c2cde07f43e8e2c154b43f216dc5c92fc98ada720177362f953b956" +dependencies = [ + "clap_builder", +] + +[[package]] +name = "clap_builder" +version = "4.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e231faeaca65ebd1ea3c737966bf858971cd38c3849107aa3ea7de90a804e45" +dependencies = [ + "anstyle", + "clap_lex 0.5.1", +] + [[package]] name = "clap_lex" version = "0.2.4" @@ -315,6 +436,12 @@ dependencies = [ "os_str_bytes", ] +[[package]] +name = "clap_lex" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd7cc57abe963c6d3b9d8be5b06ba7c8957a930305ca90304f24ef040aa6f961" + [[package]] name = "common-multipart-rfc7578" version = "0.5.0" @@ -331,6 +458,42 @@ dependencies = [ "thiserror", ] +[[package]] +name = "console-api" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2895653b4d9f1538a83970077cb01dfc77a4810524e51a110944688e916b18e" +dependencies = [ + "prost", + "prost-types", + "tonic", + "tracing-core", +] + +[[package]] +name = "console-subscriber" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4cf42660ac07fcebed809cfe561dd8730bcd35b075215e6479c516bcd0d11cb" +dependencies = [ + "console-api", + "crossbeam-channel", + "crossbeam-utils", + "futures", + "hdrhistogram", + "humantime", + "prost-types", + "serde", + "serde_json", + "thread_local", + "tokio", + "tokio-stream", + "tonic", + "tracing", + "tracing-core", + "tracing-subscriber", +] + [[package]] name = "core-foundation" version = "0.9.3" @@ -338,7 +501,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" dependencies = [ "core-foundation-sys", - "libc 0.2.146", + "libc 0.2.149", ] [[package]] @@ -353,7 +516,7 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e9e393a7668fe1fad3075085b86c781883000b4ede868f43627b34a87c8b7ded" dependencies = [ - "libc 0.2.146", + "libc 0.2.149", "winapi", ] @@ -368,19 +531,19 @@ dependencies = [ [[package]] name = "criterion" -version = "0.4.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7c76e09c1aae2bc52b3d2f29e13c6572553b30c4aa1b8a49fd70de6412654cb" +checksum = "f2b12d017a929603d80db1831cd3a24082f8137ce19c69e6447f54f5fc8d692f" dependencies = [ "anes", - "atty", "cast", "ciborium", - "clap", + "clap 4.4.6", "criterion-plot", + "is-terminal", "itertools", - "lazy_static", "num-traits", + "once_cell", "oorandom", "plotters", "rayon", @@ -394,9 +557,9 @@ dependencies = [ [[package]] name = "criterion-perf-events" -version = "0.3.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37a5379f1ceab88909ae1765858b6ca117acc8166d7f4cdca6cfc4bc4646124d" +checksum = "902f0b181e1f7a7865e224df9cff57f164c3d95ad8dfcb81f692faa5087c2f17" dependencies = [ "criterion", "perfcnt", @@ -457,9 +620,9 @@ dependencies = [ [[package]] name = "csv" -version = "1.2.2" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "626ae34994d3d8d668f4269922248239db4ae42d538b14c398b74a52208e8086" +checksum = "ac574ff4d437a7b5ad237ef331c17ccca63c46479e5b5453eb8e10bb99a759fe" dependencies = [ "csv-core", "itoa", @@ -469,33 +632,28 @@ dependencies = [ [[package]] name = "csv-core" -version = "0.1.10" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b2466559f260f48ad25fe6317b3c8dac77b5bdb5763ac7d9d6103530663bc90" +checksum = "5efa2b3d7902f4b634a20cae3c9c4e6209dc4779feb6863329607560143efa70" dependencies = [ "memchr", ] -[[package]] -name = "ctor" -version = "0.1.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d2301688392eb071b0bf1a37be05c469d3cc4dbbd95df672fe28ab021e6a096" -dependencies = [ - "quote", - "syn 1.0.109", -] - [[package]] name = "datadog-ipc" version = "0.1.0" dependencies = [ + "anyhow", "bytes", "criterion", + "datadog-ipc-macros", "futures", + "glibc_version", "io-lifetimes", - "libc 0.2.146", - "nix", + "libc 0.2.149", + "memfd", + "nix 0.26.4", + "page_size", "pin-project", "pretty_assertions", "sendfd", @@ -510,12 +668,22 @@ dependencies = [ "tracing-subscriber", ] +[[package]] +name = "datadog-ipc-macros" +version = "0.0.1" +dependencies = [ + "quote", + "syn 2.0.38", +] + [[package]] name = "datadog-php-profiling" -version = "0.89.0" +version = "0.97.0" dependencies = [ + "ahash 0.8.3", "anyhow", "bindgen", + "bumpalo", "cc", "cfg-if", "cpu-time", @@ -523,29 +691,31 @@ dependencies = [ "criterion-perf-events", "crossbeam-channel", "datadog-profiling", - "ddcommon 2.2.0 (git+https://github.com/DataDog/libdatadog?tag=v2.2.0)", + "ddcommon 5.0.0", "env_logger", - "indexmap 2.0.0", + "indexmap 2.0.2", "lazy_static", - "libc 0.2.146", + "libc 0.2.149", "log", "once_cell", + "ouroboros", "perfcnt", "rand 0.8.5", "rand_distr", + "serde_json", "uuid", ] [[package]] name = "datadog-profiling" -version = "2.2.0" -source = "git+https://github.com/DataDog/libdatadog?tag=v2.2.0#ef8935ce7e77bedbb3dcbcf9dcc2f41bb0e6db90" +version = "5.0.0" +source = "git+https://github.com/DataDog/libdatadog?tag=v5.0.0#7b8a01ecfaf03e063feb16896356e71b9a2fc6f3" dependencies = [ "anyhow", "bitmaps", "bytes", "chrono", - "ddcommon 2.2.0 (git+https://github.com/DataDog/libdatadog?tag=v2.2.0)", + "ddcommon 5.0.0", "derivative", "futures", "futures-core", @@ -555,7 +725,7 @@ dependencies = [ "hyper", "hyper-multipart-rfc7578", "indexmap 1.9.3", - "libc 0.2.146", + "libc 0.2.149", "lz4_flex", "mime", "mime_guess", @@ -565,7 +735,7 @@ dependencies = [ "serde", "serde_json", "tokio", - "tokio-util 0.7.8", + "tokio-util 0.7.9", ] [[package]] @@ -573,8 +743,15 @@ name = "datadog-sidecar" version = "0.0.1" dependencies = [ "anyhow", + "bytes", + "console-subscriber", "datadog-ipc", - "ddcommon 2.2.0", + "datadog-ipc-macros", + "datadog-sidecar-macros", + "datadog-trace-normalization", + "datadog-trace-protobuf", + "datadog-trace-utils", + "ddcommon 0.0.1", "ddtelemetry", "futures", "hashbrown 0.12.3", @@ -582,12 +759,14 @@ dependencies = [ "hyper", "io-lifetimes", "lazy_static", - "libc 0.2.146", + "libc 0.2.149", "manual_future", - "nix", + "nix 0.26.4", "pin-project", + "prctl", "rand 0.8.5", "regex", + "rmp-serde", "sendfd", "serde", "serde_json", @@ -595,10 +774,11 @@ dependencies = [ "sys-info", "tempfile", "tokio", - "tokio-util 0.7.8", + "tokio-util 0.7.9", "tracing", "tracing-subscriber", "uuid", + "zwohash", ] [[package]] @@ -607,23 +787,76 @@ version = "0.0.1" dependencies = [ "datadog-ipc", "datadog-sidecar", + "datadog-trace-utils", + "ddcommon 0.0.1", "ddcommon-ffi", "ddtelemetry", "ddtelemetry-ffi", - "libc 0.2.146", + "hyper", + "libc 0.2.149", "paste", "tempfile", ] +[[package]] +name = "datadog-sidecar-macros" +version = "0.0.1" +dependencies = [ + "quote", + "syn 2.0.38", +] + +[[package]] +name = "datadog-trace-normalization" +version = "0.0.1" +dependencies = [ + "anyhow", + "datadog-trace-protobuf", + "duplicate", + "rand 0.8.5", +] + +[[package]] +name = "datadog-trace-protobuf" +version = "0.0.1" +dependencies = [ + "prost", + "prost-build", + "protoc-bin-vendored", + "serde", + "serde_bytes", +] + +[[package]] +name = "datadog-trace-utils" +version = "0.0.1" +dependencies = [ + "anyhow", + "datadog-trace-normalization", + "datadog-trace-protobuf", + "ddcommon 0.0.1", + "flate2", + "futures", + "hyper", + "hyper-rustls", + "log", + "prost", + "rmp-serde", + "serde", + "serde_json", + "tokio", +] + [[package]] name = "ddcommon" -version = "2.2.0" +version = "0.0.1" dependencies = [ "anyhow", "futures", "futures-core", "futures-util", "hex", + "http", "hyper", "hyper-rustls", "indexmap 1.9.3", @@ -641,14 +874,15 @@ dependencies = [ [[package]] name = "ddcommon" -version = "2.2.0" -source = "git+https://github.com/DataDog/libdatadog?tag=v2.2.0#ef8935ce7e77bedbb3dcbcf9dcc2f41bb0e6db90" +version = "5.0.0" +source = "git+https://github.com/DataDog/libdatadog?tag=v5.0.0#7b8a01ecfaf03e063feb16896356e71b9a2fc6f3" dependencies = [ "anyhow", "futures", "futures-core", "futures-util", "hex", + "http", "hyper", "hyper-rustls", "lazy_static", @@ -664,18 +898,19 @@ dependencies = [ [[package]] name = "ddcommon-ffi" -version = "2.2.0" +version = "0.0.1" dependencies = [ "anyhow", - "ddcommon 2.2.0", + "ddcommon 0.0.1", + "hyper", ] [[package]] name = "ddtelemetry" -version = "2.2.0" +version = "0.0.1" dependencies = [ "anyhow", - "ddcommon 2.2.0", + "ddcommon 0.0.1", "futures", "hashbrown 0.12.3", "http", @@ -688,7 +923,7 @@ dependencies = [ "serde_json", "sys-info", "tokio", - "tokio-util 0.7.8", + "tokio-util 0.7.9", "tracing", "tracing-subscriber", "uuid", @@ -696,11 +931,12 @@ dependencies = [ [[package]] name = "ddtelemetry-ffi" -version = "2.2.0" +version = "0.0.1" dependencies = [ + "ddcommon 0.0.1", "ddcommon-ffi", "ddtelemetry", - "libc 0.2.146", + "libc 0.2.149", "paste", "tempfile", ] @@ -709,11 +945,12 @@ dependencies = [ name = "ddtrace-php" version = "0.0.1" dependencies = [ + "bitflags 2.4.0", "cbindgen", "cc_utils", "datadog-sidecar", "datadog-sidecar-ffi", - "ddcommon 2.2.0", + "ddcommon 0.0.1", "ddcommon-ffi", "ddtelemetry", "ddtelemetry-ffi", @@ -743,11 +980,21 @@ version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "56254986775e3233ffa9c4d7d3faaf6d36a2c09d30b20687e9f88bc8bafc16c8" +[[package]] +name = "duplicate" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0a4be4cd710e92098de6ad258e6e7c24af11c29c5142f3c6f2a545652480ff8" +dependencies = [ + "heck", + "proc-macro-error", +] + [[package]] name = "educe" -version = "0.4.22" +version = "0.4.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "079044df30bb07de7d846d41a184c4b00e66ebdac93ee459253474f3a47e50ae" +checksum = "0f0042ff8246a363dbe77d2ceedb073339e85a804b9a47636c6e016a9a32c05f" dependencies = [ "enum-ordinalize", "proc-macro2", @@ -757,21 +1004,21 @@ dependencies = [ [[package]] name = "either" -version = "1.8.1" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91" +checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" [[package]] name = "enum-ordinalize" -version = "3.1.13" +version = "3.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4f76552f53cefc9a7f64987c3701b99d982f7690606fd67de1d09712fbf52f1" +checksum = "1bf1fa3f06bbff1ea5b1a9c7b14aa992a39657db60a2759457328d7e058f49ee" dependencies = [ "num-bigint", "num-traits", "proc-macro2", "quote", - "syn 2.0.18", + "syn 2.0.38", ] [[package]] @@ -789,45 +1036,37 @@ dependencies = [ [[package]] name = "equivalent" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88bffebc5d80432c9b140ee17875ff173a8ab62faad5b257da912bd2f6c1c0a1" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" [[package]] name = "errno" -version = "0.3.1" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a" +checksum = "ac3e13f66a2f95e32a39eaa81f6b95d42878ca0e1db0c7543723dfe12557e860" dependencies = [ - "errno-dragonfly", - "libc 0.2.146", - "windows-sys 0.48.0", + "libc 0.2.149", + "windows-sys", ] [[package]] -name = "errno-dragonfly" -version = "0.1.2" +name = "fastrand" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf" -dependencies = [ - "cc", - "libc 0.2.146", -] +checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" [[package]] -name = "fastrand" -version = "1.9.0" +name = "fixedbitset" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" -dependencies = [ - "instant", -] +checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" [[package]] name = "flate2" -version = "1.0.26" +version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b9429470923de8e8cbd4d2dc513535400b4b3fef0319fb5c4e1f520a7bef743" +checksum = "c6c98ee8095e9d1dcbf2fcc6d95acccb90d1c81db1e44725c6a984b1dbdfb010" dependencies = [ "crc32fast", "miniz_oxide", @@ -901,7 +1140,7 @@ checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72" dependencies = [ "proc-macro2", "quote", - "syn 2.0.18", + "syn 2.0.38", ] [[package]] @@ -958,16 +1197,50 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427" dependencies = [ "cfg-if", - "libc 0.2.146", + "libc 0.2.149", "wasi", ] +[[package]] +name = "gimli" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0" + +[[package]] +name = "glibc_version" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "803ff7635f1ab4e2c064b68a0c60da917d3d18dc8d086130f689d62ce4f1c33e" +dependencies = [ + "regex", +] + [[package]] name = "glob" version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" +[[package]] +name = "h2" +version = "0.3.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91fc23aa11be92976ef4729127f1a74adf36d8436f7816b185d18df956790833" +dependencies = [ + "bytes", + "fnv", + "futures-core", + "futures-sink", + "futures-util", + "http", + "indexmap 1.9.3", + "slab", + "tokio", + "tokio-util 0.7.9", + "tracing", +] + [[package]] name = "half" version = "1.8.2" @@ -980,14 +1253,27 @@ version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" dependencies = [ - "ahash", + "ahash 0.7.6", ] [[package]] name = "hashbrown" -version = "0.14.0" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7dfda62a12f55daeae5015f81b0baea145391cb4520f86c248fc615d72640d12" + +[[package]] +name = "hdrhistogram" +version = "7.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a" +checksum = "7f19b9f54f7c7f55e31401bb647626ce0cf0f67b0004982ce815b3ee72a02aa8" +dependencies = [ + "base64 0.13.1", + "byteorder", + "flate2", + "nom 7.1.3", + "num-traits", +] [[package]] name = "heck" @@ -1001,23 +1287,14 @@ version = "0.1.19" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" dependencies = [ - "libc 0.2.146", + "libc 0.2.149", ] [[package]] name = "hermit-abi" -version = "0.2.6" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7" -dependencies = [ - "libc 0.2.146", -] - -[[package]] -name = "hermit-abi" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fed44880c466736ef9a5c5b5facefb5ed0785676d0c02d612db14e54f0d84286" +checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7" [[package]] name = "hex" @@ -1025,6 +1302,15 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" +[[package]] +name = "home" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb" +dependencies = [ + "windows-sys", +] + [[package]] name = "http" version = "0.2.9" @@ -1055,9 +1341,9 @@ checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" [[package]] name = "httpdate" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421" +checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" [[package]] name = "humantime" @@ -1067,21 +1353,22 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "hyper" -version = "0.14.26" +version = "0.14.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab302d72a6f11a3b910431ff93aae7e773078c769f0a3ef15fb9ec692ed147d4" +checksum = "ffb1cfd654a8219eaef89881fdb3bb3b1cdc5fa75ded05d6933b2b382e395468" dependencies = [ "bytes", "futures-channel", "futures-core", "futures-util", + "h2", "http", "http-body", "httparse", "httpdate", "itoa", "pin-project-lite", - "socket2", + "socket2 0.4.9", "tokio", "tower-service", "tracing", @@ -1115,6 +1402,18 @@ dependencies = [ "tokio-rustls", ] +[[package]] +name = "hyper-timeout" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1" +dependencies = [ + "hyper", + "pin-project-lite", + "tokio", + "tokio-io-timeout", +] + [[package]] name = "iana-time-zone" version = "0.1.57" @@ -1150,21 +1449,12 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.0.0" +version = "2.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d" +checksum = "8adf3ddd720272c6ea8bf59463c04e0f93d0bbf7c5439b691bca2987e0270897" dependencies = [ "equivalent", - "hashbrown 0.14.0", -] - -[[package]] -name = "instant" -version = "0.1.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" -dependencies = [ - "cfg-if", + "hashbrown 0.14.1", ] [[package]] @@ -1179,21 +1469,20 @@ version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" dependencies = [ - "hermit-abi 0.3.1", - "libc 0.2.146", - "windows-sys 0.48.0", + "hermit-abi 0.3.3", + "libc 0.2.149", + "windows-sys", ] [[package]] name = "is-terminal" -version = "0.4.7" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adcf93614601c8129ddf72e2d5633df827ba6551541c6d8c59520a371475be1f" +checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b" dependencies = [ - "hermit-abi 0.3.1", - "io-lifetimes", + "hermit-abi 0.3.3", "rustix", - "windows-sys 0.48.0", + "windows-sys", ] [[package]] @@ -1207,9 +1496,9 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.6" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6" +checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" [[package]] name = "js-sys" @@ -1246,9 +1535,9 @@ checksum = "e32a70cf75e5846d53a673923498228bbec6a8624708a9ea5645f075d6276122" [[package]] name = "libc" -version = "0.2.146" +version = "0.2.149" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f92be4933c13fd498862a9e02a3055f8a8d9c039ce33db97306fd5a6caa7f29b" +checksum = "a08173bc88b7955d1b3145aa561539096c421ac8debde8cbc3612ec635fee29b" [[package]] name = "libloading" @@ -1262,15 +1551,15 @@ dependencies = [ [[package]] name = "libm" -version = "0.2.7" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7012b1bbb0719e1097c47611d3898568c546d597c2e74d66f6087edd5233ff4" +checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" [[package]] name = "linux-raw-sys" -version = "0.3.8" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" +checksum = "da2479e8c062e40bf0066ffa0bc823de0a9368974af99c9f6df941d2c231e03f" [[package]] name = "lock_api" @@ -1284,9 +1573,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.19" +version = "0.4.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b06a4cde4c0f271a446782e3eff8de789548ce57dbc8eca9292c27f4a42004b4" +checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" [[package]] name = "lz4_flex" @@ -1318,20 +1607,26 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" dependencies = [ - "regex-automata", + "regex-automata 0.1.10", ] +[[package]] +name = "matchit" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94" + [[package]] name = "memchr" -version = "2.5.0" +version = "2.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" +checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" [[package]] name = "memfd" -version = "0.6.3" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffc89ccdc6e10d6907450f753537ebc5c5d3460d2e4e62ea74bd571db62c0f9e" +checksum = "b2cffa4ad52c6f791f4f8b15f0c05f9824b2ced1160e88cc393d64fff9a8ac64" dependencies = [ "rustix", ] @@ -1345,6 +1640,15 @@ dependencies = [ "autocfg", ] +[[package]] +name = "memoffset" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4" +dependencies = [ + "autocfg", +] + [[package]] name = "memoffset" version = "0.9.0" @@ -1391,9 +1695,9 @@ version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2" dependencies = [ - "libc 0.2.146", + "libc 0.2.149", "wasi", - "windows-sys 0.48.0", + "windows-sys", ] [[package]] @@ -1406,6 +1710,12 @@ dependencies = [ "tempdir", ] +[[package]] +name = "multimap" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a" + [[package]] name = "nix" version = "0.24.3" @@ -1414,10 +1724,34 @@ checksum = "fa52e972a9a719cecb6864fb88568781eb706bac2cd1d4f04a648542dbf78069" dependencies = [ "bitflags 1.3.2", "cfg-if", - "libc 0.2.146", + "libc 0.2.149", "memoffset 0.6.5", ] +[[package]] +name = "nix" +version = "0.26.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b" +dependencies = [ + "bitflags 1.3.2", + "cfg-if", + "libc 0.2.149", + "memoffset 0.7.1", + "pin-utils", +] + +[[package]] +name = "nix" +version = "0.27.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053" +dependencies = [ + "bitflags 2.4.0", + "cfg-if", + "libc 0.2.149", +] + [[package]] name = "nom" version = "4.2.3" @@ -1450,9 +1784,9 @@ dependencies = [ [[package]] name = "num-bigint" -version = "0.4.3" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f93ab6289c7b344a8a9f60f88d80aa20032336fe78da341afc91c8a2341fc75f" +checksum = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0" dependencies = [ "autocfg", "num-integer", @@ -1471,9 +1805,9 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.15" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" +checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" dependencies = [ "autocfg", "libm", @@ -1481,12 +1815,12 @@ dependencies = [ [[package]] name = "num_cpus" -version = "1.15.0" +version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b" +checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" dependencies = [ - "hermit-abi 0.2.6", - "libc 0.2.146", + "hermit-abi 0.3.3", + "libc 0.2.149", ] [[package]] @@ -1500,6 +1834,15 @@ dependencies = [ "ruzstd", ] +[[package]] +name = "object" +version = "0.32.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0" +dependencies = [ + "memchr", +] + [[package]] name = "once_cell" version = "1.18.0" @@ -1579,12 +1922,27 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4d5d9eb14b174ee9aa2ef96dc2b94637a2d4b6e7cb873c7e171f0c20c6cf3eac" [[package]] -name = "output_vt100" -version = "0.1.3" +name = "ouroboros" +version = "0.17.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "628223faebab4e3e40667ee0b2336d34a5b960ff60ea743ddfdbcf7770bcfb66" +checksum = "e2ba07320d39dfea882faa70554b4bd342a5f273ed59ba7c1c6b4c840492c954" dependencies = [ - "winapi", + "aliasable", + "ouroboros_macro", + "static_assertions", +] + +[[package]] +name = "ouroboros_macro" +version = "0.17.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec4c6225c69b4ca778c0aea097321a64c421cf4577b331c61b229267edabb6f8" +dependencies = [ + "heck", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.38", ] [[package]] @@ -1593,6 +1951,16 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" +[[package]] +name = "page_size" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b7663cbd190cfd818d08efa8497f6cd383076688c49a391ef7c0d03cd12b561" +dependencies = [ + "libc 0.2.149", + "winapi", +] + [[package]] name = "parking_lot" version = "0.12.1" @@ -1610,7 +1978,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447" dependencies = [ "cfg-if", - "libc 0.2.146", + "libc 0.2.149", "redox_syscall", "smallvec", "windows-targets", @@ -1618,9 +1986,9 @@ dependencies = [ [[package]] name = "paste" -version = "1.0.12" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f746c4065a8fa3fe23974dd82f15431cc8d40779821001404d10d2e79ca7d79" +checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" [[package]] name = "peeking_take_while" @@ -1641,12 +2009,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ba1fd955270ca6f8bd8624ec0c4ee1a251dd3cc0cc18e1e2665ca8f5acb1501" dependencies = [ "bitflags 1.3.2", - "libc 0.2.146", + "libc 0.2.149", "mmap", "nom 4.2.3", "x86", ] +[[package]] +name = "petgraph" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9" +dependencies = [ + "fixedbitset", + "indexmap 2.0.2", +] + [[package]] name = "phf" version = "0.9.0" @@ -1687,29 +2065,29 @@ dependencies = [ [[package]] name = "pin-project" -version = "1.1.0" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c95a7476719eab1e366eaf73d0260af3021184f18177925b07f54b30089ceead" +checksum = "fda4ed1c6c173e3fc7a83629421152e01d7b1f9b7f65fb301e490e8cfc656422" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.0" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39407670928234ebc5e6e580247dd567ad73a3578460c5990f9503df207e8f07" +checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405" dependencies = [ "proc-macro2", "quote", - "syn 2.0.18", + "syn 2.0.38", ] [[package]] name = "pin-project-lite" -version = "0.2.9" +version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" +checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" [[package]] name = "pin-utils" @@ -1737,47 +2115,89 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e76628b4d3a7581389a35d5b6e2139607ad7c75b17aed325f210aa91f4a9609" [[package]] -name = "plotters-svg" -version = "0.3.5" +name = "plotters-svg" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38f6d39893cca0701371e3c27294f09797214b86f1fb951b89ade8ec04e2abab" +dependencies = [ + "plotters-backend", +] + +[[package]] +name = "ppv-lite86" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" + +[[package]] +name = "prctl" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "059a34f111a9dee2ce1ac2826a68b24601c4298cfeb1a587c3cb493d5ab46f52" +dependencies = [ + "libc 0.2.149", + "nix 0.27.1", +] + +[[package]] +name = "pretty_assertions" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af7cee1a6c8a5b9208b3cb1061f10c0cb689087b3d8ce85fb9d2dd7a29b6ba66" +dependencies = [ + "diff", + "yansi", +] + +[[package]] +name = "prettyplease" +version = "0.1.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38f6d39893cca0701371e3c27294f09797214b86f1fb951b89ade8ec04e2abab" +checksum = "6c8646e95016a7a6c4adea95bafa8a16baab64b583356217f2c85db4a39d9a86" dependencies = [ - "plotters-backend", + "proc-macro2", + "syn 1.0.109", ] [[package]] -name = "ppv-lite86" -version = "0.2.17" +name = "prettyplease" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" +checksum = "ae005bd773ab59b4725093fd7df83fd7892f7d8eafb48dbd7de6e024e4215f9d" +dependencies = [ + "proc-macro2", + "syn 2.0.38", +] [[package]] -name = "pretty_assertions" -version = "1.3.0" +name = "proc-macro-error" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a25e9bcb20aa780fd0bb16b72403a9064d6b3f22f026946029acb941a50af755" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" dependencies = [ - "ctor", - "diff", - "output_vt100", - "yansi", + "proc-macro-error-attr", + "proc-macro2", + "quote", + "syn 1.0.109", + "version_check 0.9.4", ] [[package]] -name = "prettyplease" -version = "0.2.9" +name = "proc-macro-error-attr" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9825a04601d60621feed79c4e6b56d65db77cdca55cef43b46b0de1096d1c282" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" dependencies = [ "proc-macro2", - "syn 2.0.18", + "quote", + "version_check 0.9.4", ] [[package]] name = "proc-macro2" -version = "1.0.60" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dec2b086b7a862cf4de201096214fa870344cf922b2b30c167badb3af3195406" +checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da" dependencies = [ "unicode-ident", ] @@ -1792,6 +2212,28 @@ dependencies = [ "prost-derive", ] +[[package]] +name = "prost-build" +version = "0.11.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "119533552c9a7ffacc21e099c24a0ac8bb19c2a2a3f363de84cd9b844feab270" +dependencies = [ + "bytes", + "heck", + "itertools", + "lazy_static", + "log", + "multimap", + "petgraph", + "prettyplease 0.1.25", + "prost", + "prost-types", + "regex", + "syn 1.0.109", + "tempfile", + "which", +] + [[package]] name = "prost-derive" version = "0.11.9" @@ -1805,11 +2247,70 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "prost-types" +version = "0.11.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "213622a1460818959ac1181aaeb2dc9c7f63df720db7d788b3e24eacd1983e13" +dependencies = [ + "prost", +] + +[[package]] +name = "protoc-bin-vendored" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "005ca8623e5633e298ad1f917d8be0a44bcf406bf3cde3b80e63003e49a3f27d" +dependencies = [ + "protoc-bin-vendored-linux-aarch_64", + "protoc-bin-vendored-linux-ppcle_64", + "protoc-bin-vendored-linux-x86_32", + "protoc-bin-vendored-linux-x86_64", + "protoc-bin-vendored-macos-x86_64", + "protoc-bin-vendored-win32", +] + +[[package]] +name = "protoc-bin-vendored-linux-aarch_64" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fb9fc9cce84c8694b6ea01cc6296617b288b703719b725b8c9c65f7c5874435" + +[[package]] +name = "protoc-bin-vendored-linux-ppcle_64" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02d2a07dcf7173a04d49974930ccbfb7fd4d74df30ecfc8762cf2f895a094516" + +[[package]] +name = "protoc-bin-vendored-linux-x86_32" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d54fef0b04fcacba64d1d80eed74a20356d96847da8497a59b0a0a436c9165b0" + +[[package]] +name = "protoc-bin-vendored-linux-x86_64" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8782f2ce7d43a9a5c74ea4936f001e9e8442205c244f7a3d4286bd4c37bc924" + +[[package]] +name = "protoc-bin-vendored-macos-x86_64" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5de656c7ee83f08e0ae5b81792ccfdc1d04e7876b1d9a38e6876a9e09e02537" + +[[package]] +name = "protoc-bin-vendored-win32" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9653c3ed92974e34c5a6e0a510864dab979760481714c172e0a34e437cb98804" + [[package]] name = "quote" -version = "1.0.28" +version = "1.0.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b9ab9c7eadfd8df19006f1cf1a4aed13540ed5cbc047010ece5826e10825488" +checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" dependencies = [ "proc-macro2", ] @@ -1821,7 +2322,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "552840b97013b1a26992c11eac34bdd778e464601a4c2054b5f0bff7c6761293" dependencies = [ "fuchsia-cprng", - "libc 0.2.146", + "libc 0.2.149", "rand_core 0.3.1", "rdrand", "winapi", @@ -1833,7 +2334,7 @@ version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" dependencies = [ - "libc 0.2.146", + "libc 0.2.149", "rand_chacha", "rand_core 0.6.4", ] @@ -1893,9 +2394,9 @@ dependencies = [ [[package]] name = "rayon" -version = "1.7.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d2df5196e37bcc87abebc0053e20787d73847bb33134a69841207dd0a47f03b" +checksum = "9c27db03db7734835b3f53954b534c91069375ce6ccaa2e065441e07d9b6cdb1" dependencies = [ "either", "rayon-core", @@ -1903,14 +2404,12 @@ dependencies = [ [[package]] name = "rayon-core" -version = "1.11.0" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b8f95bd6966f5c87776639160a66bd8ab9895d9d4ab01ddba9fc60661aebe8d" +checksum = "5ce3fb6ad83f861aac485e76e1985cd109d9a3713802152be56c3b1f0e0658ed" dependencies = [ - "crossbeam-channel", "crossbeam-deque", "crossbeam-utils", - "num_cpus", ] [[package]] @@ -1933,13 +2432,14 @@ dependencies = [ [[package]] name = "regex" -version = "1.8.4" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0ab3ca65655bb1e41f2a8c8cd662eb4fb035e67c3f78da1d61dffe89d07300f" +checksum = "d119d7c7ca818f8a53c300863d4f87566aac09943aef5b355bb83969dae75d87" dependencies = [ "aho-corasick", "memchr", - "regex-syntax 0.7.2", + "regex-automata 0.4.1", + "regex-syntax 0.8.1", ] [[package]] @@ -1951,6 +2451,17 @@ dependencies = [ "regex-syntax 0.6.29", ] +[[package]] +name = "regex-automata" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "465c6fc0621e4abc4187a2bda0937bfd4f722c2730b29562e19689ea796c9a4b" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax 0.8.1", +] + [[package]] name = "regex-syntax" version = "0.6.29" @@ -1959,9 +2470,9 @@ checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" [[package]] name = "regex-syntax" -version = "0.7.2" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "436b050e76ed2903236f032a59761c1eb99e1b0aead2c257922771dab1fc8c78" +checksum = "56d84fdd47036b038fc80dd333d10b6aab10d5d31f4a366e20014def75328d33" [[package]] name = "remove_dir_all" @@ -1979,23 +2490,65 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" dependencies = [ "cc", - "libc 0.2.146", + "libc 0.2.149", "once_cell", - "spin", - "untrusted", + "spin 0.5.2", + "untrusted 0.7.1", "web-sys", "winapi", ] +[[package]] +name = "ring" +version = "0.17.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9babe80d5c16becf6594aa32ad2be8fe08498e7ae60b77de8df700e67f191d7e" +dependencies = [ + "cc", + "getrandom", + "libc 0.2.149", + "spin 0.9.8", + "untrusted 0.9.0", + "windows-sys", +] + [[package]] name = "rlimit" version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f7278a1ec8bfd4a4e07515c589f5ff7b309a373f987393aef44813d9dcf87aa3" dependencies = [ - "libc 0.2.146", + "libc 0.2.149", +] + +[[package]] +name = "rmp" +version = "0.8.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f9860a6cc38ed1da53456442089b4dfa35e7cedaa326df63017af88385e6b20" +dependencies = [ + "byteorder", + "num-traits", + "paste", +] + +[[package]] +name = "rmp-serde" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bffea85eea980d8a74453e5d02a8d93028f3c34725de143085a844ebe953258a" +dependencies = [ + "byteorder", + "rmp", + "serde", ] +[[package]] +name = "rustc-demangle" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" + [[package]] name = "rustc-hash" version = "1.1.0" @@ -2004,26 +2557,25 @@ checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" [[package]] name = "rustix" -version = "0.37.20" +version = "0.38.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b96e891d04aa506a6d1f318d2771bcb1c7dfda84e126660ace067c9b474bb2c0" +checksum = "5a74ee2d7c2581cd139b42447d7d9389b889bdaad3a73f1ebb16f2a3237bb19c" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.4.0", "errno", - "io-lifetimes", - "libc 0.2.146", + "libc 0.2.149", "linux-raw-sys", - "windows-sys 0.48.0", + "windows-sys", ] [[package]] name = "rustls" -version = "0.20.8" +version = "0.20.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fff78fc74d175294f4e83b28343315ffcfb114b156f0185e9741cb5570f50e2f" +checksum = "1b80e3dec595989ea8510028f30c408a4630db12c9cbb8de34203b89d6577e99" dependencies = [ "log", - "ring", + "ring 0.16.20", "sct", "webpki", ] @@ -2042,13 +2594,19 @@ dependencies = [ [[package]] name = "rustls-pemfile" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d194b56d58803a43635bdc398cd17e383d6f71f9182b9a192c127ca42494a59b" +checksum = "2d3987094b1d07b653b7dfdc3f70ce9a1da9c51ac18c1b06b662e4f9a0e9f4b2" dependencies = [ - "base64", + "base64 0.21.4", ] +[[package]] +name = "rustversion" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4" + [[package]] name = "ruzstd" version = "0.3.1" @@ -2062,9 +2620,9 @@ dependencies = [ [[package]] name = "ryu" -version = "1.0.13" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041" +checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" [[package]] name = "same-file" @@ -2077,18 +2635,18 @@ dependencies = [ [[package]] name = "schannel" -version = "0.1.21" +version = "0.1.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "713cfb06c7059f3588fb8044c0fad1d09e3c01d225e25b9220dbfdcf16dbb1b3" +checksum = "0c3733bf4cf7ea0880754e19cb5a462007c4a8c1914bff372ccc95b464f1df88" dependencies = [ - "windows-sys 0.42.0", + "windows-sys", ] [[package]] name = "scopeguard" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "sct" @@ -2096,31 +2654,31 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4" dependencies = [ - "ring", - "untrusted", + "ring 0.16.20", + "untrusted 0.7.1", ] [[package]] name = "security-framework" -version = "2.9.1" +version = "2.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fc758eb7bffce5b308734e9b0c1468893cae9ff70ebf13e7090be8dcbcc83a8" +checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de" dependencies = [ "bitflags 1.3.2", "core-foundation", "core-foundation-sys", - "libc 0.2.146", + "libc 0.2.149", "security-framework-sys", ] [[package]] name = "security-framework-sys" -version = "2.9.0" +version = "2.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f51d0c0d83bec45f16480d0ce0058397a69e48fcdc52d1dc8855fb68acbd31a7" +checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a" dependencies = [ "core-foundation-sys", - "libc 0.2.146", + "libc 0.2.149", ] [[package]] @@ -2129,44 +2687,44 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "604b71b8fc267e13bb3023a2c901126c8f349393666a6d98ac1ae5729b701798" dependencies = [ - "libc 0.2.146", + "libc 0.2.149", "tokio", ] [[package]] name = "serde" -version = "1.0.164" +version = "1.0.188" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e8c8cf938e98f769bc164923b06dce91cea1751522f46f8466461af04c9027d" +checksum = "cf9e0fcba69a370eed61bcf2b728575f726b50b55cba78064753d708ddc7549e" dependencies = [ "serde_derive", ] [[package]] name = "serde_bytes" -version = "0.11.9" +version = "0.11.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "416bda436f9aab92e02c8e10d49a15ddd339cea90b6e340fe51ed97abb548294" +checksum = "ab33ec92f677585af6d88c65593ae2375adde54efdbf16d597f2cbc7a6d368ff" dependencies = [ "serde", ] [[package]] name = "serde_derive" -version = "1.0.164" +version = "1.0.188" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9735b638ccc51c28bf6914d90a2e9725b377144fc612c49a611fddd1b631d68" +checksum = "4eca7ac642d82aa35b60049a6eccb4be6be75e599bd2e9adb5f875a737654af2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.18", + "syn 2.0.38", ] [[package]] name = "serde_json" -version = "1.0.97" +version = "1.0.107" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdf3bf93142acad5821c99197022e170842cdbc1c30482b98750c688c640842a" +checksum = "6b420ce6e3d8bd882e9b243c6eed35dbc9a6110c9769e74b584e0d68d1f20c65" dependencies = [ "itoa", "ryu", @@ -2175,24 +2733,24 @@ dependencies = [ [[package]] name = "sharded-slab" -version = "0.1.4" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31" +checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" dependencies = [ "lazy_static", ] [[package]] name = "shlex" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43b2853a4d09f215c24cc5489c992ce46052d359b5109343cbafbf26bc62f8a3" +checksum = "a7cee0529a6d40f580e7a5e6c495c8fbfe21b7b52795ed4bb5e62cdf92bc6380" [[package]] name = "sidecar_mockgen" version = "0.1.0" dependencies = [ - "object", + "object 0.31.1", ] [[package]] @@ -2201,29 +2759,29 @@ version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" dependencies = [ - "libc 0.2.146", + "libc 0.2.149", ] [[package]] name = "siphasher" -version = "0.3.10" +version = "0.3.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de" +checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" [[package]] name = "slab" -version = "0.4.8" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" dependencies = [ "autocfg", ] [[package]] name = "smallvec" -version = "1.10.0" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" +checksum = "942b4a808e05215192e39f4ab80813e599068285906cc91aa64f923db842bd5a" [[package]] name = "socket2" @@ -2231,10 +2789,20 @@ version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662" dependencies = [ - "libc 0.2.146", + "libc 0.2.149", "winapi", ] +[[package]] +name = "socket2" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4031e820eb552adee9295814c0ced9e5cf38ddf1e8b7d566d6de8e2538ea989e" +dependencies = [ + "libc 0.2.149", + "windows-sys", +] + [[package]] name = "spawn_worker" version = "0.0.1" @@ -2243,7 +2811,7 @@ dependencies = [ "cc_utils", "io-lifetimes", "memfd", - "nix", + "nix 0.24.3", "rlimit", "tempfile", ] @@ -2254,6 +2822,12 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" +[[package]] +name = "spin" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" + [[package]] name = "static_assertions" version = "1.1.0" @@ -2279,15 +2853,21 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.18" +version = "2.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32d41677bcbe24c20c52e7c70b0d8db04134c5d1066bf98662e2871ad200ea3e" +checksum = "e96b79aaa137db8f61e26363a0c9b47d8b4ec75da28b7d1d614c2303e232408b" dependencies = [ "proc-macro2", "quote", "unicode-ident", ] +[[package]] +name = "sync_wrapper" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" + [[package]] name = "sys-info" version = "0.9.1" @@ -2295,7 +2875,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b3a0d0aba8bf96a0e1ddfdc352fc53b3df7f39318c71854910c3c4b024ae52c" dependencies = [ "cc", - "libc 0.2.146", + "libc 0.2.149", ] [[package]] @@ -2323,7 +2903,7 @@ dependencies = [ "thiserror", "tokio", "tokio-serde", - "tokio-util 0.7.8", + "tokio-util 0.7.9", "tracing", "tracing-opentelemetry", "tracing-subscriber", @@ -2355,23 +2935,22 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.6.0" +version = "3.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31c0432476357e58790aaa47a8efb0c5138f137343f3b5f23bd36a27e3b0a6d6" +checksum = "cb94d2f3cc536af71caac6b6fcebf65860b347e7ce0cc9ebe8f70d3e521054ef" dependencies = [ - "autocfg", "cfg-if", "fastrand", "redox_syscall", "rustix", - "windows-sys 0.48.0", + "windows-sys", ] [[package]] name = "termcolor" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6" +checksum = "6093bad37da69aab9d123a8091e4be0aa4a03e4d601ec641c327398315f62b64" dependencies = [ "winapi-util", ] @@ -2384,22 +2963,22 @@ checksum = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d" [[package]] name = "thiserror" -version = "1.0.40" +version = "1.0.49" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "978c9a314bd8dc99be594bc3c175faaa9794be04a5a5e153caba6915336cebac" +checksum = "1177e8c6d7ede7afde3585fd2513e611227efd6481bd78d2e82ba1ce16557ed4" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.40" +version = "1.0.49" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f" +checksum = "10712f02019e9288794769fba95cd6847df9874d49d871d062172f9dd41bc4cc" dependencies = [ "proc-macro2", "quote", - "syn 2.0.18", + "syn 2.0.38", ] [[package]] @@ -2446,22 +3025,32 @@ dependencies = [ [[package]] name = "tokio" -version = "1.28.2" +version = "1.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94d7b1cfd2aa4011f2de74c2c4c63665e27a71006b0a192dcd2710272e73dfa2" +checksum = "4f38200e3ef7995e5ef13baec2f432a6da0aa9ac495b2c0e8f3b7eec2c92d653" dependencies = [ - "autocfg", + "backtrace", "bytes", - "libc 0.2.146", + "libc 0.2.149", "mio", "num_cpus", "parking_lot", "pin-project-lite", "signal-hook-registry", - "socket2", + "socket2 0.5.4", "tokio-macros", "tracing", - "windows-sys 0.48.0", + "windows-sys", +] + +[[package]] +name = "tokio-io-timeout" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30b74022ada614a1b4834de765f9bb43877f910cc8ce4be40e89042c9223a8bf" +dependencies = [ + "pin-project-lite", + "tokio", ] [[package]] @@ -2472,7 +3061,7 @@ checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.18", + "syn 2.0.38", ] [[package]] @@ -2529,9 +3118,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.8" +version = "0.7.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "806fe8c2c87eccc8b3267cbae29ed3ab2d0bd37fca70ab622e46aaa9375ddb7d" +checksum = "1d68074620f57a0b21594d9735eb2e98ab38b17f80d3fcb189fca266771ca60d" dependencies = [ "bytes", "futures-core", @@ -2551,6 +3140,60 @@ dependencies = [ "serde", ] +[[package]] +name = "tonic" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3082666a3a6433f7f511c7192923fa1fe07c69332d3c6a2e6bb040b569199d5a" +dependencies = [ + "async-trait", + "axum", + "base64 0.21.4", + "bytes", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "hyper", + "hyper-timeout", + "percent-encoding", + "pin-project", + "prost", + "tokio", + "tokio-stream", + "tower", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tower" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" +dependencies = [ + "futures-core", + "futures-util", + "indexmap 1.9.3", + "pin-project", + "pin-project-lite", + "rand 0.8.5", + "slab", + "tokio", + "tokio-util 0.7.9", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tower-layer" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0" + [[package]] name = "tower-service" version = "0.3.2" @@ -2572,13 +3215,13 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.25" +version = "0.1.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8803eee176538f94ae9a14b55b2804eb7e1441f8210b1c31290b3bccdccff73b" +checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab" dependencies = [ "proc-macro2", "quote", - "syn 2.0.18", + "syn 2.0.38", ] [[package]] @@ -2641,9 +3284,9 @@ checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" [[package]] name = "trybuild" -version = "1.0.80" +version = "1.0.85" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "501dbdbb99861e4ab6b60eb6a7493956a9defb644fd034bc4a5ef27c693c8a3a" +checksum = "196a58260a906cedb9bf6d8034b6379d0c11f552416960452f267402ceeddff1" dependencies = [ "basic-toml", "glob", @@ -2666,18 +3309,18 @@ dependencies = [ [[package]] name = "unicase" -version = "2.6.0" +version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6" +checksum = "f7d2d4dafb69621809a81864c9c1b864479e1235c0dd4e199924b9742439ed89" dependencies = [ "version_check 0.9.4", ] [[package]] name = "unicode-ident" -version = "1.0.9" +version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b15811caf2415fb889178633e7724bad2509101cde276048e013b9def5e51fa0" +checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" [[package]] name = "untrusted" @@ -2685,11 +3328,17 @@ version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" +[[package]] +name = "untrusted" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" + [[package]] name = "uuid" -version = "1.3.4" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fa2982af2eec27de306107c027578ff7f423d65f7250e40ce0fea8f45248b81" +checksum = "79daa5ed5740825c40b389c5e50312b9c86df53fccd33f281df655642b43869d" dependencies = [ "getrandom", ] @@ -2714,9 +3363,9 @@ checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" [[package]] name = "walkdir" -version = "2.3.3" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36df944cda56c7d8d8b7496af378e6b16de9284591917d307c9b4d313c44e698" +checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee" dependencies = [ "same-file", "winapi-util", @@ -2758,7 +3407,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.18", + "syn 2.0.38", "wasm-bindgen-shared", ] @@ -2780,7 +3429,7 @@ checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.18", + "syn 2.0.38", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -2803,23 +3452,24 @@ dependencies = [ [[package]] name = "webpki" -version = "0.22.0" +version = "0.22.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f095d78192e208183081cc07bc5515ef55216397af48b873e5edcd72637fa1bd" +checksum = "ed63aea5ce73d0ff405984102c42de94fc55a6b75765d621c65262469b3c9b53" dependencies = [ - "ring", - "untrusted", + "ring 0.17.3", + "untrusted 0.9.0", ] [[package]] name = "which" -version = "4.4.0" +version = "4.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2441c784c52b289a054b7201fc93253e288f094e2f4be9058343127c4226a269" +checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7" dependencies = [ "either", - "libc 0.2.146", + "home", "once_cell", + "rustix", ] [[package]] @@ -2840,9 +3490,9 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" +checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596" dependencies = [ "winapi", ] @@ -2862,21 +3512,6 @@ dependencies = [ "windows-targets", ] -[[package]] -name = "windows-sys" -version = "0.42.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" -dependencies = [ - "windows_aarch64_gnullvm 0.42.2", - "windows_aarch64_msvc 0.42.2", - "windows_i686_gnu 0.42.2", - "windows_i686_msvc 0.42.2", - "windows_x86_64_gnu 0.42.2", - "windows_x86_64_gnullvm 0.42.2", - "windows_x86_64_msvc 0.42.2", -] - [[package]] name = "windows-sys" version = "0.48.0" @@ -2888,102 +3523,60 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.48.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b1eb6f0cd7c80c79759c929114ef071b87354ce476d9d94271031c0497adfd5" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" dependencies = [ - "windows_aarch64_gnullvm 0.48.0", - "windows_aarch64_msvc 0.48.0", - "windows_i686_gnu 0.48.0", - "windows_i686_msvc 0.48.0", - "windows_x86_64_gnu 0.48.0", - "windows_x86_64_gnullvm 0.48.0", - "windows_x86_64_msvc 0.48.0", + "windows_aarch64_gnullvm", + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc", ] [[package]] name = "windows_aarch64_gnullvm" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.42.2" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] name = "windows_aarch64_msvc" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" - -[[package]] -name = "windows_i686_gnu" -version = "0.42.2" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] name = "windows_i686_gnu" -version = "0.48.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] name = "windows_i686_msvc" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" - -[[package]] -name = "windows_i686_msvc" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.42.2" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] name = "windows_x86_64_gnu" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.42.2" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] name = "windows_x86_64_gnullvm" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.42.2" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] name = "windows_x86_64_msvc" -version = "0.48.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "x86" @@ -3005,3 +3598,9 @@ name = "yansi" version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec" + +[[package]] +name = "zwohash" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "beaf63e0740cea93ca85de39611a8bc8262a50adacd6321cd209a123676d0447" diff --git a/nix-phps/pkgs/development/php-packages/datadog_trace/default.nix b/nix-phps/pkgs/development/php-packages/datadog_trace/default.nix index 98280a8da..2b8b7ea4f 100644 --- a/nix-phps/pkgs/development/php-packages/datadog_trace/default.nix +++ b/nix-phps/pkgs/development/php-packages/datadog_trace/default.nix @@ -12,21 +12,21 @@ }: buildPecl rec { - pname = "datadog_trace"; - version = "0.89.0"; + pname = "ddtrace"; + version = "0.97.0"; src = fetchFromGitHub { owner = "DataDog"; repo = "dd-trace-php"; rev = version; fetchSubmodules = true; - hash = "sha256-wTGQV80XQsBdmTQ+xaBKtFwLO3S+//9Yli9aReXDlLA="; + hash = "sha256-Kx2HaWvRT+mFIs0LAAptx6nm9DQ83QEuyHNcEPEr7A4="; }; cargoDeps = rustPlatform.importCargoLock { lockFile = ./Cargo.lock; outputHashes = { - "datadog-profiling-2.2.0" = "sha256-PWzC+E2u0hM0HhU0mgZJZvFomEJdQag/3ZK1FibSLG8="; + "datadog-profiling-5.0.0" = "sha256-/Z1vGpAHpU5EO80NXnzyAHN4s3iyA1jOquBS8MH1nOo="; }; }; @@ -47,9 +47,8 @@ buildPecl rec { curl pcre2 ] ++ lib.optionals stdenv.isDarwin [ - darwin.apple_sdk_11_0.frameworks.CoreFoundation - darwin.apple_sdk_11_0.frameworks.Security - darwin.apple_sdk_11_0.Libsystem + darwin.apple_sdk.frameworks.CoreFoundation + darwin.apple_sdk.frameworks.Security libiconv ]; diff --git a/nix-phps/pkgs/development/php-packages/ds/default.nix b/nix-phps/pkgs/development/php-packages/ds/default.nix index 7cbdfa17f..7e37c8a2d 100644 --- a/nix-phps/pkgs/development/php-packages/ds/default.nix +++ b/nix-phps/pkgs/development/php-packages/ds/default.nix @@ -1,7 +1,7 @@ { buildPecl, lib, pcre2, php, fetchFromGitHub }: let - version = "1.4.0"; + version = "1.5.0"; in buildPecl { inherit version; pname = "ds"; @@ -10,7 +10,7 @@ in buildPecl { owner = "php-ds"; repo = "ext-ds"; rev = "v${version}"; - sha256 = "sha256-IqNv2jVW1Hg1hV8H9vEyLT5BWsFkGHR+WlAOHJhlW84="; + sha256 = "sha256-lL1PUjc4bMTsWm2th0wDxnMaGuVziBUtgK88bUJXuBY="; }; buildInputs = [ pcre2 ]; diff --git a/nix-phps/pkgs/development/php-packages/grpc/default.nix b/nix-phps/pkgs/development/php-packages/grpc/default.nix index d3bae3ea9..e70432f37 100644 --- a/nix-phps/pkgs/development/php-packages/grpc/default.nix +++ b/nix-phps/pkgs/development/php-packages/grpc/default.nix @@ -1,18 +1,24 @@ { buildPecl -, zlib +, pkg-config , lib +, grpc }: buildPecl { pname = "grpc"; - version = "1.56.0"; + inherit (grpc) version src; - sha256 = "sha256-uzxYMUzExMBDtwv3FipOuuUHg0v1wqAUtn69jXAQnf4="; + sourceRoot = "${grpc.src.name}/src/php/ext/grpc"; - doCheck = true; - checkTarget = "test"; + patches = [ + ./use-pkgconfig.patch # https://github.com/grpc/grpc/pull/35404 + ./skip-darwin-test.patch # https://github.com/grpc/grpc/pull/35403 + ]; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ grpc ]; - nativeBuildInputs = [ zlib ]; + doCheck = true; meta = { description = "A high performance, open source, general RPC framework that puts mobile and HTTP/2 first."; diff --git a/nix-phps/pkgs/development/php-packages/grpc/skip-darwin-test.patch b/nix-phps/pkgs/development/php-packages/grpc/skip-darwin-test.patch new file mode 100644 index 000000000..e6c5fb34a --- /dev/null +++ b/nix-phps/pkgs/development/php-packages/grpc/skip-darwin-test.patch @@ -0,0 +1,22 @@ +From b1fa212d0bc29dcc72107ad67fb99d4ef573942a Mon Sep 17 00:00:00 2001 +From: Shyim +Date: Thu, 28 Dec 2023 10:28:21 +0100 +Subject: [PATCH] php: skip epoll1 test on darwin + +--- + tests/grpc-set-ini.phpt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/tests/grpc-set-ini.phpt b/tests/grpc-set-ini.phpt +index 55c18ee526e24..b39348ea2e685 100644 +--- a/tests/grpc-set-ini.phpt ++++ b/tests/grpc-set-ini.phpt +@@ -1,7 +1,7 @@ + --TEST-- + Ensure ini settings are handled + --SKIPIF-- +- ++ + --INI-- + grpc.enable_fork_support = 1 + grpc.poll_strategy = epoll1 \ No newline at end of file diff --git a/nix-phps/pkgs/development/php-packages/grpc/use-pkgconfig.patch b/nix-phps/pkgs/development/php-packages/grpc/use-pkgconfig.patch new file mode 100644 index 000000000..628f54abb --- /dev/null +++ b/nix-phps/pkgs/development/php-packages/grpc/use-pkgconfig.patch @@ -0,0 +1,82 @@ +From 24b4e273bd503760a485e92ca418e4699767ec51 Mon Sep 17 00:00:00 2001 +From: Shyim +Date: Thu, 28 Dec 2023 10:38:42 +0100 +Subject: [PATCH] [php]: add with-grpc-dir to configure and add pkg-config + support + +--- + config.m4 | 48 +++++++++++++++++++++++++------------- + 1 file changed, 32 insertions(+), 16 deletions(-) + +diff --git a/config.m4 b/config.m4 +index 5600df34ccfa3..c2186a41d21f5 100755 +--- a/config.m4 ++++ b/config.m4 +@@ -7,35 +7,51 @@ PHP_ARG_ENABLE(coverage, whether to include code coverage symbols, + PHP_ARG_ENABLE(tests, whether to compile helper methods for tests, + [ --enable-tests Enable tests methods], no, no) + ++PHP_ARG_WITH(grpc-dir, for grpc, ++[ --with-grpc-dir[=DIR] Set the path to grpc install prefix.], yes) ++ + dnl Check whether to enable tests + if test "$PHP_TESTS" != "no"; then + CPPFLAGS="$CPPFLAGS -DGRPC_PHP_DEBUG" + fi + + if test "$PHP_GRPC" != "no"; then +- dnl Write more examples of tests here... +- +- dnl # --with-grpc -> check with-path +- SEARCH_PATH="/usr/local /usr" # you might want to change this +- SEARCH_FOR="include/grpc/grpc.h" # you most likely want to change this +- if test -r $PHP_GRPC/$SEARCH_FOR; then # path given as parameter +- GRPC_DIR=$PHP_GRPC +- else # search default path list ++ AC_PATH_PROG(PKG_CONFIG, pkg-config, no) ++ ++ if test "$PHP_GRPC_DIR" = "yes" -a -x $PKG_CONFIG; then ++ AC_MSG_CHECKING([for grpc using pkg-config]) ++ ++ if ! $PKG_CONFIG --exists grpc ; then ++ AC_MSG_ERROR([grpc not found]) ++ fi ++ ++ GRPC_VERSION=`$PKG_CONFIG grpc --modversion` ++ AC_MSG_RESULT([found version $GRPC_VERSION]) ++ ++ PHP_GRPC_LIBS=`$PKG_CONFIG grpc --libs` ++ PHP_GRPC_INCS=`$PKG_CONFIG grpc --cflags` ++ ++ PHP_EVAL_LIBLINE($PHP_GRPC_LIBS, AMQP_SHARED_LIBADD) ++ PHP_EVAL_INCLINE($PHP_GRPC_INCS) ++ else + AC_MSG_CHECKING([for grpc files in default path]) ++ ++ SEARCH_PATH="$PHP_GRPC_DIR /usr/local /usr" ++ + for i in $SEARCH_PATH ; do +- if test -r $i/$SEARCH_FOR; then ++ if test -r $i/include/grpc/grpc.h; then + GRPC_DIR=$i + AC_MSG_RESULT(found in $i) + fi + done +- fi +- if test -z "$GRPC_DIR"; then +- AC_MSG_RESULT([not found]) +- AC_MSG_ERROR([Please reinstall the grpc distribution]) +- fi + +- dnl # --with-grpc -> add include path +- PHP_ADD_INCLUDE($GRPC_DIR/include) ++ if test -z "$GRPC_DIR"; then ++ AC_MSG_RESULT([not found]) ++ AC_MSG_ERROR([Please reinstall the grpc distribution]) ++ fi ++ ++ PHP_ADD_INCLUDE($GRPC_DIR/include) ++ fi + + LIBS="-lpthread $LIBS" + diff --git a/nix-phps/pkgs/development/php-packages/grumphp/default.nix b/nix-phps/pkgs/development/php-packages/grumphp/default.nix index c7c2d9fc3..4e3795e42 100644 --- a/nix-phps/pkgs/development/php-packages/grumphp/default.nix +++ b/nix-phps/pkgs/development/php-packages/grumphp/default.nix @@ -1,32 +1,27 @@ -{ mkDerivation, fetchurl, makeWrapper, lib, php }: +{ fetchFromGitHub +, lib +, php +}: -mkDerivation (finalAttrs: { +php.buildComposerProject (finalAttrs: { pname = "grumphp"; - version = "1.15.0"; + version = "2.4.0"; - src = fetchurl { - url = "https://github.com/phpro/grumphp/releases/download/v${finalAttrs.version}/grumphp.phar"; - sha256 = "sha256-EqzJb7DYZb7PnebErLVI/EZLxj0m26cniZlsu1feif0="; + src = fetchFromGitHub { + owner = "phpro"; + repo = "grumphp"; + rev = "v${finalAttrs.version}"; + hash = "sha256-htddnBQ6VkVlZ+d5UYu2kyzrbfACRCZRdYtdGGaZ+FE="; }; - dontUnpack = true; + vendorHash = "sha256-UJsWZ5dYW8sEft/i122x7bJJ33TVjEp5CU65rW/tHhk="; - nativeBuildInputs = [ makeWrapper ]; - - installPhase = '' - runHook preInstall - mkdir -p $out/bin - install -D $src $out/libexec/grumphp/grumphp.phar - makeWrapper ${php}/bin/php $out/bin/grumphp \ - --add-flags "$out/libexec/grumphp/grumphp.phar" - runHook postInstall - ''; - - meta = with lib; { + meta = { changelog = "https://github.com/phpro/grumphp/releases/tag/v${finalAttrs.version}"; description = "A PHP code-quality tool"; homepage = "https://github.com/phpro/grumphp"; - license = licenses.mit; - maintainers = teams.php.members; + license = lib.licenses.mit; + mainProgram = "grumphp"; + maintainers = lib.teams.php.members; }; }) diff --git a/nix-phps/pkgs/development/php-packages/maxminddb/default.nix b/nix-phps/pkgs/development/php-packages/maxminddb/default.nix index 141d31268..80f54c567 100644 --- a/nix-phps/pkgs/development/php-packages/maxminddb/default.nix +++ b/nix-phps/pkgs/development/php-packages/maxminddb/default.nix @@ -1,7 +1,7 @@ { buildPecl, lib, fetchFromGitHub, libmaxminddb }: let pname = "maxminddb"; - version = "1.11.0"; + version = "1.11.1"; in buildPecl { inherit pname version; @@ -10,7 +10,7 @@ buildPecl { owner = "maxmind"; repo = "MaxMind-DB-Reader-php"; rev = "v${version}"; - sha256 = "sha256-Dw1+pYJmZ3U2+rgSOEkx4a6HB8FebSr7YZodOjSipjI="; + sha256 = "sha256-e22HVsD0YstGQiRch0zUUF5CY1zSuFCyU2anK9uGCY4="; }; prePatch = '' @@ -23,6 +23,6 @@ buildPecl { description = "C extension that is a drop-in replacement for MaxMind\\Db\\Reader"; license = with licenses; [ asl20 ]; homepage = "https://github.com/maxmind/MaxMind-DB-Reader-php"; - maintainers = with maintainers; [ ajs124 das_j ] ++ teams.php.members; + maintainers = teams.helsinki-systems.members ++ teams.php.members; }; } diff --git a/nix-phps/pkgs/development/php-packages/memcache/default.nix b/nix-phps/pkgs/development/php-packages/memcache/default.nix new file mode 100644 index 000000000..6cb205c61 --- /dev/null +++ b/nix-phps/pkgs/development/php-packages/memcache/default.nix @@ -0,0 +1,31 @@ +{ buildPecl, lib, fetchFromGitHub, php, zlib, pkg-config }: + +buildPecl rec { + pname = "memcache"; + version = "8.2"; + + src = fetchFromGitHub { + owner = "websupport-sk"; + repo = "pecl-memcache"; + rev = version; + hash = "sha256-77GvQ59XUpIZmdYZP6IhtjdkYwXKuNBSG+LBScz2BtI="; + }; + + internalDeps = [ + php.extensions.session + ]; + + configureFlags = [ + "--with-zlib-dir=${zlib.dev}" + ]; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ zlib ]; + + meta = with lib; { + description = "PHP extension for interfacing with memcached"; + license = licenses.php301; + homepage = "https://github.com/websupport-sk/pecl-memcache"; + maintainers = teams.php.members ++ [ maintainers.krzaczek ]; + }; +} diff --git a/nix-phps/pkgs/development/php-packages/meminfo/default.nix b/nix-phps/pkgs/development/php-packages/meminfo/default.nix new file mode 100644 index 000000000..d170243be --- /dev/null +++ b/nix-phps/pkgs/development/php-packages/meminfo/default.nix @@ -0,0 +1,22 @@ +{ buildPecl, lib, fetchFromGitHub }: + +buildPecl rec { + version = "unstable-2022-03-25"; + pname = "meminfo"; + + src = fetchFromGitHub { + owner = "BitOne"; + repo = "php-meminfo"; + rev = "0ab7f5aea96c4dafce27c7e215b4907db2a2f493"; + hash = "sha256-MO+B+ZNg6OAnxkOtdA15o+G41XbsG1N1WBz7thMCjck="; + }; + + sourceRoot = "${src.name}/extension"; + + meta = { + description = "PHP extension to get insight about memory usage"; + homepage = "https://github.com/BitOne/php-meminfo"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ drupol ]; + }; +} diff --git a/nix-phps/pkgs/development/php-packages/memprof/default.nix b/nix-phps/pkgs/development/php-packages/memprof/default.nix new file mode 100644 index 000000000..04ef8e6be --- /dev/null +++ b/nix-phps/pkgs/development/php-packages/memprof/default.nix @@ -0,0 +1,33 @@ +{ buildPecl +, lib +, fetchFromGitHub +, judy +}: + +let + version = "3.0.2"; +in buildPecl { + inherit version; + pname = "memprof"; + + src = fetchFromGitHub { + owner = "arnaud-lb"; + repo = "php-memory-profiler"; + rev = version; + hash = "sha256-K8YcvCobErBkaWFTkVGLXXguQPOLIgQuRGWJF+HAIRA="; + }; + + configureFlags = [ + "--with-judy-dir=${judy}" + ]; + + doCheck = true; + + meta = { + changelog = "https://github.com/arnaud-lb/php-memory-profiler/releases/tag/${version}"; + description = "Memory profiler for PHP. Helps finding memory leaks in PHP scripts"; + homepage = "https://github.com/arnaud-lb/php-memory-profiler"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ gaelreyrol ]; + }; +} diff --git a/nix-phps/pkgs/development/php-packages/mongodb/default.nix b/nix-phps/pkgs/development/php-packages/mongodb/default.nix index 777f77782..4402ecda0 100644 --- a/nix-phps/pkgs/development/php-packages/mongodb/default.nix +++ b/nix-phps/pkgs/development/php-packages/mongodb/default.nix @@ -15,13 +15,13 @@ buildPecl rec { pname = "mongodb"; - version = "1.16.1"; + version = "1.17.2"; src = fetchFromGitHub { owner = "mongodb"; repo = "mongo-php-driver"; rev = version; - hash = "sha256-nVkue3qB6OwXKcyaYU1WmXG7pamKQtk8cbztVVkNejo="; + hash = "sha256-7JzFls5cMzlA2aEM7M4+Dg4yIJNzz/vNOXNEITejePk="; fetchSubmodules = true; }; diff --git a/nix-phps/pkgs/development/php-packages/openswoole/default.nix b/nix-phps/pkgs/development/php-packages/openswoole/default.nix index f71b2166c..dd0dd17b2 100644 --- a/nix-phps/pkgs/development/php-packages/openswoole/default.nix +++ b/nix-phps/pkgs/development/php-packages/openswoole/default.nix @@ -1,7 +1,7 @@ { lib, stdenv, buildPecl, valgrind, pcre2, fetchFromGitHub }: let - version = "22.0.0"; + version = "22.1.2"; in buildPecl { inherit version; pname = "openswoole"; @@ -10,7 +10,7 @@ in buildPecl { owner = "openswoole"; repo = "swoole-src"; rev = "v${version}"; - hash = "sha256-4Z7mBNGHXS/giSCmPpSyu9/99MEjCnoXgymDM/s1gk8="; + hash = "sha256-Z26E1PdKypB/MImCHFgA3rJW5LvVaLZsQUxRv0RcFuo="; }; buildInputs = [ pcre2 ] ++ lib.optionals (!stdenv.isDarwin) [ valgrind ]; diff --git a/nix-phps/pkgs/development/php-packages/opentelemetry/default.nix b/nix-phps/pkgs/development/php-packages/opentelemetry/default.nix new file mode 100644 index 000000000..38dfa86e1 --- /dev/null +++ b/nix-phps/pkgs/development/php-packages/opentelemetry/default.nix @@ -0,0 +1,27 @@ +{ lib, buildPecl, fetchFromGitHub }: + +let + version = "1.0.1"; +in buildPecl { + inherit version; + pname = "opentelemetry"; + + src = fetchFromGitHub { + owner = "open-telemetry"; + repo = "opentelemetry-php-instrumentation"; + rev = version; + hash = "sha256-VHUzRhTtHygHoW+poItaphV+mxe4rmmSfGgesUgPz8Q="; + }; + + sourceRoot = "source/ext"; + + doCheck = true; + + meta = with lib; { + changelog = "https://github.com/open-telemetry/opentelemetry-php-instrumentation/releases/tag/${version}"; + description = "OpenTelemetry PHP auto-instrumentation extension"; + homepage = "https://opentelemetry.io/"; + license = licenses.asl20; + maintainers = with maintainers; [ gaelreyrol ]; + }; +} diff --git a/nix-phps/pkgs/development/php-packages/pdepend/default.nix b/nix-phps/pkgs/development/php-packages/pdepend/default.nix deleted file mode 100644 index 9e8bdd2ee..000000000 --- a/nix-phps/pkgs/development/php-packages/pdepend/default.nix +++ /dev/null @@ -1,41 +0,0 @@ -{ stdenv, fetchurl, makeWrapper, lib, php }: - -let - pname = "pdepend"; - version = "2.14.0"; -in -stdenv.mkDerivation { - inherit pname version; - - src = fetchurl { - url = "https://github.com/pdepend/pdepend/releases/download/${version}/pdepend.phar"; - sha256 = "sha256-t6Yf+z/8O/tZuYoLAZo2G5bORh8XPeEMdK57dWjHsmk="; - }; - - dontUnpack = true; - - nativeBuildInputs = [ makeWrapper ]; - - installPhase = '' - runHook preInstall - mkdir -p $out/bin - install -D $src $out/libexec/pdepend/pdepend.phar - makeWrapper ${php}/bin/php $out/bin/pdepend \ - --add-flags "$out/libexec/pdepend/pdepend.phar" - runHook postInstall - ''; - - meta = with lib; { - description = "An adaptation of JDepend for PHP"; - homepage = "https://github.com/pdepend/pdepend"; - license = licenses.bsd3; - longDescription = " - PHP Depend is an adaptation of the established Java - development tool JDepend. This tool shows you the quality - of your design in terms of extensibility, reusability and - maintainability. - "; - maintainers = teams.php.members; - platforms = platforms.all; - }; -} diff --git a/nix-phps/pkgs/development/php-packages/phalcon/default.nix b/nix-phps/pkgs/development/php-packages/phalcon/default.nix new file mode 100644 index 000000000..95bd2d894 --- /dev/null +++ b/nix-phps/pkgs/development/php-packages/phalcon/default.nix @@ -0,0 +1,27 @@ +{ buildPecl, lib, pcre2, fetchFromGitHub, php, pkg-config }: + +buildPecl rec { + pname = "phalcon"; + version = "5.6.0"; + + src = fetchFromGitHub { + owner = "phalcon"; + repo = "cphalcon"; + rev = "v${version}"; + hash = "sha256-EtwhWRBqJOMndmsy+Rgc4MVjFZg/Fm97qkSuTGxqHhI="; + }; + + internalDeps = [ php.extensions.session php.extensions.pdo ]; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ pcre2 ]; + + sourceRoot = "${src.name}/build/phalcon"; + + meta = with lib; { + description = "Phalcon is a full stack PHP framework offering low resource consumption and high performance."; + license = licenses.bsd3; + homepage = "https://phalcon.io"; + maintainers = teams.php.members ++ [ maintainers.krzaczek ]; + }; +} diff --git a/nix-phps/pkgs/development/php-packages/phan/default.nix b/nix-phps/pkgs/development/php-packages/phan/default.nix index 570d96ac2..82beda4ad 100644 --- a/nix-phps/pkgs/development/php-packages/phan/default.nix +++ b/nix-phps/pkgs/development/php-packages/phan/default.nix @@ -9,11 +9,11 @@ let in mkDerivation rec { pname = "phan"; - version = "5.4.1"; + version = "5.4.3"; src = fetchurl { url = "https://github.com/phan/phan/releases/download/${version}/phan.phar"; - hash = "sha256-DJr1BWAfNI3hYvmBui5Dp+n7ec+f+gkOso21KEd6m8I="; + hash = "sha256-wZU6YIlH0q18iD044y6Z5gSscBn7cI0AwRwZgT/YhOo="; }; dontUnpack = true; diff --git a/nix-phps/pkgs/development/php-packages/php-cs-fixer/default.nix b/nix-phps/pkgs/development/php-packages/php-cs-fixer/default.nix index 24222ca29..611e5f263 100644 --- a/nix-phps/pkgs/development/php-packages/php-cs-fixer/default.nix +++ b/nix-phps/pkgs/development/php-packages/php-cs-fixer/default.nix @@ -2,14 +2,14 @@ let pname = "php-cs-fixer"; - version = "3.22.0"; + version = "3.49.0"; in mkDerivation { inherit pname version; src = fetchurl { url = "https://github.com/FriendsOfPHP/PHP-CS-Fixer/releases/download/v${version}/php-cs-fixer.phar"; - sha256 = "sha256-iP5dmJkYZ/E1TAm4oLOCCQ5DCc4+I3CcEr8tOezzCt4="; + sha256 = "sha256-cnH6SEEaEh7X9zlHgHD8eOpaSUDnqhL2SMnNGSj1nJQ="; }; dontUnpack = true; diff --git a/nix-phps/pkgs/development/php-packages/phpcbf/default.nix b/nix-phps/pkgs/development/php-packages/phpcbf/default.nix index 9a85a5ec4..41f860d6e 100644 --- a/nix-phps/pkgs/development/php-packages/phpcbf/default.nix +++ b/nix-phps/pkgs/development/php-packages/phpcbf/default.nix @@ -2,14 +2,14 @@ let pname = "phpcbf"; - version = "3.7.1"; + version = "3.7.2"; in mkDerivation { inherit pname version; src = fetchurl { url = "https://github.com/squizlabs/PHP_CodeSniffer/releases/download/${version}/phpcbf.phar"; - sha256 = "sha256-yTwOg8vaIcIfhJzPD0tCl50gAEpaYXLtDqJw7Keub6g="; + sha256 = "sha256-TspzKpl98IpMl+QyZuuBIvkW05uwAqAAYA/dU5P07+E="; }; dontUnpack = true; diff --git a/nix-phps/pkgs/development/php-packages/phpcs/default.nix b/nix-phps/pkgs/development/php-packages/phpcs/default.nix index 0e2d886e6..84e9effbc 100644 --- a/nix-phps/pkgs/development/php-packages/phpcs/default.nix +++ b/nix-phps/pkgs/development/php-packages/phpcs/default.nix @@ -2,14 +2,14 @@ let pname = "phpcs"; - version = "3.7.1"; + version = "3.7.2"; in mkDerivation { inherit pname version; src = fetchurl { url = "https://github.com/squizlabs/PHP_CodeSniffer/releases/download/${version}/phpcs.phar"; - sha256 = "sha256-ehQyOhSvn1gwLRVEJJLuEHaozXLAGKgWy0SWW/OpsBU="; + sha256 = "sha256-IEIUwepbqBT7CyYIwZzKLBC/X/zJ8OPUw0qtwBeVF7c="; }; dontUnpack = true; diff --git a/nix-phps/pkgs/development/php-packages/phpmd/default.nix b/nix-phps/pkgs/development/php-packages/phpmd/default.nix index ba8c0c70c..bd50a6144 100644 --- a/nix-phps/pkgs/development/php-packages/phpmd/default.nix +++ b/nix-phps/pkgs/development/php-packages/phpmd/default.nix @@ -2,14 +2,14 @@ let pname = "phpmd"; - version = "2.13.0"; + version = "2.15.0"; in mkDerivation { inherit pname version; src = fetchurl { url = "https://github.com/phpmd/phpmd/releases/download/${version}/phpmd.phar"; - sha256 = "LNR7qT3KIhIeq9WPdXVGsnuzzXN4ze/juDMpt1Ke/A0="; + sha256 = "sha256-aijvVd4MdTsHDR0VgLsIoNFGAW+J8O3c72CsT8EINUQ="; }; dontUnpack = true; diff --git a/nix-phps/pkgs/development/php-packages/phpspy/default.nix b/nix-phps/pkgs/development/php-packages/phpspy/default.nix new file mode 100644 index 000000000..4ae9f22c1 --- /dev/null +++ b/nix-phps/pkgs/development/php-packages/phpspy/default.nix @@ -0,0 +1,48 @@ +{ lib +, stdenv +, fetchFromGitHub +, php +, testers +, phpPackages +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "phpspy"; + version = "0.6.0"; + + src = fetchFromGitHub { + owner = "adsr"; + repo = "phpspy"; + rev = "v${finalAttrs.version}"; + hash = "sha256-iQOeZLHRc5yUgXc6xz52t/6oc07eZfH5ZgzSdJBcaak="; + fetchSubmodules = true; + }; + + nativeBuildInputs = [ php.unwrapped ]; + + env.USE_ZEND = 1; + + installPhase = '' + runHook preInstall + + mkdir -p $out/bin + cp phpspy $out/bin + + runHook postInstall + ''; + + passthru.tests.version = testers.testVersion { + version = "v${finalAttrs.version}"; + package = phpPackages.phpspy; + command = "phpspy -v"; + }; + + meta = with lib; { + description = "Low-overhead sampling profiler for PHP"; + homepage = "https://github.com/adsr/phpspy"; + license = licenses.mit; + mainProgram = "phpspy"; + maintainers = with maintainers; [ gaelreyrol ]; + platforms = [ "x86_64-linux" ]; + }; +}) diff --git a/nix-phps/pkgs/development/php-packages/phpstan/default.nix b/nix-phps/pkgs/development/php-packages/phpstan/default.nix index f36b20013..d34b193b0 100644 --- a/nix-phps/pkgs/development/php-packages/phpstan/default.nix +++ b/nix-phps/pkgs/development/php-packages/phpstan/default.nix @@ -1,33 +1,23 @@ -{ mkDerivation, fetchurl, makeWrapper, lib, php }: +{ fetchFromGitHub, lib, php }: -let +php.buildComposerProject (finalAttrs: { pname = "phpstan"; - version = "1.10.28"; -in -mkDerivation { - inherit pname version; + version = "1.10.44"; - src = fetchurl { - url = "https://github.com/phpstan/phpstan/releases/download/${version}/phpstan.phar"; - sha256 = "sha256-Jbsamdtxui2esC9WyxLakWLxWg33mhKJKi/iaEV9nbA="; + src = fetchFromGitHub { + owner = "phpstan"; + repo = "phpstan-src"; + rev = finalAttrs.version; + hash = "sha256-QV3LYsl/vkC7GgGXthMneCTE716YP7dYL6bnSZDCwlA="; }; - dontUnpack = true; + vendorHash = "sha256-eF9ijUhCjMd0c9/I/QGPvFnXW5vkmBTEvE2TgiZCabg="; + composerStrictValidation = false; - nativeBuildInputs = [ makeWrapper ]; - - installPhase = '' - runHook preInstall - mkdir -p $out/bin - install -D $src $out/libexec/phpstan/phpstan.phar - makeWrapper ${php}/bin/php $out/bin/phpstan \ - --add-flags "$out/libexec/phpstan/phpstan.phar" - runHook postInstall - ''; - - meta = with lib; { - changelog = "https://github.com/phpstan/phpstan/releases/tag/${version}"; + meta = { + changelog = "https://github.com/phpstan/phpstan/releases/tag/${finalAttrs.version}"; description = "PHP Static Analysis Tool"; + homepage = "https://github.com/phpstan/phpstan"; longDescription = '' PHPStan focuses on finding errors in your code without actually running it. It catches whole classes of bugs even before you write @@ -35,8 +25,8 @@ mkDerivation { sense that the correctness of each line of the code can be checked before you run the actual line. ''; - license = licenses.mit; - homepage = "https://github.com/phpstan/phpstan"; - maintainers = teams.php.members; + license = lib.licenses.mit; + mainProgram = "phpstan"; + maintainers = lib.teams.php.members; }; -} +}) diff --git a/nix-phps/pkgs/development/php-packages/psalm/composer.lock b/nix-phps/pkgs/development/php-packages/psalm/composer.lock new file mode 100644 index 000000000..ae51d5aba --- /dev/null +++ b/nix-phps/pkgs/development/php-packages/psalm/composer.lock @@ -0,0 +1,4636 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", + "This file is @generated automatically" + ], + "content-hash": "ee60cb38244924a30b9a4f1eb3dbaa53", + "packages": [ + { + "name": "amphp/amp", + "version": "v2.6.2", + "source": { + "type": "git", + "url": "https://github.com/amphp/amp.git", + "reference": "9d5100cebffa729aaffecd3ad25dc5aeea4f13bb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/amphp/amp/zipball/9d5100cebffa729aaffecd3ad25dc5aeea4f13bb", + "reference": "9d5100cebffa729aaffecd3ad25dc5aeea4f13bb", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "require-dev": { + "amphp/php-cs-fixer-config": "dev-master", + "amphp/phpunit-util": "^1", + "ext-json": "*", + "jetbrains/phpstorm-stubs": "^2019.3", + "phpunit/phpunit": "^7 | ^8 | ^9", + "psalm/phar": "^3.11@dev", + "react/promise": "^2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.x-dev" + } + }, + "autoload": { + "files": [ + "lib/functions.php", + "lib/Internal/functions.php" + ], + "psr-4": { + "Amp\\": "lib" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Daniel Lowrey", + "email": "rdlowrey@php.net" + }, + { + "name": "Aaron Piotrowski", + "email": "aaron@trowski.com" + }, + { + "name": "Bob Weinand", + "email": "bobwei9@hotmail.com" + }, + { + "name": "Niklas Keller", + "email": "me@kelunik.com" + } + ], + "description": "A non-blocking concurrency framework for PHP applications.", + "homepage": "https://amphp.org/amp", + "keywords": [ + "async", + "asynchronous", + "awaitable", + "concurrency", + "event", + "event-loop", + "future", + "non-blocking", + "promise" + ], + "support": { + "irc": "irc://irc.freenode.org/amphp", + "issues": "https://github.com/amphp/amp/issues", + "source": "https://github.com/amphp/amp/tree/v2.6.2" + }, + "funding": [ + { + "url": "https://github.com/amphp", + "type": "github" + } + ], + "time": "2022-02-20T17:52:18+00:00" + }, + { + "name": "amphp/byte-stream", + "version": "v1.8.1", + "source": { + "type": "git", + "url": "https://github.com/amphp/byte-stream.git", + "reference": "acbd8002b3536485c997c4e019206b3f10ca15bd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/amphp/byte-stream/zipball/acbd8002b3536485c997c4e019206b3f10ca15bd", + "reference": "acbd8002b3536485c997c4e019206b3f10ca15bd", + "shasum": "" + }, + "require": { + "amphp/amp": "^2", + "php": ">=7.1" + }, + "require-dev": { + "amphp/php-cs-fixer-config": "dev-master", + "amphp/phpunit-util": "^1.4", + "friendsofphp/php-cs-fixer": "^2.3", + "jetbrains/phpstorm-stubs": "^2019.3", + "phpunit/phpunit": "^6 || ^7 || ^8", + "psalm/phar": "^3.11.4" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "files": [ + "lib/functions.php" + ], + "psr-4": { + "Amp\\ByteStream\\": "lib" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Aaron Piotrowski", + "email": "aaron@trowski.com" + }, + { + "name": "Niklas Keller", + "email": "me@kelunik.com" + } + ], + "description": "A stream abstraction to make working with non-blocking I/O simple.", + "homepage": "http://amphp.org/byte-stream", + "keywords": [ + "amp", + "amphp", + "async", + "io", + "non-blocking", + "stream" + ], + "support": { + "irc": "irc://irc.freenode.org/amphp", + "issues": "https://github.com/amphp/byte-stream/issues", + "source": "https://github.com/amphp/byte-stream/tree/v1.8.1" + }, + "funding": [ + { + "url": "https://github.com/amphp", + "type": "github" + } + ], + "time": "2021-03-30T17:13:30+00:00" + }, + { + "name": "composer/pcre", + "version": "3.1.0", + "source": { + "type": "git", + "url": "https://github.com/composer/pcre.git", + "reference": "4bff79ddd77851fe3cdd11616ed3f92841ba5bd2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/pcre/zipball/4bff79ddd77851fe3cdd11616ed3f92841ba5bd2", + "reference": "4bff79ddd77851fe3cdd11616ed3f92841ba5bd2", + "shasum": "" + }, + "require": { + "php": "^7.4 || ^8.0" + }, + "require-dev": { + "phpstan/phpstan": "^1.3", + "phpstan/phpstan-strict-rules": "^1.1", + "symfony/phpunit-bridge": "^5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Composer\\Pcre\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + } + ], + "description": "PCRE wrapping library that offers type-safe preg_* replacements.", + "keywords": [ + "PCRE", + "preg", + "regex", + "regular expression" + ], + "support": { + "issues": "https://github.com/composer/pcre/issues", + "source": "https://github.com/composer/pcre/tree/3.1.0" + }, + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2022-11-17T09:50:14+00:00" + }, + { + "name": "composer/semver", + "version": "3.4.0", + "source": { + "type": "git", + "url": "https://github.com/composer/semver.git", + "reference": "35e8d0af4486141bc745f23a29cc2091eb624a32" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/semver/zipball/35e8d0af4486141bc745f23a29cc2091eb624a32", + "reference": "35e8d0af4486141bc745f23a29cc2091eb624a32", + "shasum": "" + }, + "require": { + "php": "^5.3.2 || ^7.0 || ^8.0" + }, + "require-dev": { + "phpstan/phpstan": "^1.4", + "symfony/phpunit-bridge": "^4.2 || ^5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Composer\\Semver\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nils Adermann", + "email": "naderman@naderman.de", + "homepage": "http://www.naderman.de" + }, + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + }, + { + "name": "Rob Bast", + "email": "rob.bast@gmail.com", + "homepage": "http://robbast.nl" + } + ], + "description": "Semver library that offers utilities, version constraint parsing and validation.", + "keywords": [ + "semantic", + "semver", + "validation", + "versioning" + ], + "support": { + "irc": "ircs://irc.libera.chat:6697/composer", + "issues": "https://github.com/composer/semver/issues", + "source": "https://github.com/composer/semver/tree/3.4.0" + }, + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2023-08-31T09:50:34+00:00" + }, + { + "name": "composer/xdebug-handler", + "version": "3.0.3", + "source": { + "type": "git", + "url": "https://github.com/composer/xdebug-handler.git", + "reference": "ced299686f41dce890debac69273b47ffe98a40c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/ced299686f41dce890debac69273b47ffe98a40c", + "reference": "ced299686f41dce890debac69273b47ffe98a40c", + "shasum": "" + }, + "require": { + "composer/pcre": "^1 || ^2 || ^3", + "php": "^7.2.5 || ^8.0", + "psr/log": "^1 || ^2 || ^3" + }, + "require-dev": { + "phpstan/phpstan": "^1.0", + "phpstan/phpstan-strict-rules": "^1.1", + "symfony/phpunit-bridge": "^6.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Composer\\XdebugHandler\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "John Stevenson", + "email": "john-stevenson@blueyonder.co.uk" + } + ], + "description": "Restarts a process without Xdebug.", + "keywords": [ + "Xdebug", + "performance" + ], + "support": { + "irc": "irc://irc.freenode.org/composer", + "issues": "https://github.com/composer/xdebug-handler/issues", + "source": "https://github.com/composer/xdebug-handler/tree/3.0.3" + }, + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2022-02-25T21:32:43+00:00" + }, + { + "name": "dnoegel/php-xdg-base-dir", + "version": "v0.1.1", + "source": { + "type": "git", + "url": "https://github.com/dnoegel/php-xdg-base-dir.git", + "reference": "8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/dnoegel/php-xdg-base-dir/zipball/8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd", + "reference": "8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd", + "shasum": "" + }, + "require": { + "php": ">=5.3.2" + }, + "require-dev": { + "phpunit/phpunit": "~7.0|~6.0|~5.0|~4.8.35" + }, + "type": "library", + "autoload": { + "psr-4": { + "XdgBaseDir\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "implementation of xdg base directory specification for php", + "support": { + "issues": "https://github.com/dnoegel/php-xdg-base-dir/issues", + "source": "https://github.com/dnoegel/php-xdg-base-dir/tree/v0.1.1" + }, + "time": "2019-12-04T15:06:13+00:00" + }, + { + "name": "doctrine/deprecations", + "version": "1.1.2", + "source": { + "type": "git", + "url": "https://github.com/doctrine/deprecations.git", + "reference": "4f2d4f2836e7ec4e7a8625e75c6aa916004db931" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/deprecations/zipball/4f2d4f2836e7ec4e7a8625e75c6aa916004db931", + "reference": "4f2d4f2836e7ec4e7a8625e75c6aa916004db931", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "doctrine/coding-standard": "^9", + "phpstan/phpstan": "1.4.10 || 1.10.15", + "phpstan/phpstan-phpunit": "^1.0", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "psalm/plugin-phpunit": "0.18.4", + "psr/log": "^1 || ^2 || ^3", + "vimeo/psalm": "4.30.0 || 5.12.0" + }, + "suggest": { + "psr/log": "Allows logging deprecations via PSR-3 logger implementation" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Deprecations\\": "lib/Doctrine/Deprecations" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "A small layer on top of trigger_error(E_USER_DEPRECATED) or PSR-3 logging with options to disable all deprecations or selectively for packages.", + "homepage": "https://www.doctrine-project.org/", + "support": { + "issues": "https://github.com/doctrine/deprecations/issues", + "source": "https://github.com/doctrine/deprecations/tree/1.1.2" + }, + "time": "2023-09-27T20:04:15+00:00" + }, + { + "name": "felixfbecker/advanced-json-rpc", + "version": "v3.2.1", + "source": { + "type": "git", + "url": "https://github.com/felixfbecker/php-advanced-json-rpc.git", + "reference": "b5f37dbff9a8ad360ca341f3240dc1c168b45447" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/felixfbecker/php-advanced-json-rpc/zipball/b5f37dbff9a8ad360ca341f3240dc1c168b45447", + "reference": "b5f37dbff9a8ad360ca341f3240dc1c168b45447", + "shasum": "" + }, + "require": { + "netresearch/jsonmapper": "^1.0 || ^2.0 || ^3.0 || ^4.0", + "php": "^7.1 || ^8.0", + "phpdocumentor/reflection-docblock": "^4.3.4 || ^5.0.0" + }, + "require-dev": { + "phpunit/phpunit": "^7.0 || ^8.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "AdvancedJsonRpc\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "ISC" + ], + "authors": [ + { + "name": "Felix Becker", + "email": "felix.b@outlook.com" + } + ], + "description": "A more advanced JSONRPC implementation", + "support": { + "issues": "https://github.com/felixfbecker/php-advanced-json-rpc/issues", + "source": "https://github.com/felixfbecker/php-advanced-json-rpc/tree/v3.2.1" + }, + "time": "2021-06-11T22:34:44+00:00" + }, + { + "name": "felixfbecker/language-server-protocol", + "version": "v1.5.2", + "source": { + "type": "git", + "url": "https://github.com/felixfbecker/php-language-server-protocol.git", + "reference": "6e82196ffd7c62f7794d778ca52b69feec9f2842" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/felixfbecker/php-language-server-protocol/zipball/6e82196ffd7c62f7794d778ca52b69feec9f2842", + "reference": "6e82196ffd7c62f7794d778ca52b69feec9f2842", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "require-dev": { + "phpstan/phpstan": "*", + "squizlabs/php_codesniffer": "^3.1", + "vimeo/psalm": "^4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "LanguageServerProtocol\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "ISC" + ], + "authors": [ + { + "name": "Felix Becker", + "email": "felix.b@outlook.com" + } + ], + "description": "PHP classes for the Language Server Protocol", + "keywords": [ + "language", + "microsoft", + "php", + "server" + ], + "support": { + "issues": "https://github.com/felixfbecker/php-language-server-protocol/issues", + "source": "https://github.com/felixfbecker/php-language-server-protocol/tree/v1.5.2" + }, + "time": "2022-03-02T22:36:06+00:00" + }, + { + "name": "fidry/cpu-core-counter", + "version": "0.5.1", + "source": { + "type": "git", + "url": "https://github.com/theofidry/cpu-core-counter.git", + "reference": "b58e5a3933e541dc286cc91fc4f3898bbc6f1623" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/theofidry/cpu-core-counter/zipball/b58e5a3933e541dc286cc91fc4f3898bbc6f1623", + "reference": "b58e5a3933e541dc286cc91fc4f3898bbc6f1623", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "require-dev": { + "fidry/makefile": "^0.2.0", + "phpstan/extension-installer": "^1.2.0", + "phpstan/phpstan": "^1.9.2", + "phpstan/phpstan-deprecation-rules": "^1.0.0", + "phpstan/phpstan-phpunit": "^1.2.2", + "phpstan/phpstan-strict-rules": "^1.4.4", + "phpunit/phpunit": "^9.5.26 || ^8.5.31", + "theofidry/php-cs-fixer-config": "^1.0", + "webmozarts/strict-phpunit": "^7.5" + }, + "type": "library", + "autoload": { + "psr-4": { + "Fidry\\CpuCoreCounter\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Théo FIDRY", + "email": "theo.fidry@gmail.com" + } + ], + "description": "Tiny utility to get the number of CPU cores.", + "keywords": [ + "CPU", + "core" + ], + "support": { + "issues": "https://github.com/theofidry/cpu-core-counter/issues", + "source": "https://github.com/theofidry/cpu-core-counter/tree/0.5.1" + }, + "funding": [ + { + "url": "https://github.com/theofidry", + "type": "github" + } + ], + "time": "2022-12-24T12:35:10+00:00" + }, + { + "name": "netresearch/jsonmapper", + "version": "v4.2.0", + "source": { + "type": "git", + "url": "https://github.com/cweiske/jsonmapper.git", + "reference": "f60565f8c0566a31acf06884cdaa591867ecc956" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/cweiske/jsonmapper/zipball/f60565f8c0566a31acf06884cdaa591867ecc956", + "reference": "f60565f8c0566a31acf06884cdaa591867ecc956", + "shasum": "" + }, + "require": { + "ext-json": "*", + "ext-pcre": "*", + "ext-reflection": "*", + "ext-spl": "*", + "php": ">=7.1" + }, + "require-dev": { + "phpunit/phpunit": "~7.5 || ~8.0 || ~9.0", + "squizlabs/php_codesniffer": "~3.5" + }, + "type": "library", + "autoload": { + "psr-0": { + "JsonMapper": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "OSL-3.0" + ], + "authors": [ + { + "name": "Christian Weiske", + "email": "cweiske@cweiske.de", + "homepage": "http://github.com/cweiske/jsonmapper/", + "role": "Developer" + } + ], + "description": "Map nested JSON structures onto PHP classes", + "support": { + "email": "cweiske@cweiske.de", + "issues": "https://github.com/cweiske/jsonmapper/issues", + "source": "https://github.com/cweiske/jsonmapper/tree/v4.2.0" + }, + "time": "2023-04-09T17:37:40+00:00" + }, + { + "name": "nikic/php-parser", + "version": "v4.17.1", + "source": { + "type": "git", + "url": "https://github.com/nikic/PHP-Parser.git", + "reference": "a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d", + "reference": "a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d", + "shasum": "" + }, + "require": { + "ext-tokenizer": "*", + "php": ">=7.0" + }, + "require-dev": { + "ircmaxell/php-yacc": "^0.0.7", + "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0" + }, + "bin": [ + "bin/php-parse" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.9-dev" + } + }, + "autoload": { + "psr-4": { + "PhpParser\\": "lib/PhpParser" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Nikita Popov" + } + ], + "description": "A PHP parser written in PHP", + "keywords": [ + "parser", + "php" + ], + "support": { + "issues": "https://github.com/nikic/PHP-Parser/issues", + "source": "https://github.com/nikic/PHP-Parser/tree/v4.17.1" + }, + "time": "2023-08-13T19:53:39+00:00" + }, + { + "name": "phpdocumentor/reflection-common", + "version": "2.2.0", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/ReflectionCommon.git", + "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b", + "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-2.x": "2.x-dev" + } + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jaap van Otterdijk", + "email": "opensource@ijaap.nl" + } + ], + "description": "Common reflection classes used by phpdocumentor to reflect the code structure", + "homepage": "http://www.phpdoc.org", + "keywords": [ + "FQSEN", + "phpDocumentor", + "phpdoc", + "reflection", + "static analysis" + ], + "support": { + "issues": "https://github.com/phpDocumentor/ReflectionCommon/issues", + "source": "https://github.com/phpDocumentor/ReflectionCommon/tree/2.x" + }, + "time": "2020-06-27T09:03:43+00:00" + }, + { + "name": "phpdocumentor/reflection-docblock", + "version": "5.3.0", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", + "reference": "622548b623e81ca6d78b721c5e029f4ce664f170" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/622548b623e81ca6d78b721c5e029f4ce664f170", + "reference": "622548b623e81ca6d78b721c5e029f4ce664f170", + "shasum": "" + }, + "require": { + "ext-filter": "*", + "php": "^7.2 || ^8.0", + "phpdocumentor/reflection-common": "^2.2", + "phpdocumentor/type-resolver": "^1.3", + "webmozart/assert": "^1.9.1" + }, + "require-dev": { + "mockery/mockery": "~1.3.2", + "psalm/phar": "^4.8" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.x-dev" + } + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mike van Riel", + "email": "me@mikevanriel.com" + }, + { + "name": "Jaap van Otterdijk", + "email": "account@ijaap.nl" + } + ], + "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", + "support": { + "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues", + "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.3.0" + }, + "time": "2021-10-19T17:43:47+00:00" + }, + { + "name": "phpdocumentor/type-resolver", + "version": "1.7.3", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/TypeResolver.git", + "reference": "3219c6ee25c9ea71e3d9bbaf39c67c9ebd499419" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/3219c6ee25c9ea71e3d9bbaf39c67c9ebd499419", + "reference": "3219c6ee25c9ea71e3d9bbaf39c67c9ebd499419", + "shasum": "" + }, + "require": { + "doctrine/deprecations": "^1.0", + "php": "^7.4 || ^8.0", + "phpdocumentor/reflection-common": "^2.0", + "phpstan/phpdoc-parser": "^1.13" + }, + "require-dev": { + "ext-tokenizer": "*", + "phpbench/phpbench": "^1.2", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan": "^1.8", + "phpstan/phpstan-phpunit": "^1.1", + "phpunit/phpunit": "^9.5", + "rector/rector": "^0.13.9", + "vimeo/psalm": "^4.25" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-1.x": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mike van Riel", + "email": "me@mikevanriel.com" + } + ], + "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", + "support": { + "issues": "https://github.com/phpDocumentor/TypeResolver/issues", + "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.7.3" + }, + "time": "2023-08-12T11:01:26+00:00" + }, + { + "name": "phpstan/phpdoc-parser", + "version": "1.24.2", + "source": { + "type": "git", + "url": "https://github.com/phpstan/phpdoc-parser.git", + "reference": "bcad8d995980440892759db0c32acae7c8e79442" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/bcad8d995980440892759db0c32acae7c8e79442", + "reference": "bcad8d995980440892759db0c32acae7c8e79442", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "require-dev": { + "doctrine/annotations": "^2.0", + "nikic/php-parser": "^4.15", + "php-parallel-lint/php-parallel-lint": "^1.2", + "phpstan/extension-installer": "^1.0", + "phpstan/phpstan": "^1.5", + "phpstan/phpstan-phpunit": "^1.1", + "phpstan/phpstan-strict-rules": "^1.0", + "phpunit/phpunit": "^9.5", + "symfony/process": "^5.2" + }, + "type": "library", + "autoload": { + "psr-4": { + "PHPStan\\PhpDocParser\\": [ + "src/" + ] + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "PHPDoc parser with support for nullable, intersection and generic types", + "support": { + "issues": "https://github.com/phpstan/phpdoc-parser/issues", + "source": "https://github.com/phpstan/phpdoc-parser/tree/1.24.2" + }, + "time": "2023-09-26T12:28:12+00:00" + }, + { + "name": "psr/container", + "version": "2.0.2", + "source": { + "type": "git", + "url": "https://github.com/php-fig/container.git", + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963", + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963", + "shasum": "" + }, + "require": { + "php": ">=7.4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Container\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common Container Interface (PHP FIG PSR-11)", + "homepage": "https://github.com/php-fig/container", + "keywords": [ + "PSR-11", + "container", + "container-interface", + "container-interop", + "psr" + ], + "support": { + "issues": "https://github.com/php-fig/container/issues", + "source": "https://github.com/php-fig/container/tree/2.0.2" + }, + "time": "2021-11-05T16:47:00+00:00" + }, + { + "name": "psr/log", + "version": "3.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/log.git", + "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/log/zipball/fe5ea303b0887d5caefd3d431c3e61ad47037001", + "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001", + "shasum": "" + }, + "require": { + "php": ">=8.0.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Log\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for logging libraries", + "homepage": "https://github.com/php-fig/log", + "keywords": [ + "log", + "psr", + "psr-3" + ], + "support": { + "source": "https://github.com/php-fig/log/tree/3.0.0" + }, + "time": "2021-07-14T16:46:02+00:00" + }, + { + "name": "sebastian/diff", + "version": "4.0.5", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/diff.git", + "reference": "74be17022044ebaaecfdf0c5cd504fc9cd5a7131" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/74be17022044ebaaecfdf0c5cd504fc9cd5a7131", + "reference": "74be17022044ebaaecfdf0c5cd504fc9cd5a7131", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3", + "symfony/process": "^4.2 || ^5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Kore Nordmann", + "email": "mail@kore-nordmann.de" + } + ], + "description": "Diff implementation", + "homepage": "https://github.com/sebastianbergmann/diff", + "keywords": [ + "diff", + "udiff", + "unidiff", + "unified diff" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/diff/issues", + "source": "https://github.com/sebastianbergmann/diff/tree/4.0.5" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-05-07T05:35:17+00:00" + }, + { + "name": "spatie/array-to-xml", + "version": "3.2.0", + "source": { + "type": "git", + "url": "https://github.com/spatie/array-to-xml.git", + "reference": "f9ab39c808500c347d5a8b6b13310bd5221e39e7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/array-to-xml/zipball/f9ab39c808500c347d5a8b6b13310bd5221e39e7", + "reference": "f9ab39c808500c347d5a8b6b13310bd5221e39e7", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "php": "^8.0" + }, + "require-dev": { + "mockery/mockery": "^1.2", + "pestphp/pest": "^1.21", + "spatie/pest-plugin-snapshots": "^1.1" + }, + "type": "library", + "autoload": { + "psr-4": { + "Spatie\\ArrayToXml\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Freek Van der Herten", + "email": "freek@spatie.be", + "homepage": "https://freek.dev", + "role": "Developer" + } + ], + "description": "Convert an array to xml", + "homepage": "https://github.com/spatie/array-to-xml", + "keywords": [ + "array", + "convert", + "xml" + ], + "support": { + "source": "https://github.com/spatie/array-to-xml/tree/3.2.0" + }, + "funding": [ + { + "url": "https://spatie.be/open-source/support-us", + "type": "custom" + }, + { + "url": "https://github.com/spatie", + "type": "github" + } + ], + "time": "2023-07-19T18:30:26+00:00" + }, + { + "name": "symfony/console", + "version": "v6.3.4", + "source": { + "type": "git", + "url": "https://github.com/symfony/console.git", + "reference": "eca495f2ee845130855ddf1cf18460c38966c8b6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/console/zipball/eca495f2ee845130855ddf1cf18460c38966c8b6", + "reference": "eca495f2ee845130855ddf1cf18460c38966c8b6", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/polyfill-mbstring": "~1.0", + "symfony/service-contracts": "^2.5|^3", + "symfony/string": "^5.4|^6.0" + }, + "conflict": { + "symfony/dependency-injection": "<5.4", + "symfony/dotenv": "<5.4", + "symfony/event-dispatcher": "<5.4", + "symfony/lock": "<5.4", + "symfony/process": "<5.4" + }, + "provide": { + "psr/log-implementation": "1.0|2.0|3.0" + }, + "require-dev": { + "psr/log": "^1|^2|^3", + "symfony/config": "^5.4|^6.0", + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/event-dispatcher": "^5.4|^6.0", + "symfony/lock": "^5.4|^6.0", + "symfony/process": "^5.4|^6.0", + "symfony/var-dumper": "^5.4|^6.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Console\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Eases the creation of beautiful and testable command line interfaces", + "homepage": "https://symfony.com", + "keywords": [ + "cli", + "command-line", + "console", + "terminal" + ], + "support": { + "source": "https://github.com/symfony/console/tree/v6.3.4" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-08-16T10:10:12+00:00" + }, + { + "name": "symfony/deprecation-contracts", + "version": "v3.3.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/deprecation-contracts.git", + "reference": "7c3aff79d10325257a001fcf92d991f24fc967cf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/7c3aff79d10325257a001fcf92d991f24fc967cf", + "reference": "7c3aff79d10325257a001fcf92d991f24fc967cf", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.4-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "files": [ + "function.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "A generic function and convention to trigger deprecation notices", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.3.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-05-23T14:45:45+00:00" + }, + { + "name": "symfony/filesystem", + "version": "v6.3.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/filesystem.git", + "reference": "edd36776956f2a6fcf577edb5b05eb0e3bdc52ae" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/edd36776956f2a6fcf577edb5b05eb0e3bdc52ae", + "reference": "edd36776956f2a6fcf577edb5b05eb0e3bdc52ae", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-mbstring": "~1.8" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Filesystem\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides basic utilities for the filesystem", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/filesystem/tree/v6.3.1" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-06-01T08:30:39+00:00" + }, + { + "name": "symfony/polyfill-ctype", + "version": "v1.28.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-ctype.git", + "reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb", + "reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "provide": { + "ext-ctype": "*" + }, + "suggest": { + "ext-ctype": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.28-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Ctype\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Gert de Pagter", + "email": "BackEndTea@gmail.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for ctype functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "ctype", + "polyfill", + "portable" + ], + "support": { + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.28.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-01-26T09:26:14+00:00" + }, + { + "name": "symfony/polyfill-intl-grapheme", + "version": "v1.28.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-grapheme.git", + "reference": "875e90aeea2777b6f135677f618529449334a612" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/875e90aeea2777b6f135677f618529449334a612", + "reference": "875e90aeea2777b6f135677f618529449334a612", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.28-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Grapheme\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's grapheme_* functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "grapheme", + "intl", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.28.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-01-26T09:26:14+00:00" + }, + { + "name": "symfony/polyfill-intl-normalizer", + "version": "v1.28.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-normalizer.git", + "reference": "8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92", + "reference": "8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.28-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Normalizer\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's Normalizer class and related functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "intl", + "normalizer", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.28.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-01-26T09:26:14+00:00" + }, + { + "name": "symfony/polyfill-mbstring", + "version": "v1.28.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "42292d99c55abe617799667f454222c54c60e229" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/42292d99c55abe617799667f454222c54c60e229", + "reference": "42292d99c55abe617799667f454222c54c60e229", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "provide": { + "ext-mbstring": "*" + }, + "suggest": { + "ext-mbstring": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.28-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Mbstring\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for the Mbstring extension", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "mbstring", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.28.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-07-28T09:04:16+00:00" + }, + { + "name": "symfony/service-contracts", + "version": "v3.3.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/service-contracts.git", + "reference": "40da9cc13ec349d9e4966ce18b5fbcd724ab10a4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/40da9cc13ec349d9e4966ce18b5fbcd724ab10a4", + "reference": "40da9cc13ec349d9e4966ce18b5fbcd724ab10a4", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "psr/container": "^2.0" + }, + "conflict": { + "ext-psr": "<1.1|>=2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.4-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Service\\": "" + }, + "exclude-from-classmap": [ + "/Test/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to writing services", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/service-contracts/tree/v3.3.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-05-23T14:45:45+00:00" + }, + { + "name": "symfony/string", + "version": "v6.3.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/string.git", + "reference": "13d76d0fb049051ed12a04bef4f9de8715bea339" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/string/zipball/13d76d0fb049051ed12a04bef4f9de8715bea339", + "reference": "13d76d0fb049051ed12a04bef4f9de8715bea339", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-intl-grapheme": "~1.0", + "symfony/polyfill-intl-normalizer": "~1.0", + "symfony/polyfill-mbstring": "~1.0" + }, + "conflict": { + "symfony/translation-contracts": "<2.5" + }, + "require-dev": { + "symfony/error-handler": "^5.4|^6.0", + "symfony/http-client": "^5.4|^6.0", + "symfony/intl": "^6.2", + "symfony/translation-contracts": "^2.5|^3.0", + "symfony/var-exporter": "^5.4|^6.0" + }, + "type": "library", + "autoload": { + "files": [ + "Resources/functions.php" + ], + "psr-4": { + "Symfony\\Component\\String\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way", + "homepage": "https://symfony.com", + "keywords": [ + "grapheme", + "i18n", + "string", + "unicode", + "utf-8", + "utf8" + ], + "support": { + "source": "https://github.com/symfony/string/tree/v6.3.5" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-09-18T10:38:32+00:00" + }, + { + "name": "webmozart/assert", + "version": "1.11.0", + "source": { + "type": "git", + "url": "https://github.com/webmozarts/assert.git", + "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/webmozarts/assert/zipball/11cb2199493b2f8a3b53e7f19068fc6aac760991", + "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991", + "shasum": "" + }, + "require": { + "ext-ctype": "*", + "php": "^7.2 || ^8.0" + }, + "conflict": { + "phpstan/phpstan": "<0.12.20", + "vimeo/psalm": "<4.6.1 || 4.6.2" + }, + "require-dev": { + "phpunit/phpunit": "^8.5.13" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.10-dev" + } + }, + "autoload": { + "psr-4": { + "Webmozart\\Assert\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + } + ], + "description": "Assertions to validate method input/output with nice error messages.", + "keywords": [ + "assert", + "check", + "validate" + ], + "support": { + "issues": "https://github.com/webmozarts/assert/issues", + "source": "https://github.com/webmozarts/assert/tree/1.11.0" + }, + "time": "2022-06-03T18:03:27+00:00" + } + ], + "packages-dev": [ + { + "name": "amphp/phpunit-util", + "version": "v2.0.0", + "source": { + "type": "git", + "url": "https://github.com/amphp/phpunit-util.git", + "reference": "be64a5285aa1671cea8e546963a21cca67044842" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/amphp/phpunit-util/zipball/be64a5285aa1671cea8e546963a21cca67044842", + "reference": "be64a5285aa1671cea8e546963a21cca67044842", + "shasum": "" + }, + "require": { + "php": ">=7.1", + "phpunit/phpunit": "^6 | ^7 | ^8 | ^9" + }, + "require-dev": { + "amphp/amp": "^2", + "amphp/php-cs-fixer-config": "dev-master" + }, + "type": "library", + "autoload": { + "psr-4": { + "Amp\\PHPUnit\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Niklas Keller", + "email": "me@kelunik.com" + }, + { + "name": "Aaron Piotrowski", + "email": "aaron@trowski.com" + } + ], + "description": "Helper package to ease testing with PHPUnit.", + "homepage": "https://amphp.org/phpunit-util", + "support": { + "issues": "https://github.com/amphp/phpunit-util/issues", + "source": "https://github.com/amphp/phpunit-util/tree/v2.0.0" + }, + "funding": [ + { + "url": "https://github.com/amphp", + "type": "github" + } + ], + "time": "2021-12-03T20:41:01+00:00" + }, + { + "name": "bamarni/composer-bin-plugin", + "version": "1.8.2", + "source": { + "type": "git", + "url": "https://github.com/bamarni/composer-bin-plugin.git", + "reference": "92fd7b1e6e9cdae19b0d57369d8ad31a37b6a880" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/bamarni/composer-bin-plugin/zipball/92fd7b1e6e9cdae19b0d57369d8ad31a37b6a880", + "reference": "92fd7b1e6e9cdae19b0d57369d8ad31a37b6a880", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^2.0", + "php": "^7.2.5 || ^8.0" + }, + "require-dev": { + "composer/composer": "^2.0", + "ext-json": "*", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan": "^1.8", + "phpstan/phpstan-phpunit": "^1.1", + "phpunit/phpunit": "^8.5 || ^9.5", + "symfony/console": "^2.8.52 || ^3.4.35 || ^4.4 || ^5.0 || ^6.0", + "symfony/finder": "^2.8.52 || ^3.4.35 || ^4.4 || ^5.0 || ^6.0", + "symfony/process": "^2.8.52 || ^3.4.35 || ^4.4 || ^5.0 || ^6.0" + }, + "type": "composer-plugin", + "extra": { + "class": "Bamarni\\Composer\\Bin\\BamarniBinPlugin" + }, + "autoload": { + "psr-4": { + "Bamarni\\Composer\\Bin\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "No conflicts for your bin dependencies", + "keywords": [ + "composer", + "conflict", + "dependency", + "executable", + "isolation", + "tool" + ], + "support": { + "issues": "https://github.com/bamarni/composer-bin-plugin/issues", + "source": "https://github.com/bamarni/composer-bin-plugin/tree/1.8.2" + }, + "time": "2022-10-31T08:38:03+00:00" + }, + { + "name": "brianium/paratest", + "version": "v6.10.1", + "source": { + "type": "git", + "url": "https://github.com/paratestphp/paratest.git", + "reference": "d6f32a91302b74458e8ef5d132bb2215a5edb34b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/paratestphp/paratest/zipball/d6f32a91302b74458e8ef5d132bb2215a5edb34b", + "reference": "d6f32a91302b74458e8ef5d132bb2215a5edb34b", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-pcre": "*", + "ext-reflection": "*", + "ext-simplexml": "*", + "fidry/cpu-core-counter": "^0.4.1 || ^0.5.1", + "jean85/pretty-package-versions": "^2.0.5", + "php": "^7.3 || ^8.0", + "phpunit/php-code-coverage": "^9.2.25", + "phpunit/php-file-iterator": "^3.0.6", + "phpunit/php-timer": "^5.0.3", + "phpunit/phpunit": "^9.6.4", + "sebastian/environment": "^5.1.5", + "symfony/console": "^5.4.21 || ^6.2.7", + "symfony/process": "^5.4.21 || ^6.2.7" + }, + "require-dev": { + "doctrine/coding-standard": "^10.0.0", + "ext-pcov": "*", + "ext-posix": "*", + "infection/infection": "^0.26.19", + "squizlabs/php_codesniffer": "^3.7.2", + "symfony/filesystem": "^5.4.21 || ^6.2.7", + "vimeo/psalm": "^5.7.7" + }, + "bin": [ + "bin/paratest", + "bin/paratest.bat", + "bin/paratest_for_phpstorm" + ], + "type": "library", + "autoload": { + "psr-4": { + "ParaTest\\": [ + "src/" + ] + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Brian Scaturro", + "email": "scaturrob@gmail.com", + "role": "Developer" + }, + { + "name": "Filippo Tessarotto", + "email": "zoeslam@gmail.com", + "role": "Developer" + } + ], + "description": "Parallel testing for PHP", + "homepage": "https://github.com/paratestphp/paratest", + "keywords": [ + "concurrent", + "parallel", + "phpunit", + "testing" + ], + "support": { + "issues": "https://github.com/paratestphp/paratest/issues", + "source": "https://github.com/paratestphp/paratest/tree/v6.10.1" + }, + "funding": [ + { + "url": "https://github.com/sponsors/Slamdunk", + "type": "github" + }, + { + "url": "https://paypal.me/filippotessarotto", + "type": "paypal" + } + ], + "time": "2023-10-04T13:33:07+00:00" + }, + { + "name": "composer/package-versions-deprecated", + "version": "1.11.99.5", + "source": { + "type": "git", + "url": "https://github.com/composer/package-versions-deprecated.git", + "reference": "b4f54f74ef3453349c24a845d22392cd31e65f1d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/package-versions-deprecated/zipball/b4f54f74ef3453349c24a845d22392cd31e65f1d", + "reference": "b4f54f74ef3453349c24a845d22392cd31e65f1d", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^1.1.0 || ^2.0", + "php": "^7 || ^8" + }, + "replace": { + "ocramius/package-versions": "1.11.99" + }, + "require-dev": { + "composer/composer": "^1.9.3 || ^2.0@dev", + "ext-zip": "^1.13", + "phpunit/phpunit": "^6.5 || ^7" + }, + "type": "composer-plugin", + "extra": { + "class": "PackageVersions\\Installer", + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "PackageVersions\\": "src/PackageVersions" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com" + }, + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be" + } + ], + "description": "Composer plugin that provides efficient querying for installed package versions (no runtime IO)", + "support": { + "issues": "https://github.com/composer/package-versions-deprecated/issues", + "source": "https://github.com/composer/package-versions-deprecated/tree/1.11.99.5" + }, + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2022-01-17T14:14:24+00:00" + }, + { + "name": "dealerdirect/phpcodesniffer-composer-installer", + "version": "v1.0.0", + "source": { + "type": "git", + "url": "https://github.com/PHPCSStandards/composer-installer.git", + "reference": "4be43904336affa5c2f70744a348312336afd0da" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/PHPCSStandards/composer-installer/zipball/4be43904336affa5c2f70744a348312336afd0da", + "reference": "4be43904336affa5c2f70744a348312336afd0da", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^1.0 || ^2.0", + "php": ">=5.4", + "squizlabs/php_codesniffer": "^2.0 || ^3.1.0 || ^4.0" + }, + "require-dev": { + "composer/composer": "*", + "ext-json": "*", + "ext-zip": "*", + "php-parallel-lint/php-parallel-lint": "^1.3.1", + "phpcompatibility/php-compatibility": "^9.0", + "yoast/phpunit-polyfills": "^1.0" + }, + "type": "composer-plugin", + "extra": { + "class": "PHPCSStandards\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\Plugin" + }, + "autoload": { + "psr-4": { + "PHPCSStandards\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Franck Nijhof", + "email": "franck.nijhof@dealerdirect.com", + "homepage": "http://www.frenck.nl", + "role": "Developer / IT Manager" + }, + { + "name": "Contributors", + "homepage": "https://github.com/PHPCSStandards/composer-installer/graphs/contributors" + } + ], + "description": "PHP_CodeSniffer Standards Composer Installer Plugin", + "homepage": "http://www.dealerdirect.com", + "keywords": [ + "PHPCodeSniffer", + "PHP_CodeSniffer", + "code quality", + "codesniffer", + "composer", + "installer", + "phpcbf", + "phpcs", + "plugin", + "qa", + "quality", + "standard", + "standards", + "style guide", + "stylecheck", + "tests" + ], + "support": { + "issues": "https://github.com/PHPCSStandards/composer-installer/issues", + "source": "https://github.com/PHPCSStandards/composer-installer" + }, + "time": "2023-01-05T11:28:13+00:00" + }, + { + "name": "dg/bypass-finals", + "version": "v1.5.1", + "source": { + "type": "git", + "url": "https://github.com/dg/bypass-finals.git", + "reference": "12ef25e1f8d4144e4ec80d13a28895e8942f4104" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/dg/bypass-finals/zipball/12ef25e1f8d4144e4ec80d13a28895e8942f4104", + "reference": "12ef25e1f8d4144e4ec80d13a28895e8942f4104", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "require-dev": { + "nette/tester": "^2.3", + "phpstan/phpstan": "^0.12" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause", + "GPL-2.0", + "GPL-3.0" + ], + "authors": [ + { + "name": "David Grudl", + "homepage": "https://davidgrudl.com" + } + ], + "description": "Removes final keyword from source code on-the-fly and allows mocking of final methods and classes", + "keywords": [ + "finals", + "mocking", + "phpunit", + "testing", + "unit" + ], + "support": { + "issues": "https://github.com/dg/bypass-finals/issues", + "source": "https://github.com/dg/bypass-finals/tree/v1.5.1" + }, + "time": "2023-09-16T09:13:54+00:00" + }, + { + "name": "doctrine/instantiator", + "version": "2.0.0", + "source": { + "type": "git", + "url": "https://github.com/doctrine/instantiator.git", + "reference": "c6222283fa3f4ac679f8b9ced9a4e23f163e80d0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/c6222283fa3f4ac679f8b9ced9a4e23f163e80d0", + "reference": "c6222283fa3f4ac679f8b9ced9a4e23f163e80d0", + "shasum": "" + }, + "require": { + "php": "^8.1" + }, + "require-dev": { + "doctrine/coding-standard": "^11", + "ext-pdo": "*", + "ext-phar": "*", + "phpbench/phpbench": "^1.2", + "phpstan/phpstan": "^1.9.4", + "phpstan/phpstan-phpunit": "^1.3", + "phpunit/phpunit": "^9.5.27", + "vimeo/psalm": "^5.4" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com", + "homepage": "https://ocramius.github.io/" + } + ], + "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", + "homepage": "https://www.doctrine-project.org/projects/instantiator.html", + "keywords": [ + "constructor", + "instantiate" + ], + "support": { + "issues": "https://github.com/doctrine/instantiator/issues", + "source": "https://github.com/doctrine/instantiator/tree/2.0.0" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator", + "type": "tidelift" + } + ], + "time": "2022-12-30T00:23:10+00:00" + }, + { + "name": "hamcrest/hamcrest-php", + "version": "v2.0.1", + "source": { + "type": "git", + "url": "https://github.com/hamcrest/hamcrest-php.git", + "reference": "8c3d0a3f6af734494ad8f6fbbee0ba92422859f3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/hamcrest/hamcrest-php/zipball/8c3d0a3f6af734494ad8f6fbbee0ba92422859f3", + "reference": "8c3d0a3f6af734494ad8f6fbbee0ba92422859f3", + "shasum": "" + }, + "require": { + "php": "^5.3|^7.0|^8.0" + }, + "replace": { + "cordoval/hamcrest-php": "*", + "davedevelopment/hamcrest-php": "*", + "kodova/hamcrest-php": "*" + }, + "require-dev": { + "phpunit/php-file-iterator": "^1.4 || ^2.0", + "phpunit/phpunit": "^4.8.36 || ^5.7 || ^6.5 || ^7.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.1-dev" + } + }, + "autoload": { + "classmap": [ + "hamcrest" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "This is the PHP port of Hamcrest Matchers", + "keywords": [ + "test" + ], + "support": { + "issues": "https://github.com/hamcrest/hamcrest-php/issues", + "source": "https://github.com/hamcrest/hamcrest-php/tree/v2.0.1" + }, + "time": "2020-07-09T08:09:16+00:00" + }, + { + "name": "jean85/pretty-package-versions", + "version": "2.0.5", + "source": { + "type": "git", + "url": "https://github.com/Jean85/pretty-package-versions.git", + "reference": "ae547e455a3d8babd07b96966b17d7fd21d9c6af" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Jean85/pretty-package-versions/zipball/ae547e455a3d8babd07b96966b17d7fd21d9c6af", + "reference": "ae547e455a3d8babd07b96966b17d7fd21d9c6af", + "shasum": "" + }, + "require": { + "composer-runtime-api": "^2.0.0", + "php": "^7.1|^8.0" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^2.17", + "jean85/composer-provided-replaced-stub-package": "^1.0", + "phpstan/phpstan": "^0.12.66", + "phpunit/phpunit": "^7.5|^8.5|^9.4", + "vimeo/psalm": "^4.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Jean85\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Alessandro Lai", + "email": "alessandro.lai85@gmail.com" + } + ], + "description": "A library to get pretty versions strings of installed dependencies", + "keywords": [ + "composer", + "package", + "release", + "versions" + ], + "support": { + "issues": "https://github.com/Jean85/pretty-package-versions/issues", + "source": "https://github.com/Jean85/pretty-package-versions/tree/2.0.5" + }, + "time": "2021-10-08T21:21:46+00:00" + }, + { + "name": "mockery/mockery", + "version": "1.6.6", + "source": { + "type": "git", + "url": "https://github.com/mockery/mockery.git", + "reference": "b8e0bb7d8c604046539c1115994632c74dcb361e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/mockery/mockery/zipball/b8e0bb7d8c604046539c1115994632c74dcb361e", + "reference": "b8e0bb7d8c604046539c1115994632c74dcb361e", + "shasum": "" + }, + "require": { + "hamcrest/hamcrest-php": "^2.0.1", + "lib-pcre": ">=7.0", + "php": ">=7.3" + }, + "conflict": { + "phpunit/phpunit": "<8.0" + }, + "require-dev": { + "phpunit/phpunit": "^8.5 || ^9.6.10", + "psalm/plugin-phpunit": "^0.18.4", + "symplify/easy-coding-standard": "^11.5.0", + "vimeo/psalm": "^4.30" + }, + "type": "library", + "autoload": { + "files": [ + "library/helpers.php", + "library/Mockery.php" + ], + "psr-4": { + "Mockery\\": "library/Mockery" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Pádraic Brady", + "email": "padraic.brady@gmail.com", + "homepage": "https://github.com/padraic", + "role": "Author" + }, + { + "name": "Dave Marshall", + "email": "dave.marshall@atstsolutions.co.uk", + "homepage": "https://davedevelopment.co.uk", + "role": "Developer" + }, + { + "name": "Nathanael Esayeas", + "email": "nathanael.esayeas@protonmail.com", + "homepage": "https://github.com/ghostwriter", + "role": "Lead Developer" + } + ], + "description": "Mockery is a simple yet flexible PHP mock object framework", + "homepage": "https://github.com/mockery/mockery", + "keywords": [ + "BDD", + "TDD", + "library", + "mock", + "mock objects", + "mockery", + "stub", + "test", + "test double", + "testing" + ], + "support": { + "docs": "https://docs.mockery.io/", + "issues": "https://github.com/mockery/mockery/issues", + "rss": "https://github.com/mockery/mockery/releases.atom", + "security": "https://github.com/mockery/mockery/security/advisories", + "source": "https://github.com/mockery/mockery" + }, + "time": "2023-08-09T00:03:52+00:00" + }, + { + "name": "myclabs/deep-copy", + "version": "1.11.1", + "source": { + "type": "git", + "url": "https://github.com/myclabs/DeepCopy.git", + "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/7284c22080590fb39f2ffa3e9057f10a4ddd0e0c", + "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "conflict": { + "doctrine/collections": "<1.6.8", + "doctrine/common": "<2.13.3 || >=3,<3.2.2" + }, + "require-dev": { + "doctrine/collections": "^1.6.8", + "doctrine/common": "^2.13.3 || ^3.2.2", + "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13" + }, + "type": "library", + "autoload": { + "files": [ + "src/DeepCopy/deep_copy.php" + ], + "psr-4": { + "DeepCopy\\": "src/DeepCopy/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Create deep copies (clones) of your objects", + "keywords": [ + "clone", + "copy", + "duplicate", + "object", + "object graph" + ], + "support": { + "issues": "https://github.com/myclabs/DeepCopy/issues", + "source": "https://github.com/myclabs/DeepCopy/tree/1.11.1" + }, + "funding": [ + { + "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy", + "type": "tidelift" + } + ], + "time": "2023-03-08T13:26:56+00:00" + }, + { + "name": "nunomaduro/mock-final-classes", + "version": "v1.2.0", + "source": { + "type": "git", + "url": "https://github.com/nunomaduro/mock-final-classes.git", + "reference": "b13fc71acd9d6f1e2de8209217103cbd2035871f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nunomaduro/mock-final-classes/zipball/b13fc71acd9d6f1e2de8209217103cbd2035871f", + "reference": "b13fc71acd9d6f1e2de8209217103cbd2035871f", + "shasum": "" + }, + "require": { + "dg/bypass-finals": "^1.1", + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "localheinz/phpstan-rules": "^0.10.0", + "phpstan/phpstan": "^0.11.8", + "phpstan/phpstan-strict-rules": "^0.11.1", + "phpunit/phpunit": "^7.0|^8.0|^9.3", + "thecodingmachine/phpstan-strict-rules": "^0.11.1" + }, + "type": "library", + "autoload": { + "files": [ + "autoload.php" + ], + "psr-4": { + "NunoMaduro\\MockFinalClasses\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nuno Maduro", + "email": "enunomaduro@gmail.com" + } + ], + "description": "Allows mocking of final methods and classes in PHP.", + "keywords": [ + "class", + "classes", + "final", + "mock", + "php", + "phpunit" + ], + "support": { + "issues": "https://github.com/nunomaduro/mock-final-classes/issues", + "source": "https://github.com/nunomaduro/mock-final-classes/tree/v1.2.0" + }, + "funding": [ + { + "url": "https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66BYDWAT92N6L", + "type": "custom" + }, + { + "url": "https://github.com/nunomaduro", + "type": "github" + }, + { + "url": "https://www.patreon.com/nunomaduro", + "type": "patreon" + } + ], + "time": "2023-05-14T23:33:16+00:00" + }, + { + "name": "phar-io/manifest", + "version": "2.0.3", + "source": { + "type": "git", + "url": "https://github.com/phar-io/manifest.git", + "reference": "97803eca37d319dfa7826cc2437fc020857acb53" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phar-io/manifest/zipball/97803eca37d319dfa7826cc2437fc020857acb53", + "reference": "97803eca37d319dfa7826cc2437fc020857acb53", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-phar": "*", + "ext-xmlwriter": "*", + "phar-io/version": "^3.0.1", + "php": "^7.2 || ^8.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + }, + { + "name": "Sebastian Heuer", + "email": "sebastian@phpeople.de", + "role": "Developer" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "Developer" + } + ], + "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", + "support": { + "issues": "https://github.com/phar-io/manifest/issues", + "source": "https://github.com/phar-io/manifest/tree/2.0.3" + }, + "time": "2021-07-20T11:28:43+00:00" + }, + { + "name": "phar-io/version", + "version": "3.2.1", + "source": { + "type": "git", + "url": "https://github.com/phar-io/version.git", + "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phar-io/version/zipball/4f7fd7836c6f332bb2933569e566a0d6c4cbed74", + "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + }, + { + "name": "Sebastian Heuer", + "email": "sebastian@phpeople.de", + "role": "Developer" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "Developer" + } + ], + "description": "Library for handling version information and constraints", + "support": { + "issues": "https://github.com/phar-io/version/issues", + "source": "https://github.com/phar-io/version/tree/3.2.1" + }, + "time": "2022-02-21T01:04:05+00:00" + }, + { + "name": "php-parallel-lint/php-parallel-lint", + "version": "v1.3.2", + "source": { + "type": "git", + "url": "https://github.com/php-parallel-lint/PHP-Parallel-Lint.git", + "reference": "6483c9832e71973ed29cf71bd6b3f4fde438a9de" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-parallel-lint/PHP-Parallel-Lint/zipball/6483c9832e71973ed29cf71bd6b3f4fde438a9de", + "reference": "6483c9832e71973ed29cf71bd6b3f4fde438a9de", + "shasum": "" + }, + "require": { + "ext-json": "*", + "php": ">=5.3.0" + }, + "replace": { + "grogy/php-parallel-lint": "*", + "jakub-onderka/php-parallel-lint": "*" + }, + "require-dev": { + "nette/tester": "^1.3 || ^2.0", + "php-parallel-lint/php-console-highlighter": "0.* || ^1.0", + "squizlabs/php_codesniffer": "^3.6" + }, + "suggest": { + "php-parallel-lint/php-console-highlighter": "Highlight syntax in code snippet" + }, + "bin": [ + "parallel-lint" + ], + "type": "library", + "autoload": { + "classmap": [ + "./src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-2-Clause" + ], + "authors": [ + { + "name": "Jakub Onderka", + "email": "ahoj@jakubonderka.cz" + } + ], + "description": "This tool check syntax of PHP files about 20x faster than serial check.", + "homepage": "https://github.com/php-parallel-lint/PHP-Parallel-Lint", + "support": { + "issues": "https://github.com/php-parallel-lint/PHP-Parallel-Lint/issues", + "source": "https://github.com/php-parallel-lint/PHP-Parallel-Lint/tree/v1.3.2" + }, + "time": "2022-02-21T12:50:22+00:00" + }, + { + "name": "phpunit/php-code-coverage", + "version": "9.2.29", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-code-coverage.git", + "reference": "6a3a87ac2bbe33b25042753df8195ba4aa534c76" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/6a3a87ac2bbe33b25042753df8195ba4aa534c76", + "reference": "6a3a87ac2bbe33b25042753df8195ba4aa534c76", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-libxml": "*", + "ext-xmlwriter": "*", + "nikic/php-parser": "^4.15", + "php": ">=7.3", + "phpunit/php-file-iterator": "^3.0.3", + "phpunit/php-text-template": "^2.0.2", + "sebastian/code-unit-reverse-lookup": "^2.0.2", + "sebastian/complexity": "^2.0", + "sebastian/environment": "^5.1.2", + "sebastian/lines-of-code": "^1.0.3", + "sebastian/version": "^3.0.1", + "theseer/tokenizer": "^1.2.0" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "suggest": { + "ext-pcov": "PHP extension that provides line coverage", + "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "9.2-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", + "homepage": "https://github.com/sebastianbergmann/php-code-coverage", + "keywords": [ + "coverage", + "testing", + "xunit" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", + "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy", + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.29" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-09-19T04:57:46+00:00" + }, + { + "name": "phpunit/php-file-iterator", + "version": "3.0.6", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-file-iterator.git", + "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf", + "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "FilterIterator implementation that filters files based on a list of suffixes.", + "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", + "keywords": [ + "filesystem", + "iterator" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", + "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0.6" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2021-12-02T12:48:52+00:00" + }, + { + "name": "phpunit/php-invoker", + "version": "3.1.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-invoker.git", + "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/5a10147d0aaf65b58940a0b72f71c9ac0423cc67", + "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "ext-pcntl": "*", + "phpunit/phpunit": "^9.3" + }, + "suggest": { + "ext-pcntl": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.1-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Invoke callables with a timeout", + "homepage": "https://github.com/sebastianbergmann/php-invoker/", + "keywords": [ + "process" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-invoker/issues", + "source": "https://github.com/sebastianbergmann/php-invoker/tree/3.1.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T05:58:55+00:00" + }, + { + "name": "phpunit/php-text-template", + "version": "2.0.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-text-template.git", + "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", + "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Simple template engine.", + "homepage": "https://github.com/sebastianbergmann/php-text-template/", + "keywords": [ + "template" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-text-template/issues", + "source": "https://github.com/sebastianbergmann/php-text-template/tree/2.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T05:33:50+00:00" + }, + { + "name": "phpunit/php-timer", + "version": "5.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-timer.git", + "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", + "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Utility class for timing", + "homepage": "https://github.com/sebastianbergmann/php-timer/", + "keywords": [ + "timer" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-timer/issues", + "source": "https://github.com/sebastianbergmann/php-timer/tree/5.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:16:10+00:00" + }, + { + "name": "phpunit/phpunit", + "version": "9.6.13", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/phpunit.git", + "reference": "f3d767f7f9e191eab4189abe41ab37797e30b1be" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/f3d767f7f9e191eab4189abe41ab37797e30b1be", + "reference": "f3d767f7f9e191eab4189abe41ab37797e30b1be", + "shasum": "" + }, + "require": { + "doctrine/instantiator": "^1.3.1 || ^2", + "ext-dom": "*", + "ext-json": "*", + "ext-libxml": "*", + "ext-mbstring": "*", + "ext-xml": "*", + "ext-xmlwriter": "*", + "myclabs/deep-copy": "^1.10.1", + "phar-io/manifest": "^2.0.3", + "phar-io/version": "^3.0.2", + "php": ">=7.3", + "phpunit/php-code-coverage": "^9.2.28", + "phpunit/php-file-iterator": "^3.0.5", + "phpunit/php-invoker": "^3.1.1", + "phpunit/php-text-template": "^2.0.3", + "phpunit/php-timer": "^5.0.2", + "sebastian/cli-parser": "^1.0.1", + "sebastian/code-unit": "^1.0.6", + "sebastian/comparator": "^4.0.8", + "sebastian/diff": "^4.0.3", + "sebastian/environment": "^5.1.3", + "sebastian/exporter": "^4.0.5", + "sebastian/global-state": "^5.0.1", + "sebastian/object-enumerator": "^4.0.3", + "sebastian/resource-operations": "^3.0.3", + "sebastian/type": "^3.2", + "sebastian/version": "^3.0.2" + }, + "suggest": { + "ext-soap": "To be able to generate mocks based on WSDL files", + "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage" + }, + "bin": [ + "phpunit" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "9.6-dev" + } + }, + "autoload": { + "files": [ + "src/Framework/Assert/Functions.php" + ], + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "The PHP Unit Testing framework.", + "homepage": "https://phpunit.de/", + "keywords": [ + "phpunit", + "testing", + "xunit" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/phpunit/issues", + "security": "https://github.com/sebastianbergmann/phpunit/security/policy", + "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.13" + }, + "funding": [ + { + "url": "https://phpunit.de/sponsors.html", + "type": "custom" + }, + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit", + "type": "tidelift" + } + ], + "time": "2023-09-19T05:39:22+00:00" + }, + { + "name": "psalm/plugin-mockery", + "version": "1.1.0", + "source": { + "type": "git", + "url": "https://github.com/psalm/psalm-plugin-mockery.git", + "reference": "876247d15f91df08240d00dac69c5135b6689283" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/psalm/psalm-plugin-mockery/zipball/876247d15f91df08240d00dac69c5135b6689283", + "reference": "876247d15f91df08240d00dac69c5135b6689283", + "shasum": "" + }, + "require": { + "composer/package-versions-deprecated": "^1.10", + "composer/semver": "^1.4 || ^2.0 || ^3.0", + "mockery/mockery": "^1.0", + "php": "~7.4 || ~8.0 || ~8.1 || ~8.2", + "vimeo/psalm": "dev-master || ^5.0@rc || ^5.0" + }, + "require-dev": { + "codeception/codeception": "^4.1.9", + "phpunit/phpunit": "^9.0", + "squizlabs/php_codesniffer": "^3.3.1", + "weirdan/codeception-psalm-module": "^0.13.1" + }, + "type": "psalm-plugin", + "extra": { + "psalm": { + "pluginClass": "Psalm\\MockeryPlugin\\Plugin" + } + }, + "autoload": { + "psr-4": { + "Psalm\\MockeryPlugin\\": [ + "." + ] + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Matt Brown", + "email": "github@muglug.com" + } + ], + "description": "Psalm plugin for Mockery", + "support": { + "issues": "https://github.com/psalm/psalm-plugin-mockery/issues", + "source": "https://github.com/psalm/psalm-plugin-mockery/tree/1.1.0" + }, + "time": "2022-11-25T07:16:18+00:00" + }, + { + "name": "psalm/plugin-phpunit", + "version": "0.18.4", + "source": { + "type": "git", + "url": "https://github.com/psalm/psalm-plugin-phpunit.git", + "reference": "e4ab3096653d9eb6f6d0ea5f4461898d59ae4dbc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/psalm/psalm-plugin-phpunit/zipball/e4ab3096653d9eb6f6d0ea5f4461898d59ae4dbc", + "reference": "e4ab3096653d9eb6f6d0ea5f4461898d59ae4dbc", + "shasum": "" + }, + "require": { + "composer/package-versions-deprecated": "^1.10", + "composer/semver": "^1.4 || ^2.0 || ^3.0", + "ext-simplexml": "*", + "php": "^7.1 || ^8.0", + "vimeo/psalm": "dev-master || dev-4.x || ^4.7.1 || ^5@beta || ^5.0" + }, + "conflict": { + "phpunit/phpunit": "<7.5" + }, + "require-dev": { + "codeception/codeception": "^4.0.3", + "php": "^7.3 || ^8.0", + "phpunit/phpunit": "^7.5 || ^8.0 || ^9.0", + "squizlabs/php_codesniffer": "^3.3.1", + "weirdan/codeception-psalm-module": "^0.11.0", + "weirdan/prophecy-shim": "^1.0 || ^2.0" + }, + "type": "psalm-plugin", + "extra": { + "psalm": { + "pluginClass": "Psalm\\PhpUnitPlugin\\Plugin" + } + }, + "autoload": { + "psr-4": { + "Psalm\\PhpUnitPlugin\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Matt Brown", + "email": "github@muglug.com" + } + ], + "description": "Psalm plugin for PHPUnit", + "support": { + "issues": "https://github.com/psalm/psalm-plugin-phpunit/issues", + "source": "https://github.com/psalm/psalm-plugin-phpunit/tree/0.18.4" + }, + "time": "2022-12-03T07:47:07+00:00" + }, + { + "name": "sebastian/cli-parser", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/cli-parser.git", + "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/442e7c7e687e42adc03470c7b668bc4b2402c0b2", + "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library for parsing CLI options", + "homepage": "https://github.com/sebastianbergmann/cli-parser", + "support": { + "issues": "https://github.com/sebastianbergmann/cli-parser/issues", + "source": "https://github.com/sebastianbergmann/cli-parser/tree/1.0.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T06:08:49+00:00" + }, + { + "name": "sebastian/code-unit", + "version": "1.0.8", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/code-unit.git", + "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/1fc9f64c0927627ef78ba436c9b17d967e68e120", + "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Collection of value objects that represent the PHP code units", + "homepage": "https://github.com/sebastianbergmann/code-unit", + "support": { + "issues": "https://github.com/sebastianbergmann/code-unit/issues", + "source": "https://github.com/sebastianbergmann/code-unit/tree/1.0.8" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:08:54+00:00" + }, + { + "name": "sebastian/code-unit-reverse-lookup", + "version": "2.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", + "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", + "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Looks up which function or method a line of code belongs to", + "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", + "support": { + "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues", + "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/2.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T05:30:19+00:00" + }, + { + "name": "sebastian/comparator", + "version": "4.0.8", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/comparator.git", + "reference": "fa0f136dd2334583309d32b62544682ee972b51a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/fa0f136dd2334583309d32b62544682ee972b51a", + "reference": "fa0f136dd2334583309d32b62544682ee972b51a", + "shasum": "" + }, + "require": { + "php": ">=7.3", + "sebastian/diff": "^4.0", + "sebastian/exporter": "^4.0" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@2bepublished.at" + } + ], + "description": "Provides the functionality to compare PHP values for equality", + "homepage": "https://github.com/sebastianbergmann/comparator", + "keywords": [ + "comparator", + "compare", + "equality" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/comparator/issues", + "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.8" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2022-09-14T12:41:17+00:00" + }, + { + "name": "sebastian/complexity", + "version": "2.0.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/complexity.git", + "reference": "739b35e53379900cc9ac327b2147867b8b6efd88" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/739b35e53379900cc9ac327b2147867b8b6efd88", + "reference": "739b35e53379900cc9ac327b2147867b8b6efd88", + "shasum": "" + }, + "require": { + "nikic/php-parser": "^4.7", + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library for calculating the complexity of PHP code units", + "homepage": "https://github.com/sebastianbergmann/complexity", + "support": { + "issues": "https://github.com/sebastianbergmann/complexity/issues", + "source": "https://github.com/sebastianbergmann/complexity/tree/2.0.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T15:52:27+00:00" + }, + { + "name": "sebastian/environment", + "version": "5.1.5", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/environment.git", + "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/830c43a844f1f8d5b7a1f6d6076b784454d8b7ed", + "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "suggest": { + "ext-posix": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.1-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Provides functionality to handle HHVM/PHP environments", + "homepage": "http://www.github.com/sebastianbergmann/environment", + "keywords": [ + "Xdebug", + "environment", + "hhvm" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/environment/issues", + "source": "https://github.com/sebastianbergmann/environment/tree/5.1.5" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-02-03T06:03:51+00:00" + }, + { + "name": "sebastian/exporter", + "version": "4.0.5", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/exporter.git", + "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d", + "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d", + "shasum": "" + }, + "require": { + "php": ">=7.3", + "sebastian/recursion-context": "^4.0" + }, + "require-dev": { + "ext-mbstring": "*", + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + } + ], + "description": "Provides the functionality to export PHP variables for visualization", + "homepage": "https://www.github.com/sebastianbergmann/exporter", + "keywords": [ + "export", + "exporter" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/exporter/issues", + "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.5" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2022-09-14T06:03:37+00:00" + }, + { + "name": "sebastian/global-state", + "version": "5.0.6", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/global-state.git", + "reference": "bde739e7565280bda77be70044ac1047bc007e34" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bde739e7565280bda77be70044ac1047bc007e34", + "reference": "bde739e7565280bda77be70044ac1047bc007e34", + "shasum": "" + }, + "require": { + "php": ">=7.3", + "sebastian/object-reflector": "^2.0", + "sebastian/recursion-context": "^4.0" + }, + "require-dev": { + "ext-dom": "*", + "phpunit/phpunit": "^9.3" + }, + "suggest": { + "ext-uopz": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Snapshotting of global state", + "homepage": "http://www.github.com/sebastianbergmann/global-state", + "keywords": [ + "global state" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/global-state/issues", + "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.6" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-08-02T09:26:13+00:00" + }, + { + "name": "sebastian/lines-of-code", + "version": "1.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/lines-of-code.git", + "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/c1c2e997aa3146983ed888ad08b15470a2e22ecc", + "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc", + "shasum": "" + }, + "require": { + "nikic/php-parser": "^4.6", + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library for counting the lines of code in PHP source code", + "homepage": "https://github.com/sebastianbergmann/lines-of-code", + "support": { + "issues": "https://github.com/sebastianbergmann/lines-of-code/issues", + "source": "https://github.com/sebastianbergmann/lines-of-code/tree/1.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-28T06:42:11+00:00" + }, + { + "name": "sebastian/object-enumerator", + "version": "4.0.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/object-enumerator.git", + "reference": "5c9eeac41b290a3712d88851518825ad78f45c71" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/5c9eeac41b290a3712d88851518825ad78f45c71", + "reference": "5c9eeac41b290a3712d88851518825ad78f45c71", + "shasum": "" + }, + "require": { + "php": ">=7.3", + "sebastian/object-reflector": "^2.0", + "sebastian/recursion-context": "^4.0" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Traverses array structures and object graphs to enumerate all referenced objects", + "homepage": "https://github.com/sebastianbergmann/object-enumerator/", + "support": { + "issues": "https://github.com/sebastianbergmann/object-enumerator/issues", + "source": "https://github.com/sebastianbergmann/object-enumerator/tree/4.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:12:34+00:00" + }, + { + "name": "sebastian/object-reflector", + "version": "2.0.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/object-reflector.git", + "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", + "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Allows reflection of object attributes, including inherited and non-public ones", + "homepage": "https://github.com/sebastianbergmann/object-reflector/", + "support": { + "issues": "https://github.com/sebastianbergmann/object-reflector/issues", + "source": "https://github.com/sebastianbergmann/object-reflector/tree/2.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:14:26+00:00" + }, + { + "name": "sebastian/recursion-context", + "version": "4.0.5", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/recursion-context.git", + "reference": "e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1", + "reference": "e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" + } + ], + "description": "Provides functionality to recursively process PHP variables", + "homepage": "https://github.com/sebastianbergmann/recursion-context", + "support": { + "issues": "https://github.com/sebastianbergmann/recursion-context/issues", + "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.5" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-02-03T06:07:39+00:00" + }, + { + "name": "sebastian/resource-operations", + "version": "3.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/resource-operations.git", + "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", + "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Provides a list of PHP built-in functions that operate on resources", + "homepage": "https://www.github.com/sebastianbergmann/resource-operations", + "support": { + "issues": "https://github.com/sebastianbergmann/resource-operations/issues", + "source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T06:45:17+00:00" + }, + { + "name": "sebastian/type", + "version": "3.2.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/type.git", + "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7", + "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.2-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Collection of value objects that represent the types of the PHP type system", + "homepage": "https://github.com/sebastianbergmann/type", + "support": { + "issues": "https://github.com/sebastianbergmann/type/issues", + "source": "https://github.com/sebastianbergmann/type/tree/3.2.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-02-03T06:13:03+00:00" + }, + { + "name": "sebastian/version", + "version": "3.0.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/version.git", + "reference": "c6c1022351a901512170118436c764e473f6de8c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c6c1022351a901512170118436c764e473f6de8c", + "reference": "c6c1022351a901512170118436c764e473f6de8c", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library that helps with managing the version number of Git-hosted PHP projects", + "homepage": "https://github.com/sebastianbergmann/version", + "support": { + "issues": "https://github.com/sebastianbergmann/version/issues", + "source": "https://github.com/sebastianbergmann/version/tree/3.0.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T06:39:44+00:00" + }, + { + "name": "slevomat/coding-standard", + "version": "8.13.4", + "source": { + "type": "git", + "url": "https://github.com/slevomat/coding-standard.git", + "reference": "4b2af2fb17773656d02fbfb5d18024ebd19fe322" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/slevomat/coding-standard/zipball/4b2af2fb17773656d02fbfb5d18024ebd19fe322", + "reference": "4b2af2fb17773656d02fbfb5d18024ebd19fe322", + "shasum": "" + }, + "require": { + "dealerdirect/phpcodesniffer-composer-installer": "^0.6.2 || ^0.7 || ^1.0", + "php": "^7.2 || ^8.0", + "phpstan/phpdoc-parser": "^1.23.0", + "squizlabs/php_codesniffer": "^3.7.1" + }, + "require-dev": { + "phing/phing": "2.17.4", + "php-parallel-lint/php-parallel-lint": "1.3.2", + "phpstan/phpstan": "1.10.26", + "phpstan/phpstan-deprecation-rules": "1.1.3", + "phpstan/phpstan-phpunit": "1.3.13", + "phpstan/phpstan-strict-rules": "1.5.1", + "phpunit/phpunit": "7.5.20|8.5.21|9.6.8|10.2.6" + }, + "type": "phpcodesniffer-standard", + "extra": { + "branch-alias": { + "dev-master": "8.x-dev" + } + }, + "autoload": { + "psr-4": { + "SlevomatCodingStandard\\": "SlevomatCodingStandard/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Slevomat Coding Standard for PHP_CodeSniffer complements Consistence Coding Standard by providing sniffs with additional checks.", + "keywords": [ + "dev", + "phpcs" + ], + "support": { + "issues": "https://github.com/slevomat/coding-standard/issues", + "source": "https://github.com/slevomat/coding-standard/tree/8.13.4" + }, + "funding": [ + { + "url": "https://github.com/kukulich", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/slevomat/coding-standard", + "type": "tidelift" + } + ], + "time": "2023-07-25T10:28:55+00:00" + }, + { + "name": "squizlabs/php_codesniffer", + "version": "3.7.2", + "source": { + "type": "git", + "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", + "reference": "ed8e00df0a83aa96acf703f8c2979ff33341f879" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/ed8e00df0a83aa96acf703f8c2979ff33341f879", + "reference": "ed8e00df0a83aa96acf703f8c2979ff33341f879", + "shasum": "" + }, + "require": { + "ext-simplexml": "*", + "ext-tokenizer": "*", + "ext-xmlwriter": "*", + "php": ">=5.4.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0" + }, + "bin": [ + "bin/phpcs", + "bin/phpcbf" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Greg Sherwood", + "role": "lead" + } + ], + "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.", + "homepage": "https://github.com/squizlabs/PHP_CodeSniffer", + "keywords": [ + "phpcs", + "standards", + "static analysis" + ], + "support": { + "issues": "https://github.com/squizlabs/PHP_CodeSniffer/issues", + "source": "https://github.com/squizlabs/PHP_CodeSniffer", + "wiki": "https://github.com/squizlabs/PHP_CodeSniffer/wiki" + }, + "time": "2023-02-22T23:07:41+00:00" + }, + { + "name": "symfony/process", + "version": "v6.3.4", + "source": { + "type": "git", + "url": "https://github.com/symfony/process.git", + "reference": "0b5c29118f2e980d455d2e34a5659f4579847c54" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/process/zipball/0b5c29118f2e980d455d2e34a5659f4579847c54", + "reference": "0b5c29118f2e980d455d2e34a5659f4579847c54", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Process\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Executes commands in sub-processes", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/process/tree/v6.3.4" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-08-07T10:39:22+00:00" + }, + { + "name": "theseer/tokenizer", + "version": "1.2.1", + "source": { + "type": "git", + "url": "https://github.com/theseer/tokenizer.git", + "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/34a41e998c2183e22995f158c581e7b5e755ab9e", + "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-tokenizer": "*", + "ext-xmlwriter": "*", + "php": "^7.2 || ^8.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + } + ], + "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", + "support": { + "issues": "https://github.com/theseer/tokenizer/issues", + "source": "https://github.com/theseer/tokenizer/tree/1.2.1" + }, + "funding": [ + { + "url": "https://github.com/theseer", + "type": "github" + } + ], + "time": "2021-07-28T10:34:58+00:00" + } + ], + "aliases": [], + "minimum-stability": "dev", + "stability-flags": [], + "prefer-stable": true, + "prefer-lowest": false, + "platform": { + "php": "^7.4 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0", + "ext-simplexml": "*", + "ext-ctype": "*", + "ext-dom": "*", + "ext-json": "*", + "ext-libxml": "*", + "ext-mbstring": "*", + "ext-tokenizer": "*", + "composer-runtime-api": "^2" + }, + "platform-dev": { + "ext-curl": "*" + }, + "plugin-api-version": "2.6.0" +} diff --git a/nix-phps/pkgs/development/php-packages/psalm/default.nix b/nix-phps/pkgs/development/php-packages/psalm/default.nix index 196226103..5463fec0d 100644 --- a/nix-phps/pkgs/development/php-packages/psalm/default.nix +++ b/nix-phps/pkgs/development/php-packages/psalm/default.nix @@ -1,35 +1,26 @@ -{ mkDerivation, fetchurl, makeWrapper, lib, php }: +{ lib, fetchgit, php }: -let +php.buildComposerProject (finalAttrs: { pname = "psalm"; - version = "5.13.1"; -in -mkDerivation { - inherit pname version; + version = "5.15.0"; - src = fetchurl { - url = "https://github.com/vimeo/psalm/releases/download/${version}/psalm.phar"; - sha256 = "sha256-kMNL44Ma0A3RBYxLUGl6kXvOppZ8FKt2ETb2ZaqsOsY="; + src = fetchgit { + url = "https://github.com/vimeo/psalm.git"; + rev = finalAttrs.version; + hash = "sha256-rRExT82+IwgVo7pL3rrTjW/qj/MJf4m4L3PywaeSHYU="; }; - dontUnpack = true; + # TODO: Open a PR against https://github.com/vimeo/psalm + # Missing `composer.lock` from the repository. + composerLock = ./composer.lock; + vendorHash = "sha256-Vho1ri/Qm2SYeXB9ZoXvH1vB/eSBwHnAT/pI4jjUYhU="; - nativeBuildInputs = [ makeWrapper ]; - - installPhase = '' - runHook preInstall - mkdir -p $out/bin - install -D $src $out/libexec/psalm/psalm.phar - makeWrapper ${php}/bin/php $out/bin/psalm \ - --add-flags "$out/libexec/psalm/psalm.phar" - runHook postInstall - ''; - - meta = with lib; { - changelog = "https://github.com/vimeo/psalm/releases/tag/${version}"; + meta = { + changelog = "https://github.com/vimeo/psalm/releases/tag/${finalAttrs.version}"; description = "A static analysis tool for finding errors in PHP applications"; - license = licenses.mit; homepage = "https://github.com/vimeo/psalm"; - maintainers = teams.php.members; + license = lib.licenses.mit; + mainProgram = "psalm"; + maintainers = lib.teams.php.members; }; -} +}) diff --git a/nix-phps/pkgs/development/php-packages/psysh/composer.lock b/nix-phps/pkgs/development/php-packages/psysh/composer.lock new file mode 100644 index 000000000..94dbc6383 --- /dev/null +++ b/nix-phps/pkgs/development/php-packages/psysh/composer.lock @@ -0,0 +1,929 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", + "This file is @generated automatically" + ], + "content-hash": "90272fdd8203a2aef4218d76aca6b2e9", + "packages": [ + { + "name": "nikic/php-parser", + "version": "v4.17.1", + "source": { + "type": "git", + "url": "https://github.com/nikic/PHP-Parser.git", + "reference": "a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d", + "reference": "a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d", + "shasum": "" + }, + "require": { + "ext-tokenizer": "*", + "php": ">=7.0" + }, + "require-dev": { + "ircmaxell/php-yacc": "^0.0.7", + "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0" + }, + "bin": [ + "bin/php-parse" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.9-dev" + } + }, + "autoload": { + "psr-4": { + "PhpParser\\": "lib/PhpParser" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Nikita Popov" + } + ], + "description": "A PHP parser written in PHP", + "keywords": [ + "parser", + "php" + ], + "support": { + "issues": "https://github.com/nikic/PHP-Parser/issues", + "source": "https://github.com/nikic/PHP-Parser/tree/v4.17.1" + }, + "time": "2023-08-13T19:53:39+00:00" + }, + { + "name": "psr/container", + "version": "2.0.2", + "source": { + "type": "git", + "url": "https://github.com/php-fig/container.git", + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963", + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963", + "shasum": "" + }, + "require": { + "php": ">=7.4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Container\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common Container Interface (PHP FIG PSR-11)", + "homepage": "https://github.com/php-fig/container", + "keywords": [ + "PSR-11", + "container", + "container-interface", + "container-interop", + "psr" + ], + "support": { + "issues": "https://github.com/php-fig/container/issues", + "source": "https://github.com/php-fig/container/tree/2.0.2" + }, + "time": "2021-11-05T16:47:00+00:00" + }, + { + "name": "symfony/console", + "version": "v6.3.4", + "source": { + "type": "git", + "url": "https://github.com/symfony/console.git", + "reference": "eca495f2ee845130855ddf1cf18460c38966c8b6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/console/zipball/eca495f2ee845130855ddf1cf18460c38966c8b6", + "reference": "eca495f2ee845130855ddf1cf18460c38966c8b6", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/polyfill-mbstring": "~1.0", + "symfony/service-contracts": "^2.5|^3", + "symfony/string": "^5.4|^6.0" + }, + "conflict": { + "symfony/dependency-injection": "<5.4", + "symfony/dotenv": "<5.4", + "symfony/event-dispatcher": "<5.4", + "symfony/lock": "<5.4", + "symfony/process": "<5.4" + }, + "provide": { + "psr/log-implementation": "1.0|2.0|3.0" + }, + "require-dev": { + "psr/log": "^1|^2|^3", + "symfony/config": "^5.4|^6.0", + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/event-dispatcher": "^5.4|^6.0", + "symfony/lock": "^5.4|^6.0", + "symfony/process": "^5.4|^6.0", + "symfony/var-dumper": "^5.4|^6.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Console\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Eases the creation of beautiful and testable command line interfaces", + "homepage": "https://symfony.com", + "keywords": [ + "cli", + "command-line", + "console", + "terminal" + ], + "support": { + "source": "https://github.com/symfony/console/tree/v6.3.4" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-08-16T10:10:12+00:00" + }, + { + "name": "symfony/deprecation-contracts", + "version": "v3.3.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/deprecation-contracts.git", + "reference": "7c3aff79d10325257a001fcf92d991f24fc967cf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/7c3aff79d10325257a001fcf92d991f24fc967cf", + "reference": "7c3aff79d10325257a001fcf92d991f24fc967cf", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.4-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "files": [ + "function.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "A generic function and convention to trigger deprecation notices", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.3.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-05-23T14:45:45+00:00" + }, + { + "name": "symfony/polyfill-ctype", + "version": "v1.28.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-ctype.git", + "reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb", + "reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "provide": { + "ext-ctype": "*" + }, + "suggest": { + "ext-ctype": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.28-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Ctype\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Gert de Pagter", + "email": "BackEndTea@gmail.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for ctype functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "ctype", + "polyfill", + "portable" + ], + "support": { + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.28.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-01-26T09:26:14+00:00" + }, + { + "name": "symfony/polyfill-intl-grapheme", + "version": "v1.28.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-grapheme.git", + "reference": "875e90aeea2777b6f135677f618529449334a612" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/875e90aeea2777b6f135677f618529449334a612", + "reference": "875e90aeea2777b6f135677f618529449334a612", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.28-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Grapheme\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's grapheme_* functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "grapheme", + "intl", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.28.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-01-26T09:26:14+00:00" + }, + { + "name": "symfony/polyfill-intl-normalizer", + "version": "v1.28.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-normalizer.git", + "reference": "8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92", + "reference": "8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.28-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Normalizer\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's Normalizer class and related functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "intl", + "normalizer", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.28.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-01-26T09:26:14+00:00" + }, + { + "name": "symfony/polyfill-mbstring", + "version": "v1.28.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "42292d99c55abe617799667f454222c54c60e229" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/42292d99c55abe617799667f454222c54c60e229", + "reference": "42292d99c55abe617799667f454222c54c60e229", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "provide": { + "ext-mbstring": "*" + }, + "suggest": { + "ext-mbstring": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.28-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Mbstring\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for the Mbstring extension", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "mbstring", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.28.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-07-28T09:04:16+00:00" + }, + { + "name": "symfony/service-contracts", + "version": "v3.3.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/service-contracts.git", + "reference": "40da9cc13ec349d9e4966ce18b5fbcd724ab10a4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/40da9cc13ec349d9e4966ce18b5fbcd724ab10a4", + "reference": "40da9cc13ec349d9e4966ce18b5fbcd724ab10a4", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "psr/container": "^2.0" + }, + "conflict": { + "ext-psr": "<1.1|>=2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.4-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Service\\": "" + }, + "exclude-from-classmap": [ + "/Test/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to writing services", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/service-contracts/tree/v3.3.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-05-23T14:45:45+00:00" + }, + { + "name": "symfony/string", + "version": "v6.3.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/string.git", + "reference": "13d76d0fb049051ed12a04bef4f9de8715bea339" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/string/zipball/13d76d0fb049051ed12a04bef4f9de8715bea339", + "reference": "13d76d0fb049051ed12a04bef4f9de8715bea339", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-intl-grapheme": "~1.0", + "symfony/polyfill-intl-normalizer": "~1.0", + "symfony/polyfill-mbstring": "~1.0" + }, + "conflict": { + "symfony/translation-contracts": "<2.5" + }, + "require-dev": { + "symfony/error-handler": "^5.4|^6.0", + "symfony/http-client": "^5.4|^6.0", + "symfony/intl": "^6.2", + "symfony/translation-contracts": "^2.5|^3.0", + "symfony/var-exporter": "^5.4|^6.0" + }, + "type": "library", + "autoload": { + "files": [ + "Resources/functions.php" + ], + "psr-4": { + "Symfony\\Component\\String\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way", + "homepage": "https://symfony.com", + "keywords": [ + "grapheme", + "i18n", + "string", + "unicode", + "utf-8", + "utf8" + ], + "support": { + "source": "https://github.com/symfony/string/tree/v6.3.5" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-09-18T10:38:32+00:00" + }, + { + "name": "symfony/var-dumper", + "version": "v6.3.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/var-dumper.git", + "reference": "3d9999376be5fea8de47752837a3e1d1c5f69ef5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/3d9999376be5fea8de47752837a3e1d1c5f69ef5", + "reference": "3d9999376be5fea8de47752837a3e1d1c5f69ef5", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/polyfill-mbstring": "~1.0" + }, + "conflict": { + "symfony/console": "<5.4" + }, + "require-dev": { + "ext-iconv": "*", + "symfony/console": "^5.4|^6.0", + "symfony/http-kernel": "^5.4|^6.0", + "symfony/process": "^5.4|^6.0", + "symfony/uid": "^5.4|^6.0", + "twig/twig": "^2.13|^3.0.4" + }, + "bin": [ + "Resources/bin/var-dump-server" + ], + "type": "library", + "autoload": { + "files": [ + "Resources/functions/dump.php" + ], + "psr-4": { + "Symfony\\Component\\VarDumper\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides mechanisms for walking through any arbitrary PHP variable", + "homepage": "https://symfony.com", + "keywords": [ + "debug", + "dump" + ], + "support": { + "source": "https://github.com/symfony/var-dumper/tree/v6.3.5" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-09-12T10:11:35+00:00" + } + ], + "packages-dev": [ + { + "name": "bamarni/composer-bin-plugin", + "version": "1.8.2", + "source": { + "type": "git", + "url": "https://github.com/bamarni/composer-bin-plugin.git", + "reference": "92fd7b1e6e9cdae19b0d57369d8ad31a37b6a880" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/bamarni/composer-bin-plugin/zipball/92fd7b1e6e9cdae19b0d57369d8ad31a37b6a880", + "reference": "92fd7b1e6e9cdae19b0d57369d8ad31a37b6a880", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^2.0", + "php": "^7.2.5 || ^8.0" + }, + "require-dev": { + "composer/composer": "^2.0", + "ext-json": "*", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan": "^1.8", + "phpstan/phpstan-phpunit": "^1.1", + "phpunit/phpunit": "^8.5 || ^9.5", + "symfony/console": "^2.8.52 || ^3.4.35 || ^4.4 || ^5.0 || ^6.0", + "symfony/finder": "^2.8.52 || ^3.4.35 || ^4.4 || ^5.0 || ^6.0", + "symfony/process": "^2.8.52 || ^3.4.35 || ^4.4 || ^5.0 || ^6.0" + }, + "type": "composer-plugin", + "extra": { + "class": "Bamarni\\Composer\\Bin\\BamarniBinPlugin" + }, + "autoload": { + "psr-4": { + "Bamarni\\Composer\\Bin\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "No conflicts for your bin dependencies", + "keywords": [ + "composer", + "conflict", + "dependency", + "executable", + "isolation", + "tool" + ], + "support": { + "issues": "https://github.com/bamarni/composer-bin-plugin/issues", + "source": "https://github.com/bamarni/composer-bin-plugin/tree/1.8.2" + }, + "time": "2022-10-31T08:38:03+00:00" + } + ], + "aliases": [], + "minimum-stability": "stable", + "stability-flags": [], + "prefer-stable": false, + "prefer-lowest": false, + "platform": { + "php": "^8.0 || ^7.0.8", + "ext-json": "*", + "ext-tokenizer": "*" + }, + "platform-dev": [], + "plugin-api-version": "2.6.0" +} diff --git a/nix-phps/pkgs/development/php-packages/psysh/default.nix b/nix-phps/pkgs/development/php-packages/psysh/default.nix index de8fd450d..484b67b43 100644 --- a/nix-phps/pkgs/development/php-packages/psysh/default.nix +++ b/nix-phps/pkgs/development/php-packages/psysh/default.nix @@ -1,35 +1,24 @@ -{ mkDerivation, fetchurl, makeWrapper, lib, php }: +{ fetchFromGitHub, lib, php }: -let +php.buildComposerProject (finalAttrs: { pname = "psysh"; - version = "0.11.18"; -in -mkDerivation { - inherit pname version; + version = "0.11.21"; - src = fetchurl { - url = "https://github.com/bobthecow/psysh/releases/download/v${version}/psysh-v${version}.tar.gz"; - sha256 = "sha256-roonJBpMXOAsa/IyPn3kR1VSHH/kUJFuUU6myVI7Y+A="; + src = fetchFromGitHub { + owner = "bobthecow"; + repo = "psysh"; + rev = "v${finalAttrs.version}"; + hash = "sha256-YuBn4mrgOzGeMGfGcyZySAISmQdv3WRGn91PRozyxdI="; }; - dontUnpack = true; + composerLock = ./composer.lock; + vendorHash = "sha256-FZFeO7UiVssxTf0JX6wdjrAE+jucYnfQJA1eOng39lQ="; - nativeBuildInputs = [ makeWrapper ]; - - installPhase = '' - runHook preInstall - mkdir -p $out/bin - tar -xzf $src -C $out/bin - chmod +x $out/bin/psysh - wrapProgram $out/bin/psysh --prefix PATH : "${lib.makeBinPath [ php ]}" - runHook postInstall - ''; - - meta = with lib; { - changelog = "https://github.com/bobthecow/psysh/releases/tag/v${version}"; + meta = { + changelog = "https://github.com/bobthecow/psysh/releases/tag/v${finalAttrs.version}"; description = "PsySH is a runtime developer console, interactive debugger and REPL for PHP."; - license = licenses.mit; + license = lib.licenses.mit; homepage = "https://psysh.org/"; - maintainers = teams.php.members; + maintainers = lib.teams.php.members; }; -} +}) diff --git a/nix-phps/pkgs/development/php-packages/redis/default.nix b/nix-phps/pkgs/development/php-packages/redis/default.nix index 42cc89b48..4fc9d9464 100644 --- a/nix-phps/pkgs/development/php-packages/redis/default.nix +++ b/nix-phps/pkgs/development/php-packages/redis/default.nix @@ -1,7 +1,7 @@ { buildPecl, lib, php, fetchFromGitHub }: let - version = "5.3.7"; + version = "6.0.2"; in buildPecl { inherit version; pname = "redis"; @@ -10,7 +10,7 @@ in buildPecl { repo = "phpredis"; owner = "phpredis"; rev = version; - sha256 = "sha256-Cc9Mtx28j3kpyV8Yq+JSYQt5XQnELaVjuUbkkbG45kw="; + hash = "sha256-Ie31zak6Rqxm2+jGXWg6KN4czHe9e+190jZRQ5VoB+M="; }; internalDeps = with php.extensions; [ diff --git a/nix-phps/pkgs/development/php-packages/relay/default.nix b/nix-phps/pkgs/development/php-packages/relay/default.nix index e3fb71d74..ee393c91d 100644 --- a/nix-phps/pkgs/development/php-packages/relay/default.nix +++ b/nix-phps/pkgs/development/php-packages/relay/default.nix @@ -3,64 +3,70 @@ , fetchurl , php , openssl -, openssl_1_1 +, hiredis , zstd , lz4 , autoPatchelfHook +, writeShellScript +, curl +, common-updater-scripts }: let - version = "0.6.3"; - system = stdenv.hostPlatform.system; - phpVersion = lib.versions.majorMinor php.version; - variation = { + version = "0.7.0"; + hashes = { "aarch64-darwin" = { platform = "darwin-arm64"; - hashes = { - "8.0" = "00a7pyf9na7hjifkmp2482c7sh086w72zniqgr4cz2rhz7hnqp7p"; - "8.1" = "0mg6nsllycgjxxinn8s30y9sk06g40vk8blnpx0askjw5zdsf5y7"; - "8.2" = "0qmcbrj6jaxczv25rdgfjrj9nwq4vb2faw7kzlyxrvvzb5pyn9dm"; - "8.3" = "1hqjy5y4q3alxvrj7xksaf7vvmz8p51bgzxbvmzdx6jnl63dix33"; + hash = { + "8.0" = "sha256-pd/9TWZPgAfmVM0/QVYRHu5k4gANcxCSnfAl38irO0Y="; + "8.1" = "sha256-OpxE/nu8MZedTmKGQeyJm36pyyHlRpW11avuGcnGP68="; + "8.2" = "sha256-+CMPdXZotUr43Qda1FwGpuWPEE1K4RuBNE9fiokAtoY="; + "8.3" = "sha256-lbKVxOd5gK5VDGnJ42w7L5DFKsBQDZXgEZLR/Y0gP88="; }; }; "aarch64-linux" = { platform = "debian-aarch64+libssl3"; - hashes = { - "8.0" = "19zzw4324z096b6bph1686r30i4i2kwmlmmcqmb33lqkr9b9n5ag"; - "8.1" = "0j6wpwy8d67pqij4v8m2xwydfddzr7nn4c3lyrssp8llbn4ghwpn"; - "8.2" = "1nbajvi5zk6z8qr32l86p65f1zxv12kald56pg8k7bj4axlj2pmy"; - "8.3" = "1sn638g2636m6s3lv2cclza9lzmzgqxamcga7jz3ijhn2ja6znbv"; + hash = { + "8.0" = "sha256-NfeC3p0YLYz3NbjzjMRRuzMsnYe9JRwlBjddAG2WV7g="; + "8.1" = "sha256-kvO0PE3BSgFSfe1zHh3WnygQfVV+5V0YFfClBim1Kj4="; + "8.2" = "sha256-illxRqqwMKVNAp6BD+mktKDccM7B/Q1W1KF9UB6aMUQ="; + "8.3" = "sha256-QdB7g+ePJU8qt/BVo1CFnQ2vfkqR29WueBy3dLOOaR0="; }; }; "x86_64-darwin" = { platform = "darwin-x86-64"; - hashes = { - "8.0" = "13q6va9lxgfyx86xw20iqjz4s9r9xms74ywb2hgqrhs5mjnazzz4"; - "8.1" = "1ncih5bf0jcylpl0nj8hi50kcwb4nl1g0ql359dgg9gp8s1b4hmw"; - "8.2" = "150difm3vg0g2pl5hb5cci4jzybd7jcd7prjdv3rmwsi91gsydlv"; - # 8.3 for this platform does not exist + hash = { + "8.0" = "sha256-rd3pt2N22bF4a8OOwksI7KJjR91IoxHwk3LcKuHSpV0="; + "8.1" = "sha256-Y/moZrBe4rooQBSQKS8vPCTjviHKy4O7d4T1kD3udC4="; + "8.2" = "sha256-H3EWFk/ZmE+fSU98nLHyq1p1vtU/TYp28OzNLox6kYY="; + "8.3" = "sha256-vZTarrauo7U2JLOXUCwmu2h+vBtWZpm0Q39KkuLyVgY="; }; }; "x86_64-linux" = { platform = "debian-x86-64+libssl3"; - hashes = { - "8.0" = "1qvd5r591kp7qf9pkymz78s8llzs1vxjwqhwy9rvma21hh6gd8ld"; - "8.1" = "0fm9ppgx7qaggid134qnl9jkq5h97dac2ax21f1f1d0k8f5blmc2"; - "8.2" = "0g2yqwfrigf047dqkrvfcj318lvgp38zy522ry484mrgq7iqwvb8"; - "8.3" = "06mi3yr7k1a9icdljzl76xvrw6xqnvwiavgzx2g487s097mycjp4"; + hash = { + "8.0" = "sha256-jq/nHC9IGevYBqbM08nF71P9jH6z4NB8s1NdjHOfXQA="; + "8.1" = "sha256-vbFONNHpuSTQsZMrAIdGEoBl5ySchcFkSuhW5uZKbWg="; + "8.2" = "sha256-mXUAMkxwtuPZbIyCybBcxpmaBplr5h59pZEdgJ3PWtA="; + "8.3" = "sha256-YL0P8GtFkV0cmJX1y6wd/HtA0LFzeuOcKDLUCagxHxE="; }; }; - }.${system} or (throw "Unsupported platform for relay: ${system}"); + }; + + makeSource = { system, phpMajor }: fetchurl { + url = "https://builds.r2.relay.so/v${version}/relay-v${version}-php" + + phpMajor + "-" + hashes.${system}.platform + ".tar.gz"; + sha256 = hashes.${system}.hash.${phpMajor} or (throw "Unsupported PHP version for relay ${phpMajor} on ${system}"); + }; in stdenv.mkDerivation (finalAttrs: { inherit version; pname = "relay"; extensionName = "relay"; - src = fetchurl { - url = "https://builds.r2.relay.so/v${finalAttrs.version}/relay-v${finalAttrs.version}-php" - + phpVersion + "-" + variation.platform + ".tar.gz"; - sha256 = variation.hashes.${phpVersion} or (throw "Unsupported PHP version for relay ${phpVersion} on ${system}"); + src = makeSource { + system = stdenv.hostPlatform.system; + phpMajor = lib.versions.majorMinor php.version; }; nativeBuildInputs = lib.optionals (!stdenv.isDarwin) [ autoPatchelfHook @@ -79,13 +85,14 @@ stdenv.mkDerivation (finalAttrs: { '' + (if stdenv.isDarwin then let args = lib.strings.concatMapStrings - (v: " -change /Users/administrator/dev/relay-dev/relay-deps/build/arm64/lib/${v.name}" - + " ${lib.strings.makeLibraryPath [ v.value ]}/${v.name}") + (v: " -change ${v.name}" + " ${lib.strings.makeLibraryPath [ v.value ]}/${builtins.baseNameOf v.name}") (with lib.attrsets; [ - (nameValuePair "libssl.1.1.dylib" openssl_1_1) - (nameValuePair "libcrypto.1.1.dylib" openssl_1_1) - (nameValuePair "libzstd.1.dylib" zstd) - (nameValuePair "liblz4.1.dylib" lz4) + (nameValuePair "/opt/homebrew/opt/hiredis/lib/libhiredis.1.1.0.dylib" hiredis) + (nameValuePair "/opt/homebrew/opt/hiredis/lib/libhiredis_ssl.dylib.1.1.0" hiredis) + (nameValuePair "/opt/homebrew/opt/openssl@3/lib/libssl.3.dylib" openssl) + (nameValuePair "/opt/homebrew/opt/openssl@3/lib/libcrypto.3.dylib" openssl) + (nameValuePair "/opt/homebrew/opt/zstd/lib/libzstd.1.dylib" zstd) + (nameValuePair "/opt/homebrew/opt/lz4/lib/liblz4.1.dylib" lz4) ]); in # fixDarwinDylibNames can't be used here because we need to completely remap .dylibs, not just add absolute paths @@ -101,6 +108,47 @@ stdenv.mkDerivation (finalAttrs: { runHook postInstall ''; + passthru = { + updateScript = writeShellScript "update-${finalAttrs.pname}" '' + set -o errexit + export PATH="$PATH:${lib.makeBinPath [ curl common-updater-scripts ]}" + NEW_VERSION=$(curl --silent https://builds.r2.relay.so/meta/builds | tail -n1 | cut -c2-) + + if [[ "${version}" = "$NEW_VERSION" ]]; then + echo "The new version same as the old version." + exit 0 + fi + + for source in ${lib.concatStringsSep " " (builtins.attrNames finalAttrs.passthru.updateables)}; do + update-source-version "$UPDATE_NIX_ATTR_PATH.updateables.$source" "0" "sha256-${lib.fakeSha256}" + update-source-version "$UPDATE_NIX_ATTR_PATH.updateables.$source" "$NEW_VERSION" + done + ''; + + # All sources for updating by the update script. + updateables = + builtins.listToAttrs + # Collect all leaf attributes (containing hashes). + (lib.collect + (attrs: attrs ? name) + # create an attr containing + (lib.mapAttrsRecursive + ( + path: _value: + lib.nameValuePair + (builtins.replaceStrings [ "." ] [ "_" ] (lib.concatStringsSep "_" path)) + (finalAttrs.finalPackage.overrideAttrs (attrs: { + src = makeSource { + system = builtins.head path; + phpMajor = builtins.head (builtins.tail (builtins.tail path)); + }; + })) + ) + (lib.filterAttrsRecursive (name: _value: name != "platform") hashes) + ) + ); + }; + meta = with lib; { description = "Next-generation Redis extension for PHP"; changelog = "https://github.com/cachewerk/relay/releases/tag/v${version}"; diff --git a/nix-phps/pkgs/development/php-packages/rrd/default.nix b/nix-phps/pkgs/development/php-packages/rrd/default.nix new file mode 100644 index 000000000..a89f9a3b7 --- /dev/null +++ b/nix-phps/pkgs/development/php-packages/rrd/default.nix @@ -0,0 +1,17 @@ +{ buildPecl, lib, pkg-config, rrdtool }: + +buildPecl { + pname = "rrd"; + + version = "2.0.3"; + hash = "sha256-pCFh5YzcioU7cs/ymJidy96CsPdkVt1ZzgKFTJK3MPc="; + + nativeBuildInputs = [ pkg-config rrdtool ]; + + meta = { + description = "PHP bindings to RRD tool system"; + license = lib.licenses.bsd0; + homepage = "https://github.com/php/pecl-processing-rrd"; + maintainers = lib.teams.wdz.members; + }; +} diff --git a/nix-phps/pkgs/development/php-packages/snuffleupagus/default.nix b/nix-phps/pkgs/development/php-packages/snuffleupagus/default.nix index fd0f56924..c3b5d84ff 100644 --- a/nix-phps/pkgs/development/php-packages/snuffleupagus/default.nix +++ b/nix-phps/pkgs/development/php-packages/snuffleupagus/default.nix @@ -10,13 +10,13 @@ buildPecl rec { pname = "snuffleupagus"; - version = "0.9.0"; + version = "0.10.0"; src = fetchFromGitHub { owner = "jvoisin"; repo = "snuffleupagus"; rev = "v${version}"; - hash = "sha256-1a4PYJ/j9BsoeF5V/KKGu7rqsL3YMo/FbaCBfNc4bfw="; + hash = "sha256-NwG8gBaToBaJGrZoCD7bDym7hQidWU0ArckoQCHN81o="; }; buildInputs = [ diff --git a/nix-phps/pkgs/development/php-packages/spx/default.nix b/nix-phps/pkgs/development/php-packages/spx/default.nix new file mode 100644 index 000000000..b6f7598ff --- /dev/null +++ b/nix-phps/pkgs/development/php-packages/spx/default.nix @@ -0,0 +1,32 @@ +{ buildPecl, lib, fetchFromGitHub, zlib }: + +let + version = "0.4.15"; +in buildPecl { + inherit version; + pname = "spx"; + + src = fetchFromGitHub { + owner = "NoiseByNorthwest"; + repo = "php-spx"; + rev = "v${version}"; + hash = "sha256-gw6wbPt1Qy0vNfT0flq7bxpnGU3SgJvPVhk8H0Imvx4="; + }; + + configureFlags = [ + "--with-zlib-dir=${zlib.dev}" + ]; + + preConfigure = '' + substituteInPlace Makefile.frag \ + --replace '$(INSTALL_ROOT)$(prefix)/share/misc/php-spx/assets/web-ui' '${placeholder "out"}/share/misc/php-spx/assets/web-ui' + ''; + + meta = { + changelog = "https://github.com/NoiseByNorthwest/php-spx/releases/tag/${version}"; + description = "A simple & straight-to-the-point PHP profiling extension with its built-in web UI"; + homepage = "https://github.com/NoiseByNorthwest/php-spx"; + license = lib.licenses.php301; + maintainers = with lib.maintainers; [ drupol ]; + }; +} diff --git a/nix-phps/pkgs/development/php-packages/vld/default.nix b/nix-phps/pkgs/development/php-packages/vld/default.nix new file mode 100644 index 000000000..8e5f7dec4 --- /dev/null +++ b/nix-phps/pkgs/development/php-packages/vld/default.nix @@ -0,0 +1,30 @@ +{ lib +, buildPecl +, fetchFromGitHub +}: + +let + version = "0.18.0"; +in buildPecl { + inherit version; + + pname = "vld"; + + src = fetchFromGitHub { + owner = "derickr"; + repo = "vld"; + rev = version; + hash = "sha256-1xMStPM3Z5qIkrRGfCKcYT6UdF1j150nt7IleirjdBM="; + }; + + # Tests relies on PHP 7.0 + doCheck = false; + + meta = { + changelog = "https://github.com/derickr/vld/releases/tag/${version}"; + description = "The Vulcan Logic Dumper hooks into the Zend Engine and dumps all the opcodes (execution units) of a script."; + homepage = "https://github.com/derickr/vld"; + license = lib.licenses.bsd2; + maintainers = with lib.maintainers; [ gaelreyrol ]; + }; +} diff --git a/nix-phps/pkgs/development/php-packages/xdebug/default.nix b/nix-phps/pkgs/development/php-packages/xdebug/default.nix index 61e83d918..9ff9b7714 100644 --- a/nix-phps/pkgs/development/php-packages/xdebug/default.nix +++ b/nix-phps/pkgs/development/php-packages/xdebug/default.nix @@ -1,7 +1,7 @@ { buildPecl, lib, fetchFromGitHub }: let - version = "3.2.2"; + version = "3.3.1"; in buildPecl { inherit version; @@ -11,7 +11,7 @@ in buildPecl { owner = "xdebug"; repo = "xdebug"; rev = version; - hash = "sha256-zbgJw2oPzyUTK0UwLAqpShBi+toVsEQcjoG4tIBder0="; + hash = "sha256-Zt1BIqNKsTHtIXy0Dar52sZxLi5k12LQAbxOLKQPMN8="; }; doCheck = true; diff --git a/nix-phps/pkgs/development/php-packages/zstd/default.nix b/nix-phps/pkgs/development/php-packages/zstd/default.nix new file mode 100644 index 000000000..a9428ca47 --- /dev/null +++ b/nix-phps/pkgs/development/php-packages/zstd/default.nix @@ -0,0 +1,32 @@ +{ buildPecl, lib, zstd, pkg-config, fetchFromGitHub }: + +let + version = "0.13.3"; +in buildPecl { + inherit version; + pname = "zstd"; + + src = fetchFromGitHub { + owner = "kjdev"; + repo = "php-ext-zstd"; + rev = version; + hash = "sha256-jEuL93ScF0/FlfUvib6uZafOkIe0+VkWV/frpSjTkvY="; + }; + + nativeBuildInputs = [ + pkg-config + ]; + + buildInputs = [ zstd ]; + + configureFlags = [ + "--with-libzstd" + ]; + + meta = with lib; { + description = "Zstd Extension for PHP"; + license = licenses.mit; + homepage = "https://github.com/kjdev/php-ext-zstd"; + maintainers = with lib.maintainers; [ shyim ]; + }; +} diff --git a/nix-phps/pkgs/package-overrides.nix b/nix-phps/pkgs/package-overrides.nix index 9dc0c99c9..e0ea19a64 100644 --- a/nix-phps/pkgs/package-overrides.nix +++ b/nix-phps/pkgs/package-overrides.nix @@ -120,6 +120,22 @@ in "ext/dom/tests/bug80268.phpt" ]; }) + ] ++ lib.optionals (lib.versionOlder prev.php.version "7.3" && lib.versionAtLeast prev.php.version "7.1") [ + # Patch rebased from https://github.com/php/php-src/commit/061058a9b1bbd90d27d97d79aebcf2b5029767b0 + # Fix PHP tests with libxml2 2.12 + ./patches/php71-libxml212-tests.patch + ] ++ lib.optionals (lib.versionOlder prev.php.version "7.4" && lib.versionAtLeast prev.php.version "7.3") [ + # Patch rebased from https://github.com/php/php-src/commit/061058a9b1bbd90d27d97d79aebcf2b5029767b0 + # Fix PHP tests with libxml2 2.12 + ./patches/php73-libxml212-tests.patch + ] ++ lib.optionals (lib.versionOlder prev.php.version "8.1" && lib.versionAtLeast prev.php.version "7.4") [ + # Patch rebased from https://github.com/php/php-src/commit/061058a9b1bbd90d27d97d79aebcf2b5029767b0 + # Fix PHP tests with libxml2 2.12 + ./patches/php74-libxml212-tests.patch + ] ++ lib.optionals (lib.versionOlder prev.php.version "8.2.14" && lib.versionAtLeast prev.php.version "8.1") [ + # Patch rebased from https://github.com/php/php-src/commit/0a39890c967aa57225bb6bdf4821aff7a3a3c082 + # Fix compilation errors with libxml2 2.12 + ./patches/libxml-ext.patch ]; in ourPatches ++ upstreamPatches; @@ -151,6 +167,8 @@ in rm ext/dom/tests/DOMDocument_load_error2.phpt '') ]; + } // lib.optionalAttrs (lib.versionOlder prev.php.version "7.1" && pkgs.stdenv.cc.isClang) { + NIX_CFLAGS_COMPILE = (attrs.NIX_CFLAGS_COMPILE or "") + " -Wno-incompatible-function-pointer-types"; }); ds = @@ -182,6 +200,14 @@ in ]; }); + fileinfo = + if lib.versionOlder prev.php.version "7.2" && pkgs.stdenv.cc.isClang then + prev.extensions.fileinfo.overrideAttrs (attrs: { + NIX_CFLAGS_COMPILE = (attrs.NIX_CFLAGS_COMPILE or "") + " -Wno-implicit-int"; + }) + else + prev.extensions.fileinfo; + ffi = if lib.versionAtLeast prev.php.version "7.4" then prev.extensions.ffi @@ -292,6 +318,8 @@ in ]; in ourPatches ++ upstreamPatches; + } // lib.optionalAttrs (lib.versionOlder prev.php.version "7.1" && pkgs.stdenv.cc.isClang) { + NIX_CFLAGS_COMPILE = (attrs.NIX_CFLAGS_COMPILE or "") + " -Wno-register"; }); iconv = prev.extensions.iconv.overrideAttrs (attrs: { @@ -309,6 +337,18 @@ in ourPatches ++ upstreamPatches; }); + imap = + if lib.versionOlder prev.php.version "8.1" && pkgs.stdenv.cc.isClang then + prev.extensions.imap.overrideAttrs (attrs: { + patches = (attrs.patches or [ ]) ++ [ + (pkgs.fetchpatch { + url = "https://github.com/php/php-src/commit/f9cbeaa0338520f6c4a4b17555f558634b0dd955.patch"; + hash = "sha256-Gzxsh99e0HIrDz6r+9XWUw1BQLKWuRm8RQq9p0KxBVs="; + }) + ]; + }) + else prev.extensions.imap; + json = if lib.versionAtLeast prev.php.version "8.0" then throw "php.extensions.json is enabled by default in PHP >= 8.0." @@ -345,6 +385,14 @@ in else prev.extensions.maxminddb; + mbstring = + if lib.versionOlder prev.php.version "7.0" && pkgs.stdenv.cc.isClang then + prev.extensions.mbstring.overrideAttrs (attrs: { + NIX_CFLAGS_COMPILE = (attrs.NIX_CFLAGS_COMPILE or "") + " -Wno-implicit-function-declaration"; + }) + else + prev.extensions.mbstring; + memcached = if lib.versionOlder prev.php.version "7.0" then prev.extensions.memcached.overrideAttrs (attrs: { @@ -582,6 +630,30 @@ in else prev.extensions.pdo_mysql; + pdo_odbc = + if lib.versionOlder prev.php.version "8.1" && pkgs.stdenv.cc.isClang then + prev.extensions.pdo_odbc.overrideAttrs (attrs: { + NIX_CFLAGS_COMPILE = (attrs.NIX_CFLAGS_COMPILE or "") + " -Wno-incompatible-function-pointer-types"; + }) + else + prev.extensions.pdo_odbc; + + pdo_pgsql = + if lib.versionOlder prev.php.version "8.1" && pkgs.stdenv.cc.isClang then + prev.extensions.pdo_pgsql.overrideAttrs (attrs: { + NIX_CFLAGS_COMPILE = (attrs.NIX_CFLAGS_COMPILE or "") + " -Wno-incompatible-function-pointer-types"; + }) + else + prev.extensions.pdo_pgsql; + + pdo_sqlite = + if lib.versionOlder prev.php.version "7.4" && pkgs.stdenv.cc.isClang then + prev.extensions.pdo_sqlite.overrideAttrs (attrs: { + NIX_CFLAGS_COMPILE = (attrs.NIX_CFLAGS_COMPILE or "") + " -Wno-incompatible-function-pointer-types"; + }) + else + prev.extensions.pdo_sqlite; + readline = prev.extensions.readline.overrideAttrs (attrs: { patches = let @@ -619,6 +691,8 @@ in ]; in attrs.preConfigure or "" + linkInternalDeps deps; + } // lib.optionalAttrs (lib.versionOlder prev.php.version "7.2" && pkgs.stdenv.cc.isClang) { + NIX_CFLAGS_COMPILE = (attrs.NIX_CFLAGS_COMPILE or "") + " -Wno-implicit-function-declaration -Wno-int-conversion"; }) else prev.extensions.redis; @@ -678,6 +752,29 @@ in ]; }); + + sqlite3 = prev.extensions.sqlite3.overrideAttrs (attrs: { + patches = + let + upstreamPatches = + attrs.patches or []; + + ourPatches = + lib.optionals (lib.versionOlder prev.php.version "8.1" && lib.versionAtLeast prev.php.version "7.1") [ + # Fix GH-12633: sqlite3_defensive.phpt fails with sqlite 3.44.0 + # https://github.com/php/php-src/commit/2a4775d6a73e9f6d4fc8e7df6f052aa18790a8e9 + (pkgs.fetchpatch { + url = "https://github.com/php/php-src/commit/2a4775d6a73e9f6d4fc8e7df6f052aa18790a8e9.patch"; + hash = "sha256-2VNfURGZmIEXtoLxOLX5wec9mqNGEWPY3ofCMw4E7S0="; + excludes = [ + "NEWS" + ]; + }) + ]; + in + ourPatches ++ upstreamPatches; + }); + tidy = prev.extensions.tidy.overrideAttrs (attrs: { patches = let @@ -839,6 +936,8 @@ in ++ lib.optionals (lib.versionOlder prev.php.version "7.4") [ "--with-zlib-dir=${pkgs.zlib.dev}" ]; + } // lib.optionalAttrs (lib.versionOlder prev.php.version "7.0" && pkgs.stdenv.cc.isClang) { + NIX_CFLAGS_COMPILE = (attrs.NIX_CFLAGS_COMPILE or "") + " -Wno-incompatible-function-pointer-types"; }); }; } diff --git a/nix-phps/pkgs/patches/libxml-ext.patch b/nix-phps/pkgs/patches/libxml-ext.patch new file mode 100644 index 000000000..e3487df4a --- /dev/null +++ b/nix-phps/pkgs/patches/libxml-ext.patch @@ -0,0 +1,55 @@ +diff --git a/ext/libxml/libxml.c b/ext/libxml/libxml.c +index 3959b362a0..6cdfbd397f 100644 +--- a/ext/libxml/libxml.c ++++ b/ext/libxml/libxml.c +@@ -483,7 +483,11 @@ static void _php_libxml_free_error(void *ptr) + xmlResetError((xmlErrorPtr) ptr); + } + +-static void _php_list_set_error_structure(xmlErrorPtr error, const char *msg) ++#if LIBXML_VERSION >= 21200 ++static void _php_list_set_error_structure(const xmlError *error, const char *msg) ++#else ++static void _php_list_set_error_structure(xmlError *error, const char *msg) ++#endif + { + xmlError error_copy; + int ret; +@@ -736,7 +740,11 @@ PHP_LIBXML_API void php_libxml_ctx_warning(void *ctx, const char *msg, ...) + va_end(args); + } + ++#if LIBXML_VERSION >= 21200 ++PHP_LIBXML_API void php_libxml_structured_error_handler(void *userData, const xmlError *error) ++#else + PHP_LIBXML_API void php_libxml_structured_error_handler(void *userData, xmlErrorPtr error) ++#endif + { + _php_list_set_error_structure(error, NULL); + +@@ -1009,11 +1017,9 @@ PHP_FUNCTION(libxml_use_internal_errors) + /* {{{ Retrieve last error from libxml */ + PHP_FUNCTION(libxml_get_last_error) + { +- xmlErrorPtr error; +- + ZEND_PARSE_PARAMETERS_NONE(); + +- error = xmlGetLastError(); ++ const xmlError *error = xmlGetLastError(); + + if (error) { + object_init_ex(return_value, libxmlerror_class_entry); +diff --git a/ext/soap/php_sdl.c b/ext/soap/php_sdl.c +index 651eab23b7..7a7ce304d6 100644 +--- a/ext/soap/php_sdl.c ++++ b/ext/soap/php_sdl.c +@@ -332,7 +332,7 @@ static void load_wsdl_ex(zval *this_ptr, char *struri, sdlCtx *ctx, int include) + sdl_restore_uri_credentials(ctx); + + if (!wsdl) { +- xmlErrorPtr xmlErrorPtr = xmlGetLastError(); ++ const xmlError *xmlErrorPtr = xmlGetLastError(); + + if (xmlErrorPtr) { + soap_error2(E_ERROR, "Parsing WSDL: Couldn't load from '%s' : %s", struri, xmlErrorPtr->message); diff --git a/nix-phps/pkgs/patches/php56-autoconf.patch b/nix-phps/pkgs/patches/php56-autoconf.patch new file mode 100644 index 000000000..913821d1c --- /dev/null +++ b/nix-phps/pkgs/patches/php56-autoconf.patch @@ -0,0 +1,26 @@ +From ba4055cccc859a5b65158fddabdae6fec21dbb60 Mon Sep 17 00:00:00 2001 +From: Pol Dellaiera +Date: Tue, 6 Feb 2024 18:50:49 +0100 +Subject: [PATCH] fix for autoconf 2.72 + +--- + TSRM/threads.m4 | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/TSRM/threads.m4 b/TSRM/threads.m4 +index 38494ce7ca..42f7bb9271 100644 +--- a/TSRM/threads.m4 ++++ b/TSRM/threads.m4 +@@ -135,8 +135,8 @@ else + fi + done + fi +-fi + ]) ++fi + + AC_CACHE_CHECK(for pthreads_lib, ac_cv_pthreads_lib,[ + ac_cv_pthreads_lib= +-- +2.43.0 + diff --git a/nix-phps/pkgs/patches/php71-libxml212-tests.patch b/nix-phps/pkgs/patches/php71-libxml212-tests.patch new file mode 100644 index 000000000..0cc7c443a --- /dev/null +++ b/nix-phps/pkgs/patches/php71-libxml212-tests.patch @@ -0,0 +1,28 @@ +diff --git c/ext/dom/tests/DOMDocument_loadXML_error1.phpt i/ext/dom/tests/DOMDocument_loadXML_error1.phpt +index 9a433d1282..9206d5609f 100644 +--- c/ext/dom/tests/DOMDocument_loadXML_error1.phpt ++++ i/ext/dom/tests/DOMDocument_loadXML_error1.phpt +@@ -12,6 +12,9 @@ Antonio Diaz Ruiz + assert.bail=true + --SKIPIF-- + ++= 21200) die('skip libxml2 test variant for version < 2.12'); ++?> + --ENV-- + XML_FILE=/not_well_formed.xml + LOAD_OPTIONS=0 +diff --git c/ext/dom/tests/DOMDocument_load_error1.phpt i/ext/dom/tests/DOMDocument_load_error1.phpt +index 4c661f7e69..2eec716fe0 100644 +--- c/ext/dom/tests/DOMDocument_load_error1.phpt ++++ i/ext/dom/tests/DOMDocument_load_error1.phpt +@@ -12,6 +12,9 @@ Antonio Diaz Ruiz + assert.bail=true + --SKIPIF-- + ++= 21200) die('skip libxml2 test variant for version < 2.12'); ++?> + --ENV-- + XML_FILE=/not_well_formed.xml + LOAD_OPTIONS=0 diff --git a/nix-phps/pkgs/patches/php73-libxml212-tests.patch b/nix-phps/pkgs/patches/php73-libxml212-tests.patch new file mode 100644 index 000000000..814bad2fd --- /dev/null +++ b/nix-phps/pkgs/patches/php73-libxml212-tests.patch @@ -0,0 +1,200 @@ +diff --git c/ext/dom/tests/DOMDocument_loadXML_error1.phpt i/ext/dom/tests/DOMDocument_loadXML_error1.phpt +index 41dd169506..ca0ae01249 100644 +--- c/ext/dom/tests/DOMDocument_loadXML_error1.phpt ++++ i/ext/dom/tests/DOMDocument_loadXML_error1.phpt +@@ -12,6 +12,9 @@ Antonio Diaz Ruiz + assert.bail=true + --SKIPIF-- + ++= 21200) die('skip libxml2 test variant for version < 2.12'); ++?> + --ENV-- + XML_FILE=/not_well_formed.xml + LOAD_OPTIONS=0 +diff --git c/ext/dom/tests/DOMDocument_loadXML_error1_gte2_12.phpt i/ext/dom/tests/DOMDocument_loadXML_error1_gte2_12.phpt +new file mode 100644 +index 0000000000..e1ded0ffad +--- /dev/null ++++ i/ext/dom/tests/DOMDocument_loadXML_error1_gte2_12.phpt +@@ -0,0 +1,26 @@ ++--TEST-- ++Test DOMDocument::loadXML() detects not-well formed XML ++--SKIPIF-- ++= 2.12'); ++?> ++--DESCRIPTION-- ++This test verifies the method detects an opening and ending tag mismatch ++Environment variables used in the test: ++- XML_FILE: the xml file to load ++- LOAD_OPTIONS: the second parameter to pass to the method ++- EXPECTED_RESULT: the expected result ++--CREDITS-- ++Antonio Diaz Ruiz ++--EXTENSIONS-- ++dom ++--ENV-- ++XML_FILE=/not_well_formed.xml ++LOAD_OPTIONS=0 ++EXPECTED_RESULT=0 ++--FILE_EXTERNAL-- ++domdocumentloadxml_test_method.inc ++--EXPECTF-- ++Warning: DOMDocument::load%r(XML){0,1}%r(): Opening and ending tag mismatch: title line 5 and book %s ++ ++Warning: DOMDocument::load%r(XML){0,1}%r(): %rexpected '>'|Opening and ending tag mismatch: book line (4|5) and books%r %s +diff --git c/ext/dom/tests/DOMDocument_loadXML_error2_gte2_12.phpt i/ext/dom/tests/DOMDocument_loadXML_error2_gte2_12.phpt +new file mode 100644 +index 0000000000..6a3ff5841f +--- /dev/null ++++ i/ext/dom/tests/DOMDocument_loadXML_error2_gte2_12.phpt +@@ -0,0 +1,30 @@ ++--TEST-- ++Test DOMDocument::loadXML() detects not-well formed XML ++--SKIPIF-- ++= 2.12'); ++?> ++--DESCRIPTION-- ++This test verifies the method detects attributes values not closed between " or ' ++Environment variables used in the test: ++- XML_FILE: the xml file to load ++- LOAD_OPTIONS: the second parameter to pass to the method ++- EXPECTED_RESULT: the expected result ++--CREDITS-- ++Antonio Diaz Ruiz ++--EXTENSIONS-- ++dom ++--ENV-- ++XML_FILE=/not_well_formed2.xml ++LOAD_OPTIONS=0 ++EXPECTED_RESULT=0 ++--FILE_EXTERNAL-- ++domdocumentloadxml_test_method.inc ++--EXPECTF-- ++Warning: DOMDocument::loadXML(): AttValue: " or ' expected in Entity, line: 4 in %s on line %d ++ ++Warning: DOMDocument::loadXML(): internal error: xmlParseStartTag: problem parsing attributes in Entity, line: 4 in %s on line %d ++ ++Warning: DOMDocument::loadXML(): Couldn't find end of Start Tag book line 4 in Entity, line: 4 in %s on line %d ++ ++Warning: DOMDocument::loadXML(): Opening and ending tag mismatch: books line 3 and book in Entity, line: 7 in %s on line %d +diff --git c/ext/dom/tests/DOMDocument_load_error1.phpt i/ext/dom/tests/DOMDocument_load_error1.phpt +index a517af120a..87564c521b 100644 +--- c/ext/dom/tests/DOMDocument_load_error1.phpt ++++ i/ext/dom/tests/DOMDocument_load_error1.phpt +@@ -12,6 +12,9 @@ Antonio Diaz Ruiz + assert.bail=true + --SKIPIF-- + ++= 21200) die('skip libxml2 test variant for version < 2.12'); ++?> + --ENV-- + XML_FILE=/not_well_formed.xml + LOAD_OPTIONS=0 +diff --git c/ext/dom/tests/DOMDocument_load_error1_gte2_12.phpt i/ext/dom/tests/DOMDocument_load_error1_gte2_12.phpt +new file mode 100644 +index 0000000000..183c8406fd +--- /dev/null ++++ i/ext/dom/tests/DOMDocument_load_error1_gte2_12.phpt +@@ -0,0 +1,26 @@ ++--TEST-- ++Test DOMDocument::load() detects not-well formed XML ++--SKIPIF-- ++= 2.12'); ++?> ++--DESCRIPTION-- ++This test verifies the method detects an opening and ending tag mismatch ++Environment variables used in the test: ++- XML_FILE: the xml file to load ++- LOAD_OPTIONS: the second parameter to pass to the method ++- EXPECTED_RESULT: the expected result ++--CREDITS-- ++Antonio Diaz Ruiz ++--EXTENSIONS-- ++dom ++--ENV-- ++XML_FILE=/not_well_formed.xml ++LOAD_OPTIONS=0 ++EXPECTED_RESULT=0 ++--FILE_EXTERNAL-- ++domdocumentload_test_method.inc ++--EXPECTF-- ++Warning: DOMDocument::load%r(XML){0,1}%r(): Opening and ending tag mismatch: title line 5 and book %s ++ ++Warning: DOMDocument::load%r(XML){0,1}%r(): %rexpected '>'|Opening and ending tag mismatch: book line (4|5) and books%r %s +diff --git c/ext/dom/tests/DOMDocument_load_error2_gte2_12.phpt i/ext/dom/tests/DOMDocument_load_error2_gte2_12.phpt +new file mode 100644 +index 0000000000..4fadf41736 +--- /dev/null ++++ i/ext/dom/tests/DOMDocument_load_error2_gte2_12.phpt +@@ -0,0 +1,30 @@ ++--TEST-- ++Test DOMDocument::load() detects not-well formed ++--SKIPIF-- ++= 2.12'); ++?> ++--DESCRIPTION-- ++This test verifies the method detects attributes values not closed between " or ' ++Environment variables used in the test: ++- XML_FILE: the xml file to load ++- LOAD_OPTIONS: the second parameter to pass to the method ++- EXPECTED_RESULT: the expected result ++--CREDITS-- ++Antonio Diaz Ruiz ++--EXTENSIONS-- ++dom ++--ENV-- ++XML_FILE=/not_well_formed2.xml ++LOAD_OPTIONS=0 ++EXPECTED_RESULT=0 ++--FILE_EXTERNAL-- ++domdocumentload_test_method.inc ++--EXPECTF-- ++Warning: DOMDocument::load(): AttValue: " or ' expected in %s on line %d ++ ++Warning: DOMDocument::load(): internal error: xmlParseStartTag: problem parsing attributes in %s on line %d ++ ++Warning: DOMDocument::load(): Couldn't find end of Start Tag book line 4 in %s on line %d ++ ++Warning: DOMDocument::load(): Opening and ending tag mismatch: books line 3 and book in %s on line %d +diff --git c/ext/dom/tests/domdocumentload_test_method.inc i/ext/dom/tests/domdocumentload_test_method.inc +new file mode 100644 +index 0000000000..a15c9e53be +--- /dev/null ++++ i/ext/dom/tests/domdocumentload_test_method.inc +@@ -0,0 +1,12 @@ ++load(dirname(__FILE__) . getenv('XML_FILE'), $libxml_options); ++ ++$expectedResult = (bool) getenv('EXPECTED_RESULT'); ++assert($result === $expectedResult); ++?> +diff --git c/ext/dom/tests/domdocumentloadxml_test_method.inc i/ext/dom/tests/domdocumentloadxml_test_method.inc +new file mode 100644 +index 0000000000..9b97e2badd +--- /dev/null ++++ i/ext/dom/tests/domdocumentloadxml_test_method.inc +@@ -0,0 +1,12 @@ ++loadXML(file_get_contents(dirname(__FILE__) . getenv('XML_FILE')), ++ $libxml_options); ++ ++$expectedResult = (bool) getenv('EXPECTED_RESULT'); ++assert($result === $expectedResult); ++?> diff --git a/nix-phps/pkgs/patches/php74-libxml212-tests.patch b/nix-phps/pkgs/patches/php74-libxml212-tests.patch new file mode 100644 index 000000000..4a04b9934 --- /dev/null +++ b/nix-phps/pkgs/patches/php74-libxml212-tests.patch @@ -0,0 +1,177 @@ +diff --git c/ext/dom/tests/DOMDocument_loadXML_error1.phpt i/ext/dom/tests/DOMDocument_loadXML_error1.phpt +index 4d3b81db79..5de5a4c72a 100644 +--- c/ext/dom/tests/DOMDocument_loadXML_error1.phpt ++++ i/ext/dom/tests/DOMDocument_loadXML_error1.phpt +@@ -12,6 +12,9 @@ Antonio Diaz Ruiz + assert.bail=true + --SKIPIF-- + ++= 21200) die('skip libxml2 test variant for version < 2.12'); ++?> + --ENV-- + XML_FILE=/not_well_formed.xml + LOAD_OPTIONS=0 +diff --git c/ext/dom/tests/DOMDocument_loadXML_error1_gte2_12.phpt i/ext/dom/tests/DOMDocument_loadXML_error1_gte2_12.phpt +new file mode 100644 +index 0000000000..e1ded0ffad +--- /dev/null ++++ i/ext/dom/tests/DOMDocument_loadXML_error1_gte2_12.phpt +@@ -0,0 +1,26 @@ ++--TEST-- ++Test DOMDocument::loadXML() detects not-well formed XML ++--SKIPIF-- ++= 2.12'); ++?> ++--DESCRIPTION-- ++This test verifies the method detects an opening and ending tag mismatch ++Environment variables used in the test: ++- XML_FILE: the xml file to load ++- LOAD_OPTIONS: the second parameter to pass to the method ++- EXPECTED_RESULT: the expected result ++--CREDITS-- ++Antonio Diaz Ruiz ++--EXTENSIONS-- ++dom ++--ENV-- ++XML_FILE=/not_well_formed.xml ++LOAD_OPTIONS=0 ++EXPECTED_RESULT=0 ++--FILE_EXTERNAL-- ++domdocumentloadxml_test_method.inc ++--EXPECTF-- ++Warning: DOMDocument::load%r(XML){0,1}%r(): Opening and ending tag mismatch: title line 5 and book %s ++ ++Warning: DOMDocument::load%r(XML){0,1}%r(): %rexpected '>'|Opening and ending tag mismatch: book line (4|5) and books%r %s +diff --git c/ext/dom/tests/DOMDocument_loadXML_error2_gte2_12.phpt i/ext/dom/tests/DOMDocument_loadXML_error2_gte2_12.phpt +new file mode 100644 +index 0000000000..6a3ff5841f +--- /dev/null ++++ i/ext/dom/tests/DOMDocument_loadXML_error2_gte2_12.phpt +@@ -0,0 +1,30 @@ ++--TEST-- ++Test DOMDocument::loadXML() detects not-well formed XML ++--SKIPIF-- ++= 2.12'); ++?> ++--DESCRIPTION-- ++This test verifies the method detects attributes values not closed between " or ' ++Environment variables used in the test: ++- XML_FILE: the xml file to load ++- LOAD_OPTIONS: the second parameter to pass to the method ++- EXPECTED_RESULT: the expected result ++--CREDITS-- ++Antonio Diaz Ruiz ++--EXTENSIONS-- ++dom ++--ENV-- ++XML_FILE=/not_well_formed2.xml ++LOAD_OPTIONS=0 ++EXPECTED_RESULT=0 ++--FILE_EXTERNAL-- ++domdocumentloadxml_test_method.inc ++--EXPECTF-- ++Warning: DOMDocument::loadXML(): AttValue: " or ' expected in Entity, line: 4 in %s on line %d ++ ++Warning: DOMDocument::loadXML(): internal error: xmlParseStartTag: problem parsing attributes in Entity, line: 4 in %s on line %d ++ ++Warning: DOMDocument::loadXML(): Couldn't find end of Start Tag book line 4 in Entity, line: 4 in %s on line %d ++ ++Warning: DOMDocument::loadXML(): Opening and ending tag mismatch: books line 3 and book in Entity, line: 7 in %s on line %d +diff --git c/ext/dom/tests/DOMDocument_load_error1.phpt i/ext/dom/tests/DOMDocument_load_error1.phpt +index 8ac181d769..8287d84014 100644 +--- c/ext/dom/tests/DOMDocument_load_error1.phpt ++++ i/ext/dom/tests/DOMDocument_load_error1.phpt +@@ -12,6 +12,9 @@ Antonio Diaz Ruiz + assert.bail=true + --SKIPIF-- + ++= 21200) die('skip libxml2 test variant for version < 2.12'); ++?> + --ENV-- + XML_FILE=/not_well_formed.xml + LOAD_OPTIONS=0 +diff --git c/ext/dom/tests/DOMDocument_load_error1_gte2_12.phpt i/ext/dom/tests/DOMDocument_load_error1_gte2_12.phpt +new file mode 100644 +index 0000000000..183c8406fd +--- /dev/null ++++ i/ext/dom/tests/DOMDocument_load_error1_gte2_12.phpt +@@ -0,0 +1,26 @@ ++--TEST-- ++Test DOMDocument::load() detects not-well formed XML ++--SKIPIF-- ++= 2.12'); ++?> ++--DESCRIPTION-- ++This test verifies the method detects an opening and ending tag mismatch ++Environment variables used in the test: ++- XML_FILE: the xml file to load ++- LOAD_OPTIONS: the second parameter to pass to the method ++- EXPECTED_RESULT: the expected result ++--CREDITS-- ++Antonio Diaz Ruiz ++--EXTENSIONS-- ++dom ++--ENV-- ++XML_FILE=/not_well_formed.xml ++LOAD_OPTIONS=0 ++EXPECTED_RESULT=0 ++--FILE_EXTERNAL-- ++domdocumentload_test_method.inc ++--EXPECTF-- ++Warning: DOMDocument::load%r(XML){0,1}%r(): Opening and ending tag mismatch: title line 5 and book %s ++ ++Warning: DOMDocument::load%r(XML){0,1}%r(): %rexpected '>'|Opening and ending tag mismatch: book line (4|5) and books%r %s +diff --git c/ext/dom/tests/DOMDocument_load_error2_gte2_12.phpt i/ext/dom/tests/DOMDocument_load_error2_gte2_12.phpt +new file mode 100644 +index 0000000000..4fadf41736 +--- /dev/null ++++ i/ext/dom/tests/DOMDocument_load_error2_gte2_12.phpt +@@ -0,0 +1,30 @@ ++--TEST-- ++Test DOMDocument::load() detects not-well formed ++--SKIPIF-- ++= 2.12'); ++?> ++--DESCRIPTION-- ++This test verifies the method detects attributes values not closed between " or ' ++Environment variables used in the test: ++- XML_FILE: the xml file to load ++- LOAD_OPTIONS: the second parameter to pass to the method ++- EXPECTED_RESULT: the expected result ++--CREDITS-- ++Antonio Diaz Ruiz ++--EXTENSIONS-- ++dom ++--ENV-- ++XML_FILE=/not_well_formed2.xml ++LOAD_OPTIONS=0 ++EXPECTED_RESULT=0 ++--FILE_EXTERNAL-- ++domdocumentload_test_method.inc ++--EXPECTF-- ++Warning: DOMDocument::load(): AttValue: " or ' expected in %s on line %d ++ ++Warning: DOMDocument::load(): internal error: xmlParseStartTag: problem parsing attributes in %s on line %d ++ ++Warning: DOMDocument::load(): Couldn't find end of Start Tag book line 4 in %s on line %d ++ ++Warning: DOMDocument::load(): Opening and ending tag mismatch: books line 3 and book in %s on line %d +diff --git c/ext/xml/tests/bug81351.phpt i/ext/xml/tests/bug81351.phpt +index 19e4ca590b..dc934001be 100644 +--- c/ext/xml/tests/bug81351.phpt ++++ i/ext/xml/tests/bug81351.phpt +@@ -23,6 +23,6 @@ $code = xml_get_error_code($parser); + $error = xml_error_string($code); + echo "xml_parse returned $success, xml_get_error_code = $code, xml_error_string = $error\r\n"; + ?> +---EXPECT-- ++--EXPECTF-- + xml_parse returned 1, xml_get_error_code = 0, xml_error_string = No error +-xml_parse returned 0, xml_get_error_code = 5, xml_error_string = Invalid document end ++%rxml_parse returned 0, xml_get_error_code = 5, xml_error_string = Invalid document end|xml_parse returned 0, xml_get_error_code = 77, xml_error_string = Tag not finished%r diff --git a/nix-phps/pkgs/phps.nix b/nix-phps/pkgs/phps.nix index 00e7b2b6d..cd8f721d7 100644 --- a/nix-phps/pkgs/phps.nix +++ b/nix-phps/pkgs/phps.nix @@ -26,20 +26,25 @@ let { patches = attrs.patches or [] + ++ prev.lib.optionals (prev.lib.versions.majorMinor args.version == "5.6") [ + # Patch to make it build with autoconf >= 2.72 + # Source: https://aur.archlinux.org/packages/php56-ldap?all_deps=1#comment-954506 + ./patches/php56-autoconf.patch + ] ++ prev.lib.optionals (prev.lib.versions.majorMinor args.version == "7.2") [ # Building the bundled intl extension fails on Mac OS. # See https://bugs.php.net/bug.php?id=76826 for more information. - (prev.pkgs.fetchpatch { + (prev.pkgs.fetchurl { url = "https://bugs.php.net/patch-display.php?bug_id=76826&patch=bug76826.poc.0.patch&revision=1538723399&download=1"; - sha256 = "aW+MW9Kb8N/yBO7MdqZMZzgMSF7b+IMLulJKgKPWrUA="; + hash = "sha256-6JoyxVir3AG3VC6Q0uKrfb/ZFjs9/db+uZg3ssBdqzw="; }) ] ++ prev.lib.optionals (prev.lib.versionOlder args.version "7.4") [ # Handle macos versions that don't start with 10.* in libtool. # https://github.com/php/php-src/commit/d016434ad33284dfaceb8d233351d34356566d7d - (prev.pkgs.fetchpatch2 { + (prev.pkgs.fetchpatch { url = "https://github.com/php/php-src/commit/d016434ad33284dfaceb8d233351d34356566d7d.patch"; - sha256 = "sha256-x0vEcoXNFeQi3re1TrK/Np9AH5dy3wf95xM08xCyGE0="; + hash = "sha256-VQfd1sKYX9kzulvnr5CJ0FNl/6Y4mObyzT3GBs4Mq10="; includes = [ "build/libtool.m4" ]; @@ -85,6 +90,12 @@ let done '' + attrs.preConfigure; + } // prev.lib.optionalAttrs (prev.stdenv.cc.isClang) { + # Downgrade the following errors to warnings. `-Wint-conversion` only affects PHP 7.3. + NIX_CFLAGS_COMPILE = (attrs.NIX_CFLAGS_COMPILE or "") + + prev.lib.optionalString (prev.lib.versionOlder args.version "8.2") " -Wno-compare-distinct-pointer-types -Wno-implicit-const-int-float-conversion -Wno-deprecated-declarations -Wno-incompatible-function-pointer-types -Wno-incompatible-pointer-types-discards-qualifiers" + + prev.lib.optionalString (prev.lib.versionOlder args.version "8.0") " -Wno-implicit-int -Wno-implicit-function-declaration" + + prev.lib.optionalString (prev.lib.versionAtLeast args.version "7.3" && prev.lib.versionOlder args.version "7.4") " -Wno-int-conversion"; }; # For passing pcre2 to php-packages.nix. @@ -92,31 +103,31 @@ let cpFn: cpArgs: - prev.callPackage - cpFn - ( - cpArgs - // { - pcre2 = - if prev.lib.versionAtLeast args.version "7.3" - then prev.pcre2 - else prev.pcre; - - # For passing pcre2 to stuff called with callPackage in php-packages.nix. - pkgs = - prev - // ( - prev.lib.makeScope - prev.newScope - (self: { - pcre2 = - if prev.lib.versionAtLeast args.version "7.3" - then prev.pcre2 - else prev.pcre; - }) - ); - } - ); + (prev.callPackage cpFn cpArgs).override ( + prevArgs: + + # Only pass these attributes if the package function actually expects them. + prev.lib.filterAttrs (key: _v: builtins.hasAttr key prevArgs) { + pcre2 = + if prev.lib.versionAtLeast args.version "7.3" + then prev.pcre2 + else prev.pcre; + + # For passing pcre2 to stuff called with callPackage in php-packages.nix. + pkgs = + prev + // ( + prev.lib.makeScope + prev.newScope + (self: { + pcre2 = + if prev.lib.versionAtLeast args.version "7.3" + then prev.pcre2 + else prev.pcre; + }) + ); + } + ); } // args; diff --git a/nix-phps/pkgs/top-level/php-packages.nix b/nix-phps/pkgs/top-level/php-packages.nix index ec47a9c5e..345ed56b9 100644 --- a/nix-phps/pkgs/top-level/php-packages.nix +++ b/nix-phps/pkgs/top-level/php-packages.nix @@ -1,4 +1,6 @@ { stdenv +, config +, callPackages , lib , pkgs , phpPackage @@ -28,9 +30,11 @@ , openldap , openssl_1_1 , openssl +, overrideSDK , pam , pcre2 , postgresql +, bison , re2c , readline , rsync @@ -43,12 +47,15 @@ }: lib.makeScope pkgs.newScope (self: with self; { - buildPecl = import ../build-support/build-pecl.nix { + buildPecl = callPackage ../build-support/php/build-pecl.nix { php = php.unwrapped; - inherit lib; - inherit (pkgs) stdenv autoreconfHook fetchurl re2c nix-update-script; }; + composerHooks = callPackages ../build-support/php/hooks { }; + + mkComposerRepository = callPackage ../build-support/php/build-composer-repository.nix { }; + buildComposerProject = callPackage ../build-support/php/build-composer-project.nix { }; + # Wrap mkDerivation to prepend pname with "php-" to make names consistent # with how buildPecl does it and make the file easier to overview. mkDerivation = origArgs: @@ -101,14 +108,22 @@ lib.makeScope pkgs.newScope (self: with self; { autoconf pkg-config re2c + bison ]; inherit configureFlags internalDeps buildInputs zendExtension doCheck; preConfigurePhases = [ + "genfiles" "cdToExtensionRootPhase" ]; + genfiles = '' + if [ -f "scripts/dev/genfiles" ]; then + ./scripts/dev/genfiles + fi + ''; + cdToExtensionRootPhase = '' # Go to extension source root. cd "ext/${extName}" @@ -169,6 +184,8 @@ lib.makeScope pkgs.newScope (self: with self; { tools = { box = callPackage ../development/php-packages/box { }; + castor = callPackage ../development/php-packages/castor { }; + composer = callPackage ../development/php-packages/composer { }; deployer = callPackage ../development/php-packages/deployer { }; @@ -191,6 +208,8 @@ lib.makeScope pkgs.newScope (self: with self; { phpmd = callPackage ../development/php-packages/phpmd { }; + phpspy = callPackage ../development/php-packages/phpspy { }; + phpstan = callPackage ../development/php-packages/phpstan { }; psalm = callPackage ../development/php-packages/psalm { }; @@ -208,10 +227,6 @@ lib.makeScope pkgs.newScope (self: with self; { # 2. The contrib extensions available # 3. The core extensions extensions = - # Contrib conditional extensions - lib.optionalAttrs (!(lib.versionAtLeast php.version "8.3")) { - blackfire = callPackage ../development/tools/misc/blackfire/php-probe.nix { inherit php; }; - } // # Contrib extensions { amqp = callPackage ../development/php-packages/amqp { }; @@ -220,9 +235,14 @@ lib.makeScope pkgs.newScope (self: with self; { ast = callPackage ../development/php-packages/ast { }; + blackfire = callPackage ../development/tools/misc/blackfire/php-probe.nix { inherit php; }; + couchbase = callPackage ../development/php-packages/couchbase { }; datadog_trace = callPackage ../development/php-packages/datadog_trace { + buildPecl = buildPecl.override { + stdenv = if stdenv.isDarwin then overrideSDK stdenv "11.0" else stdenv; + }; inherit (pkgs) darwin; }; @@ -244,8 +264,14 @@ lib.makeScope pkgs.newScope (self: with self; { maxminddb = callPackage ../development/php-packages/maxminddb { }; + memcache = callPackage ../development/php-packages/memcache { }; + memcached = callPackage ../development/php-packages/memcached { }; + meminfo = callPackage ../development/php-packages/meminfo { }; + + memprof = callPackage ../development/php-packages/memprof { }; + mongodb = callPackage ../development/php-packages/mongodb { inherit (pkgs) darwin; }; @@ -254,6 +280,8 @@ lib.makeScope pkgs.newScope (self: with self; { oci8 = callPackage ../development/php-packages/oci8 { }; + opentelemetry = callPackage ../development/php-packages/opentelemetry { }; + openswoole = callPackage ../development/php-packages/openswoole { }; pdlib = callPackage ../development/php-packages/pdlib { }; @@ -280,6 +308,8 @@ lib.makeScope pkgs.newScope (self: with self; { pdo_sqlsrv = callPackage ../development/php-packages/pdo_sqlsrv { }; + phalcon = callPackage ../development/php-packages/phalcon { }; + pinba = callPackage ../development/php-packages/pinba { }; protobuf = callPackage ../development/php-packages/protobuf { }; @@ -290,12 +320,16 @@ lib.makeScope pkgs.newScope (self: with self; { relay = callPackage ../development/php-packages/relay { inherit php; }; + rrd = callPackage ../development/php-packages/rrd { }; + smbclient = callPackage ../development/php-packages/smbclient { }; snuffleupagus = callPackage ../development/php-packages/snuffleupagus { inherit (pkgs) darwin; }; + spx = callPackage ../development/php-packages/spx { }; + sqlsrv = callPackage ../development/php-packages/sqlsrv { }; ssh2 = callPackage ../development/php-packages/ssh2 { }; @@ -304,9 +338,15 @@ lib.makeScope pkgs.newScope (self: with self; { uv = callPackage ../development/php-packages/uv { }; + vld = callPackage ../development/php-packages/vld { }; + xdebug = callPackage ../development/php-packages/xdebug { }; yaml = callPackage ../development/php-packages/yaml { }; + + zstd = callPackage ../development/php-packages/zstd { }; + } // lib.optionalAttrs config.allowAliases { + php-spx = throw "php-spx is deprecated, use spx instead"; } // ( # Core extensions let @@ -332,6 +372,18 @@ lib.makeScope pkgs.newScope (self: with self; { configureFlags = [ "--enable-dom" ]; + # Add a PHP lower version bound constraint to avoid applying the patch on older PHP versions. + patches = lib.optionals (lib.versionOlder php.version "8.2.14" && lib.versionAtLeast php.version "8.1") [ + # Fix tests with libxml 2.12 + # Part of 8.3.1RC1+, 8.2.14RC1+ + (fetchpatch { + url = "https://github.com/php/php-src/commit/061058a9b1bbd90d27d97d79aebcf2b5029767b0.patch"; + hash = "sha256-0hOlAG+pOYp/gUU0MUMZvzWpgr0ncJi5GB8IeNxxyEU="; + excludes = [ + "NEWS" + ]; + }) + ]; } { name = "enchant"; @@ -434,9 +486,11 @@ lib.makeScope pkgs.newScope (self: with self; { } { name = "opcache"; - buildInputs = [ pcre2 ] ++ lib.optionals (!stdenv.isDarwin) [ - valgrind.dev - ]; + buildInputs = [ pcre2 ] ++ + lib.optional + (!stdenv.isDarwin && lib.meta.availableOn stdenv.hostPlatform valgrind) + valgrind.dev; + configureFlags = lib.optional php.ztsSupport "--disable-opcache-jit"; zendExtension = true; postPatch = lib.optionalString stdenv.isDarwin '' # Tests are flaky on darwin @@ -563,7 +617,17 @@ lib.makeScope pkgs.newScope (self: with self; { doCheck = false; } { name = "sodium"; buildInputs = [ libsodium ]; } - { name = "sqlite3"; buildInputs = [ sqlite ]; } + { + name = "sqlite3"; + buildInputs = [ sqlite ]; + + # The `sqlite3_bind_bug68849.phpt` test is currently broken for i686 Linux systems since sqlite 3.43, cf.: + # - https://github.com/php/php-src/issues/12076 + # - https://www.sqlite.org/forum/forumpost/abbb95376ec6cd5f + patches = lib.optionals (stdenv.isi686 && stdenv.isLinux) [ + ../development/interpreters/php/skip-sqlite3_bind_bug68849.phpt.patch + ]; + } { name = "sysvmsg"; } { name = "sysvsem"; } { name = "sysvshm"; } diff --git a/nixos/infrastructure/testing.nix b/nixos/infrastructure/testing.nix index d70c739b1..fa72ad61d 100644 --- a/nixos/infrastructure/testing.nix +++ b/nixos/infrastructure/testing.nix @@ -6,7 +6,6 @@ boot.loader.grub.device = "/dev/sda"; fileSystems."/".device = "/dev/disk/by-label/nixos"; networking.useDHCP = lib.mkForce false; - users.users.root.password = ""; flyingcircus.agent.enable = lib.mkOverride 200 false; flyingcircus.enc = config.fclib.mkPlatform { diff --git a/nixos/platform/acme.nix b/nixos/platform/acme.nix index 483aa383a..589418e38 100644 --- a/nixos/platform/acme.nix +++ b/nixos/platform/acme.nix @@ -42,4 +42,7 @@ in # fallback ACME settings security.acme.acceptTerms = true; security.acme.defaults.email = "admin@flyingcircus.io"; + # get back ACME account hash generation of <= NixOS 23.11 to avoid forced + # re-registration, see https://github.com/NixOS/nixpkgs/issues/316608 + security.acme.defaults.server = null; } diff --git a/nixos/platform/default.nix b/nixos/platform/default.nix index 79f449a90..96b2c9a48 100644 --- a/nixos/platform/default.nix +++ b/nixos/platform/default.nix @@ -176,7 +176,7 @@ in { flyingcircus.platform = { version = mkOption { readOnly = true; - default = "23.11"; + default = "24.05"; }; editions = mkOption { @@ -184,7 +184,7 @@ in { description = '' Documented branches of this platform version. ''; - default = [ "fc-23.11-production" "fc-23.11-staging" "fc-23.11-dev" ]; + default = [ "pre-fc-24.05" "fc-24.05-dev" "fc-24.05-staging" "fc-24.05-production" ]; }; }; diff --git a/nixos/platform/kernel.nix b/nixos/platform/kernel.nix index 02a5d72ce..d8fba4efc 100644 --- a/nixos/platform/kernel.nix +++ b/nixos/platform/kernel.nix @@ -19,7 +19,7 @@ ASYNC_TX_DMA y CPU_FREQ_STAT y BLK_DEV_MD y - MQ_IOSCHED_DEADLINE m + MQ_IOSCHED_DEADLINE y IPMI_PANIC_EVENT y IPMI_PANIC_STRING y LATENCYTOP y diff --git a/nixos/platform/packages.nix b/nixos/platform/packages.nix index 157ff52ca..8e50157a2 100644 --- a/nixos/platform/packages.nix +++ b/nixos/platform/packages.nix @@ -42,7 +42,7 @@ netcat ngrep nix-top - nixfmt + nixfmt-rfc-style nmap nvd openssl diff --git a/nixos/platform/static.nix b/nixos/platform/static.nix index c1aed0d34..e2d8e1d09 100644 --- a/nixos/platform/static.nix +++ b/nixos/platform/static.nix @@ -136,7 +136,6 @@ with lib; # Our custom services sensuclient = 31004; powerdns = 31005; - tideways = 31006; coredns = 31007; # removed by upstream, we want to keep it @@ -167,7 +166,6 @@ with lib; # Our custom services sensuclient = 31004; powerdns = 31005; - tideways = 31006; # removed by upstream, we want to keep it solr = 309; diff --git a/nixos/roles/k3s/default.nix b/nixos/roles/k3s/default.nix index 5034ceed6..aaca63ade 100644 --- a/nixos/roles/k3s/default.nix +++ b/nixos/roles/k3s/default.nix @@ -63,6 +63,7 @@ } ]; + services.k3s.package = pkgs.k3s_1_27; } (lib.mkIf (server || agent) { diff --git a/nixos/roles/k3s/server.nix b/nixos/roles/k3s/server.nix index 29b012a65..d8ddecee1 100644 --- a/nixos/roles/k3s/server.nix +++ b/nixos/roles/k3s/server.nix @@ -110,7 +110,7 @@ let metadata.name = "flyingcircus:sensu-client"; rules = [{ apiGroups = [""]; - resources = ["nodes"]; + resources = ["nodes" "pods"]; verbs = ["get" "list"]; }]; }) @@ -200,6 +200,8 @@ let tokendir=/var/lib/k3s/tokens kubectl="${pkgs.kubectl}/bin/kubectl" + remarshal="${pkgs.remarshal}/bin/remarshal" + jq="${pkgs.jq}/bin/jq" export KUBECONFIG=${defaultKubeconfig} if [ -z "$secret" ]; then @@ -215,6 +217,7 @@ let mkdir -p "$tokendir" install -o "$user" -g "$user" -m 600 /dev/null "$tokendir/$user.b64" install -o "$user" -g "$user" -m 600 /dev/null "$tokendir/$user.tmp" + install -o "$user" -g "$user" -m 600 /dev/null "$tokendir/$user.cfg.tmp" # this service may race with k3s loading and processing the vendor # manifests from disk -- they are not present on first run, and k3s only @@ -246,7 +249,17 @@ let exit 1 fi + "$remarshal" "$KUBECONFIG" -if yaml -of json | \ + "$jq" --rawfile token "$tokendir/$user.tmp" \ + '.users[0].user |= (del(."client-key-data", ."client-certificate-data") | .token = $token)' \ + > "$tokendir/$user.cfg.tmp" + if [ "$?" != 0 ]; then + echo 'could not generate kubeconfig from token' 2>&1 + exit 1 + fi + mv "$tokendir/$user.tmp" "$tokendir/$user" + mv "$tokendir/$user.cfg.tmp" "$tokendir/$user.cfg" rm -f "$tokendir/$user.b64" ''; @@ -261,10 +274,38 @@ let Restart = "on-failure"; RestartSec = 10; ExecStart = "${authTokenScript}/bin/kubernetes-write-auth-token ${user} ${secret}"; - ExecCondition = "${pkgs.coreutils}/bin/test ! -s /var/lib/k3s/tokens/${user}"; + ExecCondition = "${pkgs.coreutils}/bin/test ! -s /var/lib/k3s/tokens/${user} -o ! -s /var/lib/k3s/tokens/${user}.cfg"; }; }; + podPendingScript = pkgs.writeScriptBin "check-kube-pending-pods" '' + set -euo pipefail + + ret=0 + + kubectl get \ + --kubeconfig /var/lib/k3s/tokens/sensuclient.cfg \ + pods -A -o json | \ + jq -e '.items[] | + select(.status.phase != "Running") | + select(.status.phase != "Succeeded") | + select(.status.conditions | map(.lastTransitionTime | fromdateiso8601 | ((now - .) > 600)) | any) | + { + "name": .metadata.name, + "ns": .metadata.namespace, + "phase": .status.phase, + "since": .status.conditions[].lastTransitionTime, + "message": .status.conditions[].message}' || ret=$? + + if [ "$ret" -eq "4" ]; then + # no output, good. + exit 0 + elif [ "$ret" -eq "0" ]; then + # critical + exit 2 + fi + ''; + in { options = { flyingcircus.roles.k3s-server = { @@ -382,6 +423,11 @@ in { ${pkgs.sensu-plugins-kubernetes}/bin/check-kube-nodes-ready.rb --token-file /var/lib/k3s/tokens/sensuclient -s https://localhost:6443 ''; }; + + kube-pods-pending = { + notification = "Pods have been in pending state for longer than 10 minutes"; + command = "${podPendingScript}/bin/check-kube-pending-pods"; + }; }; systemdUnitChecks = { diff --git a/nixos/roles/lamp.nix b/nixos/roles/lamp.nix index a19d144e0..b760cdaa9 100644 --- a/nixos/roles/lamp.nix +++ b/nixos/roles/lamp.nix @@ -34,11 +34,6 @@ in { ''; }; - tideways_api_key = mkOption { - type = types.str; - default = ""; - }; - vhosts = mkOption { type = with types; listOf (submodule ({ config, ... }: { options = { @@ -109,200 +104,144 @@ in { ; Custom PHP ini ${role.php_ini} - '' + pkgs.lib.optionalString (role.tideways_api_key != "") '' - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - ; Tideways - ; - ; This is intended to be production-ready so it doesn't create too - ; much overhead. If you need to increase tracing, then you can - ; adjust this in your local php.ini - - extension=${pkgs.tideways_module}/lib/php/extensions/tideways-php-${phpMajorMinor}.so - - tideways.connection = tcp://127.0.0.1:9135 - - tideways.features.phpinfo = 1 - - tideways.dynamic_tracepoints.enable_web = 1 - tideways.dynamic_tracepoints.enable_cli = 1 - - ; customers need to add their api key locally - tideways.api_key = ${role.tideways_api_key} ''; phpMajorMinor = lib.concatStringsSep "." (lib.take 2 (builtins.splitVersion role.php.version)); phpMajor = builtins.head (builtins.splitVersion role.php.version); in + lib.mkIf role.enable { + warnings = + fclib.obsoleteOptionWarning + options + [ "flyingcircus" "roles" "lamp" "useFPM" ] + "FPM is always used now."; + + services.httpd.enable = true; + services.httpd.adminAddr = "admin@flyingcircus.io"; + services.httpd.mpm = "event"; + services.httpd.package = fclib.mkPlatform pkgs.apacheHttpdLegacyCrypt; + + # We always provide the PHP cli environment but we need to ensure + # to choose the right one in case someone uses the LAMP role. + environment.systemPackages = [ + role.php + role.php.packages.composer + ]; - lib.mkMerge [ - { - warnings = - fclib.obsoleteOptionWarning - options - [ "flyingcircus" "roles" "lamp" "useFPM" ] - "FPM is always used now."; - } - - # General config if the role is enabled but not specific to the - # selection of mod_php or FPM - (lib.mkIf role.enable { - services.httpd.enable = true; - services.httpd.adminAddr = "admin@flyingcircus.io"; - services.httpd.mpm = "event"; - services.httpd.package = fclib.mkPlatform pkgs.apacheHttpdLegacyCrypt; - - # We always provide the PHP cli environment but we need to ensure - # to choose the right one in case someone uses the LAMP role. - environment.systemPackages = [ - role.php - role.php.packages.composer - ]; - - # Provide a similar PHP config for the PHP CLI as for Apache (httpd). - # The file referenced by PHPRC is loaded together with the php.ini - # from the global PHP package which only specifies the extensions. - environment.variables.PHPRC = "${pkgs.writeText "php.ini" phpOptions}"; - services.httpd.logPerVirtualHost = true; - services.httpd.group = "service"; - services.httpd.user = "nobody"; - services.httpd.extraModules = [ "rewrite" "version" "status" "proxy_fcgi" ]; - services.httpd.extraConfig = '' - # Those options are chosen for prefork - # StartServers 2 (default) - # MinSpareServers 5 (default) - # MaxSpareServers 10 (Default) - - # MaxRequestWorkers default: 256, limit to lower number - # to avoid starvation/thrashing - MaxRequestWorkers 150 - - # Determine lifetime of processes - # MaxConnectionsPerChild default: 0, set limit to - # avoid potential memory leaks - MaxConnectionsPerChild 10000 - - Listen localhost:7999 - - - SetHandler server-status - + # Provide a similar PHP config for the PHP CLI as for Apache (httpd). + # The file referenced by PHPRC is loaded together with the php.ini + # from the global PHP package which only specifies the extensions. + environment.variables.PHPRC = "${pkgs.writeText "php.ini" phpOptions}"; + services.httpd.logPerVirtualHost = true; + services.httpd.group = "service"; + services.httpd.user = "nobody"; + services.httpd.extraModules = [ "rewrite" "version" "status" "proxy_fcgi" ]; + services.httpd.extraConfig = '' + # Those options are chosen for prefork + # StartServers 2 (default) + # MinSpareServers 5 (default) + # MaxSpareServers 10 (Default) + + # MaxRequestWorkers default: 256, limit to lower number + # to avoid starvation/thrashing + MaxRequestWorkers 150 + + # Determine lifetime of processes + # MaxConnectionsPerChild default: 0, set limit to + # avoid potential memory leaks + MaxConnectionsPerChild 10000 + + Listen localhost:7999 + + + SetHandler server-status + + + + # reuse _must_ be disable or apache will confuse different + # FPM pools and also screw up with keepalives consuming backend + # connections. + + + + '' + + # * vhost configs + (lib.concatMapStrings (vhost: + let port=toString vhost.port; + in + '' + + Listen *:${port} + + ServerName "${config.networking.hostName}" + DocumentRoot "${vhost.docroot}" + + AllowOverride all + Require all granted + Options FollowSymlinks + DirectoryIndex index.html index.php + + + SetHandler "proxy:unix:${config.services.phpfpm.pools."${vhost.name}".socket}|fcgi://localhost/" + + ${vhost.apacheExtraConfig} - - # reuse _must_ be disable or apache will confuse different - # FPM pools and also screw up with keepalives consuming backend - # connections. - - - - '' + - # * vhost configs - (lib.concatMapStrings (vhost: - let port=toString vhost.port; - in - '' - - Listen *:${port} - - ServerName "${config.networking.hostName}" - DocumentRoot "${vhost.docroot}" - - AllowOverride all - Require all granted - Options FollowSymlinks - DirectoryIndex index.html index.php - - - SetHandler "proxy:unix:${config.services.phpfpm.pools."${vhost.name}".socket}|fcgi://localhost/" - - ${vhost.apacheExtraConfig} - - '' - ) role.vhosts) + - role.apache_conf; - - # The upstream module has a default that makes Apache listen on port 80 - # which conflicts with our webgateway role. - services.httpd.virtualHosts = {}; - - services.phpfpm.phpPackage = role.php; - - services.phpfpm.pools = builtins.listToAttrs (map - (vhost: { - inherit (vhost) name; - value = lib.attrsets.recursiveUpdate { - user = config.services.httpd.user; - group = config.services.httpd.group; - phpOptions = phpOptions; - settings = (builtins.mapAttrs (_: fclib.mkPlatform) { - "listen.owner" = config.services.httpd.user; - "listen.group" = config.services.httpd.group; - "pm" = "dynamic"; - "pm.max_children" = (toString role.fpmMaxChildren); - "pm.start_servers" = "5"; - "pm.min_spare_servers" = "5"; - "pm.max_spare_servers" = "10"; - "slowlog" = "/var/log/httpd/${vhost.name}-slow.log"; - "request_slowlog_timeout" = "6s"; - "request_slowlog_trace_depth" = "100"; - "catch_workers_output" = "true"; - }); - } vhost.pool; # only contains override values - }) role.vhosts); - - flyingcircus.services.sensu-client.checks = { - httpd_status = { - notification = "Apache status page"; - command = "check_http -H localhost -p 7999 -u /server-status?auto -v"; - timeout = 30; - }; + '' + ) role.vhosts) + + role.apache_conf; + + # The upstream module has a default that makes Apache listen on port 80 + # which conflicts with our webgateway role. + services.httpd.virtualHosts = {}; + + services.phpfpm.phpPackage = role.php; + + services.phpfpm.pools = builtins.listToAttrs (map + (vhost: { + inherit (vhost) name; + value = lib.attrsets.recursiveUpdate { + user = config.services.httpd.user; + group = config.services.httpd.group; + phpOptions = phpOptions; + settings = (builtins.mapAttrs (_: fclib.mkPlatform) { + "listen.owner" = config.services.httpd.user; + "listen.group" = config.services.httpd.group; + "pm" = "dynamic"; + "pm.max_children" = (toString role.fpmMaxChildren); + "pm.start_servers" = "5"; + "pm.min_spare_servers" = "5"; + "pm.max_spare_servers" = "10"; + "slowlog" = "/var/log/httpd/${vhost.name}-slow.log"; + "request_slowlog_timeout" = "6s"; + "request_slowlog_trace_depth" = "100"; + "catch_workers_output" = "true"; + }); + } vhost.pool; # only contains override values + }) role.vhosts); + + flyingcircus.services.sensu-client.checks = { + httpd_status = { + notification = "Apache status page"; + command = "check_http -H localhost -p 7999 -u /server-status?auto -v"; + timeout = 30; }; + }; - flyingcircus.services.telegraf.inputs = { - apache = [{ - urls = [ "http://localhost:7999/server-status?auto" ]; - }]; - }; - - # required for PL-132312 hotfix: httpd needs to be restarted after the update to create new log. - # Can be removed again at some point. - systemd.services.httpd.restartTriggers = [ "2024-03-14-PL-132312" ]; - - systemd.tmpfiles.rules = [ - "d /var/log/httpd 2750 root service" - "a+ /var/log/httpd - - - - default:group::r-X,default:group:sudo-srv:r-X,default:group:service:r-X,default:mask::r-X" - # recursive is required as well to adjust permissions of existing files - "A+ /var/log/httpd - - - - group:sudo-srv:r-X,group:service:r-X,group::r-X,mask::r-X" - ]; - - }) - - (lib.mkIf (role.tideways_api_key != "") { - - # tideways daemon - users.groups.tideways.gid = config.ids.gids.tideways; + flyingcircus.services.telegraf.inputs = { + apache = [{ + urls = [ "http://localhost:7999/server-status?auto" ]; + }]; + }; - users.users.tideways = { - description = "tideways daemon user"; - uid = config.ids.uids.tideways; - isSystemUser = true; - group = "tideways"; - extraGroups = [ "service" ]; - }; + # required for PL-132312 hotfix: httpd needs to be restarted after the update to create new log. + # Can be removed again at some point. + systemd.services.httpd.restartTriggers = [ "2024-03-14-PL-132312" ]; - systemd.services.tideways-daemon = rec { - description = "tideways daemon"; - wantedBy = [ "multi-user.target" ]; - wants = [ "network.target" ]; - after = wants; - serviceConfig = { - ExecStart = '' - ${pkgs.tideways_daemon}/tideways-daemon --address=127.0.0.1:9135 - ''; - Restart = "always"; - RestartSec = "60s"; - User = "tideways"; - Type = "simple"; - }; - }; - }) + systemd.tmpfiles.rules = [ + "d /var/log/httpd 2750 root service" + "a+ /var/log/httpd - - - - default:group::r-X,default:group:sudo-srv:r-X,default:group:service:r-X,default:mask::r-X" + # recursive is required as well to adjust permissions of existing files + "A+ /var/log/httpd - - - - group:sudo-srv:r-X,group:service:r-X,group::r-X,mask::r-X" ]; + + }; } diff --git a/nixos/roles/mysql.nix b/nixos/roles/mysql.nix index 7e73ea01f..b64b9533a 100644 --- a/nixos/roles/mysql.nix +++ b/nixos/roles/mysql.nix @@ -8,6 +8,8 @@ with builtins; let fclib = config.fclib; + supportedPerconaVersions = ["8.0" "8.3"]; + removeDot = builtins.replaceStrings ["."] [""]; in { options = with lib; @@ -55,31 +57,35 @@ in }; mysql57 = mkRole "5.7"; - percona80 = mkRole "8.0"; - percona81 = mkRole "8.1"; - }; + } + // lib.listToAttrs (builtins.map + (ver: lib.nameValuePair "percona${removeDot ver}" (mkRole ver) + ) supportedPerconaVersions); }; config = let - mysqlRoles = with config.flyingcircus.roles; { - "5.7" = mysql57.enable; - "8.0" = percona80.enable; - "8.1" = percona81.enable; - }; - - mysqlPackages = with pkgs; { - "5.7" = percona57; - "8.0" = percona80; - "8.1" = percona81; - }; + mysqlRoles = { + "5.7" = config.flyingcircus.roles.mysql57.enable; + } + // lib.listToAttrs (builtins.map ( + ver: lib.nameValuePair ver config.flyingcircus.roles."percona${removeDot ver}".enable + ) supportedPerconaVersions); + + mysqlPackages = { + "5.7" = pkgs.percona57; + } + // lib.listToAttrs (builtins.map ( + ver: lib.nameValuePair ver pkgs."percona${removeDot ver}" + ) supportedPerconaVersions); xtrabackupPackages = with pkgs; { "5.7" = percona-xtrabackup_2_4; - "8.0" = percona-xtrabackup_8_0; - "8.1" = percona-xtrabackup_8_1; - }; + } + // lib.listToAttrs (builtins.map ( + ver: lib.nameValuePair ver pkgs."percona-xtrabackup_${builtins.replaceStrings ["."] ["_"] ver}" + ) supportedPerconaVersions); cfg = config.flyingcircus.roles.mysql; fclib = config.fclib; diff --git a/nixos/services/mail/default.nix b/nixos/services/mail/default.nix index 8acd98a0b..567c3996c 100644 --- a/nixos/services/mail/default.nix +++ b/nixos/services/mail/default.nix @@ -210,6 +210,9 @@ in { certificateScheme = 3; enableImapSsl = true; enableManageSieve = true; + # FC-38677 - we have a properly configured local resolver in our + # platform, so a bland unconfigured kresd is counterproductive. + localDnsResolver = false; lmtpSaveToDetailMailbox = "no"; mailDirectory = vmailDir; mailboxes = { @@ -235,6 +238,11 @@ in { flyingcircus.agent.userscan-ignore-users = [ "vmail" ]; + # See https://gitlab.com/simple-nixos-mailserver/nixos-mailserver/-/issues/289 + systemd.services.postfix.restartTriggers = [ config.mailserver.localDnsResolver ]; + systemd.services.rspamd.restartTriggers = [ config.mailserver.localDnsResolver ]; + systemd.services.opendkim.restartTriggers = [ config.mailserver.localDnsResolver ]; + services.dovecot2.extraConfig = '' passdb { driver = passwd-file @@ -315,7 +323,6 @@ in { "reject_rbl_client ix.dnsbl.manitu.net" "reject_unknown_client_hostname" ]; - smtpd_forbid_bare_newline = "normalize"; smtpd_data_restrictions = "reject_unauth_pipelining"; smtpd_helo_restrictions = [ "permit_sasl_authenticated" diff --git a/nixos/services/nginx/base-module.nix b/nixos/services/nginx/base-module.nix index bdde59f85..8a1d0a3b9 100644 --- a/nixos/services/nginx/base-module.nix +++ b/nixos/services/nginx/base-module.nix @@ -63,6 +63,17 @@ let proxy_set_header X-Forwarded-Server $server_name; ''; + proxyCachePathConfig = concatStringsSep "\n" (mapAttrsToList (name: proxyCachePath: '' + proxy_cache_path ${concatStringsSep " " [ + "/var/cache/nginx/${name}" + "keys_zone=${proxyCachePath.keysZoneName}:${proxyCachePath.keysZoneSize}" + "levels=${proxyCachePath.levels}" + "use_temp_path=${if proxyCachePath.useTempPath then "on" else "off"}" + "inactive=${proxyCachePath.inactive}" + "max_size=${proxyCachePath.maxSize}" + ]}; + '') (filterAttrs (name: conf: conf.enable) cfg.proxyCachePath)); + upstreamConfig = toString (flip mapAttrsToList cfg.upstreams (name: upstream: '' upstream ${name} { ${toString (flip mapAttrsToList upstream.servers (name: server: '' @@ -213,6 +224,8 @@ let ${cfg.commonHttpConfig} + ${proxyCachePathConfig} + ${vhosts} ${optionalString cfg.statusPage '' @@ -811,6 +824,75 @@ in ''; }; + proxyCachePath = mkOption { + type = types.attrsOf (types.submodule ({ ... }: { + options = { + enable = mkEnableOption (lib.mdDoc "this proxy cache path entry"); + + keysZoneName = mkOption { + type = types.str; + default = "cache"; + example = "my_cache"; + description = lib.mdDoc "Set name to shared memory zone."; + }; + + keysZoneSize = mkOption { + type = types.str; + default = "10m"; + example = "32m"; + description = lib.mdDoc "Set size to shared memory zone."; + }; + + levels = mkOption { + type = types.str; + default = "1:2"; + example = "1:2:2"; + description = lib.mdDoc '' + The levels parameter defines structure of subdirectories in cache: from + 1 to 3, each level accepts values 1 or 2. Сan be used any combination of + 1 and 2 in these formats: x, x:x and x:x:x. + ''; + }; + + useTempPath = mkOption { + type = types.bool; + default = false; + example = true; + description = lib.mdDoc '' + Nginx first writes files that are destined for the cache to a temporary + storage area, and the use_temp_path=off directive instructs Nginx to + write them to the same directories where they will be cached. Recommended + that you set this parameter to off to avoid unnecessary copying of data + between file systems. + ''; + }; + + inactive = mkOption { + type = types.str; + default = "10m"; + example = "1d"; + description = lib.mdDoc '' + Cached data that has not been accessed for the time specified by + the inactive parameter is removed from the cache, regardless of + its freshness. + ''; + }; + + maxSize = mkOption { + type = types.str; + default = "1g"; + example = "2048m"; + description = lib.mdDoc "Set maximum cache size"; + }; + }; + })); + default = {}; + description = lib.mdDoc '' + Configure a proxy cache path entry. + See for documentation. + ''; + }; + resolver = mkOption { type = types.submodule { options = { @@ -919,6 +1001,12 @@ in The Nginx log directory has been moved to /var/log/nginx, the cache directory to /var/cache/nginx. The option services.nginx.stateDir has been removed. '') + (mkRenamedOptionModule [ "services" "nginx" "proxyCache" "inactive" ] [ "services" "nginx" "proxyCachePath" "" "inactive" ]) + (mkRenamedOptionModule [ "services" "nginx" "proxyCache" "useTempPath" ] [ "services" "nginx" "proxyCachePath" "" "useTempPath" ]) + (mkRenamedOptionModule [ "services" "nginx" "proxyCache" "levels" ] [ "services" "nginx" "proxyCachePath" "" "levels" ]) + (mkRenamedOptionModule [ "services" "nginx" "proxyCache" "keysZoneSize" ] [ "services" "nginx" "proxyCachePath" "" "keysZoneSize" ]) + (mkRenamedOptionModule [ "services" "nginx" "proxyCache" "keysZoneName" ] [ "services" "nginx" "proxyCachePath" "" "keysZoneName" ]) + (mkRenamedOptionModule [ "services" "nginx" "proxyCache" "enable" ] [ "services" "nginx" "proxyCachePath" "" "enable" ]) ]; config = mkIf cfg.enable { diff --git a/nixos/services/postgresql/default.nix b/nixos/services/postgresql/default.nix index a363852a8..c5de62e0e 100644 --- a/nixos/services/postgresql/default.nix +++ b/nixos/services/postgresql/default.nix @@ -265,7 +265,6 @@ in { dataDir = "/srv/postgresql/${cfg.majorVersion}"; extraPlugins = extensions; initialScript = ./postgresql-init.sql; - logLinePrefix = "user=%u,db=%d "; package = postgresqlPkg; ensureDatabases = [ "fcio_monitoring" ]; @@ -323,6 +322,7 @@ in { #------------------------------------------------------------------------------ # ERROR REPORTING AND LOGGING #------------------------------------------------------------------------------ + log_line_prefix = "user=%u,db=%d "; log_min_duration_statement = 100; log_checkpoints = true; log_connections = true; diff --git a/nixpkgs-config.nix b/nixpkgs-config.nix index a7607b1f9..ca625c624 100644 --- a/nixpkgs-config.nix +++ b/nixpkgs-config.nix @@ -9,9 +9,9 @@ ]; permittedInsecurePackages = [ - "imagemagick-6.9.12-68" # Legacy, but gets updates. Customer still needs it. + "imagemagick-6.9.13-10" # Legacy, but gets updates. Customer still needs it. "openssl-1.1.1w" # EOL 2023-09-11, needed for Percona and older PHP versions. - "python-2.7.18.7" # Needed for some legacy customer applications. + "python-2.7.18.8" # Needed for some legacy customer applications. "ruby-2.7.8" # EOL 2023-03-31, needed for Sensu checks ]; } diff --git a/pkgs/fc/agent/fc/maintenance/activity/tests/test_update.py b/pkgs/fc/agent/fc/maintenance/activity/tests/test_update.py index 4a277611b..c79999411 100644 --- a/pkgs/fc/agent/fc/maintenance/activity/tests/test_update.py +++ b/pkgs/fc/agent/fc/maintenance/activity/tests/test_update.py @@ -446,7 +446,7 @@ def test_update_from_enc_incompatible_with_local_channel(log, logger): enc = { "parameters": { "environment_url": "file://test", - "environment": "dev-checkout-23.11", + "environment": "dev-checkout-24.05", } } diff --git a/pkgs/fc/agent/fc/manage/manage.py b/pkgs/fc/agent/fc/manage/manage.py index 059488119..0c8107a31 100644 --- a/pkgs/fc/agent/fc/manage/manage.py +++ b/pkgs/fc/agent/fc/manage/manage.py @@ -65,7 +65,7 @@ def check(log, enc, config: ConfigParser) -> CheckResult: ok_info.append(f"State version: {state_version}.") else: warnings.append( - f"State version invalid: {state_version}, should look like 23.11" + f"State version invalid: {state_version}, should look like 24.05" ) else: warnings.append(f"State version file {STATE_VERSION_FILE} missing.") diff --git a/pkgs/fc/userscan.nix b/pkgs/fc/userscan.nix index 0224b163d..06944986d 100644 --- a/pkgs/fc/userscan.nix +++ b/pkgs/fc/userscan.nix @@ -23,7 +23,7 @@ rustPlatform.buildRustPackage rec { postBuild = '' substituteAll $src/userscan.1.rst $TMP/userscan.1.rst - rst2man.py $TMP/userscan.1.rst > $TMP/userscan.1 + rst2man $TMP/userscan.1.rst > $TMP/userscan.1 ''; postInstall = '' install -D $TMP/userscan.1 $out/share/man/man1/fc-userscan.1 diff --git a/pkgs/keycloak/COPYING.md b/pkgs/keycloak/COPYING.md deleted file mode 100644 index 2afbc4c42..000000000 --- a/pkgs/keycloak/COPYING.md +++ /dev/null @@ -1 +0,0 @@ -The files in this directory are based on [MIT-licensed](https://github.com/NixOS/nixpkgs/blob/7a338b0febc1994ed42ee1aed8c752674abf0632/COPYING) work done by other Nixpkgs/NixOS contributors, taken from revision 7a338b0febc1994ed42ee1aed8c752674abf0632 in the [nixpkgs](https://github.com/NixOS/nixpkgs/) repository under the path [pkgs/servers/keycloak](https://github.com/NixOS/nixpkgs/blob/7a338b0febc1994ed42ee1aed8c752674abf0632/pkgs/servers/keycloak). diff --git a/pkgs/keycloak/all-plugins.nix b/pkgs/keycloak/all-plugins.nix deleted file mode 100644 index 2e4c97ea1..000000000 --- a/pkgs/keycloak/all-plugins.nix +++ /dev/null @@ -1,25 +0,0 @@ -{ callPackage, fetchMavenArtifact }: - -{ - scim-for-keycloak = callPackage ./scim-for-keycloak {}; - scim-keycloak-user-storage-spi = callPackage ./scim-keycloak-user-storage-spi {}; - keycloak-discord = callPackage ./keycloak-discord {}; - keycloak-metrics-spi = callPackage ./keycloak-metrics-spi {}; - keycloak-restrict-client-auth = callPackage ./keycloak-restrict-client-auth {}; - - # These could theoretically be used by something other than Keycloak, but - # there are no other quarkus apps in nixpkgs (as of 2023-08-21) - quarkus-systemd-notify = (fetchMavenArtifact { - groupId = "io.quarkiverse.systemd.notify"; - artifactId = "quarkus-systemd-notify"; - version = "1.0.1"; - hash = "sha256-3I4j22jyIpokU4kdobkt6cDsALtxYFclA+DV+BqtmLY="; - }).passthru.jar; - - quarkus-systemd-notify-deployment = (fetchMavenArtifact { - groupId = "io.quarkiverse.systemd.notify"; - artifactId = "quarkus-systemd-notify-deployment"; - version = "1.0.1"; - hash = "sha256-xHxzBxriSd/OU8gEcDG00VRkJYPYJDfAfPh/FkQe+zg="; - }).passthru.jar; -} diff --git a/pkgs/keycloak/config_vars.patch b/pkgs/keycloak/config_vars.patch deleted file mode 100644 index be2d54790..000000000 --- a/pkgs/keycloak/config_vars.patch +++ /dev/null @@ -1,15 +0,0 @@ -diff --git a/quarkus/dist/src/main/content/bin/kc.sh b/quarkus/dist/src/main/content/bin/kc.sh -index d7be862cde..16f9aa78e0 100644 ---- a/bin/kc.sh -+++ b/bin/kc.sh -@@ -32,8 +32,8 @@ abs_path () { - fi - } - --SERVER_OPTS="-Dkc.home.dir='$(abs_path '..')'" --SERVER_OPTS="$SERVER_OPTS -Djboss.server.config.dir='$(abs_path '../conf')'" -+SERVER_OPTS="-Dkc.home.dir=$KC_HOME_DIR" -+SERVER_OPTS="$SERVER_OPTS -Djboss.server.config.dir=$KC_CONF_DIR" - SERVER_OPTS="$SERVER_OPTS -Djava.util.logging.manager=org.jboss.logmanager.LogManager" - SERVER_OPTS="$SERVER_OPTS -Dquarkus-log-max-startup-records=10000" - CLASSPATH_OPTS="'$(abs_path "../lib/quarkus-run.jar"):$(abs_path "../lib/bootstrap/*")'" diff --git a/pkgs/keycloak/default.nix b/pkgs/keycloak/default.nix deleted file mode 100644 index 1792b51ab..000000000 --- a/pkgs/keycloak/default.nix +++ /dev/null @@ -1,90 +0,0 @@ -{ stdenv -, lib -, fetchzip -, makeWrapper -, jre -, nixosTests -, callPackage -, confFile ? null -, plugins ? [ ] -, extraFeatures ? [ ] -, disabledFeatures ? [ ] -}: - -let - featuresSubcommand = '' - ${lib.optionalString (extraFeatures != [ ]) "--features=${lib.concatStringsSep "," extraFeatures}"} \ - ${lib.optionalString (disabledFeatures != [ ]) "--features-disabled=${lib.concatStringsSep "," disabledFeatures}"} - ''; -in stdenv.mkDerivation rec { - pname = "keycloak"; - version = "24.0.4"; - - src = fetchzip { - url = "https://github.com/keycloak/keycloak/releases/download/${version}/keycloak-${version}.zip"; - hash = "sha256-tqY3rYFRsRpbvms8DVtCp8nXl0hlX1CzuOVFCE+23o4="; - }; - - nativeBuildInputs = [ makeWrapper jre ]; - - patches = [ - # Make home.dir and config.dir configurable through the - # KC_HOME_DIR and KC_CONF_DIR environment variables. - ./config_vars.patch - ]; - - buildPhase = '' - runHook preBuild - '' + lib.optionalString (confFile != null) '' - install -m 0600 ${confFile} conf/keycloak.conf - '' + '' - install_plugin() { - if [ -d "$1" ]; then - find "$1" -type f \( -iname \*.ear -o -iname \*.jar \) -exec install -m 0500 "{}" "providers/" \; - else - install -m 0500 "$1" "providers/" - fi - } - ${lib.concatMapStringsSep "\n" (pl: "install_plugin ${lib.escapeShellArg pl}") plugins} - '' + '' - patchShebangs bin/kc.sh - export KC_HOME_DIR=$(pwd) - export KC_CONF_DIR=$(pwd)/conf - bin/kc.sh build ${featuresSubcommand} - - runHook postBuild - ''; - - installPhase = '' - runHook preInstall - - mkdir $out - cp -r * $out - - rm $out/bin/*.{ps1,bat} - - runHook postInstall - ''; - - postFixup = '' - for script in $(find $out/bin -type f -executable); do - wrapProgram "$script" --set JAVA_HOME ${jre} --prefix PATH : ${jre}/bin - done - ''; - - passthru = { - tests = nixosTests.keycloak; - plugins = callPackage ./all-plugins.nix { }; - enabledPlugins = plugins; - }; - - meta = with lib; { - homepage = "https://www.keycloak.org/"; - description = "Identity and access management for modern applications and services"; - sourceProvenance = with sourceTypes; [ binaryBytecode ]; - license = licenses.asl20; - platforms = jre.meta.platforms; - maintainers = with maintainers; [ ngerstle talyz nickcao ]; - }; - -} diff --git a/pkgs/keycloak/keycloak-discord/default.nix b/pkgs/keycloak/keycloak-discord/default.nix deleted file mode 100644 index 9f00a292a..000000000 --- a/pkgs/keycloak/keycloak-discord/default.nix +++ /dev/null @@ -1,31 +0,0 @@ -{ stdenv -, lib -, fetchurl -}: - -stdenv.mkDerivation rec { - pname = "keycloak-discord"; - version = "0.5.0"; - - src = fetchurl { - url = "https://github.com/wadahiro/keycloak-discord/releases/download/v${version}/keycloak-discord-${version}.jar"; - hash = "sha256-radvUu2a6t0lbo5f/ADqy7+I/ONXB7/8pk2d1BtYzQA="; - }; - - dontUnpack = true; - dontBuild = true; - - installPhase = '' - runHook preInstall - install -Dm444 "$src" "$out/keycloak-discord-$version.jar" - runHook postInstall - ''; - - meta = with lib; { - homepage = "https://github.com/wadahiro/keycloak-discord"; - description = "Keycloak Social Login extension for Discord"; - license = licenses.asl20; - maintainers = with maintainers; [ mkg20001 ]; - sourceProvenance = with sourceTypes; [ binaryBytecode ]; - }; -} diff --git a/pkgs/keycloak/keycloak-metrics-spi/default.nix b/pkgs/keycloak/keycloak-metrics-spi/default.nix deleted file mode 100644 index 82e616349..000000000 --- a/pkgs/keycloak/keycloak-metrics-spi/default.nix +++ /dev/null @@ -1,33 +0,0 @@ -{ maven, stdenv, lib, fetchFromGitHub }: - -maven.buildMavenPackage rec { - pname = "keycloak-metrics-spi"; - version = "5.0.0"; - - src = fetchFromGitHub { - owner = "aerogear"; - repo = pname; - rev = "refs/tags/${version}"; - hash = "sha256-iagXbsKsU4vNP9eg05bwXEo67iij3N2FF0BW50MjRGE="; - }; - - mvnHash = { - aarch64-linux = "sha256-zO79pRrY8TqrSK4bB8l4pl6834aFX2pidyk1j9Itz1E=`"; - x86_64-linux = "sha256-+ySBrQ9yQ5ZxuVUh/mnHNEmugru3n8x5VR/RYEDCLAo="; - }.${stdenv.hostPlatform.system} or (throw "Unsupported system ${stdenv.hostPlatform.system} for ${pname}"); - - - installPhase = '' - runHook preInstall - install -Dm444 -t "$out" target/keycloak-metrics-spi-*.jar - runHook postInstall - ''; - - meta = with lib; { - homepage = "https://github.com/aerogear/keycloak-metrics-spi"; - description = "Keycloak Service Provider that adds a metrics endpoint"; - license = licenses.asl20; - maintainers = with maintainers; [ benley ]; - platforms = [ "aarch64-linux" "x86_64-linux" ]; - }; -} diff --git a/pkgs/keycloak/keycloak-restrict-client-auth/default.nix b/pkgs/keycloak/keycloak-restrict-client-auth/default.nix deleted file mode 100644 index 16d376173..000000000 --- a/pkgs/keycloak/keycloak-restrict-client-auth/default.nix +++ /dev/null @@ -1,28 +0,0 @@ -{ maven, lib, fetchFromGitHub }: - -maven.buildMavenPackage rec { - pname = "keycloak-restrict-client-auth"; - version = "24.0.0"; - - src = fetchFromGitHub { - owner = "sventorben"; - repo = "keycloak-restrict-client-auth"; - rev = "v${version}"; - hash = "sha256-Pk0tj8cTHSBwVIzINE7GLA5b/eI97wuOTvO7UoXBStM="; - }; - - mvnHash = "sha256-Pk2yYuBqGs4k1KwaU06RQe1LpohZu0VI1pHEUBU3EUE="; - - installPhase = '' - runHook preInstall - install -Dm444 -t "$out" target/keycloak-restrict-client-auth.jar - runHook postInstall - ''; - - meta = with lib; { - homepage = "https://github.com/sventorben/keycloak-restrict-client-auth"; - description = "A Keycloak authenticator to restrict authorization on clients"; - license = licenses.mit; - maintainers = with maintainers; [ leona ]; - }; -} diff --git a/pkgs/keycloak/scim-for-keycloak/default.nix b/pkgs/keycloak/scim-for-keycloak/default.nix deleted file mode 100644 index 81686d2be..000000000 --- a/pkgs/keycloak/scim-for-keycloak/default.nix +++ /dev/null @@ -1,33 +0,0 @@ -{ lib -, fetchFromGitHub -, maven -}: - -maven.buildMavenPackage rec { - pname = "scim-for-keycloak"; - version = "kc-20-b1"; # When updating also update mvnHash - - src = fetchFromGitHub { - owner = "Captain-P-Goldfish"; - repo = "scim-for-keycloak"; - rev = version; - hash = "sha256-kHjCVkcD8C0tIaMExDlyQmcWMhypisR1nyG93laB8WU="; - }; - - mvnHash = "sha256-cOuJSU57OuP+U7lI+pDD7g9HPIfZAoDPYLf+eO+XuF4="; - - installPhase = '' - install -D "scim-for-keycloak-server/target/scim-for-keycloak-${version}.jar" "$out/scim-for-keycloak-${version}.jar" - ''; - - meta = with lib; { - homepage = "https://github.com/Captain-P-Goldfish/scim-for-keycloak"; - description = "A third party module that extends Keycloak with SCIM functionality"; - sourceProvenance = with sourceTypes; [ - fromSource - binaryBytecode # dependencies - ]; - license = licenses.bsd3; - maintainers = with maintainers; [ mkg20001 ]; - }; -} diff --git a/pkgs/keycloak/scim-keycloak-user-storage-spi/default.nix b/pkgs/keycloak/scim-keycloak-user-storage-spi/default.nix deleted file mode 100644 index 6ecd3866b..000000000 --- a/pkgs/keycloak/scim-keycloak-user-storage-spi/default.nix +++ /dev/null @@ -1,32 +0,0 @@ -{ lib -, fetchFromGitHub -, maven -}: - -maven.buildMavenPackage { - pname = "scim-keycloak-user-storage-spi"; - version = "unstable-2024-02-14"; - - src = fetchFromGitHub { - owner = "justin-stephenson"; - repo = "scim-keycloak-user-storage-spi"; - rev = "6c59915836d9a559983326bbb87f895324bb75e4"; - hash = "sha256-BSso9lU542Aroxu0RIX6NARc10lGZ04A/WIWOVtdxHw="; - }; - - mvnHash = "sha256-xbGlVZl3YtbF372kCDh+UdK5pLe6C6WnGgbEXahlyLw="; - - installPhase = '' - install -D "target/scim-user-spi-0.0.1-SNAPSHOT.jar" "$out/scim-user-spi-0.0.1-SNAPSHOT.jar" - ''; - - meta = with lib; { - homepage = "https://github.com/justin-stephenson/scim-keycloak-user-storage-spi"; - description = "A third party module that extends Keycloak, allow for user storage in an external scimv2 server"; - sourceProvenance = with sourceTypes; [ - fromSource - ]; - license = licenses.mit; - maintainers = with maintainers; [ s1341 ]; - }; -} diff --git a/pkgs/opensearch-dashboards/default.nix b/pkgs/opensearch-dashboards/default.nix index c898aac4a..bcf813988 100644 --- a/pkgs/opensearch-dashboards/default.nix +++ b/pkgs/opensearch-dashboards/default.nix @@ -11,16 +11,16 @@ with lib; stdenv.mkDerivation rec { pname = "opensearch-dashboards"; - version = "2.11.0"; + version = "2.14.0"; src = fetchurl { url = "https://artifacts.opensearch.org/releases/bundle/opensearch-dashboards/${version}/${pname}-${version}-linux-x64.tar.gz"; - hash = "sha256-e6a0qE/idNf0NedfWugbh7qdBFNzDlnSnw/Gh/DEeGM="; + hash = "sha256-fALp2a70Eyahpxv1rten9quFM6hpHKuStabsuS7VxJI="; }; patches = [ # OpenSearch Dashboard specifies that it wants nodejs 14.20.1 but nodejs in nixpkgs is at 14.21.1. - ./disable-nodejs-version-check.patch + #./disable-nodejs-version-check.patch ]; nativeBuildInputs = [ makeWrapper ]; diff --git a/pkgs/overlay.nix b/pkgs/overlay.nix index 79c057675..c2f4e1863 100644 --- a/pkgs/overlay.nix +++ b/pkgs/overlay.nix @@ -7,6 +7,18 @@ let {} super; inherit (super) fetchpatch fetchFromGitHub fetchurl lib; + inherit (builtins) hasAttr storePath; + + getClosureFromStore = path: + if hasAttr "fetchClosure" builtins then + builtins.fetchClosure { + fromStore = "https://s3.whq.fcio.net/hydra"; + fromPath = path; + inputAddressed = true; + } + else + storePath path; + phpLogPermissionPatch = fetchpatch { url = "https://github.com/flyingcircusio/php-src/commit/f3a22e2ed6e461d8c3fac84c2fd2c9e441c9e4d4.patch"; hash = "sha256-ttHjEOGJomjs10PRtM2C6OLX9LCvboxyDSKdZZHanFQ="; @@ -54,7 +66,6 @@ builtins.mapAttrs (_: patchPhps phpLogPermissionPatch) { inherit (super.callPackage ./boost { }) boost159; - bundlerSensuPlugin = super.callPackage ./sensuplugins-rb/bundler-sensu-plugin.nix { }; busybox = super.busybox.overrideAttrs (oldAttrs: { meta.priority = 10; }); @@ -99,7 +110,6 @@ builtins.mapAttrs (_: patchPhps phpLogPermissionPatch) { ''; }); - keycloak = self.callPackage ./keycloak { }; # temporarily vendor from unstable, because 23.11 only has an insecure version kubernetes-dashboard = super.callPackage ./kubernetes-dashboard.nix { }; kubernetes-dashboard-metrics-scraper = super.callPackage ./kubernetes-dashboard-metrics-scraper.nix { }; @@ -213,12 +223,12 @@ builtins.mapAttrs (_: patchPhps phpLogPermissionPatch) { links2_nox = super.links2.override { enableX11 = false; enableFB = false; }; lkl = super.lkl.overrideAttrs(_: rec { - version = "2022-05-18"; + version = "2023-11-07"; src = fetchFromGitHub { - rev = "10c7b5dee8c424cc2ab754e519ecb73350283ff9"; + rev = "970883c348b61954a11c8c1ab9a2ab3ff0d89f08"; owner = "lkl"; repo = "linux"; - sha256 = "sha256-D3HQdKzhB172L62a+8884bNhcv7vm/c941wzbYtbf4I="; + hash = "sha256-MpvhYLH3toC5DaxeiQxKlYWjrPoFw+1eWkkX3XIiVQ0="; }; prePatch = '' @@ -331,24 +341,15 @@ builtins.mapAttrs (_: patchPhps phpLogPermissionPatch) { percona80 = super.percona-server_8_0; - percona81 = super.callPackage ./percona/8.1.nix { - boost = self.boost177; - icu = self.icu69; - protobuf = self.protobuf_21; - inherit (self.darwin) cctools developer_cmds DarwinTools; - inherit (self.darwin.apple_sdk.frameworks) CoreServices; - }; + # assertion notifies us about the need to vendor the old innovation releases + percona83 = assert self.percona-server_innovation.mysqlVersion == "8.3"; self.percona-server_innovation; percona-xtrabackup_2_4 = super.callPackage ./percona-xtrabackup/2_4.nix { boost = self.boost159; openssl = self.openssl_1_1; }; - percona-xtrabackup_8_1 = super.callPackage ./percona-xtrabackup/8_1.nix { - boost = self.boost177; - protobuf = self.protobuf_21; - }; - + percona-xtrabackup_8_3 = assert self.percona-xtrabackup_innovation.mysqlVersion == "8.3"; self.percona-xtrabackup_innovation; # Has been renamed upstream, backy-extract still wants to use it. pkgconfig = super.pkg-config; @@ -382,28 +383,29 @@ builtins.mapAttrs (_: patchPhps phpLogPermissionPatch) { rabbitmq-server_3_8 = super.rabbitmq-server; - sensu = super.callPackage ./sensu { }; - sensu-plugins-elasticsearch = super.callPackage ./sensuplugins-rb/sensu-plugins-elasticsearch { }; - sensu-plugins-kubernetes = super.callPackage ./sensuplugins-rb/sensu-plugins-kubernetes { }; - sensu-plugins-memcached = super.callPackage ./sensuplugins-rb/sensu-plugins-memcached { }; - sensu-plugins-mysql = super.callPackage ./sensuplugins-rb/sensu-plugins-mysql { }; - sensu-plugins-disk-checks = super.callPackage ./sensuplugins-rb/sensu-plugins-disk-checks { }; - sensu-plugins-entropy-checks = super.callPackage ./sensuplugins-rb/sensu-plugins-entropy-checks { }; - sensu-plugins-http = super.callPackage ./sensuplugins-rb/sensu-plugins-http { }; - sensu-plugins-logs = super.callPackage ./sensuplugins-rb/sensu-plugins-logs { }; - sensu-plugins-network-checks = super.callPackage ./sensuplugins-rb/sensu-plugins-network-checks { }; - sensu-plugins-postfix = super.callPackage ./sensuplugins-rb/sensu-plugins-postfix { }; - sensu-plugins-postgres = super.callPackage ./sensuplugins-rb/sensu-plugins-postgres { }; - sensu-plugins-rabbitmq = super.callPackage ./sensuplugins-rb/sensu-plugins-rabbitmq { }; - sensu-plugins-redis = super.callPackage ./sensuplugins-rb/sensu-plugins-redis { }; + # Ruby 2.7 is EOL but we still need it for Sensu until Aramaki takes over ;) + #ruby_2_7 = getClosureFromStore /nix/store/qqc6v89xn0g2w123wx85blkpc4pz2ags-ruby-2.7.8; + + sensu = getClosureFromStore /nix/store/3ya2sq1nl4i616mc40kpmag9ndhzj5fy-sensu-1.9.0; + + sensu-plugins-elasticsearch = getClosureFromStore /nix/store/dawyv3kzr69qj2lq8cfm0j941i2hjnfb-sensu-plugins-elasticsearch-4.2.2; + sensu-plugins-kubernetes = getClosureFromStore /nix/store/cndsgrdmqlgdwc6hnvvrji17jlr7z15k-sensu-plugins-kubernetes-4.0.0; + sensu-plugins-memcached = getClosureFromStore /nix/store/9hw039bi9zkr33i5vm66403wkf5cqpnc-sensu-plugins-memcached-0.1.3; + sensu-plugins-mysql = getClosureFromStore /nix/store/ng5blik2ajm6hb5i4ay57yyzbiy5ana0-sensu-plugins-mysql-3.1.1; + sensu-plugins-disk-checks = getClosureFromStore /nix/store/kmrapdk57468z9zcl57wk1vhz550naqm-sensu-plugins-disk-checks-5.1.4; + sensu-plugins-entropy-checks = getClosureFromStore /nix/store/fa43q081m3hgvb2lkrqrmjki9349llrv-sensu-plugins-entropy-checks-1.0.0; + sensu-plugins-http = getClosureFromStore /nix/store/b297df4389l1nrfbsh70x73qqfgamhq0-sensu-plugins-http-6.1.0; + sensu-plugins-logs = getClosureFromStore /nix/store/cxya5kgd5rksqvqq4mx1cim32wv9nzr2-sensu-plugins-logs-4.1.1; + sensu-plugins-network-checks = getClosureFromStore /nix/store/155c327fy4din77fv4sk6xzc1k8afbam-sensu-plugins-network-checks-4.0.0; + sensu-plugins-postfix = getClosureFromStore /nix/store/ac14jxfzl77nm09i4w2p6mrbl6fj6ri4-sensu-plugins-postfix-1.0.0; + sensu-plugins-postgres = getClosureFromStore /nix/store/mzlxvlfwn8bga044vdabpzdcqwjjblr1-sensu-plugins-postgres-4.2.0; + sensu-plugins-rabbitmq = getClosureFromStore /nix/store/lcvrxlakcxiqzvwq7g284nhzqfc5gvjv-sensu-plugins-rabbitmq-8.1.0; + sensu-plugins-redis = getClosureFromStore /nix/store/qbqnynpw5mzx98nz8lx89gpjw91wyd5b-sensu-plugins-redis-4.1.0; solr = super.callPackage ./solr { }; temporal_tables = super.callPackage ./postgresql/temporal_tables { }; - tideways_daemon = super.callPackage ./tideways/daemon.nix {}; - tideways_module = super.callPackage ./tideways/module.nix {}; - # XXX: qt4 was removed upstream, we have to bring it back somehow. Or just tell people to use old channels for this? #wkhtmltopdf_0_12_5 = super.callPackage ./wkhtmltopdf/0_12_5.nix { }; #wkhtmltopdf_0_12_6 = super.callPackage ./wkhtmltopdf/0_12_6.nix { }; diff --git a/pkgs/percona-xtrabackup/8_1.nix b/pkgs/percona-xtrabackup/8_1.nix deleted file mode 100644 index 859640089..000000000 --- a/pkgs/percona-xtrabackup/8_1.nix +++ /dev/null @@ -1,56 +0,0 @@ -{ lib, stdenv, fetchurl, bison, boost, cmake, makeWrapper, pkg-config -, curl, cyrus_sasl, libaio, libedit, libev, libevent, libgcrypt, libgpg-error, lz4 -, ncurses, numactl, openssl, procps, protobuf, valgrind, xxd, zlib -, perlPackages -, fetchSubmodules ? false, extraPatches ? [], extraPostInstall ? "", ... -}: - -# TODO: rebase this onto the generic.nix when upstreaming -stdenv.mkDerivation (finalAttrs: { - pname = "percona-xtrabackup"; - version = "8.1.0-1"; - - src = fetchurl { - url = "https://downloads.percona.com/downloads/Percona-XtraBackup-innovative-release/Percona-XtraBackup-${finalAttrs.version}/source/tarball/percona-xtrabackup-${finalAttrs.version}.tar.gz"; - hash = "sha256-4FjRjiqAg4lAqo+AoJVBPZlPWk6P9cFiKP2TgruCb+Y="; - }; - - nativeBuildInputs = [ bison boost cmake makeWrapper pkg-config ]; - - buildInputs = [ - (curl.override { inherit openssl; }) cyrus_sasl libaio libedit libevent libev libgcrypt libgpg-error lz4 - ncurses numactl openssl procps protobuf valgrind xxd zlib - ] ++ (with perlPackages; [ perl DBI DBDmysql ]); - - patches = extraPatches; - - cmakeFlags = [ - "-DMYSQL_UNIX_ADDR=/run/mysqld/mysqld.sock" - "-DBUILD_CONFIG=xtrabackup_release" - "-DINSTALL_MYSQLTESTDIR=OFF" - "-DWITH_BOOST=system" - "-DWITH_CURL=system" - "-DWITH_EDITLINE=system" - "-DWITH_LIBEVENT=system" - "-DWITH_LZ4=system" - "-DWITH_PROTOBUF=system" - "-DWITH_SASL=system" - "-DWITH_SSL=system" - "-DWITH_ZLIB=system" - "-DWITH_VALGRIND=ON" - "-DWITH_MAN_PAGES=OFF" - ]; - - postInstall = '' - wrapProgram "$out"/bin/xtrabackup --prefix PERL5LIB : $PERL5LIB - rm -r "$out"/lib/plugin/debug - '' + extraPostInstall; - - meta = with lib; { - description = "Non-blocking backup tool for MySQL"; - homepage = "http://www.percona.com/software/percona-xtrabackup"; - license = licenses.lgpl2; - platforms = platforms.linux; - maintainers = with maintainers; [ izorkin ]; - }; -}) diff --git a/pkgs/percona/8.1.nix b/pkgs/percona/8.1.nix deleted file mode 100644 index 55f029d33..000000000 --- a/pkgs/percona/8.1.nix +++ /dev/null @@ -1,108 +0,0 @@ -{ lib, stdenv, fetchurl, bison, cmake, pkg-config -, boost, icu, libedit, libevent, lz4, ncurses, openssl, perl, protobuf, re2, readline, zlib, zstd, libfido2 -, numactl, cctools, CoreServices, developer_cmds, libtirpc, rpcsvc-proto, curl, DarwinTools, nixosTests -, systemd -# Percona-specific deps -, coreutils, cyrus_sasl, gnumake, openldap -}: - - -stdenv.mkDerivation (finalAttrs: { - pname = "percona_8_1"; - version = "8.1.0-1"; - - src = fetchurl { - url = "https://www.percona.com/downloads/Percona-Server-8.1/Percona-Server-${finalAttrs.version}/source/tarball/percona-server-${finalAttrs.version}.tar.gz"; - hash = "sha256-m4XFDMLnDPvbhtpv8qcjVBNmP4YZIVpaVYMdoMPw2NM="; - }; - - nativeBuildInputs = [ bison cmake pkg-config ] - ++ lib.optionals (!stdenv.isDarwin) [ rpcsvc-proto ]; - - patches = [ - ./no-force-outline-atomics.patch # Do not force compilers to turn on -moutline-atomics switch - ]; - - ## NOTE: MySQL upstream frequently twiddles the invocations of libtool. When updating, you might proactively grep for libtool references. - postPatch = '' - substituteInPlace cmake/libutils.cmake --replace /usr/bin/libtool libtool - substituteInPlace cmake/os/Darwin.cmake --replace /usr/bin/libtool libtool - # The rocksdb setup script is called with `env -i` and cannot find anything in PATH. - patchShebangs storage/rocksdb/get_rocksdb_files.sh - substituteInPlace storage/rocksdb/get_rocksdb_files.sh --replace mktemp ${coreutils}/bin/mktemp - substituteInPlace storage/rocksdb/get_rocksdb_files.sh --replace "rm $MKFILE" "${coreutils}/bin/rm $MKFILE" - substituteInPlace storage/rocksdb/get_rocksdb_files.sh --replace "make --" "${gnumake}/bin/make --" - ''; - - buildInputs = [ - boost (curl.override { inherit openssl; }) icu libedit libevent lz4 ncurses openssl protobuf re2 readline zlib - zstd libfido2 openldap perl cyrus_sasl - ] ++ lib.optionals stdenv.isLinux [ - numactl libtirpc systemd - ] ++ lib.optionals stdenv.isDarwin [ - cctools CoreServices developer_cmds DarwinTools - ]; - - outputs = [ "out" "static" ]; - - cmakeFlags = [ - # Percona-specific flags. - "-DPORTABLE=1" - "-DWITH_LDAP=system" - "-DROCKSDB_DISABLE_AVX2=1" - "-DROCKSDB_DISABLE_MARCH_NATIVE=1" - - # Flags taken from mysql package. - "-DFORCE_UNSUPPORTED_COMPILER=1" # To configure on Darwin. - - "-DWITH_ROUTER=OFF" # It may be packaged separately. - "-DWITH_SYSTEM_LIBS=ON" - "-DWITH_UNIT_TESTS=OFF" - - "-DMYSQL_UNIX_ADDR=/run/mysqld/mysqld.sock" - "-DMYSQL_DATADIR=/var/lib/mysql" - "-DINSTALL_INFODIR=share/mysql/docs" - "-DINSTALL_MANDIR=share/man" - "-DINSTALL_PLUGINDIR=lib/mysql/plugin" - "-DINSTALL_INCLUDEDIR=include/mysql" - "-DINSTALL_DOCREADMEDIR=share/mysql" - "-DINSTALL_SUPPORTFILESDIR=share/mysql" - "-DINSTALL_MYSQLSHAREDIR=share/mysql" - "-DINSTALL_MYSQLTESTDIR=" - "-DINSTALL_DOCDIR=share/mysql/docs" - "-DINSTALL_SHAREDIR=share/mysql" - - - ] ++ lib.optionals stdenv.isLinux [ - # TODO: decide whether to offer tcmalloc or jemalloc again - #"-DWITH_JEMALLOC=1" - "-DWITH_SYSTEMD=1" - "-DWITH_SYSTEMD_DEBUG=1" - ]; - - postInstall = '' - moveToOutput "lib/*.a" $static - so=${stdenv.hostPlatform.extensions.sharedLibrary} - ln -s libmysqlclient$so $out/lib/libmysqlclient_r$so - ''; - - passthru = { - client = finalAttrs.finalPackage; - connector-c = finalAttrs.finalPackage; - server = finalAttrs.finalPackage; - mysqlVersion = lib.versions.majorMinor finalAttrs.version; - # TODO when upstreaming: adapt NixOS tests - #tests = nixosTests.mysql.percona-server_8_0; - }; - - - meta = with lib; { - homepage = "https://www.percona.com/software/mysql-database/percona-server"; - description = '' - A free, fully compatible, enhanced, open source drop-in replacement for - MySQL® that provides superior performance, scalability and instrumentation. - ''; - license = licenses.gpl2; - platforms = platforms.unix; - }; -}) diff --git a/pkgs/sensu/Gemfile b/pkgs/sensu/Gemfile deleted file mode 100644 index ebee9f257..000000000 --- a/pkgs/sensu/Gemfile +++ /dev/null @@ -1,2 +0,0 @@ -source 'https://rubygems.org' -gem 'sensu' diff --git a/pkgs/sensu/Gemfile.lock b/pkgs/sensu/Gemfile.lock deleted file mode 100644 index 8c8c0be39..000000000 --- a/pkgs/sensu/Gemfile.lock +++ /dev/null @@ -1,100 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - addressable (2.8.4) - public_suffix (>= 2.0.2, < 6.0) - amq-protocol (2.0.1) - amqp (1.6.0) - amq-protocol (>= 2.0.1) - eventmachine - childprocess (0.5.8) - ffi (~> 1.0, >= 1.0.11) - cookiejar (0.3.3) - em-http-request (1.1.5) - addressable (>= 2.3.4) - cookiejar (!= 0.3.1) - em-socksify (>= 0.3) - eventmachine (>= 1.0.3) - http_parser.rb (>= 0.6.0) - em-http-server (0.1.8) - eventmachine - em-socksify (0.3.2) - eventmachine (>= 1.0.0.beta.4) - em-worker (0.0.2) - eventmachine - eventmachine (1.2.7) - ffi (1.9.21) - http_parser.rb (0.8.0) - oj (2.18.1) - parse-cron (0.1.4) - public_suffix (5.0.1) - sensu (1.9.0) - em-http-request (= 1.1.5) - em-http-server (= 0.1.8) - eventmachine (= 1.2.7) - parse-cron (= 0.1.4) - sensu-extension (= 1.5.2) - sensu-extensions (= 1.11.0) - sensu-json (= 2.1.1) - sensu-logger (= 1.2.2) - sensu-redis (= 2.4.0) - sensu-settings (= 10.17.0) - sensu-spawn (= 2.5.0) - sensu-transport (= 8.3.0) - sensu-extension (1.5.2) - eventmachine - sensu-extensions (1.11.0) - sensu-extension - sensu-extensions-check-dependencies (= 1.1.0) - sensu-extensions-debug (= 1.0.0) - sensu-extensions-deregistration (= 1.0.0) - sensu-extensions-json (= 1.0.0) - sensu-extensions-occurrences (= 1.2.0) - sensu-extensions-only-check-output (= 1.0.0) - sensu-extensions-ruby-hash (= 1.0.0) - sensu-json (>= 1.1.0) - sensu-logger - sensu-settings - sensu-extensions-check-dependencies (1.1.0) - sensu-extension - sensu-extensions-debug (1.0.0) - sensu-extension - sensu-extensions-deregistration (1.0.0) - sensu-extension - sensu-extensions-json (1.0.0) - sensu-extension - sensu-extensions-occurrences (1.2.0) - sensu-extension - sensu-extensions-only-check-output (1.0.0) - sensu-extension - sensu-extensions-ruby-hash (1.0.0) - sensu-extension - sensu-json (2.1.1) - oj (= 2.18.1) - sensu-logger (1.2.2) - eventmachine - sensu-json - sensu-redis (2.4.0) - eventmachine - sensu-settings (10.17.0) - parse-cron - sensu-json (>= 1.1.0) - sensu-spawn (2.5.0) - childprocess (= 0.5.8) - em-worker (= 0.0.2) - eventmachine - ffi (= 1.9.21) - sensu-transport (8.3.0) - amq-protocol (= 2.0.1) - amqp (= 1.6.0) - eventmachine - sensu-redis (>= 1.0.0) - -PLATFORMS - x86_64-linux - -DEPENDENCIES - sensu - -BUNDLED WITH - 2.4.12 diff --git a/pkgs/sensu/default.nix b/pkgs/sensu/default.nix deleted file mode 100644 index afa6b680b..000000000 --- a/pkgs/sensu/default.nix +++ /dev/null @@ -1,18 +0,0 @@ -{ lib, ruby_2_7, bundlerApp, bundlerUpdateScript }: - -bundlerApp { - ruby = ruby_2_7; - pname = "sensu"; - gemdir = ./.; - exes = [ - "sensu-client" - ]; - - meta = with lib; { - description = "A monitoring framework that aims to be simple, malleable, and scalable"; - homepage = "https://sensuapp.org/"; - license = licenses.mit; - maintainers = with maintainers; [ theuni peterhoeg manveru nicknovitski ]; - platforms = platforms.unix; - }; -} diff --git a/pkgs/sensu/gemset.nix b/pkgs/sensu/gemset.nix deleted file mode 100644 index e5c6c111a..000000000 --- a/pkgs/sensu/gemset.nix +++ /dev/null @@ -1,335 +0,0 @@ -{ - addressable = { - dependencies = ["public_suffix"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "15s8van7r2ad3dq6i03l3z4hqnvxcq75a3h72kxvf9an53sqma20"; - type = "gem"; - }; - version = "2.8.4"; - }; - amq-protocol = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1rpn9vgh7y037aqhhp04smihzr73vp5i5g6xlqlha10wy3q0wp7x"; - type = "gem"; - }; - version = "2.0.1"; - }; - amqp = { - dependencies = ["amq-protocol" "eventmachine"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0kbrqnpjgj9v0722p3n5rw589l4g26ry8mcghwc5yr20ggkpdaz9"; - type = "gem"; - }; - version = "1.6.0"; - }; - childprocess = { - dependencies = ["ffi"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1lv7axi1fhascm9njxh3lx1rbrnsm8wgvib0g7j26v4h1fcphqg0"; - type = "gem"; - }; - version = "0.5.8"; - }; - cookiejar = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0q0kmbks9l3hl0wdq744hzy97ssq9dvlzywyqv9k9y1p3qc9va2a"; - type = "gem"; - }; - version = "0.3.3"; - }; - em-http-request = { - dependencies = ["addressable" "cookiejar" "em-socksify" "eventmachine" "http_parser.rb"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "13rxmbi0fv91n4sg300v3i9iiwd0jxv0i6xd0sp81dx3jlx7kasx"; - type = "gem"; - }; - version = "1.1.5"; - }; - em-http-server = { - dependencies = ["eventmachine"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0y8l4gymy9dzjjchjav90ck6has2i2zdjihlhcyrg3jgq6kjzyq5"; - type = "gem"; - }; - version = "0.1.8"; - }; - em-socksify = { - dependencies = ["eventmachine"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0rk43ywaanfrd8180d98287xv2pxyl7llj291cwy87g1s735d5nk"; - type = "gem"; - }; - version = "0.3.2"; - }; - em-worker = { - dependencies = ["eventmachine"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0z4jx9z2q5hxvdvik4yp0ahwfk69qsmdnyp72ln22p3qlkq2z5wk"; - type = "gem"; - }; - version = "0.0.2"; - }; - eventmachine = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0wh9aqb0skz80fhfn66lbpr4f86ya2z5rx6gm5xlfhd05bj1ch4r"; - type = "gem"; - }; - version = "1.2.7"; - }; - ffi = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0c2dl10pi6a30kcvx2s6p2v1wb4kbm48iv38kmz2ff600nirhpb8"; - type = "gem"; - }; - version = "1.9.21"; - }; - "http_parser.rb" = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1gj4fmls0mf52dlr928gaq0c0cb0m3aqa9kaa6l0ikl2zbqk42as"; - type = "gem"; - }; - version = "0.8.0"; - }; - oj = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "147whmq8h2n04chskl3v4a132xhz5i6kk6vhnz83jwng4vihin5f"; - type = "gem"; - }; - version = "2.18.1"; - }; - parse-cron = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "02fj9i21brm88nb91ikxwxbwv9y7mb7jsz6yydh82rifwq7357hg"; - type = "gem"; - }; - version = "0.1.4"; - }; - public_suffix = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0hz0bx2qs2pwb0bwazzsah03ilpf3aai8b7lk7s35jsfzwbkjq35"; - type = "gem"; - }; - version = "5.0.1"; - }; - sensu = { - dependencies = ["em-http-request" "em-http-server" "eventmachine" "parse-cron" "sensu-extension" "sensu-extensions" "sensu-json" "sensu-logger" "sensu-redis" "sensu-settings" "sensu-spawn" "sensu-transport"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1pks6wij3drk05wwdfccwlndaj9q1bnn30ra2b6magwi34mixbw7"; - type = "gem"; - }; - version = "1.9.0"; - }; - sensu-extension = { - dependencies = ["eventmachine"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0bpizp4n01rv72cryjjlrbfxxj3csish3mkxjzdy4inpi5j5h1dw"; - type = "gem"; - }; - version = "1.5.2"; - }; - sensu-extensions = { - dependencies = ["sensu-extension" "sensu-extensions-check-dependencies" "sensu-extensions-debug" "sensu-extensions-deregistration" "sensu-extensions-json" "sensu-extensions-occurrences" "sensu-extensions-only-check-output" "sensu-extensions-ruby-hash" "sensu-json" "sensu-logger" "sensu-settings"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1313g6x3qwldk44p3v46sm3w1hz0pc89nslcwdw3v2j78a99a62y"; - type = "gem"; - }; - version = "1.11.0"; - }; - sensu-extensions-check-dependencies = { - dependencies = ["sensu-extension"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1hc4kz7k983f6fk27ikg5drvxm4a85qf1k07hqssfyk3k75jyj1r"; - type = "gem"; - }; - version = "1.1.0"; - }; - sensu-extensions-debug = { - dependencies = ["sensu-extension"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "11abdgn2kkkbvxq4692yg6a27qnxz4349gfiq7d35biy7vrw34lp"; - type = "gem"; - }; - version = "1.0.0"; - }; - sensu-extensions-deregistration = { - dependencies = ["sensu-extension"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1rarsd7vjflvzgs3hm6z3ypfp3rbzq2723wc0rqxnkpahzdrwr6c"; - type = "gem"; - }; - version = "1.0.0"; - }; - sensu-extensions-json = { - dependencies = ["sensu-extension"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1wnbn9sycdqdh9m0fhszaqkv0jijs3fkdbvcv8kdspx6irbv3m6g"; - type = "gem"; - }; - version = "1.0.0"; - }; - sensu-extensions-occurrences = { - dependencies = ["sensu-extension"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0lx5wsbblfs0rvkxfg09bsz0g2mwmckrhga7idnarsnm8m565v1v"; - type = "gem"; - }; - version = "1.2.0"; - }; - sensu-extensions-only-check-output = { - dependencies = ["sensu-extension"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0ds2i8wd4ji9ifig2zzr4jpxinvk5dm7j10pvaqy4snykxa3rqh3"; - type = "gem"; - }; - version = "1.0.0"; - }; - sensu-extensions-ruby-hash = { - dependencies = ["sensu-extension"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1xyrj3gbmslbivcd5qcmyclgapn7qf7f5jwfvfpw53bxzib0h7s3"; - type = "gem"; - }; - version = "1.0.0"; - }; - sensu-json = { - dependencies = ["oj"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "08zlxg5j3bhs72cc7wcllp026jbif0xiw6ib1cgawndlpsfl9fgx"; - type = "gem"; - }; - version = "2.1.1"; - }; - sensu-logger = { - dependencies = ["eventmachine" "sensu-json"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0jpw4kz36ilaknrzb3rbkhpbgv93w2d668z2cv395dq30d4d3iwm"; - type = "gem"; - }; - version = "1.2.2"; - }; - sensu-redis = { - dependencies = ["eventmachine"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0widfmmj1h9ca2kk14wy1sqmlkq40linp89a73s3ghngnzri0xyk"; - type = "gem"; - }; - version = "2.4.0"; - }; - sensu-settings = { - dependencies = ["parse-cron" "sensu-json"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1w3c63di23zqfml4r7f24j307r27digzqdccs8qkja88fbjawvrc"; - type = "gem"; - }; - version = "10.17.0"; - }; - sensu-spawn = { - dependencies = ["childprocess" "em-worker" "eventmachine" "ffi"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "17yc8ivjpjbvig9r7yl6991d6ma0kcq75fbpz6i856ljvcr3lmd5"; - type = "gem"; - }; - version = "2.5.0"; - }; - sensu-transport = { - dependencies = ["amq-protocol" "amqp" "eventmachine" "sensu-redis"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0baj3hlc1lr7w9ii65by83z4mn0k7xmjk48pss1y630859z5gzhb"; - type = "gem"; - }; - version = "8.3.0"; - }; -} diff --git a/pkgs/sensuplugins-rb/bundler-sensu-plugin.nix b/pkgs/sensuplugins-rb/bundler-sensu-plugin.nix deleted file mode 100644 index 96897488b..000000000 --- a/pkgs/sensuplugins-rb/bundler-sensu-plugin.nix +++ /dev/null @@ -1,40 +0,0 @@ -{ lib, bundlerApp, callPackage, defaultGemConfig, ruby_2_7 }: - -with builtins; - -{ pname, - # List supported ruby scripts here - exes, - # Patch gems or add external build dependencies for gems here. - # Will be merged into the default gem config. - extraGemConfig ? {}, - meta ? null, - postBuild ? "" -}@args: - -bundlerApp { - inherit pname exes; - ruby = ruby_2_7; - - gemConfig = defaultGemConfig // extraGemConfig; - gemdir = ./. + "/${pname}"; - - # Calling ruby binstubs directly from Sensu doesn't work, because the Sensu bundle interferes with the plugin bundle. - # Wrap ruby binstubs and call them with an emptied environment (env -i) that only sets HOME. - # makeWrapper has no option for that, so we wrap manually here. - # RUBYOPT silences annoying deprecation errors we cannot fix. - postBuild = '' - for prog in $out/bin/*.rb; do - hidden="$(dirname "$prog")/.$(basename "$prog")"-wrapped - mv $prog $hidden - echo /usr/bin/env -i RUBYOPT=-W0 HOME=/tmp $hidden '"$@"' > $prog - chmod a+x $prog - done - '' + postBuild; - - meta = if args ? meta then meta else { - description = "Sensu community plugin ${pname}"; - homepage = https://github.com/sensu-plugins/ + pname; - platforms = lib.platforms.unix; - }; -} diff --git a/pkgs/sensuplugins-rb/sensu-plugins-disk-checks/Gemfile b/pkgs/sensuplugins-rb/sensu-plugins-disk-checks/Gemfile deleted file mode 100644 index f6dba13a8..000000000 --- a/pkgs/sensuplugins-rb/sensu-plugins-disk-checks/Gemfile +++ /dev/null @@ -1,2 +0,0 @@ -source 'https://rubygems.org' -gem 'sensu-plugins-disk-checks' diff --git a/pkgs/sensuplugins-rb/sensu-plugins-disk-checks/Gemfile.lock b/pkgs/sensuplugins-rb/sensu-plugins-disk-checks/Gemfile.lock deleted file mode 100644 index 4685d2ba9..000000000 --- a/pkgs/sensuplugins-rb/sensu-plugins-disk-checks/Gemfile.lock +++ /dev/null @@ -1,23 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - ffi (1.15.1) - json (2.5.1) - mixlib-cli (1.7.0) - sensu-plugin (4.0.0) - json (< 3.0.0) - mixlib-cli (~> 1.5) - sensu-plugins-disk-checks (5.1.4) - sensu-plugin (~> 4.0) - sys-filesystem (= 1.3.4) - sys-filesystem (1.3.4) - ffi - -PLATFORMS - ruby - -DEPENDENCIES - sensu-plugins-disk-checks - -BUNDLED WITH - 2.1.4 diff --git a/pkgs/sensuplugins-rb/sensu-plugins-disk-checks/default.nix b/pkgs/sensuplugins-rb/sensu-plugins-disk-checks/default.nix deleted file mode 100644 index c52e13213..000000000 --- a/pkgs/sensuplugins-rb/sensu-plugins-disk-checks/default.nix +++ /dev/null @@ -1,15 +0,0 @@ -{ bundlerSensuPlugin }: - -bundlerSensuPlugin { - pname = "sensu-plugins-disk-checks"; - exes = [ - "check-disk-usage.rb" - "check-fstab-mounts.rb" - "check-smart.rb" - "check-smart-status.rb" - "check-smart-tests.rb" - "metrics-disk-capacity.rb" - "metrics-disk.rb" - "metrics-disk-usage.rb" - ]; -} diff --git a/pkgs/sensuplugins-rb/sensu-plugins-disk-checks/gemset.nix b/pkgs/sensuplugins-rb/sensu-plugins-disk-checks/gemset.nix deleted file mode 100644 index 941166127..000000000 --- a/pkgs/sensuplugins-rb/sensu-plugins-disk-checks/gemset.nix +++ /dev/null @@ -1,61 +0,0 @@ -{ - ffi = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "15nn2v70rql15vb0pm9cg0f3xsaslwjkv6xgz0k5jh48idmfw9fi"; - type = "gem"; - }; - version = "1.15.1"; - }; - json = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0lrirj0gw420kw71bjjlqkqhqbrplla61gbv1jzgsz6bv90qr3ci"; - type = "gem"; - }; - version = "2.5.1"; - }; - mixlib-cli = { - source = { - remotes = ["http://rubygems.org"]; - sha256 = "0647msh7kp7lzyf6m72g6snpirvhimjm22qb8xgv9pdhbcrmcccp"; - type = "gem"; - }; - version = "1.7.0"; - }; - sensu-plugin = { - dependencies = ["json" "mixlib-cli"]; - source = { - remotes = ["http://rubygems.org"]; - sha256 = "1hibm8q4dl5bp949h21zjc3d2ss26mg4sl5svy7gl7bz59k9dg06"; - type = "gem"; - }; - version = "4.0.0"; - }; - sensu-plugins-disk-checks = { - dependencies = ["sensu-plugin" "sys-filesystem"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1yyw1aa6j8c3whwmvz2w3dhmc1znf90dkhgrnklqizwrkjvp38z9"; - type = "gem"; - }; - version = "5.1.4"; - }; - sys-filesystem = { - dependencies = ["ffi"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0mizqnsiagagmracadr16s5na2ks2j3ih1w0f3gp4ssrda6szl01"; - type = "gem"; - }; - version = "1.3.4"; - }; -} diff --git a/pkgs/sensuplugins-rb/sensu-plugins-elasticsearch/Gemfile b/pkgs/sensuplugins-rb/sensu-plugins-elasticsearch/Gemfile deleted file mode 100644 index 4a441ba78..000000000 --- a/pkgs/sensuplugins-rb/sensu-plugins-elasticsearch/Gemfile +++ /dev/null @@ -1,2 +0,0 @@ -source 'https://rubygems.org' -gem 'sensu-plugins-elasticsearch' diff --git a/pkgs/sensuplugins-rb/sensu-plugins-elasticsearch/Gemfile.lock b/pkgs/sensuplugins-rb/sensu-plugins-elasticsearch/Gemfile.lock deleted file mode 100644 index bd249731c..000000000 --- a/pkgs/sensuplugins-rb/sensu-plugins-elasticsearch/Gemfile.lock +++ /dev/null @@ -1,66 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - aws-es-transport (0.1.4) - aws-sdk (~> 2.1, >= 2.1.14) - elasticsearch (~> 1.0, >= 1.0.10) - faraday (~> 0.9.1) - faraday_middleware (~> 0.10.0) - aws-sdk (2.4.4) - aws-sdk-resources (= 2.4.4) - aws-sdk-core (2.4.4) - jmespath (~> 1.0) - aws-sdk-resources (2.4.4) - aws-sdk-core (= 2.4.4) - domain_name (0.5.20190701) - unf (>= 0.0.5, < 1.0.0) - elasticsearch (1.0.18) - elasticsearch-api (= 1.0.18) - elasticsearch-transport (= 1.0.18) - elasticsearch-api (1.0.18) - multi_json - elasticsearch-transport (1.0.18) - faraday - multi_json - faraday (0.9.2) - multipart-post (>= 1.2, < 3) - faraday_middleware (0.10.1) - faraday (>= 0.7.4, < 1.0) - http-accept (1.7.0) - http-cookie (1.0.3) - domain_name (~> 0.5) - jmespath (1.4.0) - json (2.5.1) - mime-types (3.3.1) - mime-types-data (~> 3.2015) - mime-types-data (3.2021.0225) - mixlib-cli (1.7.0) - multi_json (1.15.0) - multipart-post (2.1.1) - netrc (0.11.0) - rest-client (2.1.0) - http-accept (>= 1.7.0, < 2.0) - http-cookie (>= 1.0.2, < 2.0) - mime-types (>= 1.16, < 4.0) - netrc (~> 0.8) - sensu-plugin (4.0.0) - json (< 3.0.0) - mixlib-cli (~> 1.5) - sensu-plugins-elasticsearch (4.2.2) - aws-es-transport (~> 0.1) - aws-sdk (~> 2.1, >= 2.1.14, < 2.5) - elasticsearch (~> 1.0.14) - rest-client (= 2.1.0) - sensu-plugin (~> 4.0) - unf (0.1.4) - unf_ext - unf_ext (0.0.7.7) - -PLATFORMS - ruby - -DEPENDENCIES - sensu-plugins-elasticsearch - -BUNDLED WITH - 2.1.4 diff --git a/pkgs/sensuplugins-rb/sensu-plugins-elasticsearch/default.nix b/pkgs/sensuplugins-rb/sensu-plugins-elasticsearch/default.nix deleted file mode 100644 index 227c8a9f8..000000000 --- a/pkgs/sensuplugins-rb/sensu-plugins-elasticsearch/default.nix +++ /dev/null @@ -1,13 +0,0 @@ -{ bundlerSensuPlugin }: - -bundlerSensuPlugin { - pname = "sensu-plugins-elasticsearch"; - exes = [ - "check-es-circuit-breakers.rb" - "check-es-cluster-health.rb" - "check-es-file-descriptors.rb" - "check-es-heap.rb" - "check-es-node-status.rb" - "check-es-shard-allocation-status.rb" - ]; -} diff --git a/pkgs/sensuplugins-rb/sensu-plugins-elasticsearch/gemset.nix b/pkgs/sensuplugins-rb/sensu-plugins-elasticsearch/gemset.nix deleted file mode 100644 index 1d65e09a1..000000000 --- a/pkgs/sensuplugins-rb/sensu-plugins-elasticsearch/gemset.nix +++ /dev/null @@ -1,264 +0,0 @@ -{ - aws-es-transport = { - dependencies = ["aws-sdk" "elasticsearch" "faraday" "faraday_middleware"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1r2if0jcbw3xx019fs6lqkz65nffwgh7hjbh5fj13hi09g505m3m"; - type = "gem"; - }; - version = "0.1.4"; - }; - aws-sdk = { - dependencies = ["aws-sdk-resources"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0wxvkzn7nsp5r09z3428cmzzzpkjdqmcwgwsfmm3clb93k9ivchv"; - type = "gem"; - }; - version = "2.4.4"; - }; - aws-sdk-core = { - dependencies = ["jmespath"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0v624h6yv28vbmcskx6n67blzq2an0171wcppkr3sx335wi4hriw"; - type = "gem"; - }; - version = "2.4.4"; - }; - aws-sdk-resources = { - dependencies = ["aws-sdk-core"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1a1lxkig0d2ihv8f581nq65z4b2cf89mg753mvkh8b1kh9ipybx4"; - type = "gem"; - }; - version = "2.4.4"; - }; - domain_name = { - dependencies = ["unf"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0lcqjsmixjp52bnlgzh4lg9ppsk52x9hpwdjd53k8jnbah2602h0"; - type = "gem"; - }; - version = "0.5.20190701"; - }; - elasticsearch = { - dependencies = ["elasticsearch-api" "elasticsearch-transport"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1wdy17i56b4m7akp7yavnr8vhfhyz720waphmixq05dj21b11hl0"; - type = "gem"; - }; - version = "1.0.18"; - }; - elasticsearch-api = { - dependencies = ["multi_json"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1v6nb3ajz5rack3p4b4nz37hs0zb9x738h2ms8cc4plp6wqh1w5s"; - type = "gem"; - }; - version = "1.0.18"; - }; - elasticsearch-transport = { - dependencies = ["faraday" "multi_json"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0smfrz8nq49hgf67y5ayxa9i4rmmi0q4m51l0h499ykq4cvcwv6i"; - type = "gem"; - }; - version = "1.0.18"; - }; - faraday = { - dependencies = ["multipart-post"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1kplqkpn2s2yl3lxdf6h7sfldqvkbkpxwwxhyk7mdhjplb5faqh6"; - type = "gem"; - }; - version = "0.9.2"; - }; - faraday_middleware = { - dependencies = ["faraday"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "18jndnpls6aih57rlkzdq94m5r7zlkjngyirv01jqlxll8jy643r"; - type = "gem"; - }; - version = "0.10.1"; - }; - http-accept = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "09m1facypsdjynfwrcv19xcb1mqg8z6kk31g8r33pfxzh838c9n6"; - type = "gem"; - }; - version = "1.7.0"; - }; - http-cookie = { - dependencies = ["domain_name"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "004cgs4xg5n6byjs7qld0xhsjq3n6ydfh897myr2mibvh6fjc49g"; - type = "gem"; - }; - version = "1.0.3"; - }; - jmespath = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1d4wac0dcd1jf6kc57891glih9w57552zgqswgy74d1xhgnk0ngf"; - type = "gem"; - }; - version = "1.4.0"; - }; - json = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0lrirj0gw420kw71bjjlqkqhqbrplla61gbv1jzgsz6bv90qr3ci"; - type = "gem"; - }; - version = "2.5.1"; - }; - mime-types = { - dependencies = ["mime-types-data"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1zj12l9qk62anvk9bjvandpa6vy4xslil15wl6wlivyf51z773vh"; - type = "gem"; - }; - version = "3.3.1"; - }; - mime-types-data = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1phcq7z0zpipwd7y4fbqmlaqghv07fjjgrx99mwq3z3n0yvy7fmi"; - type = "gem"; - }; - version = "3.2021.0225"; - }; - mixlib-cli = { - source = { - remotes = ["http://rubygems.org"]; - sha256 = "0647msh7kp7lzyf6m72g6snpirvhimjm22qb8xgv9pdhbcrmcccp"; - type = "gem"; - }; - version = "1.7.0"; - }; - multi_json = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0pb1g1y3dsiahavspyzkdy39j4q377009f6ix0bh1ag4nqw43l0z"; - type = "gem"; - }; - version = "1.15.0"; - }; - multipart-post = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1zgw9zlwh2a6i1yvhhc4a84ry1hv824d6g2iw2chs3k5aylpmpfj"; - type = "gem"; - }; - version = "2.1.1"; - }; - netrc = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0gzfmcywp1da8nzfqsql2zqi648mfnx6qwkig3cv36n9m0yy676y"; - type = "gem"; - }; - version = "0.11.0"; - }; - rest-client = { - dependencies = ["http-accept" "http-cookie" "mime-types" "netrc"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1qs74yzl58agzx9dgjhcpgmzfn61fqkk33k1js2y5yhlvc5l19im"; - type = "gem"; - }; - version = "2.1.0"; - }; - sensu-plugin = { - dependencies = ["json" "mixlib-cli"]; - source = { - remotes = ["http://rubygems.org"]; - sha256 = "1hibm8q4dl5bp949h21zjc3d2ss26mg4sl5svy7gl7bz59k9dg06"; - type = "gem"; - }; - version = "4.0.0"; - }; - sensu-plugins-elasticsearch = { - dependencies = ["aws-es-transport" "aws-sdk" "elasticsearch" "rest-client" "sensu-plugin"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "11hqhy9rjkpzfqsl52cnxc47llajy4m4bj1lkm3miv0zja7cdk4i"; - type = "gem"; - }; - version = "4.2.2"; - }; - unf = { - dependencies = ["unf_ext"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0bh2cf73i2ffh4fcpdn9ir4mhq8zi50ik0zqa1braahzadx536a9"; - type = "gem"; - }; - version = "0.1.4"; - }; - unf_ext = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0wc47r23h063l8ysws8sy24gzh74mks81cak3lkzlrw4qkqb3sg4"; - type = "gem"; - }; - version = "0.0.7.7"; - }; -} diff --git a/pkgs/sensuplugins-rb/sensu-plugins-entropy-checks/Gemfile b/pkgs/sensuplugins-rb/sensu-plugins-entropy-checks/Gemfile deleted file mode 100644 index 357f581e4..000000000 --- a/pkgs/sensuplugins-rb/sensu-plugins-entropy-checks/Gemfile +++ /dev/null @@ -1,2 +0,0 @@ -source 'https://rubygems.org' -gem 'sensu-plugins-entropy-checks' diff --git a/pkgs/sensuplugins-rb/sensu-plugins-entropy-checks/Gemfile.lock b/pkgs/sensuplugins-rb/sensu-plugins-entropy-checks/Gemfile.lock deleted file mode 100644 index 2620a1713..000000000 --- a/pkgs/sensuplugins-rb/sensu-plugins-entropy-checks/Gemfile.lock +++ /dev/null @@ -1,19 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - json (1.8.6) - mixlib-cli (1.7.0) - sensu-plugin (1.4.7) - json (< 2.0.0) - mixlib-cli (~> 1.5) - sensu-plugins-entropy-checks (1.0.0) - sensu-plugin (~> 1.2) - -PLATFORMS - ruby - -DEPENDENCIES - sensu-plugins-entropy-checks - -BUNDLED WITH - 1.17.2 diff --git a/pkgs/sensuplugins-rb/sensu-plugins-entropy-checks/default.nix b/pkgs/sensuplugins-rb/sensu-plugins-entropy-checks/default.nix deleted file mode 100644 index 8869670ea..000000000 --- a/pkgs/sensuplugins-rb/sensu-plugins-entropy-checks/default.nix +++ /dev/null @@ -1,6 +0,0 @@ -{ bundlerSensuPlugin }: - -bundlerSensuPlugin { - pname = "sensu-plugins-entropy-checks"; - exes = [ "check-entropy.rb" ]; -} diff --git a/pkgs/sensuplugins-rb/sensu-plugins-entropy-checks/gemset.nix b/pkgs/sensuplugins-rb/sensu-plugins-entropy-checks/gemset.nix deleted file mode 100644 index 63c02f5ac..000000000 --- a/pkgs/sensuplugins-rb/sensu-plugins-entropy-checks/gemset.nix +++ /dev/null @@ -1,42 +0,0 @@ -{ - json = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0qmj7fypgb9vag723w1a49qihxrcf5shzars106ynw2zk352gbv5"; - type = "gem"; - }; - version = "1.8.6"; - }; - mixlib-cli = { - source = { - remotes = ["http://rubygems.org"]; - sha256 = "0647msh7kp7lzyf6m72g6snpirvhimjm22qb8xgv9pdhbcrmcccp"; - type = "gem"; - }; - version = "1.7.0"; - }; - sensu-plugin = { - dependencies = ["json" "mixlib-cli"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1x4zka4zia2wk3gp0sr4m4lzsf0m7s4a3gcgs936n2mgzsbcaa86"; - type = "gem"; - }; - version = "1.4.7"; - }; - sensu-plugins-entropy-checks = { - dependencies = ["sensu-plugin"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "17s132bkzidw2lm7jj3qnsvna8p8ria19pbrmdsb8g8xfavf0xj0"; - type = "gem"; - }; - version = "1.0.0"; - }; -} diff --git a/pkgs/sensuplugins-rb/sensu-plugins-http/Gemfile b/pkgs/sensuplugins-rb/sensu-plugins-http/Gemfile deleted file mode 100644 index d41ac925f..000000000 --- a/pkgs/sensuplugins-rb/sensu-plugins-http/Gemfile +++ /dev/null @@ -1,2 +0,0 @@ -source 'https://rubygems.org' -gem 'sensu-plugins-http' diff --git a/pkgs/sensuplugins-rb/sensu-plugins-http/Gemfile.lock b/pkgs/sensuplugins-rb/sensu-plugins-http/Gemfile.lock deleted file mode 100644 index d1e88f07e..000000000 --- a/pkgs/sensuplugins-rb/sensu-plugins-http/Gemfile.lock +++ /dev/null @@ -1,57 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - aws-eventstream (1.1.1) - aws-sdk (2.11.632) - aws-sdk-resources (= 2.11.632) - aws-sdk-core (2.11.632) - aws-sigv4 (~> 1.0) - jmespath (~> 1.0) - aws-sdk-resources (2.11.632) - aws-sdk-core (= 2.11.632) - aws-sigv4 (1.2.3) - aws-eventstream (~> 1, >= 1.0.2) - domain_name (0.5.20190701) - unf (>= 0.0.5, < 1.0.0) - ethon (0.14.0) - ffi (>= 1.15.0) - ffi (1.15.1) - http-accept (1.7.0) - http-cookie (1.0.3) - domain_name (~> 0.5) - jmespath (1.4.0) - json (2.5.1) - mime-types (3.3.1) - mime-types-data (~> 3.2015) - mime-types-data (3.2021.0225) - mixlib-cli (1.7.0) - netrc (0.11.0) - oj (3.11.5) - rest-client (2.1.0) - http-accept (>= 1.7.0, < 2.0) - http-cookie (>= 1.0.2, < 2.0) - mime-types (>= 1.16, < 4.0) - netrc (~> 0.8) - sensu-plugin (4.0.0) - json (< 3.0.0) - mixlib-cli (~> 1.5) - sensu-plugins-http (6.1.0) - aws-sdk (~> 2.3) - oj (~> 3.10) - rest-client (~> 2.1) - sensu-plugin (~> 4.0) - typhoeus (~> 1.3.1) - typhoeus (1.3.1) - ethon (>= 0.9.0) - unf (0.1.4) - unf_ext - unf_ext (0.0.7.7) - -PLATFORMS - ruby - -DEPENDENCIES - sensu-plugins-http - -BUNDLED WITH - 2.1.4 diff --git a/pkgs/sensuplugins-rb/sensu-plugins-http/default.nix b/pkgs/sensuplugins-rb/sensu-plugins-http/default.nix deleted file mode 100644 index 3d6c9a9f4..000000000 --- a/pkgs/sensuplugins-rb/sensu-plugins-http/default.nix +++ /dev/null @@ -1,16 +0,0 @@ -{ bundlerSensuPlugin }: - -bundlerSensuPlugin { - pname = "sensu-plugins-http"; - exes = [ - "check-head-redirect.rb" - "check-http-cors.rb" - "check-http-json.rb" - "check-http.rb" - "check-https-cert.rb" - "check-last-modified.rb" - "metrics-curl.rb" - "metrics-http-json-deep.rb" - "metrics-http-json.rb" - ]; -} diff --git a/pkgs/sensuplugins-rb/sensu-plugins-http/gemset.nix b/pkgs/sensuplugins-rb/sensu-plugins-http/gemset.nix deleted file mode 100644 index 5c80e9e7f..000000000 --- a/pkgs/sensuplugins-rb/sensu-plugins-http/gemset.nix +++ /dev/null @@ -1,241 +0,0 @@ -{ - aws-eventstream = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0jfki5ikfr8ln5cdgv4iv1643kax0bjpp29jh78chzy713274jh3"; - type = "gem"; - }; - version = "1.1.1"; - }; - aws-sdk = { - dependencies = ["aws-sdk-resources"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1cdw62z2ajxc46h3vsj5wvlw7rywx6h1dzfjy4q3lqqhchcs92j0"; - type = "gem"; - }; - version = "2.11.632"; - }; - aws-sdk-core = { - dependencies = ["aws-sigv4" "jmespath"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0fvj8z2l7pl62zz78mq4904cr5w6k3pa7ym8v7nfa66i7gmv582p"; - type = "gem"; - }; - version = "2.11.632"; - }; - aws-sdk-resources = { - dependencies = ["aws-sdk-core"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0vviicpfj3aif3xwglcvxr2zakzp9523b0hrq2m2bbx98kcdrv3l"; - type = "gem"; - }; - version = "2.11.632"; - }; - aws-sigv4 = { - dependencies = ["aws-eventstream"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1d9zhmi3mpfzkkpg7yw7s9r1dwk157kh9875j3c7gh6cy95lmmaw"; - type = "gem"; - }; - version = "1.2.3"; - }; - domain_name = { - dependencies = ["unf"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0lcqjsmixjp52bnlgzh4lg9ppsk52x9hpwdjd53k8jnbah2602h0"; - type = "gem"; - }; - version = "0.5.20190701"; - }; - ethon = { - dependencies = ["ffi"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1bby4hbq96vnzcdbbybcbddin8dxdnj1ns758kcr4akykningqhh"; - type = "gem"; - }; - version = "0.14.0"; - }; - ffi = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "15nn2v70rql15vb0pm9cg0f3xsaslwjkv6xgz0k5jh48idmfw9fi"; - type = "gem"; - }; - version = "1.15.1"; - }; - http-accept = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "09m1facypsdjynfwrcv19xcb1mqg8z6kk31g8r33pfxzh838c9n6"; - type = "gem"; - }; - version = "1.7.0"; - }; - http-cookie = { - dependencies = ["domain_name"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "004cgs4xg5n6byjs7qld0xhsjq3n6ydfh897myr2mibvh6fjc49g"; - type = "gem"; - }; - version = "1.0.3"; - }; - jmespath = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1d4wac0dcd1jf6kc57891glih9w57552zgqswgy74d1xhgnk0ngf"; - type = "gem"; - }; - version = "1.4.0"; - }; - json = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0lrirj0gw420kw71bjjlqkqhqbrplla61gbv1jzgsz6bv90qr3ci"; - type = "gem"; - }; - version = "2.5.1"; - }; - mime-types = { - dependencies = ["mime-types-data"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1zj12l9qk62anvk9bjvandpa6vy4xslil15wl6wlivyf51z773vh"; - type = "gem"; - }; - version = "3.3.1"; - }; - mime-types-data = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1phcq7z0zpipwd7y4fbqmlaqghv07fjjgrx99mwq3z3n0yvy7fmi"; - type = "gem"; - }; - version = "3.2021.0225"; - }; - mixlib-cli = { - source = { - remotes = ["http://rubygems.org"]; - sha256 = "0647msh7kp7lzyf6m72g6snpirvhimjm22qb8xgv9pdhbcrmcccp"; - type = "gem"; - }; - version = "1.7.0"; - }; - netrc = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0gzfmcywp1da8nzfqsql2zqi648mfnx6qwkig3cv36n9m0yy676y"; - type = "gem"; - }; - version = "0.11.0"; - }; - oj = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1cnadm83qwnmbpyild9whb9bgf9r7gs046ydxypclb2l756gcnva"; - type = "gem"; - }; - version = "3.11.5"; - }; - rest-client = { - dependencies = ["http-accept" "http-cookie" "mime-types" "netrc"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1qs74yzl58agzx9dgjhcpgmzfn61fqkk33k1js2y5yhlvc5l19im"; - type = "gem"; - }; - version = "2.1.0"; - }; - sensu-plugin = { - dependencies = ["json" "mixlib-cli"]; - source = { - remotes = ["http://rubygems.org"]; - sha256 = "1hibm8q4dl5bp949h21zjc3d2ss26mg4sl5svy7gl7bz59k9dg06"; - type = "gem"; - }; - version = "4.0.0"; - }; - sensu-plugins-http = { - dependencies = ["aws-sdk" "oj" "rest-client" "sensu-plugin" "typhoeus"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0y7awxs7p0sxg3gvamppzxq180h3xhgpidg9bg6msicma40kmjxh"; - type = "gem"; - }; - version = "6.1.0"; - }; - typhoeus = { - dependencies = ["ethon"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0cni8b1idcp0dk8kybmxydadhfpaj3lbs99w5kjibv8bsmip2zi5"; - type = "gem"; - }; - version = "1.3.1"; - }; - unf = { - dependencies = ["unf_ext"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0bh2cf73i2ffh4fcpdn9ir4mhq8zi50ik0zqa1braahzadx536a9"; - type = "gem"; - }; - version = "0.1.4"; - }; - unf_ext = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0wc47r23h063l8ysws8sy24gzh74mks81cak3lkzlrw4qkqb3sg4"; - type = "gem"; - }; - version = "0.0.7.7"; - }; -} diff --git a/pkgs/sensuplugins-rb/sensu-plugins-kubernetes/0001-Don-t-assume-that-private-keys-are-RSA.patch b/pkgs/sensuplugins-rb/sensu-plugins-kubernetes/0001-Don-t-assume-that-private-keys-are-RSA.patch deleted file mode 100644 index 78397b389..000000000 --- a/pkgs/sensuplugins-rb/sensu-plugins-kubernetes/0001-Don-t-assume-that-private-keys-are-RSA.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 6e468db8be31a2772c46a6f3a1333a7f8d2e7001 Mon Sep 17 00:00:00 2001 -From: Molly Miller -Date: Mon, 12 Jun 2023 17:19:48 +0200 -Subject: [PATCH] Don't assume that private keys are RSA. - ---- - lib/sensu-plugins-kubernetes/client.rb | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/lib/sensu-plugins-kubernetes/client.rb b/lib/sensu-plugins-kubernetes/client.rb -index f4d0844..9eced38 100644 ---- a/lib/sensu-plugins-kubernetes/client.rb -+++ b/lib/sensu-plugins-kubernetes/client.rb -@@ -91,7 +91,7 @@ module Sensu - - if options[:client_key_file] - begin -- ssl_options[:client_key] = OpenSSL::PKey::RSA.new(File.read(options[:client_key_file])) -+ ssl_options[:client_key] = OpenSSL::PKey.read(File.read(options[:client_key_file])) - rescue StandardError => e - raise e, "Unable to read client key: #{e}", e.backtrace - end --- -2.39.2 (Apple Git-143) - diff --git a/pkgs/sensuplugins-rb/sensu-plugins-kubernetes/Gemfile b/pkgs/sensuplugins-rb/sensu-plugins-kubernetes/Gemfile deleted file mode 100644 index fc755b8d4..000000000 --- a/pkgs/sensuplugins-rb/sensu-plugins-kubernetes/Gemfile +++ /dev/null @@ -1,2 +0,0 @@ -source 'https://rubygems.org' -gem 'sensu-plugins-kubernetes' diff --git a/pkgs/sensuplugins-rb/sensu-plugins-kubernetes/Gemfile.lock b/pkgs/sensuplugins-rb/sensu-plugins-kubernetes/Gemfile.lock deleted file mode 100644 index 5a91789b4..000000000 --- a/pkgs/sensuplugins-rb/sensu-plugins-kubernetes/Gemfile.lock +++ /dev/null @@ -1,65 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - activesupport (4.2.11.1) - i18n (~> 0.7) - minitest (~> 5.1) - thread_safe (~> 0.3, >= 0.3.4) - tzinfo (~> 1.1) - addressable (2.7.0) - public_suffix (>= 2.0.2, < 5.0) - concurrent-ruby (1.1.6) - domain_name (0.5.20190701) - unf (>= 0.0.5, < 1.0.0) - http (2.2.2) - addressable (~> 2.3) - http-cookie (~> 1.0) - http-form_data (~> 1.0.1) - http_parser.rb (~> 0.6.0) - http-accept (1.7.0) - http-cookie (1.0.3) - domain_name (~> 0.5) - http-form_data (1.0.3) - http_parser.rb (0.6.0) - i18n (0.9.5) - concurrent-ruby (~> 1.0) - json (2.3.0) - kubeclient (2.5.2) - http (>= 0.98, < 3) - recursive-open-struct (~> 1.0.0) - rest-client - mime-types (3.3.1) - mime-types-data (~> 3.2015) - mime-types-data (3.2019.1009) - minitest (5.14.0) - mixlib-cli (1.7.0) - netrc (0.11.0) - public_suffix (4.0.3) - recursive-open-struct (1.0.5) - rest-client (2.1.0) - http-accept (>= 1.7.0, < 2.0) - http-cookie (>= 1.0.2, < 2.0) - mime-types (>= 1.16, < 4.0) - netrc (~> 0.8) - sensu-plugin (2.7.1) - json (< 3.0.0) - mixlib-cli (~> 1.5) - sensu-plugins-kubernetes (4.0.0) - activesupport (< 5.0.0) - kubeclient (~> 2.3) - sensu-plugin (~> 2.7) - thread_safe (0.3.6) - tzinfo (1.2.6) - thread_safe (~> 0.1) - unf (0.1.4) - unf_ext - unf_ext (0.0.7.6) - -PLATFORMS - ruby - -DEPENDENCIES - sensu-plugins-kubernetes - -BUNDLED WITH - 1.17.3 diff --git a/pkgs/sensuplugins-rb/sensu-plugins-kubernetes/default.nix b/pkgs/sensuplugins-rb/sensu-plugins-kubernetes/default.nix deleted file mode 100644 index a8385bafd..000000000 --- a/pkgs/sensuplugins-rb/sensu-plugins-kubernetes/default.nix +++ /dev/null @@ -1,25 +0,0 @@ -{ bundlerSensuPlugin }: - -bundlerSensuPlugin { - pname = "sensu-plugins-kubernetes"; - exes = [ - "check-kube-nodes-ready.rb" - "check-kube-apiserver-available.rb" - "check-kube-pods-pending.rb" - "check-kube-service-available.rb" - "check-kube-pods-runtime.rb" - "check-kube-pods-running.rb" - "check-kube-pods-restarting.rb" - ]; - - extraGemConfig = { - sensu-plugins-kubernetes = attrs: { - buildInputs = [ ]; - dontBuild = false; - patches = [ - # patch kept here as upstream seems to be inactive. - ./0001-Don-t-assume-that-private-keys-are-RSA.patch - ]; - }; - }; -} diff --git a/pkgs/sensuplugins-rb/sensu-plugins-kubernetes/gemset.nix b/pkgs/sensuplugins-rb/sensu-plugins-kubernetes/gemset.nix deleted file mode 100644 index bc7551083..000000000 --- a/pkgs/sensuplugins-rb/sensu-plugins-kubernetes/gemset.nix +++ /dev/null @@ -1,273 +0,0 @@ -{ - activesupport = { - dependencies = ["i18n" "minitest" "thread_safe" "tzinfo"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1vbq7a805bfvyik2q3kl9s3r418f5qzvysqbz2cwy4hr7m2q4ir6"; - type = "gem"; - }; - version = "4.2.11.1"; - }; - addressable = { - dependencies = ["public_suffix"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1fvchp2rhp2rmigx7qglf69xvjqvzq7x0g49naliw29r2bz656sy"; - type = "gem"; - }; - version = "2.7.0"; - }; - concurrent-ruby = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "094387x4yasb797mv07cs3g6f08y56virc2rjcpb1k79rzaj3nhl"; - type = "gem"; - }; - version = "1.1.6"; - }; - domain_name = { - dependencies = ["unf"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0lcqjsmixjp52bnlgzh4lg9ppsk52x9hpwdjd53k8jnbah2602h0"; - type = "gem"; - }; - version = "0.5.20190701"; - }; - http = { - dependencies = ["addressable" "http-cookie" "http-form_data" "http_parser.rb"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1kcd9qp8vm1rkyp7gfh8j0dbl3zpi97vz2vbhpbcsdsa7l21a59r"; - type = "gem"; - }; - version = "2.2.2"; - }; - http-accept = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "09m1facypsdjynfwrcv19xcb1mqg8z6kk31g8r33pfxzh838c9n6"; - type = "gem"; - }; - version = "1.7.0"; - }; - http-cookie = { - dependencies = ["domain_name"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "004cgs4xg5n6byjs7qld0xhsjq3n6ydfh897myr2mibvh6fjc49g"; - type = "gem"; - }; - version = "1.0.3"; - }; - http-form_data = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0j8dwwbfpf8kc0lcsqcgy29lflszd1x4d7kc0f7227892m7r6y0m"; - type = "gem"; - }; - version = "1.0.3"; - }; - "http_parser.rb" = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "15nidriy0v5yqfjsgsra51wmknxci2n2grliz78sf9pga3n0l7gi"; - type = "gem"; - }; - version = "0.6.0"; - }; - i18n = { - dependencies = ["concurrent-ruby"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "038qvz7kd3cfxk8bvagqhakx68pfbnmghpdkx7573wbf0maqp9a3"; - type = "gem"; - }; - version = "0.9.5"; - }; - json = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0nrmw2r4nfxlfgprfgki3hjifgrcrs3l5zvm3ca3gb4743yr25mn"; - type = "gem"; - }; - version = "2.3.0"; - }; - kubeclient = { - dependencies = ["http" "recursive-open-struct" "rest-client"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1a22jqsby3xgq1bl9pznps7gagcmyqz7w73qh0aqmzxa7pfhjviv"; - type = "gem"; - }; - version = "2.5.2"; - }; - mime-types = { - dependencies = ["mime-types-data"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1zj12l9qk62anvk9bjvandpa6vy4xslil15wl6wlivyf51z773vh"; - type = "gem"; - }; - version = "3.3.1"; - }; - mime-types-data = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "18x61fc36951vw7f74gq8cyybdpxvyg5d0azvqhrs82ddw3v16xh"; - type = "gem"; - }; - version = "3.2019.1009"; - }; - minitest = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0g73x65hmjph8dg1h3rkzfg7ys3ffxm35hj35grw75fixmq53qyz"; - type = "gem"; - }; - version = "5.14.0"; - }; - mixlib-cli = { - source = { - remotes = ["http://rubygems.org"]; - sha256 = "0647msh7kp7lzyf6m72g6snpirvhimjm22qb8xgv9pdhbcrmcccp"; - type = "gem"; - }; - version = "1.7.0"; - }; - netrc = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0gzfmcywp1da8nzfqsql2zqi648mfnx6qwkig3cv36n9m0yy676y"; - type = "gem"; - }; - version = "0.11.0"; - }; - public_suffix = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1c6kq6s13idl2036b5lch8r7390f8w82cal8hcp4ml76fm2vdac7"; - type = "gem"; - }; - version = "4.0.3"; - }; - recursive-open-struct = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0p8x9w9zzv56ka6czdmzl5sbsqjhnb9lkchvw55rf5lp8h0z3r6z"; - type = "gem"; - }; - version = "1.0.5"; - }; - rest-client = { - dependencies = ["http-accept" "http-cookie" "mime-types" "netrc"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1qs74yzl58agzx9dgjhcpgmzfn61fqkk33k1js2y5yhlvc5l19im"; - type = "gem"; - }; - version = "2.1.0"; - }; - sensu-plugin = { - dependencies = ["json" "mixlib-cli"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1jzvbzfjgdgsy48javmgdgl5szhn18imgwjdjc8h98v3nh53p2fw"; - type = "gem"; - }; - version = "2.7.1"; - }; - sensu-plugins-kubernetes = { - dependencies = ["activesupport" "kubeclient" "sensu-plugin"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0w99439p0d320ma8lvlqnmwrgs7czni4r22myka073917zlsa6f7"; - type = "gem"; - }; - version = "4.0.0"; - }; - thread_safe = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0nmhcgq6cgz44srylra07bmaw99f5271l0dpsvl5f75m44l0gmwy"; - type = "gem"; - }; - version = "0.3.6"; - }; - tzinfo = { - dependencies = ["thread_safe"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "04f18jdv6z3zn3va50rqq35nj3izjpb72fnf21ixm7vanq6nc4fp"; - type = "gem"; - }; - version = "1.2.6"; - }; - unf = { - dependencies = ["unf_ext"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0bh2cf73i2ffh4fcpdn9ir4mhq8zi50ik0zqa1braahzadx536a9"; - type = "gem"; - }; - version = "0.1.4"; - }; - unf_ext = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1ll6w64ibh81qwvjx19h8nj7mngxgffg7aigjx11klvf5k2g4nxf"; - type = "gem"; - }; - version = "0.0.7.6"; - }; -} diff --git a/pkgs/sensuplugins-rb/sensu-plugins-logs/Gemfile b/pkgs/sensuplugins-rb/sensu-plugins-logs/Gemfile deleted file mode 100644 index 770827336..000000000 --- a/pkgs/sensuplugins-rb/sensu-plugins-logs/Gemfile +++ /dev/null @@ -1,2 +0,0 @@ -source 'https://rubygems.org' -gem 'sensu-plugins-logs' diff --git a/pkgs/sensuplugins-rb/sensu-plugins-logs/Gemfile.lock b/pkgs/sensuplugins-rb/sensu-plugins-logs/Gemfile.lock deleted file mode 100644 index 239d88029..000000000 --- a/pkgs/sensuplugins-rb/sensu-plugins-logs/Gemfile.lock +++ /dev/null @@ -1,19 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - json (2.5.1) - mixlib-cli (1.7.0) - sensu-plugin (4.0.0) - json (< 3.0.0) - mixlib-cli (~> 1.5) - sensu-plugins-logs (4.1.1) - sensu-plugin (~> 4.0) - -PLATFORMS - ruby - -DEPENDENCIES - sensu-plugins-logs - -BUNDLED WITH - 2.1.4 diff --git a/pkgs/sensuplugins-rb/sensu-plugins-logs/default.nix b/pkgs/sensuplugins-rb/sensu-plugins-logs/default.nix deleted file mode 100644 index 15b97594d..000000000 --- a/pkgs/sensuplugins-rb/sensu-plugins-logs/default.nix +++ /dev/null @@ -1,11 +0,0 @@ -{ bundlerSensuPlugin }: - -bundlerSensuPlugin { - pname = "sensu-plugins-logs"; - exes = [ - "check-journal.rb" - "check-log.rb" - "handler-logevent.rb" - "handler-show-event-config.rb" - ]; -} diff --git a/pkgs/sensuplugins-rb/sensu-plugins-logs/gemset.nix b/pkgs/sensuplugins-rb/sensu-plugins-logs/gemset.nix deleted file mode 100644 index b7f49ac1b..000000000 --- a/pkgs/sensuplugins-rb/sensu-plugins-logs/gemset.nix +++ /dev/null @@ -1,40 +0,0 @@ -{ - json = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0lrirj0gw420kw71bjjlqkqhqbrplla61gbv1jzgsz6bv90qr3ci"; - type = "gem"; - }; - version = "2.5.1"; - }; - mixlib-cli = { - source = { - remotes = ["http://rubygems.org"]; - sha256 = "0647msh7kp7lzyf6m72g6snpirvhimjm22qb8xgv9pdhbcrmcccp"; - type = "gem"; - }; - version = "1.7.0"; - }; - sensu-plugin = { - dependencies = ["json" "mixlib-cli"]; - source = { - remotes = ["http://rubygems.org"]; - sha256 = "1hibm8q4dl5bp949h21zjc3d2ss26mg4sl5svy7gl7bz59k9dg06"; - type = "gem"; - }; - version = "4.0.0"; - }; - sensu-plugins-logs = { - dependencies = ["sensu-plugin"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1a5sci9s7a8hqrlh4d1mi350ilywzclh38dhkmwqwps1dc7hlm0v"; - type = "gem"; - }; - version = "4.1.1"; - }; -} diff --git a/pkgs/sensuplugins-rb/sensu-plugins-memcached/Gemfile b/pkgs/sensuplugins-rb/sensu-plugins-memcached/Gemfile deleted file mode 100644 index 394db7a84..000000000 --- a/pkgs/sensuplugins-rb/sensu-plugins-memcached/Gemfile +++ /dev/null @@ -1,2 +0,0 @@ -source 'https://rubygems.org' -gem 'sensu-plugins-memcached' diff --git a/pkgs/sensuplugins-rb/sensu-plugins-memcached/Gemfile.lock b/pkgs/sensuplugins-rb/sensu-plugins-memcached/Gemfile.lock deleted file mode 100644 index bc8c463cf..000000000 --- a/pkgs/sensuplugins-rb/sensu-plugins-memcached/Gemfile.lock +++ /dev/null @@ -1,21 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - dalli (2.7.10) - json (1.8.6) - mixlib-cli (1.7.0) - sensu-plugin (1.4.7) - json (< 2.0.0) - mixlib-cli (~> 1.5) - sensu-plugins-memcached (0.1.3) - dalli (~> 2.7) - sensu-plugin (~> 1.2) - -PLATFORMS - ruby - -DEPENDENCIES - sensu-plugins-memcached - -BUNDLED WITH - 1.17.2 diff --git a/pkgs/sensuplugins-rb/sensu-plugins-memcached/default.nix b/pkgs/sensuplugins-rb/sensu-plugins-memcached/default.nix deleted file mode 100644 index 4e2f24993..000000000 --- a/pkgs/sensuplugins-rb/sensu-plugins-memcached/default.nix +++ /dev/null @@ -1,6 +0,0 @@ -{ bundlerSensuPlugin }: - -bundlerSensuPlugin { - pname = "sensu-plugins-memcached"; - exes = [ "check-memcached-stats.rb" ]; -} diff --git a/pkgs/sensuplugins-rb/sensu-plugins-memcached/gemset.nix b/pkgs/sensuplugins-rb/sensu-plugins-memcached/gemset.nix deleted file mode 100644 index 3e34340c4..000000000 --- a/pkgs/sensuplugins-rb/sensu-plugins-memcached/gemset.nix +++ /dev/null @@ -1,52 +0,0 @@ -{ - dalli = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0zr66q3ndc0yd17hxll8y0j1j33y4kxw5cgjpvfpdc27wflcxx4i"; - type = "gem"; - }; - version = "2.7.10"; - }; - json = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0qmj7fypgb9vag723w1a49qihxrcf5shzars106ynw2zk352gbv5"; - type = "gem"; - }; - version = "1.8.6"; - }; - mixlib-cli = { - source = { - remotes = ["http://rubygems.org"]; - sha256 = "0647msh7kp7lzyf6m72g6snpirvhimjm22qb8xgv9pdhbcrmcccp"; - type = "gem"; - }; - version = "1.7.0"; - }; - sensu-plugin = { - dependencies = ["json" "mixlib-cli"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1x4zka4zia2wk3gp0sr4m4lzsf0m7s4a3gcgs936n2mgzsbcaa86"; - type = "gem"; - }; - version = "1.4.7"; - }; - sensu-plugins-memcached = { - dependencies = ["dalli" "sensu-plugin"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1wlqlv2gpgapd4lfbyxlk09qw9jypbcg8ankjfds7z1rx6p7cxq5"; - type = "gem"; - }; - version = "0.1.3"; - }; -} diff --git a/pkgs/sensuplugins-rb/sensu-plugins-mysql/Gemfile b/pkgs/sensuplugins-rb/sensu-plugins-mysql/Gemfile deleted file mode 100644 index 0055f1e62..000000000 --- a/pkgs/sensuplugins-rb/sensu-plugins-mysql/Gemfile +++ /dev/null @@ -1,2 +0,0 @@ -source 'https://rubygems.org' -gem 'sensu-plugins-mysql' diff --git a/pkgs/sensuplugins-rb/sensu-plugins-mysql/Gemfile.lock b/pkgs/sensuplugins-rb/sensu-plugins-mysql/Gemfile.lock deleted file mode 100644 index d1b3e310b..000000000 --- a/pkgs/sensuplugins-rb/sensu-plugins-mysql/Gemfile.lock +++ /dev/null @@ -1,23 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - inifile (3.0.0) - json (1.8.6) - mixlib-cli (1.7.0) - ruby-mysql (2.9.14) - sensu-plugin (1.4.7) - json (< 2.0.0) - mixlib-cli (~> 1.5) - sensu-plugins-mysql (3.1.1) - inifile (= 3.0.0) - ruby-mysql (~> 2.9) - sensu-plugin (~> 1.2) - -PLATFORMS - ruby - -DEPENDENCIES - sensu-plugins-mysql - -BUNDLED WITH - 1.17.2 diff --git a/pkgs/sensuplugins-rb/sensu-plugins-mysql/default.nix b/pkgs/sensuplugins-rb/sensu-plugins-mysql/default.nix deleted file mode 100644 index 483a08b43..000000000 --- a/pkgs/sensuplugins-rb/sensu-plugins-mysql/default.nix +++ /dev/null @@ -1,12 +0,0 @@ -{ bundlerSensuPlugin, mysql }: - -bundlerSensuPlugin { - pname = "sensu-plugins-mysql"; - exes = [ "check-mysql-alive.rb" ]; - - extraGemConfig = { - sensu-plugins-mysql = attrs: { - buildInputs = [ mysql ]; - }; - }; -} diff --git a/pkgs/sensuplugins-rb/sensu-plugins-mysql/gemset.nix b/pkgs/sensuplugins-rb/sensu-plugins-mysql/gemset.nix deleted file mode 100644 index 5e13744b6..000000000 --- a/pkgs/sensuplugins-rb/sensu-plugins-mysql/gemset.nix +++ /dev/null @@ -1,60 +0,0 @@ -{ - inifile = { - source = { - remotes = ["http://rubygems.org"]; - sha256 = "1c5zmk7ia63yw5l2k14qhfdydxwi1sah1ppjdiicr4zcalvfn0xi"; - type = "gem"; - }; - version = "3.0.0"; - }; - json = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0qmj7fypgb9vag723w1a49qihxrcf5shzars106ynw2zk352gbv5"; - type = "gem"; - }; - version = "1.8.6"; - }; - mixlib-cli = { - source = { - remotes = ["http://rubygems.org"]; - sha256 = "0647msh7kp7lzyf6m72g6snpirvhimjm22qb8xgv9pdhbcrmcccp"; - type = "gem"; - }; - version = "1.7.0"; - }; - ruby-mysql = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0agxhs8ghmhnwvy6f8pb2wgynrlpjkcy9nqjxx8clw21k436b5nk"; - type = "gem"; - }; - version = "2.9.14"; - }; - sensu-plugin = { - dependencies = ["json" "mixlib-cli"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1x4zka4zia2wk3gp0sr4m4lzsf0m7s4a3gcgs936n2mgzsbcaa86"; - type = "gem"; - }; - version = "1.4.7"; - }; - sensu-plugins-mysql = { - dependencies = ["inifile" "ruby-mysql" "sensu-plugin"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0jxmd99yysb8bwkvy7ll7ih4mk6r8rsmj8lvz6q1alaiyprga9vn"; - type = "gem"; - }; - version = "3.1.1"; - }; -} diff --git a/pkgs/sensuplugins-rb/sensu-plugins-network-checks/Gemfile b/pkgs/sensuplugins-rb/sensu-plugins-network-checks/Gemfile deleted file mode 100644 index de2d542aa..000000000 --- a/pkgs/sensuplugins-rb/sensu-plugins-network-checks/Gemfile +++ /dev/null @@ -1,2 +0,0 @@ -source 'https://rubygems.org' -gem 'sensu-plugins-network-checks' diff --git a/pkgs/sensuplugins-rb/sensu-plugins-network-checks/Gemfile.lock b/pkgs/sensuplugins-rb/sensu-plugins-network-checks/Gemfile.lock deleted file mode 100644 index 02c31ae28..000000000 --- a/pkgs/sensuplugins-rb/sensu-plugins-network-checks/Gemfile.lock +++ /dev/null @@ -1,42 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - activesupport (4.2.11.1) - i18n (~> 0.7) - minitest (~> 5.1) - thread_safe (~> 0.3, >= 0.3.4) - tzinfo (~> 1.1) - concurrent-ruby (1.1.5) - dnsbl-client (1.0.2) - i18n (0.9.5) - concurrent-ruby (~> 1.0) - json (2.2.0) - minitest (5.11.3) - mixlib-cli (1.7.0) - net-ping (1.7.8) - sensu-plugin (4.0.0) - json (< 3.0.0) - mixlib-cli (~> 1.5) - sensu-plugins-network-checks (4.0.0) - activesupport (~> 4.2) - dnsbl-client (= 1.0.2) - net-ping (= 1.7.8) - sensu-plugin (~> 4.0) - whois (>= 4.0) - whois-parser (~> 1.0.0) - thread_safe (0.3.6) - tzinfo (1.2.5) - thread_safe (~> 0.1) - whois (4.1.0) - whois-parser (1.0.1) - activesupport (>= 4) - whois (>= 4.0.0) - -PLATFORMS - ruby - -DEPENDENCIES - sensu-plugins-network-checks - -BUNDLED WITH - 1.17.2 diff --git a/pkgs/sensuplugins-rb/sensu-plugins-network-checks/default.nix b/pkgs/sensuplugins-rb/sensu-plugins-network-checks/default.nix deleted file mode 100644 index 3bf112ec7..000000000 --- a/pkgs/sensuplugins-rb/sensu-plugins-network-checks/default.nix +++ /dev/null @@ -1,9 +0,0 @@ -{ bundlerSensuPlugin }: - -bundlerSensuPlugin { - pname = "sensu-plugins-network-checks"; - exes = [ - "check-netstat-tcp.rb" - "check-ports.rb" - ]; -} diff --git a/pkgs/sensuplugins-rb/sensu-plugins-network-checks/gemset.nix b/pkgs/sensuplugins-rb/sensu-plugins-network-checks/gemset.nix deleted file mode 100644 index ddae78a1e..000000000 --- a/pkgs/sensuplugins-rb/sensu-plugins-network-checks/gemset.nix +++ /dev/null @@ -1,142 +0,0 @@ -{ - activesupport = { - dependencies = ["i18n" "minitest" "thread_safe" "tzinfo"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1vbq7a805bfvyik2q3kl9s3r418f5qzvysqbz2cwy4hr7m2q4ir6"; - type = "gem"; - }; - version = "4.2.11.1"; - }; - concurrent-ruby = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1x07r23s7836cpp5z9yrlbpljcxpax14yw4fy4bnp6crhr6x24an"; - type = "gem"; - }; - version = "1.1.5"; - }; - dnsbl-client = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1357r0y8xfnay05l9h26rrcqrjlnz0hy421g18pfrwm1psf3pp04"; - type = "gem"; - }; - version = "1.0.2"; - }; - i18n = { - dependencies = ["concurrent-ruby"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "038qvz7kd3cfxk8bvagqhakx68pfbnmghpdkx7573wbf0maqp9a3"; - type = "gem"; - }; - version = "0.9.5"; - }; - json = { - source = { - remotes = ["http://rubygems.org"]; - sha256 = "0sx97bm9by389rbzv8r1f43h06xcz8vwi3h5jv074gvparql7lcx"; - type = "gem"; - }; - version = "2.2.0"; - }; - minitest = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0icglrhghgwdlnzzp4jf76b0mbc71s80njn5afyfjn4wqji8mqbq"; - type = "gem"; - }; - version = "5.11.3"; - }; - mixlib-cli = { - source = { - remotes = ["http://rubygems.org"]; - sha256 = "0647msh7kp7lzyf6m72g6snpirvhimjm22qb8xgv9pdhbcrmcccp"; - type = "gem"; - }; - version = "1.7.0"; - }; - net-ping = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "19p3d39109xvbr4dcjs3g3zliazhc1k3iiw69mgb1w204hc7wkih"; - type = "gem"; - }; - version = "1.7.8"; - }; - sensu-plugin = { - dependencies = ["json" "mixlib-cli"]; - source = { - remotes = ["http://rubygems.org"]; - sha256 = "1hibm8q4dl5bp949h21zjc3d2ss26mg4sl5svy7gl7bz59k9dg06"; - type = "gem"; - }; - version = "4.0.0"; - }; - sensu-plugins-network-checks = { - dependencies = ["activesupport" "dnsbl-client" "net-ping" "sensu-plugin" "whois" "whois-parser"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "02na5ghrgimgdgh2ad77s6jj0kzgjjlszs5qgak2kfdpp9r9rxnm"; - type = "gem"; - }; - version = "4.0.0"; - }; - thread_safe = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0nmhcgq6cgz44srylra07bmaw99f5271l0dpsvl5f75m44l0gmwy"; - type = "gem"; - }; - version = "0.3.6"; - }; - tzinfo = { - dependencies = ["thread_safe"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1fjx9j327xpkkdlxwmkl3a8wqj7i4l4jwlrv3z13mg95z9wl253z"; - type = "gem"; - }; - version = "1.2.5"; - }; - whois = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "12dlqsynscin7f0wrhkya505s22i92w9n8padjvjbhylrnja7rwx"; - type = "gem"; - }; - version = "4.1.0"; - }; - whois-parser = { - dependencies = ["activesupport" "whois"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "076b23j506qvy5vk60a0sy7krl12crfzjymffwc0b54wqc63i7fq"; - type = "gem"; - }; - version = "1.0.1"; - }; -} diff --git a/pkgs/sensuplugins-rb/sensu-plugins-postfix/Gemfile b/pkgs/sensuplugins-rb/sensu-plugins-postfix/Gemfile deleted file mode 100644 index 01ee62ad2..000000000 --- a/pkgs/sensuplugins-rb/sensu-plugins-postfix/Gemfile +++ /dev/null @@ -1,2 +0,0 @@ -source 'https://rubygems.org' -gem 'sensu-plugins-postfix' diff --git a/pkgs/sensuplugins-rb/sensu-plugins-postfix/Gemfile.lock b/pkgs/sensuplugins-rb/sensu-plugins-postfix/Gemfile.lock deleted file mode 100644 index 3dae5af25..000000000 --- a/pkgs/sensuplugins-rb/sensu-plugins-postfix/Gemfile.lock +++ /dev/null @@ -1,19 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - json (1.8.6) - mixlib-cli (1.7.0) - sensu-plugin (1.4.7) - json (< 2.0.0) - mixlib-cli (~> 1.5) - sensu-plugins-postfix (1.0.0) - sensu-plugin (~> 1.2) - -PLATFORMS - ruby - -DEPENDENCIES - sensu-plugins-postfix - -BUNDLED WITH - 1.16.3 diff --git a/pkgs/sensuplugins-rb/sensu-plugins-postfix/default.nix b/pkgs/sensuplugins-rb/sensu-plugins-postfix/default.nix deleted file mode 100644 index 80c28a0ee..000000000 --- a/pkgs/sensuplugins-rb/sensu-plugins-postfix/default.nix +++ /dev/null @@ -1,18 +0,0 @@ -{ lib, bundlerSensuPlugin, gnugrep, postfix }: - -bundlerSensuPlugin rec { - pname = "sensu-plugins-postfix"; - exes = [ "check-mailq.rb" ]; - - extraGemConfig = { - sensu-plugins-postfix = attrs: { - buildInputs = [ gnugrep postfix ]; - dontBuild = false; - postPatch = '' - substituteInPlace bin/check-mailq.rb \ - --replace /bin/egrep ${gnugrep}/bin/egrep \ - --replace /usr/bin/mailq ${postfix}/bin/mailq - ''; - }; - }; -} diff --git a/pkgs/sensuplugins-rb/sensu-plugins-postfix/gemset.nix b/pkgs/sensuplugins-rb/sensu-plugins-postfix/gemset.nix deleted file mode 100644 index ae86a25f9..000000000 --- a/pkgs/sensuplugins-rb/sensu-plugins-postfix/gemset.nix +++ /dev/null @@ -1,36 +0,0 @@ -{ - json = { - source = { - remotes = ["http://rubygems.org"]; - sha256 = "0qmj7fypgb9vag723w1a49qihxrcf5shzars106ynw2zk352gbv5"; - type = "gem"; - }; - version = "1.8.6"; - }; - mixlib-cli = { - source = { - remotes = ["http://rubygems.org"]; - sha256 = "0647msh7kp7lzyf6m72g6snpirvhimjm22qb8xgv9pdhbcrmcccp"; - type = "gem"; - }; - version = "1.7.0"; - }; - sensu-plugin = { - dependencies = ["json" "mixlib-cli"]; - source = { - remotes = ["http://rubygems.org"]; - sha256 = "1x4zka4zia2wk3gp0sr4m4lzsf0m7s4a3gcgs936n2mgzsbcaa86"; - type = "gem"; - }; - version = "1.4.7"; - }; - sensu-plugins-postfix = { - dependencies = ["sensu-plugin"]; - source = { - remotes = ["http://rubygems.org"]; - sha256 = "1fsbw0aq5ilhrjnj7jr4r3id5aja6nimvdshxrwg2bnpsqsczaqq"; - type = "gem"; - }; - version = "1.0.0"; - }; -} diff --git a/pkgs/sensuplugins-rb/sensu-plugins-postgres/Gemfile b/pkgs/sensuplugins-rb/sensu-plugins-postgres/Gemfile deleted file mode 100644 index 5adc52073..000000000 --- a/pkgs/sensuplugins-rb/sensu-plugins-postgres/Gemfile +++ /dev/null @@ -1,2 +0,0 @@ -source 'https://rubygems.org' -gem 'sensu-plugins-postgres' diff --git a/pkgs/sensuplugins-rb/sensu-plugins-postgres/Gemfile.lock b/pkgs/sensuplugins-rb/sensu-plugins-postgres/Gemfile.lock deleted file mode 100644 index c81d107d3..000000000 --- a/pkgs/sensuplugins-rb/sensu-plugins-postgres/Gemfile.lock +++ /dev/null @@ -1,23 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - dentaku (3.3.4) - json (2.6.3) - mixlib-cli (1.7.0) - pg (1.2.3) - sensu-plugin (4.0.0) - json (< 3.0.0) - mixlib-cli (~> 1.5) - sensu-plugins-postgres (4.2.0) - dentaku (= 3.3.4) - pg (= 1.2.3) - sensu-plugin (~> 4.0) - -PLATFORMS - x86_64-linux - -DEPENDENCIES - sensu-plugins-postgres - -BUNDLED WITH - 2.4.12 diff --git a/pkgs/sensuplugins-rb/sensu-plugins-postgres/default.nix b/pkgs/sensuplugins-rb/sensu-plugins-postgres/default.nix deleted file mode 100644 index ae66f47d6..000000000 --- a/pkgs/sensuplugins-rb/sensu-plugins-postgres/default.nix +++ /dev/null @@ -1,12 +0,0 @@ -{ bundlerSensuPlugin, postgresql }: - -bundlerSensuPlugin { - pname = "sensu-plugins-postgres"; - exes = [ "check-postgres-alive.rb" ]; - - extraGemConfig = { - sensu-plugins-postgres = attrs: { - buildInputs = [ postgresql ]; - }; - }; -} diff --git a/pkgs/sensuplugins-rb/sensu-plugins-postgres/gemset.nix b/pkgs/sensuplugins-rb/sensu-plugins-postgres/gemset.nix deleted file mode 100644 index 2e3b4bc8d..000000000 --- a/pkgs/sensuplugins-rb/sensu-plugins-postgres/gemset.nix +++ /dev/null @@ -1,62 +0,0 @@ -{ - dentaku = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1976bjf4ag2wx6bv8r56zzd4bnkimy2a5c2iya9x39sk58v17d10"; - type = "gem"; - }; - version = "3.3.4"; - }; - json = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0nalhin1gda4v8ybk6lq8f407cgfrj6qzn234yra4ipkmlbfmal6"; - type = "gem"; - }; - version = "2.6.3"; - }; - mixlib-cli = { - source = { - remotes = ["http://rubygems.org"]; - sha256 = "0647msh7kp7lzyf6m72g6snpirvhimjm22qb8xgv9pdhbcrmcccp"; - type = "gem"; - }; - version = "1.7.0"; - }; - pg = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "13mfrysrdrh8cka1d96zm0lnfs59i5x2g6ps49r2kz5p3q81xrzj"; - type = "gem"; - }; - version = "1.2.3"; - }; - sensu-plugin = { - dependencies = ["json" "mixlib-cli"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1hibm8q4dl5bp949h21zjc3d2ss26mg4sl5svy7gl7bz59k9dg06"; - type = "gem"; - }; - version = "4.0.0"; - }; - sensu-plugins-postgres = { - dependencies = ["dentaku" "pg" "sensu-plugin"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0b9jac86fj56qbi0y0r3a8wfpkskalzijbfpndj3w4r4ds9gxjpf"; - type = "gem"; - }; - version = "4.2.0"; - }; -} diff --git a/pkgs/sensuplugins-rb/sensu-plugins-rabbitmq/Gemfile b/pkgs/sensuplugins-rb/sensu-plugins-rabbitmq/Gemfile deleted file mode 100644 index 523b13bd3..000000000 --- a/pkgs/sensuplugins-rb/sensu-plugins-rabbitmq/Gemfile +++ /dev/null @@ -1,2 +0,0 @@ -source 'https://rubygems.org' -gem 'sensu-plugins-rabbitmq' diff --git a/pkgs/sensuplugins-rb/sensu-plugins-rabbitmq/Gemfile.lock b/pkgs/sensuplugins-rb/sensu-plugins-rabbitmq/Gemfile.lock deleted file mode 100644 index 5947479d5..000000000 --- a/pkgs/sensuplugins-rb/sensu-plugins-rabbitmq/Gemfile.lock +++ /dev/null @@ -1,49 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - amq-protocol (2.0.1) - bunny (2.6.4) - amq-protocol (>= 2.0.1) - carrot-top (0.0.7) - json - domain_name (0.5.20190701) - unf (>= 0.0.5, < 1.0.0) - http-cookie (1.0.5) - domain_name (~> 0.5) - inifile (3.0.0) - json (2.6.3) - mime-types (3.4.1) - mime-types-data (~> 3.2015) - mime-types-data (3.2023.0218.1) - mixlib-cli (1.7.0) - netrc (0.11.0) - rest-client (2.0.2) - http-cookie (>= 1.0.2, < 2.0) - mime-types (>= 1.16, < 4.0) - netrc (~> 0.8) - ruby_dig (0.0.2) - sensu-plugin (4.0.0) - json (< 3.0.0) - mixlib-cli (~> 1.5) - sensu-plugins-rabbitmq (8.1.0) - amq-protocol (= 2.0.1) - bunny (= 2.6.4) - carrot-top (= 0.0.7) - inifile (= 3.0.0) - rest-client (= 2.0.2) - ruby_dig (= 0.0.2) - sensu-plugin (~> 4.0) - stomp (= 1.4.7) - stomp (1.4.7) - unf (0.1.4) - unf_ext - unf_ext (0.0.8.2) - -PLATFORMS - x86_64-linux - -DEPENDENCIES - sensu-plugins-rabbitmq - -BUNDLED WITH - 2.4.12 diff --git a/pkgs/sensuplugins-rb/sensu-plugins-rabbitmq/default.nix b/pkgs/sensuplugins-rb/sensu-plugins-rabbitmq/default.nix deleted file mode 100644 index 8d6ae1eec..000000000 --- a/pkgs/sensuplugins-rb/sensu-plugins-rabbitmq/default.nix +++ /dev/null @@ -1,11 +0,0 @@ -{ bundlerSensuPlugin }: - -bundlerSensuPlugin { - pname = "sensu-plugins-rabbitmq"; - exes = [ - "check-rabbitmq-alive.rb" - "check-rabbitmq-amqp-alive.rb" - "check-rabbitmq-node-health.rb" - "check-rabbitmq-messages.rb" - ]; -} diff --git a/pkgs/sensuplugins-rb/sensu-plugins-rabbitmq/gemset.nix b/pkgs/sensuplugins-rb/sensu-plugins-rabbitmq/gemset.nix deleted file mode 100644 index 86ea20258..000000000 --- a/pkgs/sensuplugins-rb/sensu-plugins-rabbitmq/gemset.nix +++ /dev/null @@ -1,169 +0,0 @@ -{ - amq-protocol = { - source = { - remotes = ["http://rubygems.org"]; - sha256 = "1rpn9vgh7y037aqhhp04smihzr73vp5i5g6xlqlha10wy3q0wp7x"; - type = "gem"; - }; - version = "2.0.1"; - }; - bunny = { - dependencies = ["amq-protocol"]; - source = { - remotes = ["http://rubygems.org"]; - sha256 = "01036bz08dw6l9d3cpd1zp8h4x13lb7rih3n2flcvy0ak2laz7vr"; - type = "gem"; - }; - version = "2.6.4"; - }; - carrot-top = { - dependencies = ["json"]; - source = { - remotes = ["http://rubygems.org"]; - sha256 = "0bj8290f3h671qf7sdc2vga0iis86mvcsvamdi9nynmh9gmfis5w"; - type = "gem"; - }; - version = "0.0.7"; - }; - domain_name = { - dependencies = ["unf"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0lcqjsmixjp52bnlgzh4lg9ppsk52x9hpwdjd53k8jnbah2602h0"; - type = "gem"; - }; - version = "0.5.20190701"; - }; - http-cookie = { - dependencies = ["domain_name"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "13rilvlv8kwbzqfb644qp6hrbsj82cbqmnzcvqip1p6vqx36sxbk"; - type = "gem"; - }; - version = "1.0.5"; - }; - inifile = { - source = { - remotes = ["http://rubygems.org"]; - sha256 = "1c5zmk7ia63yw5l2k14qhfdydxwi1sah1ppjdiicr4zcalvfn0xi"; - type = "gem"; - }; - version = "3.0.0"; - }; - json = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0nalhin1gda4v8ybk6lq8f407cgfrj6qzn234yra4ipkmlbfmal6"; - type = "gem"; - }; - version = "2.6.3"; - }; - mime-types = { - dependencies = ["mime-types-data"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0ipw892jbksbxxcrlx9g5ljq60qx47pm24ywgfbyjskbcl78pkvb"; - type = "gem"; - }; - version = "3.4.1"; - }; - mime-types-data = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1pky3vzaxlgm9gw5wlqwwi7wsw3jrglrfflrppvvnsrlaiz043z9"; - type = "gem"; - }; - version = "3.2023.0218.1"; - }; - mixlib-cli = { - source = { - remotes = ["http://rubygems.org"]; - sha256 = "0647msh7kp7lzyf6m72g6snpirvhimjm22qb8xgv9pdhbcrmcccp"; - type = "gem"; - }; - version = "1.7.0"; - }; - netrc = { - source = { - remotes = ["http://rubygems.org"]; - sha256 = "0gzfmcywp1da8nzfqsql2zqi648mfnx6qwkig3cv36n9m0yy676y"; - type = "gem"; - }; - version = "0.11.0"; - }; - rest-client = { - dependencies = ["http-cookie" "mime-types" "netrc"]; - source = { - remotes = ["http://rubygems.org"]; - sha256 = "1hzcs2r7b5bjkf2x2z3n8z6082maz0j8vqjiciwgg3hzb63f958j"; - type = "gem"; - }; - version = "2.0.2"; - }; - ruby_dig = { - source = { - remotes = ["http://rubygems.org"]; - sha256 = "1qcpmf5dsmzxda21wi4hv7rcjjq4x1vsmjj20zpbj5qg2k26hmp9"; - type = "gem"; - }; - version = "0.0.2"; - }; - sensu-plugin = { - dependencies = ["json" "mixlib-cli"]; - source = { - remotes = ["http://rubygems.org"]; - sha256 = "1hibm8q4dl5bp949h21zjc3d2ss26mg4sl5svy7gl7bz59k9dg06"; - type = "gem"; - }; - version = "4.0.0"; - }; - sensu-plugins-rabbitmq = { - dependencies = ["amq-protocol" "bunny" "carrot-top" "inifile" "rest-client" "ruby_dig" "sensu-plugin" "stomp"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1fnvfp2pp72igs3cr1na4qwwv1isisriyiphwwwj5nzmjkp03437"; - type = "gem"; - }; - version = "8.1.0"; - }; - stomp = { - source = { - remotes = ["http://rubygems.org"]; - sha256 = "1ffkaq7dyh18msvv3x89vdbkn7cjfjc3i1y6qyj393dyp78n7pwd"; - type = "gem"; - }; - version = "1.4.7"; - }; - unf = { - dependencies = ["unf_ext"]; - source = { - remotes = ["http://rubygems.org"]; - sha256 = "0bh2cf73i2ffh4fcpdn9ir4mhq8zi50ik0zqa1braahzadx536a9"; - type = "gem"; - }; - version = "0.1.4"; - }; - unf_ext = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1yj2nz2l101vr1x9w2k83a0fag1xgnmjwp8w8rw4ik2rwcz65fch"; - type = "gem"; - }; - version = "0.0.8.2"; - }; -} diff --git a/pkgs/sensuplugins-rb/sensu-plugins-redis/Gemfile b/pkgs/sensuplugins-rb/sensu-plugins-redis/Gemfile deleted file mode 100644 index 2972d20bf..000000000 --- a/pkgs/sensuplugins-rb/sensu-plugins-redis/Gemfile +++ /dev/null @@ -1,2 +0,0 @@ -source 'https://rubygems.org' -gem 'sensu-plugins-redis' diff --git a/pkgs/sensuplugins-rb/sensu-plugins-redis/Gemfile.lock b/pkgs/sensuplugins-rb/sensu-plugins-redis/Gemfile.lock deleted file mode 100644 index 1d2b14b48..000000000 --- a/pkgs/sensuplugins-rb/sensu-plugins-redis/Gemfile.lock +++ /dev/null @@ -1,21 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - json (2.2.0) - mixlib-cli (1.7.0) - redis (3.3.5) - sensu-plugin (4.0.0) - json (< 3.0.0) - mixlib-cli (~> 1.5) - sensu-plugins-redis (4.1.0) - redis (~> 3.3) - sensu-plugin (~> 4.0) - -PLATFORMS - ruby - -DEPENDENCIES - sensu-plugins-redis - -BUNDLED WITH - 1.17.2 diff --git a/pkgs/sensuplugins-rb/sensu-plugins-redis/default.nix b/pkgs/sensuplugins-rb/sensu-plugins-redis/default.nix deleted file mode 100644 index 3ad579e03..000000000 --- a/pkgs/sensuplugins-rb/sensu-plugins-redis/default.nix +++ /dev/null @@ -1,12 +0,0 @@ -{ bundlerSensuPlugin, redis }: - -bundlerSensuPlugin { - pname = "sensu-plugins-redis"; - exes = [ "check-redis-ping.rb" ]; - - extraGemConfig = { - sensu-plugins-redis = attrs: { - buildInputs = [ redis ]; - }; - }; -} diff --git a/pkgs/sensuplugins-rb/sensu-plugins-redis/gemset.nix b/pkgs/sensuplugins-rb/sensu-plugins-redis/gemset.nix deleted file mode 100644 index 3572122f1..000000000 --- a/pkgs/sensuplugins-rb/sensu-plugins-redis/gemset.nix +++ /dev/null @@ -1,48 +0,0 @@ -{ - json = { - source = { - remotes = ["http://rubygems.org"]; - sha256 = "0sx97bm9by389rbzv8r1f43h06xcz8vwi3h5jv074gvparql7lcx"; - type = "gem"; - }; - version = "2.2.0"; - }; - mixlib-cli = { - source = { - remotes = ["http://rubygems.org"]; - sha256 = "0647msh7kp7lzyf6m72g6snpirvhimjm22qb8xgv9pdhbcrmcccp"; - type = "gem"; - }; - version = "1.7.0"; - }; - redis = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0i415x8gi0c5vsiy6ikvx5js6fhc4x80a5lqv8iidy2iymd20irv"; - type = "gem"; - }; - version = "3.3.5"; - }; - sensu-plugin = { - dependencies = ["json" "mixlib-cli"]; - source = { - remotes = ["http://rubygems.org"]; - sha256 = "1hibm8q4dl5bp949h21zjc3d2ss26mg4sl5svy7gl7bz59k9dg06"; - type = "gem"; - }; - version = "4.0.0"; - }; - sensu-plugins-redis = { - dependencies = ["redis" "sensu-plugin"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1qb7jmwvmpnd9la1hsry9r6s0fwi74j4p21rf6jh05a2sgp5mv6k"; - type = "gem"; - }; - version = "4.1.0"; - }; -} diff --git a/pkgs/sensuplugins-rb/update.sh b/pkgs/sensuplugins-rb/update.sh deleted file mode 100755 index 83c851d2a..000000000 --- a/pkgs/sensuplugins-rb/update.sh +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/sh -# Run this from a directory with a Gemfile to generate files needed by bundix there. -# -# Runs bundler (creates Gemfile.lock) and bundix (creates gemset.nix) -# Works for initial creation and later updates. -# -# Example: -# cd sensu-plugins-postgres -# ../update.sh - -set -x -set -e -rm -f Gemfile.lock -rm -rf /tmp/bundix -nix-shell --pure -p git cacert bundler openssl.dev \ - --command "bundler package --no-install --path /tmp/bundix/bundle" -nix-shell --pure -p bundix cacert openssl.dev nix-prefetch-scripts --command bundix -rm -rf .bundle diff --git a/pkgs/tideways/daemon-build.sh b/pkgs/tideways/daemon-build.sh deleted file mode 100644 index 50f6bac96..000000000 --- a/pkgs/tideways/daemon-build.sh +++ /dev/null @@ -1,12 +0,0 @@ -source $stdenv/setup - -echo "unpacking $src..." -tar xvfa $src -mkdir -p $out - -# see https://github.com/NixOS/patchelf/issues/66 -cp tideways-daemon*/tideways-daemon $out/tideways-daemon.wrapped - -echo "#!/bin/sh" > $out/tideways-daemon -echo $(< $NIX_CC/nix-support/dynamic-linker) $out/tideways-daemon.wrapped \"\$@\" >> $out/tideways-daemon - chmod +x $out/tideways-daemon diff --git a/pkgs/tideways/daemon.nix b/pkgs/tideways/daemon.nix deleted file mode 100644 index 29aa527c3..000000000 --- a/pkgs/tideways/daemon.nix +++ /dev/null @@ -1,22 +0,0 @@ -{ stdenv, fetchurl }: - -assert stdenv.hostPlatform.system == "x86_64-linux"; - -let version = "1.7.28"; in - -stdenv.mkDerivation { - name = "tideways-daemon-${version}"; - - builder = ./daemon-build.sh; - - src = fetchurl { - url = "https://s3-eu-west-1.amazonaws.com/tideways/daemon/${version}/tideways-daemon_linux_amd64-${version}.tar.gz"; - sha256 = "sha256-9FezE7/yYiZmYC3PjPNMR6Lt0sqa5PMB2q3GK0H+1bY"; - }; - - meta = { - description = "The daemon for the Tideways profiling/debugging service."; - homepage = "http://tideways.com"; - # license = lib.licenses.unfree; - }; -} diff --git a/pkgs/tideways/module-build.sh b/pkgs/tideways/module-build.sh deleted file mode 100644 index 3993087f3..000000000 --- a/pkgs/tideways/module-build.sh +++ /dev/null @@ -1,8 +0,0 @@ -source $stdenv/setup - -echo "unpacking $src..." -tar xvfa $src -p=$out/lib/php/extensions/ -mkdir -p $p - -cp tideways-*/*.so $p diff --git a/pkgs/tideways/module.nix b/pkgs/tideways/module.nix deleted file mode 100644 index 6dc71de11..000000000 --- a/pkgs/tideways/module.nix +++ /dev/null @@ -1,22 +0,0 @@ -{ stdenv, fetchurl }: - -assert stdenv.hostPlatform.system == "x86_64-linux"; - -let version = "5.7.4"; in - -stdenv.mkDerivation { - name = "tideways-php-module-${version}"; - - builder = ./module-build.sh; - - src = fetchurl { - url = "https://s3-eu-west-1.amazonaws.com/tideways/extension/${version}/tideways-php-${version}-x86_64.tar.gz"; - hash = "sha256-44NAfOFNhjzT6CUYKLAVVmx1PKG3EZI4w6tcwvCMirI="; - }; - - meta = { - description = "The PHP extension module for the Tideways profiling/debugging service."; - homepage = "http://tideways.com"; - # license = lib.licenses.unfree; - }; -} diff --git a/release/default.nix b/release/default.nix index 587e6b236..3029cc5b4 100644 --- a/release/default.nix +++ b/release/default.nix @@ -2,7 +2,7 @@ { system ? builtins.currentSystem , bootstrap ? , nixpkgs_ ? (import ../versions.nix { pkgs = import bootstrap {}; }).nixpkgs -, branch ? null # e.g. "fc-23.11-dev" +, branch ? null # e.g. "fc-24.05-dev" , stableBranch ? false , supportedSystems ? [ "x86_64-linux" ] , fc ? { @@ -77,7 +77,7 @@ let initialEnv = if stableBranch then branch - else "fc-23.11-dev"; + else "fc-24.05-dev"; initialNixChannels = pkgs.writeText "nix-channels" '' https://hydra.flyingcircus.io/channel/custom/flyingcircus/${initialEnv}/release nixos @@ -127,6 +127,8 @@ let # The exclusion list is applied to overlay packages and important packages. # Supports excluding packages from nested sets using "dotted names" like "fc.blockdev". excludedPkgNames = [ + "discourse" + "mc" ]; overlay = import ../pkgs/overlay.nix pkgs pkgs; diff --git a/release/important_packages.json b/release/important_packages.json index 8cf4e55ad..342e3b4ec 100644 --- a/release/important_packages.json +++ b/release/important_packages.json @@ -74,6 +74,8 @@ "jq", "jre", "k3s", + "k3s_1_27", + "k3s_1_30", "keycloak", "kubernetes-helm", "libffi", @@ -130,9 +132,14 @@ "percona", "percona-server", "percona-xtrabackup_8_0", + "percona-xtrabackup_8_3", + "percona-xtrabackup_lts", + "percona-xtrabackup_innovation", "percona57", "percona80", - "percona81", + "percona83", + "percona-server_lts", + "percona-server_innovation", "php72", "php73", "php74", diff --git a/release/make-disk-image.nix b/release/make-disk-image.nix index 922642a16..ff2c8f6bf 100644 --- a/release/make-disk-image.nix +++ b/release/make-disk-image.nix @@ -113,12 +113,13 @@ let format' = format; in let # mkfs.xfs does not support --offset, so we must place a separately # generated XFS image into the main disk image. truncate -s ''${sizeMB}M rootfs.img - mkfs.xfs -L ${rootLabel} rootfs.img + # TODO: nrext64 can be enabled again once we are at kernel >= 6.5 in the VMs + mkfs.xfs -i nrext64=0 -L ${rootLabel} rootfs.img dd if=rootfs.img of=$diskImage bs=1M seek=$startMB count=$sizeMB \ conv=sparse,notrunc iflag=direct rm rootfs.img '' else '' - mkfs.xfs -L ${rootLabel} $diskImage + mkfs.xfs -i nrext64=0 -L ${rootLabel} $diskImage ''} root="$PWD/root" diff --git a/release/nixos-version b/release/nixos-version index 38549cd85..031290900 100644 --- a/release/nixos-version +++ b/release/nixos-version @@ -1 +1 @@ -23.11 +24.05 diff --git a/release/package-versions.json b/release/package-versions.json index 8966ca3dd..43e63bdfe 100644 --- a/release/package-versions.json +++ b/release/package-versions.json @@ -10,9 +10,9 @@ "version": "2.4.59" }, "asterisk": { - "name": "asterisk-20.5.2", + "name": "asterisk-20.8.1", "pname": "asterisk", - "version": "20.5.2" + "version": "20.8.1" }, "auditbeat7-oss": { "name": "auditbeat-oss-7.17.16", @@ -25,59 +25,59 @@ "version": "1.16.5" }, "awscli": { - "name": "awscli-1.30.2", + "name": "awscli-1.32.87", "pname": "awscli", - "version": "1.30.2" + "version": "1.32.87" }, "awscli2": { - "name": "awscli2-2.13.33", + "name": "awscli2-2.15.43", "pname": "awscli2", - "version": "2.13.33" + "version": "2.15.43" }, "bash": { - "name": "bash-5.2-p15", + "name": "bash-5.2p26", "pname": "bash", - "version": "5.2" + "version": "5.2p26" }, "bind": { - "name": "bind-9.18.24", + "name": "bind-9.18.27", "pname": "bind", - "version": "9.18.24" + "version": "9.18.27" }, "binutils": { - "name": "binutils-wrapper-2.40", + "name": "binutils-wrapper-2.41", "pname": "binutils-wrapper", - "version": "2.40" + "version": "2.41" }, "bundler": { - "name": "bundler-2.4.22", + "name": "bundler-2.5.9", "pname": "bundler", - "version": "2.4.22" + "version": "2.5.9" }, "cacert": { - "name": "nss-cacert-3.98", + "name": "nss-cacert-3.101", "pname": "nss-cacert", - "version": "3.98" + "version": "3.101" }, "calibre": { - "name": "calibre-7.0.0", + "name": "calibre-7.10.0", "pname": "calibre", - "version": "7.0.0" + "version": "7.10.0" }, "ceph": { - "name": "ceph-18.2.0", + "name": "ceph-18.2.1", "pname": "ceph", - "version": "18.2.0" + "version": "18.2.1" }, "chromedriver": { - "name": "chromedriver-125.0.6422.78", + "name": "chromedriver-126.0.6478.61", "pname": "chromedriver", - "version": "125.0.6422.78" + "version": "126.0.6478.61" }, "chromium": { - "name": "chromium-125.0.6422.112", + "name": "chromium-126.0.6478.61", "pname": "chromium", - "version": "125.0.6422.112" + "version": "126.0.6478.61" }, "cifs-utils": { "name": "cifs-utils-7.0", @@ -85,29 +85,29 @@ "version": "7.0" }, "clamav": { - "name": "clamav-1.2.3", + "name": "clamav-1.3.1", "pname": "clamav", - "version": "1.2.3" + "version": "1.3.1" }, "cmake": { - "name": "cmake-3.27.7", + "name": "cmake-3.29.2", "pname": "cmake", - "version": "3.27.7" + "version": "3.29.2" }, "consul": { - "name": "consul-1.16.4", + "name": "consul-1.18.2", "pname": "consul", - "version": "1.16.4" + "version": "1.18.2" }, "containerd": { - "name": "containerd-1.7.13", + "name": "containerd-1.7.16", "pname": "containerd", - "version": "1.7.13" + "version": "1.7.16" }, "coreutils": { - "name": "coreutils-9.3", + "name": "coreutils-9.5", "pname": "coreutils", - "version": "9.3" + "version": "9.5" }, "coturn": { "name": "coturn-4.6.2", @@ -115,9 +115,9 @@ "version": "4.6.2" }, "curl": { - "name": "curl-8.4.0", + "name": "curl-8.7.1", "pname": "curl", - "version": "8.4.0" + "version": "8.7.1" }, "cyrus_sasl": { "name": "cyrus-sasl-2.1.28", @@ -130,9 +130,9 @@ "version": "5.3.28" }, "discourse": { - "name": "discourse-3.2.0.beta1", + "name": "discourse-3.2.2", "pname": "discourse", - "version": "3.2.0.beta1" + "version": "3.2.2" }, "dnsmasq": { "name": "dnsmasq-2.90", @@ -145,9 +145,9 @@ "version": "24.0.9" }, "docker-compose": { - "name": "docker-compose-2.23.1", + "name": "docker-compose-2.27.0", "pname": "docker-compose", - "version": "2.23.1" + "version": "2.27.0" }, "dovecot": { "name": "dovecot-2.3.21", @@ -155,14 +155,14 @@ "version": "2.3.21" }, "element-web": { - "name": "element-web-1.11.66", + "name": "element-web-1.11.69", "pname": "element-web", - "version": "1.11.66" + "version": "1.11.69" }, "erlang": { - "name": "erlang-25.3.2.7", + "name": "erlang-25.3.2.12", "pname": "erlang", - "version": "25.3.2.7" + "version": "25.3.2.12" }, "exif": { "name": "exif-0.6.22", @@ -170,14 +170,14 @@ "version": "0.6.22" }, "fetchmail": { - "name": "fetchmail-6.4.37", + "name": "fetchmail-6.4.38", "pname": "fetchmail", - "version": "6.4.37" + "version": "6.4.38" }, "ffmpeg": { - "name": "ffmpeg-6.0", + "name": "ffmpeg-6.1.1", "pname": "ffmpeg", - "version": "6.0" + "version": "6.1.1" }, "file": { "name": "file-5.45", @@ -190,14 +190,14 @@ "version": "7.17.16" }, "firefox": { - "name": "firefox-126.0", + "name": "firefox-127.0.1", "pname": "firefox", - "version": "126.0" + "version": "127.0.1" }, "gcc": { - "name": "gcc-wrapper-12.3.0", + "name": "gcc-wrapper-13.2.0", "pname": "gcc-wrapper", - "version": "12.3.0" + "version": "13.2.0" }, "gcc12": { "name": "gcc-wrapper-12.3.0", @@ -210,59 +210,59 @@ "version": "2.3.3" }, "ghostscript": { - "name": "ghostscript-with-X-10.02.1", + "name": "ghostscript-with-X-10.03.1", "pname": "ghostscript-with-X", - "version": "10.02.1" + "version": "10.03.1" }, "git": { - "name": "git-2.42.0", + "name": "git-2.44.1", "pname": "git", - "version": "2.42.0" + "version": "2.44.1" }, "gitaly": { - "name": "gitaly-16.10.6", + "name": "gitaly-16.11.4", "pname": "gitaly", - "version": "16.10.6" + "version": "16.11.4" }, "github-runner": { - "name": "github-runner-2.316.1", + "name": "github-runner-2.317.0", "pname": "github-runner", - "version": "2.316.1" + "version": "2.317.0" }, "gitlab": { - "name": "gitlab-16.10.6", + "name": "gitlab-16.11.4", "pname": "gitlab", - "version": "16.10.6" + "version": "16.11.4" }, "gitlab-container-registry": { - "name": "gitlab-container-registry-4.2.0", + "name": "gitlab-container-registry-4.5.0", "pname": "gitlab-container-registry", - "version": "4.2.0" + "version": "4.5.0" }, "gitlab-ee": { - "name": "gitlab-ee-16.10.6", + "name": "gitlab-ee-16.11.4", "pname": "gitlab-ee", - "version": "16.10.6" + "version": "16.11.4" }, "gitlab-pages": { - "name": "gitlab-pages-16.10.6", + "name": "gitlab-pages-16.11.4", "pname": "gitlab-pages", - "version": "16.10.6" + "version": "16.11.4" }, "gitlab-runner": { - "name": "gitlab-runner-16.10.0", + "name": "gitlab-runner-16.11.1", "pname": "gitlab-runner", - "version": "16.10.0" + "version": "16.11.1" }, "gitlab-workhorse": { - "name": "gitlab-workhorse-16.10.6", + "name": "gitlab-workhorse-16.11.4", "pname": "gitlab-workhorse", - "version": "16.10.6" + "version": "16.11.4" }, "glibc": { - "name": "glibc-2.38-66", + "name": "glibc-2.39-52", "pname": "glibc", - "version": "2.38" + "version": "2.39" }, "gnumake": { "name": "gnumake-4.4.1", @@ -270,54 +270,46 @@ "version": "4.4.1" }, "gnupg": { - "name": "gnupg-2.4.4", + "name": "gnupg-2.4.5", "pname": "gnupg", - "version": "2.4.4" + "version": "2.4.5" }, "go": { - "name": "go-1.21.9", - "pname": "go", - "version": "1.21.9" - }, - "go_1_19": { - "name": "go-1.19.13", - "pname": "go", - "version": "1.19.13" - }, - "go_1_20": { - "name": "go-1.20.12", + "name": "go-1.22.4", "pname": "go", - "version": "1.20.12" + "version": "1.22.4" }, + "go_1_19": {}, + "go_1_20": {}, "grafana": { - "name": "grafana-10.2.6", + "name": "grafana-10.4.4", "pname": "grafana", - "version": "10.2.6" + "version": "10.4.4" }, "grub2": { - "name": "grub-2.12-rc1", + "name": "grub-2.12", "pname": "grub", - "version": "2.12-rc1" + "version": "2.12" }, "haproxy": { - "name": "haproxy-2.8.4", + "name": "haproxy-2.9.7", "pname": "haproxy", - "version": "2.8.4" + "version": "2.9.7" }, "imagemagick": { - "name": "imagemagick-7.1.1-30", + "name": "imagemagick-7.1.1-32", "pname": "imagemagick", - "version": "7.1.1-30" + "version": "7.1.1-32" }, "imagemagick6": { - "name": "imagemagick-6.9.12-68", + "name": "imagemagick-6.9.13-10", "pname": "imagemagick", - "version": "6.9.12-68" + "version": "6.9.13-10" }, "imagemagick7": { - "name": "imagemagick-7.1.1-30", + "name": "imagemagick-7.1.1-32", "pname": "imagemagick", - "version": "7.1.1-30" + "version": "7.1.1-32" }, "inetutils": { "name": "inetutils-2.5", @@ -325,34 +317,34 @@ "version": "2.5" }, "jdk": { - "name": "openjdk-19.0.2+7", + "name": "openjdk-21.0.3+9", "pname": "openjdk", - "version": "19.0.2+7" + "version": "21.0.3+9" }, "jetbrains.jdk": { - "name": "jetbrains-jdk-jcef-17.0.7-b829.16", + "name": "jetbrains-jdk-jcef-17.0.8-b1000.8", "pname": "jetbrains-jdk-jcef", - "version": "17.0.7-b829.16" + "version": "17.0.8-b1000.8" }, "jetty": { - "name": "jetty-12.0.7", + "name": "jetty-12.0.9", "pname": "jetty", - "version": "12.0.7" + "version": "12.0.9" }, "jicofo": { - "name": "jicofo-1.0-1075", + "name": "jicofo-1.0-1078", "pname": "jicofo", - "version": "1.0-1075" + "version": "1.0-1078" }, "jitsi-meet": { - "name": "jitsi-meet-1.0.7790", + "name": "jitsi-meet-1.0.7952", "pname": "jitsi-meet", - "version": "1.0.7790" + "version": "1.0.7952" }, "jitsi-videobridge": { - "name": "jitsi-videobridge2-2.3-92-g64f9f34f", + "name": "jitsi-videobridge2-2.3-105-ge155b81e", "pname": "jitsi-videobridge2", - "version": "2.3-92-g64f9f34f" + "version": "2.3-105-ge155b81e" }, "jq": { "name": "jq-1.7.1", @@ -360,39 +352,49 @@ "version": "1.7.1" }, "jre": { - "name": "openjdk-19.0.2+7", + "name": "openjdk-21.0.3+9", "pname": "openjdk", - "version": "19.0.2+7" + "version": "21.0.3+9" }, "k3s": { - "name": "k3s-1.27.6+k3s1", + "name": "k3s-1.30.1+k3s1", + "pname": "k3s", + "version": "1.30.1+k3s1" + }, + "k3s_1_27": { + "name": "k3s-1.27.14+k3s1", + "pname": "k3s", + "version": "1.27.14+k3s1" + }, + "k3s_1_30": { + "name": "k3s-1.30.1+k3s1", "pname": "k3s", - "version": "1.27.6+k3s1" + "version": "1.30.1+k3s1" }, "keycloak": { - "name": "keycloak-24.0.4", + "name": "keycloak-24.0.5", "pname": "keycloak", - "version": "24.0.4" + "version": "24.0.5" }, "kubernetes-helm": { - "name": "kubernetes-helm-3.13.2", + "name": "kubernetes-helm-3.15.0", "pname": "kubernetes-helm", - "version": "3.13.2" + "version": "3.15.0" }, "libffi": { - "name": "libffi-3.4.4", + "name": "libffi-3.4.6", "pname": "libffi", - "version": "3.4.4" + "version": "3.4.6" }, "libgcrypt": { - "name": "libgcrypt-1.10.2", + "name": "libgcrypt-1.10.3", "pname": "libgcrypt", - "version": "1.10.2" + "version": "1.10.3" }, "libjpeg": { - "name": "libjpeg-turbo-2.1.5.1", + "name": "libjpeg-turbo-3.0.3", "pname": "libjpeg-turbo", - "version": "2.1.5.1" + "version": "3.0.3" }, "libmodsecurity": { "name": "libmodsecurity-3.0.12", @@ -405,9 +407,9 @@ "version": "3.3.5" }, "libressl": { - "name": "libressl-3.8.4", + "name": "libressl-3.9.2", "pname": "libressl", - "version": "3.8.4" + "version": "3.9.2" }, "libtiff": { "name": "libtiff-4.6.0", @@ -415,19 +417,19 @@ "version": "4.6.0" }, "libwebp": { - "name": "libwebp-1.3.2", + "name": "libwebp-1.4.0", "pname": "libwebp", - "version": "1.3.2" + "version": "1.4.0" }, "libxml2": { - "name": "libxml2-2.11.7", + "name": "libxml2-2.12.7", "pname": "libxml2", - "version": "2.11.7" + "version": "2.12.7" }, "libxslt": { - "name": "libxslt-1.1.38", + "name": "libxslt-1.1.39", "pname": "libxslt", - "version": "1.1.38" + "version": "1.1.39" }, "libyaml": { "name": "libyaml-0.2.5", @@ -435,9 +437,9 @@ "version": "0.2.5" }, "linux_5_15": { - "name": "linux-5.15.159", + "name": "linux-5.15.161", "pname": "linux", - "version": "5.15.159" + "version": "5.15.161" }, "logrotate": { "name": "logrotate-3.21.0", @@ -450,9 +452,9 @@ "version": "1.9.4" }, "mailutils": { - "name": "mailutils-3.16", + "name": "mailutils-3.17", "pname": "mailutils", - "version": "3.16" + "version": "3.17" }, "mariadb": { "name": "mariadb-server-10.11.6", @@ -465,9 +467,9 @@ "version": "3.3.5" }, "mastodon": { - "name": "mastodon-4.2.8", + "name": "mastodon-4.2.9", "pname": "mastodon", - "version": "4.2.8" + "version": "4.2.9" }, "matomo": { "name": "matomo-4.16.1", @@ -475,9 +477,9 @@ "version": "4.16.1" }, "matrix-synapse": { - "name": "matrix-synapse-wrapped-1.107.0", + "name": "matrix-synapse-wrapped-1.109.0", "pname": "matrix-synapse-wrapped", - "version": "1.107.0" + "version": "1.109.0" }, "mcpp": { "name": "mcpp-2.7.2.1", @@ -485,9 +487,19 @@ "version": "2.7.2.1" }, "memcached": { - "name": "memcached-1.6.22", + "name": "memcached-1.6.26", "pname": "memcached", - "version": "1.6.22" + "version": "1.6.26" + }, + "mongodb": { + "name": "mongodb-6.0.15", + "pname": "mongodb", + "version": "6.0.15" + }, + "mongodb-6_0": { + "name": "mongodb-6.0.15", + "pname": "mongodb", + "version": "6.0.15" }, "monitoring-plugins": { "name": "monitoring-plugins-2.3.5", @@ -510,59 +522,55 @@ "version": "2.6.2" }, "nginx": { - "name": "nginx-1.24.0", + "name": "nginx-1.26.1", "pname": "nginx", - "version": "1.24.0" + "version": "1.26.1" }, "nginxMainline": { - "name": "nginx-1.25.4", + "name": "nginx-1.27.0", "pname": "nginx", - "version": "1.25.4" + "version": "1.27.0" }, "nginxStable": { - "name": "nginx-1.24.0", + "name": "nginx-1.26.1", "pname": "nginx", - "version": "1.24.0" + "version": "1.26.1" }, "nix": { - "name": "nix-2.18.1", + "name": "nix-2.18.2", "pname": "nix", - "version": "2.18.1" + "version": "2.18.2" }, "nodejs": { - "name": "nodejs-18.19.1", + "name": "nodejs-20.12.2", "pname": "nodejs", - "version": "18.19.1" + "version": "20.12.2" }, "nodejs_18": { - "name": "nodejs-18.19.1", + "name": "nodejs-18.20.2", "pname": "nodejs", - "version": "18.19.1" + "version": "18.20.2" }, "nodejs_20": { - "name": "nodejs-20.11.1", - "pname": "nodejs", - "version": "20.11.1" - }, - "nodejs_21": { - "name": "nodejs-21.7.2", + "name": "nodejs-20.12.2", "pname": "nodejs", - "version": "21.7.2" + "version": "20.12.2" }, + "nodejs_21": {}, "nspr": { "name": "nspr-4.35", "pname": "nspr", "version": "4.35" }, "nss_latest": { - "name": "nss-3.100", + "name": "nss-3.101", "pname": "nss", - "version": "3.100" + "version": "3.101" }, "openjdk": { - "name": "openjdk-19.0.2+7", + "name": "openjdk-21.0.3+9", "pname": "openjdk", - "version": "19.0.2+7" + "version": "21.0.3+9" }, "openjpeg": { "name": "openjpeg-2.5.2", @@ -570,9 +578,9 @@ "version": "2.5.2" }, "openldap": { - "name": "openldap-2.6.6", + "name": "openldap-2.6.7", "pname": "openldap", - "version": "2.6.6" + "version": "2.6.7" }, "openldap_2_4": { "name": "openldap-2.4.58", @@ -580,24 +588,24 @@ "version": "2.4.58" }, "opensearch": { - "name": "opensearch-2.11.1", + "name": "opensearch-2.14.0", "pname": "opensearch", - "version": "2.11.1" + "version": "2.14.0" }, "opensearch-dashboards": { - "name": "opensearch-dashboards-2.11.0", + "name": "opensearch-dashboards-2.14.0", "pname": "opensearch-dashboards", - "version": "2.11.0" + "version": "2.14.0" }, "openssh": { - "name": "openssh-9.6p1", + "name": "openssh-9.7p1", "pname": "openssh", - "version": "9.6p1" + "version": "9.7p1" }, "openssl": { - "name": "openssl-3.0.13", + "name": "openssl-3.0.14", "pname": "openssl", - "version": "3.0.13" + "version": "3.0.14" }, "openssl_1_1": { "name": "openssl-1.1.1w", @@ -605,14 +613,14 @@ "version": "1.1.1w" }, "openssl_3": { - "name": "openssl-3.0.13", + "name": "openssl-3.0.14", "pname": "openssl", - "version": "3.0.13" + "version": "3.0.14" }, "openvpn": { - "name": "openvpn-2.5.8", + "name": "openvpn-2.6.10", "pname": "openvpn", - "version": "2.5.8" + "version": "2.6.10" }, "pcre": { "name": "pcre-8.45", @@ -620,20 +628,49 @@ "version": "8.45" }, "pcre2": { - "name": "pcre2-10.42", + "name": "pcre2-10.43", "pname": "pcre2", - "version": "10.42" + "version": "10.43" }, "percona": { - "name": "percona-server-8.0.36-28", - "pname": "percona-server", + "name": "percona-server_lts-8.0.36-28", + "pname": "percona-server_lts", + "version": "8.0.36-28" + }, + "percona-server": { + "name": "percona-server_lts-8.0.36-28", + "pname": "percona-server_lts", + "version": "8.0.36-28" + }, + "percona-server_innovation": { + "name": "percona-server_innovation-8.3.0-1", + "pname": "percona-server_innovation", + "version": "8.3.0-1" + }, + "percona-server_lts": { + "name": "percona-server_lts-8.0.36-28", + "pname": "percona-server_lts", "version": "8.0.36-28" }, - "percona-server": {}, "percona-xtrabackup_8_0": { - "name": "percona-xtrabackup-8.0.34-29", + "name": "percona-xtrabackup-8.0.35-30", + "pname": "percona-xtrabackup", + "version": "8.0.35-30" + }, + "percona-xtrabackup_8_3": { + "name": "percona-xtrabackup-8.3.0-1", + "pname": "percona-xtrabackup", + "version": "8.3.0-1" + }, + "percona-xtrabackup_innovation": { + "name": "percona-xtrabackup-8.3.0-1", "pname": "percona-xtrabackup", - "version": "8.0.34-29" + "version": "8.3.0-1" + }, + "percona-xtrabackup_lts": { + "name": "percona-xtrabackup-8.0.35-30", + "pname": "percona-xtrabackup", + "version": "8.0.35-30" }, "percona57": { "name": "percona-5.7.42-45", @@ -641,14 +678,14 @@ "version": "5.7.42-45" }, "percona80": { - "name": "percona-server-8.0.36-28", - "pname": "percona-server", + "name": "percona-server_lts-8.0.36-28", + "pname": "percona-server_lts", "version": "8.0.36-28" }, - "percona81": { - "name": "percona_8_1-8.1.0-1", - "pname": "percona_8_1", - "version": "8.1.0-1" + "percona83": { + "name": "percona-server_innovation-8.3.0-1", + "pname": "percona-server_innovation", + "version": "8.3.0-1" }, "php72": { "name": "php-with-extensions-7.2.34", @@ -671,24 +708,24 @@ "version": "8.0.30" }, "php81": { - "name": "php-with-extensions-8.1.28", + "name": "php-with-extensions-8.1.29", "pname": "php-with-extensions", - "version": "8.1.28" + "version": "8.1.29" }, "php82": { - "name": "php-with-extensions-8.2.19", + "name": "php-with-extensions-8.2.20", "pname": "php-with-extensions", - "version": "8.2.19" + "version": "8.2.20" }, "php83": { - "name": "php-with-extensions-8.3.7", + "name": "php-with-extensions-8.3.8", "pname": "php-with-extensions", - "version": "8.3.7" + "version": "8.3.8" }, "phpPackages.composer": { - "name": "composer-2.7.6", + "name": "composer-2.7.7", "pname": "composer", - "version": "2.7.6" + "version": "2.7.7" }, "pkg-config": { "name": "pkg-config-wrapper-0.29.2", @@ -696,64 +733,64 @@ "version": "0.29.2" }, "podman": { - "name": "podman-4.7.2", + "name": "podman-5.0.3", "pname": "podman", - "version": "4.7.2" + "version": "5.0.3" }, "poetry": { - "name": "poetry-1.7.1", + "name": "poetry-1.8.3", "pname": "poetry", - "version": "1.7.1" + "version": "1.8.3" }, "polkit": { - "name": "polkit-123", + "name": "polkit-124", "pname": "polkit", - "version": "123" + "version": "124" }, "postfix": { - "name": "postfix-3.8.6", + "name": "postfix-3.9.0", "pname": "postfix", - "version": "3.8.6" + "version": "3.9.0" }, "postgresql": { - "name": "postgresql-15.6", + "name": "postgresql-15.7", "pname": "postgresql", - "version": "15.6" + "version": "15.7" }, "postgresql_12": { - "name": "postgresql-12.18", + "name": "postgresql-12.19", "pname": "postgresql", - "version": "12.18" + "version": "12.19" }, "postgresql_13": { - "name": "postgresql-13.14", + "name": "postgresql-13.15", "pname": "postgresql", - "version": "13.14" + "version": "13.15" }, "postgresql_14": { - "name": "postgresql-14.11", + "name": "postgresql-14.12", "pname": "postgresql", - "version": "14.11" + "version": "14.12" }, "postgresql_15": { - "name": "postgresql-15.6", + "name": "postgresql-15.7", "pname": "postgresql", - "version": "15.6" + "version": "15.7" }, "postgresql_16": { - "name": "postgresql-16.2", + "name": "postgresql-16.3", "pname": "postgresql", - "version": "16.2" + "version": "16.3" }, "powerdns": { - "name": "pdns-4.8.4", + "name": "pdns-4.9.1", "pname": "pdns", - "version": "4.8.4" + "version": "4.9.1" }, "prometheus": { - "name": "prometheus-2.49.1", + "name": "prometheus-2.52.0", "pname": "prometheus", - "version": "2.49.1" + "version": "2.52.0" }, "prosody": { "name": "prosody-0.12.4", @@ -761,9 +798,9 @@ "version": "0.12.4" }, "python3": { - "name": "python3-3.11.8", + "name": "python3-3.11.9", "pname": "python3", - "version": "3.11.8" + "version": "3.11.9" }, "python310": { "name": "python3-3.10.14", @@ -771,29 +808,25 @@ "version": "3.10.14" }, "python311": { - "name": "python3-3.11.8", + "name": "python3-3.11.9", "pname": "python3", - "version": "3.11.8" + "version": "3.11.9" }, "python312": { - "name": "python3-3.12.2", + "name": "python3-3.12.4", "pname": "python3", - "version": "3.12.2" - }, - "python38": { - "name": "python3-3.8.19", - "pname": "python3", - "version": "3.8.19" + "version": "3.12.4" }, + "python38": {}, "python39": { "name": "python3-3.9.19", "pname": "python3", "version": "3.9.19" }, "python3Packages.boto3": { - "name": "python3.11-boto3-1.28.57", + "name": "python3.11-boto3-1.34.58", "pname": "boto3", - "version": "1.28.57" + "version": "1.34.58" }, "python3Packages.click": { "name": "python3.11-click-8.1.7", @@ -801,24 +834,24 @@ "version": "8.1.7" }, "python3Packages.lxml": { - "name": "python3.11-lxml-4.9.3-3", + "name": "python3.11-lxml-5.1.0", "pname": "lxml", - "version": "4.9.3-3" + "version": "5.1.0" }, "python3Packages.pillow": { - "name": "python3.11-pillow-10.2.0", + "name": "python3.11-pillow-10.3.0", "pname": "pillow", - "version": "10.2.0" + "version": "10.3.0" }, "python3Packages.pip": { - "name": "python3.11-pip-23.2.1", + "name": "python3.11-pip-24.0", "pname": "pip", - "version": "23.2.1" + "version": "24.0" }, "python3Packages.pyslurm": { - "name": "python3.11-pyslurm-23.2.2", + "name": "python3.11-pyslurm-23.11.0", "pname": "pyslurm", - "version": "23.2.2" + "version": "23.11.0" }, "python3Packages.pystemd": { "name": "python3.11-pystemd-0.13.2", @@ -836,14 +869,14 @@ "version": "2.31.0" }, "python3Packages.rich": { - "name": "python3.11-rich-13.5.2", + "name": "python3.11-rich-13.7.1", "pname": "rich", - "version": "13.5.2" + "version": "13.7.1" }, "python3Packages.structlog": { - "name": "python3.11-structlog-23.2.0", + "name": "python3.11-structlog-24.1.0", "pname": "structlog", - "version": "23.2.0" + "version": "24.1.0" }, "python3Packages.supervisor": { "name": "python3.11-supervisor-4.2.5", @@ -856,24 +889,24 @@ "version": "235" }, "python3Packages.urllib3": { - "name": "python3.11-urllib3-2.0.7", + "name": "python3.11-urllib3-2.2.1", "pname": "urllib3", - "version": "2.0.7" + "version": "2.2.1" }, "qemu": { - "name": "qemu-8.1.5", + "name": "qemu-8.2.5", "pname": "qemu", - "version": "8.1.5" + "version": "8.2.5" }, "rabbitmq-server": { - "name": "rabbitmq-server-3.12.7", + "name": "rabbitmq-server-3.12.13", "pname": "rabbitmq-server", - "version": "3.12.7" + "version": "3.12.13" }, "rabbitmq-server_3_8": { - "name": "rabbitmq-server-3.12.7", + "name": "rabbitmq-server-3.12.13", "pname": "rabbitmq-server", - "version": "3.12.7" + "version": "3.12.13" }, "re2c": { "name": "re2c-3.1", @@ -891,24 +924,20 @@ "version": "1.6.7" }, "rsync": { - "name": "rsync-3.2.7", + "name": "rsync-3.3.0", "pname": "rsync", - "version": "3.2.7" + "version": "3.3.0" }, "ruby": { - "name": "ruby-3.1.4", - "pname": "ruby", - "version": "3.1.4" - }, - "ruby_2_7": { - "name": "ruby-2.7.8", + "name": "ruby-3.1.5", "pname": "ruby", - "version": "2.7.8" + "version": "3.1.5" }, + "ruby_2_7": {}, "ruby_3_2": { - "name": "ruby-3.2.3", + "name": "ruby-3.2.4", "pname": "ruby", - "version": "3.2.3" + "version": "3.2.4" }, "runc": { "name": "runc-1.1.12", @@ -921,9 +950,9 @@ "version": "4.9.1" }, "slurm": { - "name": "slurm-23.02.7.1", + "name": "slurm-23.11.7.1", "pname": "slurm", - "version": "23.02.7.1" + "version": "23.11.7.1" }, "solr": { "name": "solr-8.11.2", @@ -936,19 +965,19 @@ "version": "6.9" }, "strongswan": { - "name": "strongswan-5.9.11", + "name": "strongswan-5.9.14", "pname": "strongswan", - "version": "5.9.11" + "version": "5.9.14" }, "subversion": { - "name": "subversion-1.14.2", + "name": "subversion-1.14.3", "pname": "subversion", - "version": "1.14.2" + "version": "1.14.3" }, "sudo": { - "name": "sudo-1.9.15p2", + "name": "sudo-1.9.15p5", "pname": "sudo", - "version": "1.9.15p2" + "version": "1.9.15p5" }, "sysstat": { "name": "sysstat-12.7.4", @@ -956,9 +985,9 @@ "version": "12.7.4" }, "systemd": { - "name": "systemd-254.10", + "name": "systemd-255.6", "pname": "systemd", - "version": "254.10" + "version": "255.6" }, "tcpdump": { "name": "tcpdump-4.99.4", @@ -966,24 +995,24 @@ "version": "4.99.4" }, "telegraf": { - "name": "telegraf-1.28.5", + "name": "telegraf-1.30.3", "pname": "telegraf", - "version": "1.28.5" + "version": "1.30.3" }, "tmux": { - "name": "tmux-3.3a", + "name": "tmux-3.4", "pname": "tmux", - "version": "3.3a" + "version": "3.4" }, "tomcat10": { - "name": "apache-tomcat-10.1.20", + "name": "apache-tomcat-10.1.23", "pname": "apache-tomcat", - "version": "10.1.20" + "version": "10.1.23" }, "tomcat9": { - "name": "apache-tomcat-9.0.87", + "name": "apache-tomcat-9.0.88", "pname": "apache-tomcat", - "version": "9.0.87" + "version": "9.0.88" }, "unzip": { "name": "unzip-6.0", @@ -991,9 +1020,9 @@ "version": "6.0" }, "util-linux": { - "name": "util-linux-2.39.2", + "name": "util-linux-2.39.4", "pname": "util-linux", - "version": "2.39.2" + "version": "2.39.4" }, "varnish": { "name": "varnish-7.4.3", @@ -1001,9 +1030,9 @@ "version": "7.4.3" }, "vim": { - "name": "vim-9.0.2116", + "name": "vim-9.1.0377", "pname": "vim", - "version": "9.0.2116" + "version": "9.1.0377" }, "webkitgtk": { "name": "webkitgtk-2.44.2+abi=4.0", @@ -1021,19 +1050,19 @@ "version": "1.0.20210914" }, "xfsprogs": { - "name": "xfsprogs-6.4.0", + "name": "xfsprogs-6.6.0", "pname": "xfsprogs", - "version": "6.4.0" + "version": "6.6.0" }, "xorg.libX11": { - "name": "libX11-1.8.7", + "name": "libX11-1.8.9", "pname": "libX11", - "version": "1.8.7" + "version": "1.8.9" }, "xz": { - "name": "xz-5.4.4", + "name": "xz-5.4.7", "pname": "xz", - "version": "5.4.4" + "version": "5.4.7" }, "zip": { "name": "zip-3.0", @@ -1041,9 +1070,9 @@ "version": "3.0" }, "zlib": { - "name": "zlib-1.3", + "name": "zlib-1.3.1", "pname": "zlib", - "version": "1.3" + "version": "1.3.1" }, "zsh": { "name": "zsh-5.9", @@ -1051,8 +1080,8 @@ "version": "5.9" }, "zstd": { - "name": "zstd-1.5.5", + "name": "zstd-1.5.6", "pname": "zstd", - "version": "1.5.5" + "version": "1.5.6" } } diff --git a/release/up-nix-phps.sh b/release/up-nix-phps.sh index 12d8c5a37..b9e402533 100755 --- a/release/up-nix-phps.sh +++ b/release/up-nix-phps.sh @@ -16,5 +16,5 @@ cp -vr "$T/pkgs" "$T/LICENSE.md" nix-phps cp -vr $T/*/pkgs/development/interpreters/php nix-phps/pkgs/development/interpreters cp -v $T/*/pkgs/top-level/php-packages.nix nix-phps/pkgs/top-level cp -vr $T/*/pkgs/development/php-packages nix-phps/pkgs/development/php-packages -cp -v $T/*/pkgs/build-support/build-pecl.nix nix-phps/pkgs/build-support +cp -vr $T/*/pkgs/build-support/php nix-phps/pkgs/build-support echo -e "# imported\n\nThis is imported using up-nix-phps.sh from https://github.com/fossar/nix-phps\nRun ./up-nix-phps.sh to update" > nix-phps/README.md diff --git a/release/update-nixpkgs.py b/release/update-nixpkgs.py index 2862ebd6d..3e79ec0e9 100755 --- a/release/update-nixpkgs.py +++ b/release/update-nixpkgs.py @@ -27,7 +27,8 @@ class NixOSVersion(StrEnum): NIXOS_2211 = "nixos-22.11" NIXOS_2305 = "nixos-23.05" NIXOS_2311 = "nixos-23.11" - NIXOS_UNSTABLE = "nixos-24.05" + NIXOS_2405 = "nixos-24.05" + NIXOS_UNSTABLE = "nixos-24.11" @property def upstream_branch(self) -> str: diff --git a/release/versions.json b/release/versions.json index 01a9a1efb..e6bf24d16 100644 --- a/release/versions.json +++ b/release/versions.json @@ -2,15 +2,15 @@ "nixos-mailserver": { "deepClone": false, "fetchSubmodules": false, - "hash": "sha256-8zLBr6NNLZYirvuFL1bVNU8pAzEv3Z0BBjcU8tK6aH8=", + "hash": "sha256-T3BiZRyD/jsEYKYO8iBA0kBlAiyC2wnJehWO0Ky5tLU=", "leaveDotGit": false, - "rev": "871e767a7450630ce0180ac68846dcd2d6981ed9", + "rev": "a03b2ae33db2f20961ef29b41e4696db58e0483a", "url": "https://gitlab.flyingcircus.io/flyingcircus/nixos-mailserver.git/" }, "nixpkgs": { - "hash": "sha256-xe+bTKopBu/5JfCl8B4OIazxLcYG6LoZYkqorqubGNw=", + "hash": "sha256-Uajr8Rm4pTsCXXDsttmUwoKfMX/xw8jLCBhkbZQnwCI=", "owner": "flyingcircusio", "repo": "nixpkgs", - "rev": "c7a78f96557f5ab6144173d69866658973a88b41" + "rev": "11e806085509a1517f33fe94019d969b13b323a6" } } diff --git a/tests/default.nix b/tests/default.nix index 25ad52200..2ff9fc51e 100644 --- a/tests/default.nix +++ b/tests/default.nix @@ -57,13 +57,9 @@ in { lampVm73 = callTest ./lamp/vm-test.nix { version = "lamp_php73"; }; lampVm74 = callTest ./lamp/vm-test.nix { version = "lamp_php74"; }; lampVm80 = callTest ./lamp/vm-test.nix { version = "lamp_php80"; }; - lampVm80_tideways = callTest ./lamp/vm-test.nix { version = "lamp_php80"; tideways = "1234"; }; lampVm81 = callTest ./lamp/vm-test.nix { version = "lamp_php81"; }; - lampVm81_tideways = callTest ./lamp/vm-test.nix { version = "lamp_php81"; tideways = "1234"; }; lampVm82 = callTest ./lamp/vm-test.nix { version = "lamp_php82"; }; - lampVm82_tideways = callTest ./lamp/vm-test.nix { version = "lamp_php82"; tideways = "1234"; }; lampVm83 = callTest ./lamp/vm-test.nix { version = "lamp_php83"; }; - lampVm83_tideways = callTest ./lamp/vm-test.nix { version = "lamp_php83"; tideways = "1234"; }; lampPackage74 = callTest ./lamp/package-test.nix { version = "lamp_php74"; }; lampPackage80 = callTest ./lamp/package-test.nix { version = "lamp_php80"; }; @@ -92,7 +88,7 @@ in { opensearch_dashboards = callTest ./opensearch_dashboards.nix {}; openvpn = callTest ./openvpn.nix {}; percona80 = callTest ./mysql.nix { rolename = "percona80"; }; - percona81 = callTest ./mysql.nix { rolename = "percona81"; }; + percona83 = callTest ./mysql.nix { rolename = "percona83"; }; physical-installer = callTest ./physical-installer.nix { inherit nixpkgs; }; postgresql12 = callTest ./postgresql { version = "12"; }; postgresql13 = callTest ./postgresql { version = "13"; }; diff --git a/tests/ferretdb.nix b/tests/ferretdb.nix index baa61a01d..58abc6e9b 100644 --- a/tests/ferretdb.nix +++ b/tests/ferretdb.nix @@ -42,7 +42,7 @@ in { with subtest("killing the ferretdb process should trigger an automatic restart"): _, out = machine.systemctl("show ferretdb --property MainPID --value") previous_pid = int(out.strip()) - machine.succeed("systemctl kill -s KILL ferretdb") + machine.succeed("systemctl kill -s KILL --kill-whom main ferretdb") machine.wait_until_succeeds('test $(systemctl show ferretdb --property NRestarts --value) -eq "1"') machine.wait_until_succeeds("${sensuCheck "ferretdb"}") _, out = machine.systemctl("show ferretdb --property MainPID --value") diff --git a/tests/java.nix b/tests/java.nix index 40bfcbb84..77e6fd9bb 100644 --- a/tests/java.nix +++ b/tests/java.nix @@ -19,9 +19,11 @@ import ./make-test-python.nix ({ pkgs, testlib, ... }: jdk11 = "${pkgs.jdk11}" jdk11_headless = "${pkgs.jdk11_headless}" jdk17 = "${pkgs.jdk17}" - jdk19 = "${pkgs.jdk19}" jdk17_headless = "${pkgs.jdk17_headless}" + jdk19 = "${pkgs.jdk19}" jdk19_headless = "${pkgs.jdk19_headless}" + jdk21 = "${pkgs.jdk21}" + jdk21_headless = "${pkgs.jdk21_headless}" jdk8 = "${pkgs.jdk8}" jdk8_headless = "${pkgs.jdk8_headless}" jre = "${pkgs.jre}" @@ -35,11 +37,11 @@ import ./make-test-python.nix ({ pkgs, testlib, ... }: openjdk17_headless = "${pkgs.openjdk17_headless}" openjdk19 = "${pkgs.openjdk19}" openjdk19_headless = "${pkgs.openjdk19_headless}" + openjdk21 = "${pkgs.openjdk21}" + openjdk21_headless = "${pkgs.openjdk21_headless}" openjdk8 = "${pkgs.openjdk8}" openjdk8_headless = "${pkgs.openjdk8_headless}" - print() - with subtest("Package aliases for Java 8 should point to the same package"): assert openjdk8 == jdk8 @@ -64,14 +66,19 @@ import ./make-test-python.nix ({ pkgs, testlib, ... }: with subtest("Package aliases for Java 19 headless should point to the same package"): assert openjdk19_headless == jdk19_headless + with subtest("Package aliases for Java 21 should point to the same package"): + assert openjdk21 == jdk21 + + with subtest("Package aliases for Java 21 headless should point to the same package"): + assert openjdk21_headless == jdk21_headless - with subtest("Java 19 is the default package"): - assert openjdk == jdk19 + with subtest("Java 21 is the default package"): + assert openjdk == jdk21 assert jre == jdk assert jdk == openjdk - with subtest("Java 19 is the default headless package"): - assert jre_headless == jdk19_headless + with subtest("Java 21 is the default headless package"): + assert jre_headless == jdk21_headless package_versions = { jdk8: "1.8", @@ -82,11 +89,14 @@ import ./make-test-python.nix ({ pkgs, testlib, ... }: jdk11_headless: "11", openjdk17: "17", openjdk19: "19", + openjdk21: "21", } for package, version in package_versions.items(): with subtest(f"Checking java version in {package}"): out = machine.succeed(f"{package}/bin/java -version 2>&1") - assert f"openjdk version \"{version}." in out + assert f"openjdk version \"{version}" in out, ( + f"Couldn't find expected string \"{version} in: {out}" + ) ''; }) diff --git a/tests/kernelconfig.nix b/tests/kernelconfig.nix index fa60adc95..7f3ecbf2b 100644 --- a/tests/kernelconfig.nix +++ b/tests/kernelconfig.nix @@ -138,7 +138,7 @@ let TUN m UNIX_DIAG m USB_EHCI_HCD m - USB_SERIAL m + USB_SERIAL y USB_SERIAL_FTDI_SIO m USB_SERIAL_PL2303 m USB_UHCI_HCD m diff --git a/tests/lamp/vm-test.nix b/tests/lamp/vm-test.nix index cbcf4fa9c..b083fd1a4 100644 --- a/tests/lamp/vm-test.nix +++ b/tests/lamp/vm-test.nix @@ -1,4 +1,4 @@ -import ../make-test-python.nix ({ version ? "" , tideways ? "", lib, ... }: +import ../make-test-python.nix ({ version ? "", lib, ... }: { name = "lamp"; extraPythonPackages = p: with p; [ packaging ]; @@ -40,8 +40,6 @@ import ../make-test-python.nix ({ version ? "" , tideways ? "", lib, ... }: # XXX test-i-a-m-the-custom-php-ini ''; - tideways_api_key = tideways; - }; virtualisation.qemu.options = [ "-smp 2" ]; @@ -88,13 +86,6 @@ import ../make-test-python.nix ({ version ? "" , tideways ? "", lib, ... }: php_version = Version(php_version_str) print("Detected PHP version:", php_version) - tideways_api_key = "${tideways}" - - if tideways_api_key: - lamp.wait_for_unit("tideways-daemon.service") - lamp.wait_for_open_port(9135) - print(lamp.succeed("echo '{\"type\": \"phpinfo\"}' | nc 127.0.0.1 9135")) - with subtest("apache (httpd) opens expected ports"): assert_listen(lamp, "httpd", {"127.0.0.1:7999", "::1:7999", ":::8000", ":::8001"}) @@ -170,9 +161,6 @@ import ../make-test-python.nix ({ version ? "" , tideways ? "", lib, ... }: if php_version >= Version("7.3"): lamp.succeed("egrep 'curl.cainfo.*/etc/ssl/certs/ca-certificates.crt' result") - if tideways_api_key: - lamp.succeed("egrep 'tideways' result") - lamp.succeed("grep 'Can connect to tideways-daemon?.*Yes' result") lamp.succeed("egrep 'Path to sendmail.*sendmail -t -i' result") lamp.succeed("egrep 'opcache.enable => On => On' result") @@ -209,10 +197,6 @@ import ../make-test-python.nix ({ version ? "" , tideways ? "", lib, ... }: if php_version >= Version("7.3"): lamp.succeed("egrep 'curl.cainfo.*/etc/ssl/certs/ca-certificates.crt' result") - if tideways_api_key: - print(lamp.succeed("egrep 'tideways' result")) - lamp.succeed("grep 'Can connect to tideways-daemon?.*Yes' result") - lamp.succeed("egrep 'Path to sendmail.*sendmail -t -i' result") lamp.succeed("egrep 'opcache.enable.*On' result") diff --git a/tests/mail/default.nix b/tests/mail/default.nix index 112ef368e..6c4e275de 100644 --- a/tests/mail/default.nix +++ b/tests/mail/default.nix @@ -74,7 +74,7 @@ in }; }; - mailserver.certificateScheme = lib.mkOverride 50 2; + mailserver.certificateScheme = lib.mkOverride 50 "selfsigned"; mailserver.loginAccounts = lib.mkForce { "user1@example.local" = { # User1User1 diff --git a/tests/mongodb.nix b/tests/mongodb.nix index a22e017dc..8bab34098 100644 --- a/tests/mongodb.nix +++ b/tests/mongodb.nix @@ -53,7 +53,7 @@ in { with subtest("killing the opensearch process should trigger an automatic restart"): _, out = machine.systemctl("show mongodb --property MainPID --value") previous_pid = int(out.strip()) - machine.succeed("systemctl kill -s KILL mongodb") + machine.succeed("systemctl kill -s KILL --kill-whom main mongodb") machine.wait_until_succeeds('test $(systemctl show mongodb --property NRestarts --value) -eq "1"') machine.wait_until_succeeds("${sensuCheck "mongodb"}") _, out = machine.systemctl("show mongodb --property MainPID --value") diff --git a/tests/nginx.nix b/tests/nginx.nix index 799ebc96d..0bb55ba8c 100644 --- a/tests/nginx.nix +++ b/tests/nginx.nix @@ -15,7 +15,7 @@ let ${server4Fe} = [ "server" "other" ]; }; - expectedNginxMajorVersion = "1.24"; + expectedNginxMajorVersion = "1.26"; rootInitial = pkgs.writeTextFile { name = "nginx-root-initial"; diff --git a/tests/nodejs.nix b/tests/nodejs.nix index 038e1863a..40b310e7f 100644 --- a/tests/nodejs.nix +++ b/tests/nodejs.nix @@ -15,14 +15,14 @@ import ./make-test-python.nix ({ pkgs, testlib, ... }: testScript = with pkgs; '' package_versions = { - "${nodejs_18}": "18", - "${nodejs_20}": "20", - "${nodejs_21}": "21", "${nodejs-slim_18}": "18", - "${nodejs-slim}": "18", - "${nodejs}": "18", "${nodejs-slim_20}": "20", - "${nodejs-slim_21}": "21", + "${nodejs-slim_22}": "22", + "${nodejs-slim}": "20", + "${nodejs_18}": "18", + "${nodejs_20}": "20", + "${nodejs_22}": "22", + "${nodejs}": "20", } for package, version in package_versions.items(): diff --git a/tests/opensearch.nix b/tests/opensearch.nix index b4e3637ee..9591da93e 100644 --- a/tests/opensearch.nix +++ b/tests/opensearch.nix @@ -64,7 +64,7 @@ in machine.succeed(check_cmd) with subtest("killing the opensearch process should trigger an automatic restart"): - machine.succeed("systemctl kill -s KILL opensearch") + machine.succeed("systemctl kill -s KILL --kill-whom main opensearch") machine.sleep(1) machine.wait_until_succeeds("${sensuCheck "opensearch_node_status"}")