summaryrefslogtreecommitdiff
path: root/www
diff options
context:
space:
mode:
Diffstat (limited to 'www')
-rw-r--r--www/Makefile8
-rw-r--r--www/chromium/Makefile2
-rw-r--r--www/chromium/distinfo10
-rw-r--r--www/corepack/Makefile27
-rw-r--r--www/corepack/distinfo3
-rw-r--r--www/corepack/pkg-descr4
-rw-r--r--www/corepack/pkg-plist55
-rw-r--r--www/deno-dom/Makefile74
-rw-r--r--www/deno-dom/distinfo146
-rw-r--r--www/domoticz-devel/Makefile44
-rw-r--r--www/domoticz-devel/distinfo6
-rw-r--r--www/domoticz-devel/files/patch-CMakeLists.txt34
-rw-r--r--www/domoticz-devel/files/patch-DelayedLink.h45
-rw-r--r--www/domoticz-devel/files/patch-asio-deadline_timer20
-rw-r--r--www/domoticz-devel/files/patch-pr62522178
-rw-r--r--www/domoticz-devel/pkg-plist54
-rw-r--r--www/domoticz/Makefile13
-rw-r--r--www/domoticz/distinfo6
-rw-r--r--www/domoticz/files/patch-CMakeLists.txt54
-rw-r--r--www/domoticz/files/patch-asio-deadline_timer20
-rw-r--r--www/domoticz/files/patch-pr62522178
-rw-r--r--www/domoticz/pkg-plist57
-rw-r--r--www/feroxbuster/Makefile479
-rw-r--r--www/feroxbuster/distinfo958
-rw-r--r--www/filebrowser-quantum/Makefile3
-rw-r--r--www/filebrowser-quantum/distinfo14
-rw-r--r--www/filebrowser/Makefile3
-rw-r--r--www/filebrowser/distinfo14
-rw-r--r--www/firefox/Makefile5
-rw-r--r--www/firefox/distinfo6
-rw-r--r--www/forgejo-lts/Makefile91
-rw-r--r--www/forgejo-lts/distinfo3
-rw-r--r--www/forgejo-lts/files/app.ini.sample.in94
-rw-r--r--www/forgejo-lts/files/forgejo.in67
-rw-r--r--www/forgejo-lts/files/pkg-message.in35
-rw-r--r--www/forgejo-lts/pkg-descr5
-rw-r--r--www/forgejo-lts/pkg-plist8
-rw-r--r--www/forgejo/Makefile6
-rw-r--r--www/forgejo/distinfo6
-rw-r--r--www/forgejo/files/forgejo.in19
-rw-r--r--www/forgejo7/Makefile7
-rw-r--r--www/freenginx-devel/Makefile1
-rw-r--r--www/freenginx-devel/Makefile.extmod2
-rw-r--r--www/freenginx-devel/distinfo6
-rw-r--r--www/freenginx-devel/files/nginx.in3
-rw-r--r--www/freenginx/Makefile2
-rw-r--r--www/freenginx/Makefile.extmod2
-rw-r--r--www/freenginx/distinfo6
-rw-r--r--www/garage/Makefile3
-rw-r--r--www/garage/Makefile.crates36
-rw-r--r--www/garage/distinfo78
-rw-r--r--www/gitlab-pages/distinfo10
-rw-r--r--www/gitlab-workhorse/distinfo10
-rw-r--r--www/gitlab/Makefile50
-rw-r--r--www/gitlab/Makefile.common5
-rw-r--r--www/gitlab/distinfo12
-rw-r--r--www/gitlab/files/patch-Gemfile31
-rw-r--r--www/gitlab/files/patch-config_gitlab.yml.example14
-rw-r--r--www/gitlab/pkg-message6
-rw-r--r--www/gohugo/Makefile2
-rw-r--r--www/gohugo/distinfo10
-rw-r--r--www/hs-postgrest/Makefile7
-rw-r--r--www/hs-postgrest/Makefile.modules42
-rw-r--r--www/hs-postgrest/distinfo100
-rw-r--r--www/libnghttp2/Makefile2
-rw-r--r--www/libnghttp2/distinfo6
-rw-r--r--www/libnghttp2/pkg-plist2
-rw-r--r--www/nextcloud/Makefile2
-rw-r--r--www/nextcloud/distinfo6
-rw-r--r--www/nextcloud/files/plist.post.in1
-rw-r--r--www/nghttp2/Makefile2
-rw-r--r--www/nghttp2/distinfo6
-rw-r--r--www/nginx-acme/Makefile2
-rw-r--r--www/nginx-acme/distinfo4
-rw-r--r--www/nginx-devel/Makefile2
-rw-r--r--www/nginx-devel/Makefile.extmod2
-rw-r--r--www/nginx-devel/distinfo6
-rw-r--r--www/nginx/Makefile2
-rw-r--r--www/nginx/Makefile.extmod2
-rw-r--r--www/nginx/distinfo6
-rw-r--r--www/node20/Makefile9
-rw-r--r--www/node20/pkg-plist55
-rw-r--r--www/node22/Makefile10
-rw-r--r--www/node22/pkg-plist55
-rw-r--r--www/node24/Makefile8
-rw-r--r--www/node24/pkg-plist55
-rw-r--r--www/node25/Makefile113
-rw-r--r--www/node25/Makefile.version1
-rw-r--r--www/node25/distinfo3
-rw-r--r--www/node25/files/patch-armv712
-rw-r--r--www/node25/files/patch-deps-openssl-openssl-cl_no_asm.gypi17
-rw-r--r--www/node25/files/patch-deps-openssl-openssl_no_asm.gypi11
-rw-r--r--www/node25/files/patch-deps-v8-src-base-platform-platform-freebsd.cc13
-rw-r--r--www/node25/files/patch-deps-v8-src-codegen-arm-cpu-arm.cc18
-rw-r--r--www/node25/files/patch-deps-v8-src-codegen-ppc-constants-ppc.h20
-rw-r--r--www/node25/files/patch-deps-v8-src-libsampler-sampler.cc13
-rw-r--r--www/node25/files/patch-deps_v8_include_v8config.h11
-rw-r--r--www/node25/files/patch-deps_v8_src_base_platform_platform-posix.cc12
-rw-r--r--www/node25/files/patch-node.gypi12
-rw-r--r--www/node25/files/patch-src-cares_wrap.h11
-rw-r--r--www/node25/pkg-descr2
-rw-r--r--www/node25/pkg-message7
-rw-r--r--www/node25/pkg-plist112
-rw-r--r--www/npm-node25/Makefile5
-rw-r--r--www/owncloud/Makefile2
-rw-r--r--www/owncloud/distinfo6
-rw-r--r--www/owncloud/pkg-plist62
-rw-r--r--www/p5-Firefox-Marionette/Makefile2
-rw-r--r--www/p5-Firefox-Marionette/distinfo6
-rw-r--r--www/p5-HTTP-Message/Makefile2
-rw-r--r--www/p5-HTTP-Message/distinfo6
-rw-r--r--www/p5-libwww/Makefile4
-rw-r--r--www/p5-libwww/distinfo6
-rw-r--r--www/privatebin/Makefile2
-rw-r--r--www/privatebin/distinfo6
-rw-r--r--www/privatebin/pkg-plist2
-rw-r--r--www/py-adblock/Makefile2
-rw-r--r--www/py-aiostream/Makefile4
-rw-r--r--www/py-aiostream/distinfo6
-rw-r--r--www/py-aiostream/files/patch-pyproject.toml11
-rw-r--r--www/py-azure-common/Makefile2
-rw-r--r--www/py-bootstrap-flask/Makefile3
-rw-r--r--www/py-bootstrap-flask/distinfo6
-rw-r--r--www/py-boto3/Makefile2
-rw-r--r--www/py-boto3/distinfo6
-rw-r--r--www/py-calibreweb/Makefile4
-rw-r--r--www/py-dj51-django-choices-field/Makefile2
-rw-r--r--www/py-dj51-django-choices-field/distinfo6
-rw-r--r--www/py-dj51-django-cors-headers/Makefile2
-rw-r--r--www/py-dj51-django-cors-headers/distinfo6
-rw-r--r--www/py-dj51-django-cors-headers/files/patch-pyproject.toml24
-rw-r--r--www/py-dj51-django-filter/Makefile3
-rw-r--r--www/py-dj51-django-htmx/Makefile2
-rw-r--r--www/py-dj51-django-htmx/distinfo6
-rw-r--r--www/py-dj51-django-rich/Makefile2
-rw-r--r--www/py-dj51-django-rich/distinfo6
-rw-r--r--www/py-dj51-django-rich/files/patch-pyproject.toml24
-rw-r--r--www/py-dj51-drf-spectacular-sidecar/Makefile2
-rw-r--r--www/py-dj51-drf-spectacular-sidecar/distinfo6
-rw-r--r--www/py-dj51-strawberry-graphql-django/Makefile6
-rw-r--r--www/py-dj51-strawberry-graphql-django/distinfo6
-rw-r--r--www/py-dj52-django-choices-field/Makefile2
-rw-r--r--www/py-dj52-django-choices-field/distinfo6
-rw-r--r--www/py-django-allauth/Makefile2
-rw-r--r--www/py-django-allauth/distinfo6
-rw-r--r--www/py-django-choices-field/Makefile2
-rw-r--r--www/py-django-choices-field/distinfo6
-rw-r--r--www/py-django-cors-headers/Makefile4
-rw-r--r--www/py-django-cors-headers/distinfo6
-rw-r--r--www/py-django-cors-headers/files/patch-pyproject.toml24
-rw-r--r--www/py-django-filter/Makefile2
-rw-r--r--www/py-django-htmx/Makefile4
-rw-r--r--www/py-django-htmx/distinfo6
-rw-r--r--www/py-django-otp/Makefile2
-rw-r--r--www/py-django-otp/distinfo6
-rw-r--r--www/py-django-rich/Makefile2
-rw-r--r--www/py-django-rich/distinfo6
-rw-r--r--www/py-django-rich/files/patch-pyproject.toml24
-rw-r--r--www/py-django-tasks/Makefile5
-rw-r--r--www/py-django-tasks/distinfo6
-rw-r--r--www/py-django-tinymce/Makefile6
-rw-r--r--www/py-django-tinymce/distinfo6
-rw-r--r--www/py-django-tinymce/files/patch-pyproject.toml17
-rw-r--r--www/py-django-unfold/Makefile4
-rw-r--r--www/py-django-unfold/distinfo6
-rw-r--r--www/py-drf-spectacular-sidecar/Makefile2
-rw-r--r--www/py-drf-spectacular-sidecar/distinfo6
-rw-r--r--www/py-drf-yasg/Makefile10
-rw-r--r--www/py-drf-yasg/distinfo6
-rw-r--r--www/py-drf-yasg/files/patch-pyproject.toml22
-rw-r--r--www/py-flask-limiter3/Makefile29
-rw-r--r--www/py-flask-limiter3/distinfo3
-rw-r--r--www/py-flask-limiter3/pkg-descr4
-rw-r--r--www/py-google-api-core/Makefile2
-rw-r--r--www/py-google-api-core/distinfo6
-rw-r--r--www/py-google-cloud-appengine-logging/Makefile3
-rw-r--r--www/py-google-cloud-appengine-logging/distinfo6
-rw-r--r--www/py-google-cloud-audit-log/Makefile2
-rw-r--r--www/py-google-cloud-audit-log/distinfo6
-rw-r--r--www/py-google-cloud-bigtable/Makefile2
-rw-r--r--www/py-google-cloud-bigtable/distinfo6
-rw-r--r--www/py-google-cloud-compute/Makefile3
-rw-r--r--www/py-google-cloud-compute/distinfo6
-rw-r--r--www/py-google-cloud-dlp/Makefile3
-rw-r--r--www/py-google-cloud-dlp/distinfo6
-rw-r--r--www/py-google-cloud-speech/Makefile3
-rw-r--r--www/py-google-cloud-speech/distinfo6
-rw-r--r--www/py-google-cloud-vision/Makefile3
-rw-r--r--www/py-google-cloud-vision/distinfo6
-rw-r--r--www/py-planet-auth/Makefile2
-rw-r--r--www/py-planet-auth/distinfo6
-rw-r--r--www/py-strawberry-graphql-django/Makefile6
-rw-r--r--www/py-strawberry-graphql-django/distinfo6
-rw-r--r--www/py-uvicorn/Makefile2
-rw-r--r--www/py-uvicorn/distinfo6
-rw-r--r--www/py-wagtail-transfer/Makefile7
-rw-r--r--www/py-wagtail-transfer/distinfo6
-rw-r--r--www/py-wagtail/Makefile4
-rw-r--r--www/py-wagtail/distinfo6
-rw-r--r--www/py-wagtail/files/patch-pyproject.toml11
-rw-r--r--www/qutebrowser/Makefile2
-rw-r--r--www/qutebrowser/distinfo6
-rw-r--r--www/rubygem-async-http/Makefile3
-rw-r--r--www/rubygem-async-http/distinfo6
-rw-r--r--www/rubygem-async-rest/Makefile4
-rw-r--r--www/rubygem-async-rest/distinfo6
-rw-r--r--www/rubygem-faraday-gitlab/Makefile3
-rw-r--r--www/rubygem-faraday-typhoeus-gitlab/Makefile3
-rw-r--r--www/rubygem-gon-rails-gitlab/Makefile4
-rw-r--r--www/rubygem-gon-rails-gitlab/distinfo6
-rw-r--r--www/rubygem-jquery-rails/Makefile2
-rw-r--r--www/rubygem-jquery-rails/distinfo6
-rw-r--r--www/rubygem-kamal/Makefile2
-rw-r--r--www/rubygem-kamal/distinfo6
-rw-r--r--www/rubygem-protocol-http/Makefile2
-rw-r--r--www/rubygem-protocol-http/distinfo6
-rw-r--r--www/rubygem-protocol-url/Makefile18
-rw-r--r--www/rubygem-protocol-url/distinfo3
-rw-r--r--www/rubygem-protocol-url/pkg-descr1
-rw-r--r--www/rubygem-selenium-webdriver/Makefile4
-rw-r--r--www/rubygem-selenium-webdriver/distinfo6
-rw-r--r--www/rubygem-selenium-webdriver/files/patch-gemspec14
-rw-r--r--www/rubygem-thruster/Makefile2
-rw-r--r--www/rubygem-thruster/distinfo6
-rw-r--r--www/rubygem-typhoeus-gitlab/Makefile20
-rw-r--r--www/rubygem-typhoeus-gitlab/distinfo3
-rw-r--r--www/rubygem-typhoeus-gitlab/pkg-descr8
-rw-r--r--www/tinymce/Makefile2
-rw-r--r--www/tinymce/distinfo6
-rw-r--r--www/ungoogled-chromium/Makefile2
-rw-r--r--www/ungoogled-chromium/distinfo14
-rw-r--r--www/vigil/Makefile443
-rw-r--r--www/vigil/distinfo886
-rw-r--r--www/yarn-node25/Makefile5
234 files changed, 3498 insertions, 6577 deletions
diff --git a/www/Makefile b/www/Makefile
index 8a0a86640272..ee3d4855e4f0 100644
--- a/www/Makefile
+++ b/www/Makefile
@@ -127,6 +127,7 @@
SUBDIR += codeigniter
SUBDIR += colly
SUBDIR += coppermine
+ SUBDIR += corepack
SUBDIR += cpp-httplib
SUBDIR += cpr
SUBDIR += crawl
@@ -205,6 +206,7 @@
SUBDIR += flickcurl
SUBDIR += foreign-cdm
SUBDIR += forgejo
+ SUBDIR += forgejo-lts
SUBDIR += forgejo7
SUBDIR += formication
SUBDIR += foswiki
@@ -507,6 +509,7 @@
SUBDIR += node20
SUBDIR += node22
SUBDIR += node24
+ SUBDIR += node25
SUBDIR += nostromo
SUBDIR += novnc
SUBDIR += npc
@@ -514,6 +517,7 @@
SUBDIR += npm-node20
SUBDIR += npm-node22
SUBDIR += npm-node24
+ SUBDIR += npm-node25
SUBDIR += nyxt
SUBDIR += oatpp
SUBDIR += oauth2-proxy
@@ -1759,6 +1763,7 @@
SUBDIR += py-flask-jwt
SUBDIR += py-flask-jwt-extended
SUBDIR += py-flask-limiter
+ SUBDIR += py-flask-limiter3
SUBDIR += py-flask-login
SUBDIR += py-flask-marshmallow
SUBDIR += py-flask-migrate
@@ -2340,6 +2345,7 @@
SUBDIR += rubygem-protocol-http1
SUBDIR += rubygem-protocol-http2
SUBDIR += rubygem-protocol-rack
+ SUBDIR += rubygem-protocol-url
SUBDIR += rubygem-protocol-websocket
SUBDIR += rubygem-puma
SUBDIR += rubygem-puma-gitlab
@@ -2487,6 +2493,7 @@
SUBDIR += rubygem-turbolinks
SUBDIR += rubygem-turbolinks-source
SUBDIR += rubygem-typhoeus
+ SUBDIR += rubygem-typhoeus-gitlab
SUBDIR += rubygem-typhoeus14
SUBDIR += rubygem-uglifier
SUBDIR += rubygem-underscore-rails
@@ -2728,6 +2735,7 @@
SUBDIR += yarn-node20
SUBDIR += yarn-node22
SUBDIR += yarn-node24
+ SUBDIR += yarn-node25
SUBDIR += yarr
SUBDIR += yaws
SUBDIR += you-get
diff --git a/www/chromium/Makefile b/www/chromium/Makefile
index 4cb87a8968f2..d6395882148e 100644
--- a/www/chromium/Makefile
+++ b/www/chromium/Makefile
@@ -1,5 +1,5 @@
PORTNAME= chromium
-PORTVERSION= 141.0.7390.107
+PORTVERSION= 141.0.7390.122
PULSEMV= 16
PULSEV= ${PULSEMV}.1
CATEGORIES= www wayland
diff --git a/www/chromium/distinfo b/www/chromium/distinfo
index 844c0f212c1f..5a6bbb99bf33 100644
--- a/www/chromium/distinfo
+++ b/www/chromium/distinfo
@@ -1,7 +1,7 @@
-TIMESTAMP = 1761063786
-SHA256 (chromium-141.0.7390.107.tar.xz) = f2b0a5d6e40ab4a26536b5026a2d3196ac4753fc143e3c237a54763fe16a265b
-SIZE (chromium-141.0.7390.107.tar.xz) = 7516836980
+TIMESTAMP = 1761573488
+SHA256 (chromium-141.0.7390.122.tar.xz) = 2abd5f1175328a15bea8363d6105c584fe499d513c88e26cae64de27fe0eae49
+SIZE (chromium-141.0.7390.122.tar.xz) = 7522322892
SHA256 (pulseaudio-16.1.tar.gz) = 027266c62f2a84422ac45fa721a649508f0f1628fb1fd9242315ac54ce2d7c92
SIZE (pulseaudio-16.1.tar.gz) = 2763111
-SHA256 (chromium-141.0.7390.107-testdata.tar.xz) = b41080dd68a15e1513d46284b29e33b913af6723e2c92026ab8ec2dc9cb90fb5
-SIZE (chromium-141.0.7390.107-testdata.tar.xz) = 925395556
+SHA256 (chromium-141.0.7390.122-testdata.tar.xz) = 17b55dfc98c00126e09e82dbfa4732e5780edd175c715550192edf11aebeb865
+SIZE (chromium-141.0.7390.122-testdata.tar.xz) = 925396512
diff --git a/www/corepack/Makefile b/www/corepack/Makefile
new file mode 100644
index 000000000000..a9167edffde6
--- /dev/null
+++ b/www/corepack/Makefile
@@ -0,0 +1,27 @@
+PORTNAME= corepack
+PORTVERSION= 0.34.1
+DISTVERSIONPREFIX= v
+CATEGORIES= www
+MASTER_SITES= https://github.com/nodejs/corepack/releases/download/v${PORTVERSION}/
+DIST_SUBDIR= corepack/${PORTVERSION}
+DISTNAME= corepack
+
+MAINTAINER= sunpoet@FreeBSD.org
+COMMENT= Zero-runtime-dependency package acting as bridge between Node projects and their package managers
+WWW= https://github.com/nodejs/corepack
+
+LICENSE= MIT
+LICENSE_FILE= ${WRKSRC}/package/LICENSE.md
+
+USES= tar:tgz
+
+NO_ARCH= yes
+NO_BUILD= yes
+NO_WRKSUBDIR= yes
+
+do-install:
+ ${MKDIR} ${STAGEDIR}${PREFIX}/lib/node_modules/
+ cd ${WRKSRC}/package/ && ${COPYTREE_SHARE} . ${STAGEDIR}${PREFIX}/lib/node_modules/corepack/
+ ${LN} -s ../lib/node_modules/corepack/dist/corepack.js ${STAGEDIR}${PREFIX}/bin/corepack
+
+.include <bsd.port.mk>
diff --git a/www/corepack/distinfo b/www/corepack/distinfo
new file mode 100644
index 000000000000..7b6ab0a21af7
--- /dev/null
+++ b/www/corepack/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1760838164
+SHA256 (corepack/0.34.1/corepack.tgz) = 306cff21cdbca7336f54060830a293710d4b6ede4d8b607bc7884aeccf081333
+SIZE (corepack/0.34.1/corepack.tgz) = 227508
diff --git a/www/corepack/pkg-descr b/www/corepack/pkg-descr
new file mode 100644
index 000000000000..bac445daebd3
--- /dev/null
+++ b/www/corepack/pkg-descr
@@ -0,0 +1,4 @@
+Corepack is a zero-runtime-dependency Node.js script that acts as a bridge
+between Node.js projects and the package managers they are intended to be used
+with during development. In practical terms, Corepack lets you use Yarn, npm,
+and pnpm without having to install them.
diff --git a/www/corepack/pkg-plist b/www/corepack/pkg-plist
new file mode 100644
index 000000000000..a4f78bc1b7ed
--- /dev/null
+++ b/www/corepack/pkg-plist
@@ -0,0 +1,55 @@
+bin/corepack
+lib/node_modules/corepack/CHANGELOG.md
+lib/node_modules/corepack/LICENSE.md
+lib/node_modules/corepack/README.md
+@(,,755) lib/node_modules/corepack/dist/corepack.js
+lib/node_modules/corepack/dist/lib/corepack.cjs
+@(,,755) lib/node_modules/corepack/dist/npm.js
+@(,,755) lib/node_modules/corepack/dist/npx.js
+@(,,755) lib/node_modules/corepack/dist/pnpm.js
+@(,,755) lib/node_modules/corepack/dist/pnpx.js
+@(,,755) lib/node_modules/corepack/dist/yarn.js
+@(,,755) lib/node_modules/corepack/dist/yarnpkg.js
+lib/node_modules/corepack/package.json
+@(,,755) lib/node_modules/corepack/shims/corepack
+@(,,755) lib/node_modules/corepack/shims/corepack.cmd
+@(,,755) lib/node_modules/corepack/shims/corepack.ps1
+lib/node_modules/corepack/shims/nodewin/corepack
+lib/node_modules/corepack/shims/nodewin/corepack.cmd
+lib/node_modules/corepack/shims/nodewin/corepack.ps1
+lib/node_modules/corepack/shims/nodewin/npm
+lib/node_modules/corepack/shims/nodewin/npm.cmd
+lib/node_modules/corepack/shims/nodewin/npm.ps1
+lib/node_modules/corepack/shims/nodewin/npx
+lib/node_modules/corepack/shims/nodewin/npx.cmd
+lib/node_modules/corepack/shims/nodewin/npx.ps1
+lib/node_modules/corepack/shims/nodewin/pnpm
+lib/node_modules/corepack/shims/nodewin/pnpm.cmd
+lib/node_modules/corepack/shims/nodewin/pnpm.ps1
+lib/node_modules/corepack/shims/nodewin/pnpx
+lib/node_modules/corepack/shims/nodewin/pnpx.cmd
+lib/node_modules/corepack/shims/nodewin/pnpx.ps1
+lib/node_modules/corepack/shims/nodewin/yarn
+lib/node_modules/corepack/shims/nodewin/yarn.cmd
+lib/node_modules/corepack/shims/nodewin/yarn.ps1
+lib/node_modules/corepack/shims/nodewin/yarnpkg
+lib/node_modules/corepack/shims/nodewin/yarnpkg.cmd
+lib/node_modules/corepack/shims/nodewin/yarnpkg.ps1
+@(,,755) lib/node_modules/corepack/shims/npm
+@(,,755) lib/node_modules/corepack/shims/npm.cmd
+@(,,755) lib/node_modules/corepack/shims/npm.ps1
+@(,,755) lib/node_modules/corepack/shims/npx
+@(,,755) lib/node_modules/corepack/shims/npx.cmd
+@(,,755) lib/node_modules/corepack/shims/npx.ps1
+@(,,755) lib/node_modules/corepack/shims/pnpm
+@(,,755) lib/node_modules/corepack/shims/pnpm.cmd
+@(,,755) lib/node_modules/corepack/shims/pnpm.ps1
+@(,,755) lib/node_modules/corepack/shims/pnpx
+@(,,755) lib/node_modules/corepack/shims/pnpx.cmd
+@(,,755) lib/node_modules/corepack/shims/pnpx.ps1
+@(,,755) lib/node_modules/corepack/shims/yarn
+@(,,755) lib/node_modules/corepack/shims/yarn.cmd
+@(,,755) lib/node_modules/corepack/shims/yarn.ps1
+@(,,755) lib/node_modules/corepack/shims/yarnpkg
+@(,,755) lib/node_modules/corepack/shims/yarnpkg.cmd
+@(,,755) lib/node_modules/corepack/shims/yarnpkg.ps1
diff --git a/www/deno-dom/Makefile b/www/deno-dom/Makefile
index 9a523dc578ea..ad7dbe1176bf 100644
--- a/www/deno-dom/Makefile
+++ b/www/deno-dom/Makefile
@@ -1,7 +1,7 @@
PORTNAME= deno-dom
DISTVERSIONPREFIX= v
-DISTVERSION= 0.1.48
-PORTREVISION= 9
+DISTVERSION= 0.1.56
+PORTREVISION= 0
CATEGORIES= www
MAINTAINER= yuri@FreeBSD.org
@@ -21,72 +21,60 @@ USES= cargo
USE_GITHUB= yes
GH_ACCOUNT= b-fuze
-CARGO_CRATES= autocfg-1.4.0 \
- bitflags-2.6.0 \
- byteorder-1.5.0 \
- cfg-if-1.0.0 \
+CARGO_CRATES= bitflags-2.10.0 \
+ cfg-if-1.0.4 \
futf-0.1.5 \
getrandom-0.1.16 \
- getrandom-0.2.15 \
html5ever-0.25.2 \
- itoa-1.0.11 \
- libc-0.2.161 \
- lock_api-0.4.12 \
- log-0.4.22 \
+ itoa-1.0.15 \
+ libc-0.2.177 \
+ lock_api-0.4.14 \
+ log-0.4.28 \
mac-0.1.1 \
markup5ever-0.10.1 \
- memchr-2.7.4 \
+ memchr-2.7.6 \
new_debug_unreachable-1.0.6 \
- once_cell-1.20.2 \
- parking_lot-0.12.3 \
- parking_lot_core-0.9.10 \
+ parking_lot-0.12.5 \
+ parking_lot_core-0.9.12 \
phf-0.8.0 \
phf_codegen-0.8.0 \
phf_generator-0.8.0 \
- phf_generator-0.10.0 \
+ phf_generator-0.11.3 \
phf_shared-0.8.0 \
- phf_shared-0.10.0 \
- ppv-lite86-0.2.20 \
+ phf_shared-0.11.3 \
+ ppv-lite86-0.2.21 \
precomputed-hash-0.1.1 \
- proc-macro2-1.0.89 \
- quote-1.0.37 \
+ proc-macro2-1.0.103 \
+ quote-1.0.41 \
rand-0.7.3 \
rand-0.8.5 \
rand_chacha-0.2.2 \
- rand_chacha-0.3.1 \
rand_core-0.5.1 \
rand_core-0.6.4 \
rand_hc-0.2.0 \
rand_pcg-0.2.1 \
- redox_syscall-0.5.7 \
- ryu-1.0.18 \
+ redox_syscall-0.5.18 \
+ ryu-1.0.20 \
scopeguard-1.2.0 \
- serde-1.0.214 \
- serde_derive-1.0.214 \
- serde_json-1.0.132 \
+ serde-1.0.228 \
+ serde_core-1.0.228 \
+ serde_derive-1.0.228 \
+ serde_json-1.0.145 \
siphasher-0.3.11 \
- smallvec-1.13.2 \
+ siphasher-1.0.1 \
+ smallvec-1.15.1 \
static_vcruntime-2.0.0 \
- string_cache-0.8.7 \
- string_cache_codegen-0.5.2 \
+ string_cache-0.8.9 \
+ string_cache_codegen-0.5.4 \
syn-1.0.109 \
- syn-2.0.87 \
+ syn-2.0.108 \
tendril-0.4.3 \
- unicode-ident-1.0.13 \
+ unicode-ident-1.0.20 \
utf-8-0.7.6 \
wasi-0.9.0+wasi-snapshot-preview1 \
- wasi-0.11.0+wasi-snapshot-preview1 \
- windows-targets-0.52.6 \
- windows_aarch64_gnullvm-0.52.6 \
- windows_aarch64_msvc-0.52.6 \
- windows_i686_gnu-0.52.6 \
- windows_i686_gnullvm-0.52.6 \
- windows_i686_msvc-0.52.6 \
- windows_x86_64_gnu-0.52.6 \
- windows_x86_64_gnullvm-0.52.6 \
- windows_x86_64_msvc-0.52.6 \
- zerocopy-0.7.35 \
- zerocopy-derive-0.7.35
+ windows-link-0.2.1 \
+ zerocopy-0.8.27 \
+ zerocopy-derive-0.8.27
PLIST_FILES= lib/deno-plugins/deno_dom.so
diff --git a/www/deno-dom/distinfo b/www/deno-dom/distinfo
index 49b904ab86e3..d68d26bb053b 100644
--- a/www/deno-dom/distinfo
+++ b/www/deno-dom/distinfo
@@ -1,70 +1,60 @@
-TIMESTAMP = 1730627011
-SHA256 (rust/crates/autocfg-1.4.0.crate) = ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26
-SIZE (rust/crates/autocfg-1.4.0.crate) = 17712
-SHA256 (rust/crates/bitflags-2.6.0.crate) = b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de
-SIZE (rust/crates/bitflags-2.6.0.crate) = 45357
-SHA256 (rust/crates/byteorder-1.5.0.crate) = 1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b
-SIZE (rust/crates/byteorder-1.5.0.crate) = 23288
-SHA256 (rust/crates/cfg-if-1.0.0.crate) = baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd
-SIZE (rust/crates/cfg-if-1.0.0.crate) = 7934
+TIMESTAMP = 1761522379
+SHA256 (rust/crates/bitflags-2.10.0.crate) = 812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3
+SIZE (rust/crates/bitflags-2.10.0.crate) = 48427
+SHA256 (rust/crates/cfg-if-1.0.4.crate) = 9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801
+SIZE (rust/crates/cfg-if-1.0.4.crate) = 9360
SHA256 (rust/crates/futf-0.1.5.crate) = df420e2e84819663797d1ec6544b13c5be84629e7bb00dc960d6917db2987843
SIZE (rust/crates/futf-0.1.5.crate) = 11344
SHA256 (rust/crates/getrandom-0.1.16.crate) = 8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce
SIZE (rust/crates/getrandom-0.1.16.crate) = 25077
-SHA256 (rust/crates/getrandom-0.2.15.crate) = c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7
-SIZE (rust/crates/getrandom-0.2.15.crate) = 37163
SHA256 (rust/crates/html5ever-0.25.2.crate) = e5c13fb08e5d4dfc151ee5e88bae63f7773d61852f3bdc73c9f4b9e1bde03148
SIZE (rust/crates/html5ever-0.25.2.crate) = 72780
-SHA256 (rust/crates/itoa-1.0.11.crate) = 49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b
-SIZE (rust/crates/itoa-1.0.11.crate) = 10563
-SHA256 (rust/crates/libc-0.2.161.crate) = 8e9489c2807c139ffd9c1794f4af0ebe86a828db53ecdc7fea2111d0fed085d1
-SIZE (rust/crates/libc-0.2.161.crate) = 765389
-SHA256 (rust/crates/lock_api-0.4.12.crate) = 07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17
-SIZE (rust/crates/lock_api-0.4.12.crate) = 27591
-SHA256 (rust/crates/log-0.4.22.crate) = a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24
-SIZE (rust/crates/log-0.4.22.crate) = 44027
+SHA256 (rust/crates/itoa-1.0.15.crate) = 4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c
+SIZE (rust/crates/itoa-1.0.15.crate) = 11231
+SHA256 (rust/crates/libc-0.2.177.crate) = 2874a2af47a2325c2001a6e6fad9b16a53b802102b528163885171cf92b15976
+SIZE (rust/crates/libc-0.2.177.crate) = 792045
+SHA256 (rust/crates/lock_api-0.4.14.crate) = 224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965
+SIZE (rust/crates/lock_api-0.4.14.crate) = 29249
+SHA256 (rust/crates/log-0.4.28.crate) = 34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432
+SIZE (rust/crates/log-0.4.28.crate) = 51131
SHA256 (rust/crates/mac-0.1.1.crate) = c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4
SIZE (rust/crates/mac-0.1.1.crate) = 4838
SHA256 (rust/crates/markup5ever-0.10.1.crate) = a24f40fb03852d1cdd84330cddcaf98e9ec08a7b7768e952fad3b4cf048ec8fd
SIZE (rust/crates/markup5ever-0.10.1.crate) = 34668
-SHA256 (rust/crates/memchr-2.7.4.crate) = 78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3
-SIZE (rust/crates/memchr-2.7.4.crate) = 96670
+SHA256 (rust/crates/memchr-2.7.6.crate) = f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273
+SIZE (rust/crates/memchr-2.7.6.crate) = 97616
SHA256 (rust/crates/new_debug_unreachable-1.0.6.crate) = 650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086
SIZE (rust/crates/new_debug_unreachable-1.0.6.crate) = 2582
-SHA256 (rust/crates/once_cell-1.20.2.crate) = 1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775
-SIZE (rust/crates/once_cell-1.20.2.crate) = 33394
-SHA256 (rust/crates/parking_lot-0.12.3.crate) = f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27
-SIZE (rust/crates/parking_lot-0.12.3.crate) = 41860
-SHA256 (rust/crates/parking_lot_core-0.9.10.crate) = 1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8
-SIZE (rust/crates/parking_lot_core-0.9.10.crate) = 32406
+SHA256 (rust/crates/parking_lot-0.12.5.crate) = 93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a
+SIZE (rust/crates/parking_lot-0.12.5.crate) = 46735
+SHA256 (rust/crates/parking_lot_core-0.9.12.crate) = 2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1
+SIZE (rust/crates/parking_lot_core-0.9.12.crate) = 34110
SHA256 (rust/crates/phf-0.8.0.crate) = 3dfb61232e34fcb633f43d12c58f83c1df82962dcdfa565a4e866ffc17dafe12
SIZE (rust/crates/phf-0.8.0.crate) = 3902
SHA256 (rust/crates/phf_codegen-0.8.0.crate) = cbffee61585b0411840d3ece935cce9cb6321f01c45477d30066498cd5e1a815
SIZE (rust/crates/phf_codegen-0.8.0.crate) = 3192
SHA256 (rust/crates/phf_generator-0.8.0.crate) = 17367f0cc86f2d25802b2c26ee58a7b23faeccf78a396094c13dced0d0182526
SIZE (rust/crates/phf_generator-0.8.0.crate) = 7604
-SHA256 (rust/crates/phf_generator-0.10.0.crate) = 5d5285893bb5eb82e6aaf5d59ee909a06a16737a8970984dd7746ba9283498d6
-SIZE (rust/crates/phf_generator-0.10.0.crate) = 7525
+SHA256 (rust/crates/phf_generator-0.11.3.crate) = 3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d
+SIZE (rust/crates/phf_generator-0.11.3.crate) = 15431
SHA256 (rust/crates/phf_shared-0.8.0.crate) = c00cf8b9eafe68dde5e9eaa2cef8ee84a9336a47d566ec55ca16589633b65af7
SIZE (rust/crates/phf_shared-0.8.0.crate) = 2860
-SHA256 (rust/crates/phf_shared-0.10.0.crate) = b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096
-SIZE (rust/crates/phf_shared-0.10.0.crate) = 4095
-SHA256 (rust/crates/ppv-lite86-0.2.20.crate) = 77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04
-SIZE (rust/crates/ppv-lite86-0.2.20.crate) = 22478
+SHA256 (rust/crates/phf_shared-0.11.3.crate) = 67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5
+SIZE (rust/crates/phf_shared-0.11.3.crate) = 15199
+SHA256 (rust/crates/ppv-lite86-0.2.21.crate) = 85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9
+SIZE (rust/crates/ppv-lite86-0.2.21.crate) = 22522
SHA256 (rust/crates/precomputed-hash-0.1.1.crate) = 925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c
SIZE (rust/crates/precomputed-hash-0.1.1.crate) = 1640
-SHA256 (rust/crates/proc-macro2-1.0.89.crate) = f139b0662de085916d1fb67d2b4169d1addddda1919e696f3252b740b629986e
-SIZE (rust/crates/proc-macro2-1.0.89.crate) = 49446
-SHA256 (rust/crates/quote-1.0.37.crate) = b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af
-SIZE (rust/crates/quote-1.0.37.crate) = 28558
+SHA256 (rust/crates/proc-macro2-1.0.103.crate) = 5ee95bc4ef87b8d5ba32e8b7714ccc834865276eab0aed5c9958d00ec45f49e8
+SIZE (rust/crates/proc-macro2-1.0.103.crate) = 60024
+SHA256 (rust/crates/quote-1.0.41.crate) = ce25767e7b499d1b604768e7cde645d14cc8584231ea6b295e9c9eb22c02e1d1
+SIZE (rust/crates/quote-1.0.41.crate) = 31408
SHA256 (rust/crates/rand-0.7.3.crate) = 6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03
SIZE (rust/crates/rand-0.7.3.crate) = 112246
SHA256 (rust/crates/rand-0.8.5.crate) = 34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404
SIZE (rust/crates/rand-0.8.5.crate) = 87113
SHA256 (rust/crates/rand_chacha-0.2.2.crate) = f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402
SIZE (rust/crates/rand_chacha-0.2.2.crate) = 13267
-SHA256 (rust/crates/rand_chacha-0.3.1.crate) = e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88
-SIZE (rust/crates/rand_chacha-0.3.1.crate) = 15251
SHA256 (rust/crates/rand_core-0.5.1.crate) = 90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19
SIZE (rust/crates/rand_core-0.5.1.crate) = 21116
SHA256 (rust/crates/rand_core-0.6.4.crate) = ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c
@@ -73,63 +63,49 @@ SHA256 (rust/crates/rand_hc-0.2.0.crate) = ca3129af7b92a17112d59ad498c6f81eaf463
SIZE (rust/crates/rand_hc-0.2.0.crate) = 11670
SHA256 (rust/crates/rand_pcg-0.2.1.crate) = 16abd0c1b639e9eb4d7c50c0b8100b0d0f849be2349829c740fe8e6eb4816429
SIZE (rust/crates/rand_pcg-0.2.1.crate) = 11291
-SHA256 (rust/crates/redox_syscall-0.5.7.crate) = 9b6dfecf2c74bce2466cabf93f6664d6998a69eb21e39f4207930065b27b771f
-SIZE (rust/crates/redox_syscall-0.5.7.crate) = 26249
-SHA256 (rust/crates/ryu-1.0.18.crate) = f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f
-SIZE (rust/crates/ryu-1.0.18.crate) = 47713
+SHA256 (rust/crates/redox_syscall-0.5.18.crate) = ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d
+SIZE (rust/crates/redox_syscall-0.5.18.crate) = 30747
+SHA256 (rust/crates/ryu-1.0.20.crate) = 28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f
+SIZE (rust/crates/ryu-1.0.20.crate) = 48738
SHA256 (rust/crates/scopeguard-1.2.0.crate) = 94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49
SIZE (rust/crates/scopeguard-1.2.0.crate) = 11619
-SHA256 (rust/crates/serde-1.0.214.crate) = f55c3193aca71c12ad7890f1785d2b73e1b9f63a0bbc353c08ef26fe03fc56b5
-SIZE (rust/crates/serde-1.0.214.crate) = 78523
-SHA256 (rust/crates/serde_derive-1.0.214.crate) = de523f781f095e28fa605cdce0f8307e451cc0fd14e2eb4cd2e98a355b147766
-SIZE (rust/crates/serde_derive-1.0.214.crate) = 56630
-SHA256 (rust/crates/serde_json-1.0.132.crate) = d726bfaff4b320266d395898905d0eba0345aae23b54aee3a737e260fd46db03
-SIZE (rust/crates/serde_json-1.0.132.crate) = 150549
+SHA256 (rust/crates/serde-1.0.228.crate) = 9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e
+SIZE (rust/crates/serde-1.0.228.crate) = 83652
+SHA256 (rust/crates/serde_core-1.0.228.crate) = 41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad
+SIZE (rust/crates/serde_core-1.0.228.crate) = 63111
+SHA256 (rust/crates/serde_derive-1.0.228.crate) = d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79
+SIZE (rust/crates/serde_derive-1.0.228.crate) = 59605
+SHA256 (rust/crates/serde_json-1.0.145.crate) = 402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c
+SIZE (rust/crates/serde_json-1.0.145.crate) = 155748
SHA256 (rust/crates/siphasher-0.3.11.crate) = 38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d
SIZE (rust/crates/siphasher-0.3.11.crate) = 10442
-SHA256 (rust/crates/smallvec-1.13.2.crate) = 3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67
-SIZE (rust/crates/smallvec-1.13.2.crate) = 35216
+SHA256 (rust/crates/siphasher-1.0.1.crate) = 56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d
+SIZE (rust/crates/siphasher-1.0.1.crate) = 10351
+SHA256 (rust/crates/smallvec-1.15.1.crate) = 67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03
+SIZE (rust/crates/smallvec-1.15.1.crate) = 38116
SHA256 (rust/crates/static_vcruntime-2.0.0.crate) = 954e3e877803def9dc46075bf4060147c55cd70db97873077232eae0269dc89b
SIZE (rust/crates/static_vcruntime-2.0.0.crate) = 7040
-SHA256 (rust/crates/string_cache-0.8.7.crate) = f91138e76242f575eb1d3b38b4f1362f10d3a43f47d182a5b359af488a02293b
-SIZE (rust/crates/string_cache-0.8.7.crate) = 16655
-SHA256 (rust/crates/string_cache_codegen-0.5.2.crate) = 6bb30289b722be4ff74a408c3cc27edeaad656e06cb1fe8fa9231fa59c728988
-SIZE (rust/crates/string_cache_codegen-0.5.2.crate) = 8156
+SHA256 (rust/crates/string_cache-0.8.9.crate) = bf776ba3fa74f83bf4b63c3dcbbf82173db2632ed8452cb2d891d33f459de70f
+SIZE (rust/crates/string_cache-0.8.9.crate) = 17408
+SHA256 (rust/crates/string_cache_codegen-0.5.4.crate) = c711928715f1fe0fe509c53b43e993a9a557babc2d0a3567d0a3006f1ac931a0
+SIZE (rust/crates/string_cache_codegen-0.5.4.crate) = 9406
SHA256 (rust/crates/syn-1.0.109.crate) = 72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237
SIZE (rust/crates/syn-1.0.109.crate) = 237611
-SHA256 (rust/crates/syn-2.0.87.crate) = 25aa4ce346d03a6dcd68dd8b4010bcb74e54e62c90c573f394c46eae99aba32d
-SIZE (rust/crates/syn-2.0.87.crate) = 278076
+SHA256 (rust/crates/syn-2.0.108.crate) = da58917d35242480a05c2897064da0a80589a2a0476c9a3f2fdc83b53502e917
+SIZE (rust/crates/syn-2.0.108.crate) = 301754
SHA256 (rust/crates/tendril-0.4.3.crate) = d24a120c5fc464a3458240ee02c299ebcb9d67b5249c8848b09d639dca8d7bb0
SIZE (rust/crates/tendril-0.4.3.crate) = 37210
-SHA256 (rust/crates/unicode-ident-1.0.13.crate) = e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe
-SIZE (rust/crates/unicode-ident-1.0.13.crate) = 43279
+SHA256 (rust/crates/unicode-ident-1.0.20.crate) = 462eeb75aeb73aea900253ce739c8e18a67423fadf006037cd3ff27e82748a06
+SIZE (rust/crates/unicode-ident-1.0.20.crate) = 47416
SHA256 (rust/crates/utf-8-0.7.6.crate) = 09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9
SIZE (rust/crates/utf-8-0.7.6.crate) = 10422
SHA256 (rust/crates/wasi-0.9.0+wasi-snapshot-preview1.crate) = cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519
SIZE (rust/crates/wasi-0.9.0+wasi-snapshot-preview1.crate) = 31521
-SHA256 (rust/crates/wasi-0.11.0+wasi-snapshot-preview1.crate) = 9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423
-SIZE (rust/crates/wasi-0.11.0+wasi-snapshot-preview1.crate) = 28131
-SHA256 (rust/crates/windows-targets-0.52.6.crate) = 9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973
-SIZE (rust/crates/windows-targets-0.52.6.crate) = 6403
-SHA256 (rust/crates/windows_aarch64_gnullvm-0.52.6.crate) = 32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3
-SIZE (rust/crates/windows_aarch64_gnullvm-0.52.6.crate) = 435718
-SHA256 (rust/crates/windows_aarch64_msvc-0.52.6.crate) = 09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469
-SIZE (rust/crates/windows_aarch64_msvc-0.52.6.crate) = 832615
-SHA256 (rust/crates/windows_i686_gnu-0.52.6.crate) = 8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b
-SIZE (rust/crates/windows_i686_gnu-0.52.6.crate) = 880402
-SHA256 (rust/crates/windows_i686_gnullvm-0.52.6.crate) = 0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66
-SIZE (rust/crates/windows_i686_gnullvm-0.52.6.crate) = 475940
-SHA256 (rust/crates/windows_i686_msvc-0.52.6.crate) = 240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66
-SIZE (rust/crates/windows_i686_msvc-0.52.6.crate) = 901163
-SHA256 (rust/crates/windows_x86_64_gnu-0.52.6.crate) = 147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78
-SIZE (rust/crates/windows_x86_64_gnu-0.52.6.crate) = 836363
-SHA256 (rust/crates/windows_x86_64_gnullvm-0.52.6.crate) = 24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d
-SIZE (rust/crates/windows_x86_64_gnullvm-0.52.6.crate) = 435707
-SHA256 (rust/crates/windows_x86_64_msvc-0.52.6.crate) = 589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec
-SIZE (rust/crates/windows_x86_64_msvc-0.52.6.crate) = 832564
-SHA256 (rust/crates/zerocopy-0.7.35.crate) = 1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0
-SIZE (rust/crates/zerocopy-0.7.35.crate) = 152645
-SHA256 (rust/crates/zerocopy-derive-0.7.35.crate) = fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e
-SIZE (rust/crates/zerocopy-derive-0.7.35.crate) = 37829
-SHA256 (b-fuze-deno-dom-v0.1.48_GH0.tar.gz) = 80e9113b34a9bcd4274a0137f1f59fef437c3c4f9dca6dc039c34085e324b444
-SIZE (b-fuze-deno-dom-v0.1.48_GH0.tar.gz) = 800058
+SHA256 (rust/crates/windows-link-0.2.1.crate) = f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5
+SIZE (rust/crates/windows-link-0.2.1.crate) = 6133
+SHA256 (rust/crates/zerocopy-0.8.27.crate) = 0894878a5fa3edfd6da3f88c4805f4c8558e2b996227a3d864f47fe11e38282c
+SIZE (rust/crates/zerocopy-0.8.27.crate) = 252663
+SHA256 (rust/crates/zerocopy-derive-0.8.27.crate) = 88d2b8d9c68ad2b9e4340d7832716a4d21a22a1154777ad56ea55c51a9cf3831
+SIZE (rust/crates/zerocopy-derive-0.8.27.crate) = 89827
+SHA256 (b-fuze-deno-dom-v0.1.56_GH0.tar.gz) = 3f7e2ad4e6e3a9426fe20d2294a038993d8c87babfd4721158079f15faa2a6be
+SIZE (b-fuze-deno-dom-v0.1.56_GH0.tar.gz) = 793497
diff --git a/www/domoticz-devel/Makefile b/www/domoticz-devel/Makefile
index 1ef50995004d..7c005e59e30d 100644
--- a/www/domoticz-devel/Makefile
+++ b/www/domoticz-devel/Makefile
@@ -1,6 +1,5 @@
PORTNAME= domoticz
-PORTVERSION= 2024.7.${DOMOTICZ_REL}
-PORTREVISION= 6
+DISTVERSION= 2025.1.${DOMOTICZ_REL}
CATEGORIES= www
PKGNAMESUFFIX= -devel
@@ -11,6 +10,8 @@ WWW= https://www.domoticz.com
LICENSE= GPLv3
LICENSE_FILE= ${WRKSRC}/License.txt
+BUILD_DEPENDS= ${LOCALBASE}/include/jwt-cpp/jwt.h:devel/jwt-cpp
+
LIB_DEPENDS= libcurl.so:ftp/curl \
libboost_thread.so:devel/boost-libs \
libjsoncpp.so:devel/jsoncpp \
@@ -20,7 +21,19 @@ USES= cmake compiler:c++11-lang cpe lua:53 minizip pkgconfig sqlite \
ssl
USE_GITHUB= yes
-GH_TAGNAME= a580a6b1f
+GH_TAGNAME= f560a4c3e
+USE_RC_SUBR= domoticz
+
+CMAKE_OFF= GIT_SUBMODULE \
+ USE_BUILTIN_JSONCPP \
+ USE_BUILTIN_MINIZIP \
+ USE_BUILTIN_MQTT \
+ USE_LUA_STATIC \
+ USE_STATIC_BOOST \
+ USE_STATIC_OPENZWAVE \
+ USE_BUILTIN_JWTCPP
+
+CMAKE_INSTALL_PREFIX= ${PREFIX}/domoticz
CONFLICTS_INSTALL= domoticz-[234]*
@@ -29,23 +42,12 @@ EXTRACT_AFTER_ARGS= --exclude ${GH_PROJECT_DEFAULT}-${GH_TAGNAME_EXTRACT}/hardwa
# This hack is to get rid of dependency of git while building
# the package.
-DOMOTICZ_REL= 16186
-DOMOTICZ_TS= 1724156096
+DOMOTICZ_REL= 16796
+DOMOTICZ_TS= 1759127674
-USE_RC_SUBR= domoticz
USERS= domoticz
GROUPS= domoticz
-CMAKE_INSTALL_PREFIX= ${PREFIX}/domoticz
-
-CMAKE_OFF= GIT_SUBMODULE \
- USE_BUILTIN_JSONCPP \
- USE_BUILTIN_MINIZIP \
- USE_BUILTIN_MQTT \
- USE_LUA_STATIC \
- USE_STATIC_BOOST \
- USE_STATIC_OPENZWAVE
-
OPTIONS_DEFINE= PRECOMP PYTHON
OPTIONS_DEFAULT= PRECOMP PYTHON
OPTIONS_SUB= yes
@@ -53,15 +55,13 @@ OPTIONS_SUB= yes
PRECOMP_DESC= Enable usage of precompiled header to speed build time
PYTHON_DESC= Enable support for Python Plugins
-PYTHON_USES= python:3.9+
-PYTHON_CMAKE_BOOL= USE_PYTHON
-
PRECOMP_CMAKE_BOOL= USE_PRECOMPILED_HEADER
+PYTHON_USES= python:3.10+
+PYTHON_CMAKE_BOOL= USE_PYTHON
+
post-patch:
- @${REINPLACE_CMD} -e '/find_package/s| system||' \
- -e '/target_link_libraries/s| Boost::system||' \
- -e "s,\/opt,${PREFIX},g" ${WRKSRC}/CMakeLists.txt
+ @${REINPLACE_CMD} -e "s,\/opt,${PREFIX},g" ${WRKSRC}/CMakeLists.txt
@${REINPLACE_CMD} -e "s,XXXPREFIXXXX,${PREFIX}/domoticz,g" ${WRKSRC}/CMakeLists.txt
@${REINPLACE_CMD} -e "/^ADD_PRECOMPILED_HEADER/ d" ${WRKSRC}/CMakeLists.txt
@${REINPLACE_CMD} -e "s/\(#define APPVERSION\)\(.*\)/\1 ${DOMOTICZ_REL}/" ${WRKSRC}/appversion.h
diff --git a/www/domoticz-devel/distinfo b/www/domoticz-devel/distinfo
index 1fad467198f1..ec37f47f5a0f 100644
--- a/www/domoticz-devel/distinfo
+++ b/www/domoticz-devel/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1724226922
-SHA256 (domoticz-domoticz-2024.7.16186-a580a6b1f_GH0.tar.gz) = d560cd6d3bd1e001c233984557f3d44eec9f1225cd5122ea539a34a267b37c82
-SIZE (domoticz-domoticz-2024.7.16186-a580a6b1f_GH0.tar.gz) = 13259908
+TIMESTAMP = 1759208420
+SHA256 (domoticz-domoticz-2025.1.16796-f560a4c3e_GH0.tar.gz) = 1961a8fd57ff409389eb2fd229ff45bcfbd2fa91ef2f6f5e5860b421e84edd3a
+SIZE (domoticz-domoticz-2025.1.16796-f560a4c3e_GH0.tar.gz) = 13416528
diff --git a/www/domoticz-devel/files/patch-CMakeLists.txt b/www/domoticz-devel/files/patch-CMakeLists.txt
index 8af00b057502..1ce50b1dc88c 100644
--- a/www/domoticz-devel/files/patch-CMakeLists.txt
+++ b/www/domoticz-devel/files/patch-CMakeLists.txt
@@ -1,6 +1,6 @@
---- CMakeLists.txt.orig 2023-08-08 16:14:54.744411000 +0200
-+++ CMakeLists.txt 2023-08-08 16:16:31.615968000 +0200
-@@ -488,19 +488,11 @@
+--- CMakeLists.txt.orig 2025-09-30 07:02:39.478040000 +0200
++++ CMakeLists.txt 2025-09-30 07:06:07.767455000 +0200
+@@ -511,19 +511,11 @@
ENDIF(HAVE_LINUX_SPI_H)
ENDIF(INCLUDE_SPI)
@@ -14,14 +14,14 @@
-ADD_CUSTOM_TARGET(revisiontag ALL)
-
-# creates appversion.h using cmake script
--ADD_CUSTOM_COMMAND(TARGET revisiontag COMMAND ${CMAKE_COMMAND}
+-ADD_CUSTOM_COMMAND(TARGET revisiontag PRE_BUILD COMMAND ${CMAKE_COMMAND}
- -DSOURCE_DIR=${CMAKE_CURRENT_SOURCE_DIR}
- -P ${CMAKE_CURRENT_SOURCE_DIR}/getgit.cmake)
-
MESSAGE(STATUS "###########################")
MESSAGE(STATUS "Compiling Revision #${ProjectRevision}")
MESSAGE(STATUS "###########################")
-@@ -510,10 +502,6 @@
+@@ -533,10 +525,6 @@
set (domoticz_VERSION_MINOR 1)
set (domoticz_VERSION_PATCH ${ProjectRevision})
@@ -32,16 +32,16 @@
TEST_BIG_ENDIAN(BIGENDIAN)
IF(${BIGENDIAN})
ADD_DEFINITIONS(-DIS_BIG_ENDIAN)
-@@ -796,7 +784,7 @@
- SET(CPACK_SOURCE_PACKAGE_FILE_NAME "${domoticz}-dev")
- SET(CPACK_PACKAGING_INSTALL_PREFIX "/")
- SET(CPACK_PACKAGE_DEFAULT_LOCATION "/opt/${CPACK_PACKAGE_NAME}")
--SET(CPACK_PACKAGE_EXECUTABLES "domoticz;Home Automation System (Domotica).")
-+SET(CPACK_PACKAGE_EXECUTABLES "domoticz;Home Automation System (Domoticz).")
+@@ -838,7 +826,7 @@
- #set(CPACK_DEB_COMPONENT_INSTALL TRUE)
- SET(CPACK_DEBIAN_ARCHITECTURE ${CMAKE_SYSTEM_PROCESSOR})
-@@ -807,6 +795,9 @@
+ SET(CPACK_GENERATOR "DEB")
+ SET(CPACK_PACKAGE_NAME "domoticz")
+-SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "${domoticz}-Home Automation System (Domotica).")
++SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "${domoticz}-Home Automation System (Domoticz).")
+ SET(CPACK_PACKAGE_VENDOR "Domoticz.com")
+ SET(CPACK_PACKAGE_CONTACT "info@domoticz.com")
+ SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/License.txt")
+@@ -865,6 +853,9 @@
set(CMAKE_INSTALL_PREFIX "/opt/${CPACK_PACKAGE_NAME}" CACHE PATH "Install path prefix, prepended onto install directories." FORCE)
ENDIF(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
@@ -51,8 +51,10 @@
install(TARGETS domoticz DESTINATION ${CMAKE_INSTALL_PREFIX})
install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/www DESTINATION ${CMAKE_INSTALL_PREFIX})
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/License.txt DESTINATION ${CMAKE_INSTALL_PREFIX})
-@@ -815,4 +806,3 @@
+@@ -873,6 +864,3 @@
install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/scripts DESTINATION ${CMAKE_INSTALL_PREFIX} USE_SOURCE_PERMISSIONS)
install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/plugins DESTINATION ${CMAKE_INSTALL_PREFIX})
install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/dzVents DESTINATION ${CMAKE_INSTALL_PREFIX})
--install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/updatedomo DESTINATION ${CMAKE_INSTALL_PREFIX} PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ GROUP_EXECUTE GROUP_READ)
+-IF(OpenZWave)
+- install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/Config DESTINATION ${CMAKE_INSTALL_PREFIX})
+-ENDIF()
diff --git a/www/domoticz-devel/files/patch-DelayedLink.h b/www/domoticz-devel/files/patch-DelayedLink.h
deleted file mode 100644
index 170d0a951184..000000000000
--- a/www/domoticz-devel/files/patch-DelayedLink.h
+++ /dev/null
@@ -1,45 +0,0 @@
---- hardware/plugins/DelayedLink.h.orig 2023-12-24 09:47:32.242841000 +0100
-+++ hardware/plugins/DelayedLink.h 2023-12-24 09:50:22.343807000 +0100
-@@ -149,7 +149,9 @@
- DECLARE_PYTHON_SYMBOL(PyObject*, Py_CompileString, const char* COMMA const char* COMMA int);
- DECLARE_PYTHON_SYMBOL(PyObject*, PyEval_EvalCode, PyObject* COMMA PyObject* COMMA PyObject*);
- DECLARE_PYTHON_SYMBOL(long, PyType_GetFlags, PyTypeObject*);
-+#if PY_VERSION_HEX < 0x03090000
- DECLARE_PYTHON_SYMBOL(void, _Py_Dealloc, PyObject*);
-+#endif
-
- SharedLibraryProxy() {
- Py_None = nullptr;
-@@ -288,7 +290,9 @@
- RESOLVE_PYTHON_SYMBOL(Py_CompileString);
- RESOLVE_PYTHON_SYMBOL(PyEval_EvalCode);
- RESOLVE_PYTHON_SYMBOL(PyType_GetFlags);
-+#if PY_VERSION_HEX < 0x03090000
- RESOLVE_PYTHON_SYMBOL(_Py_Dealloc);
-+#endif
- }
- }
- };
-@@ -521,6 +525,9 @@
- # define _Py_DEC_REFTOTAL
- # endif
- # endif
-+# ifndef _Py_Dealloc
-+# define _Py_Dealloc
-+# endif
- #endif
- #if PY_VERSION_HEX >= 0x030800f0
- static inline void py3__Py_INCREF(PyObject* op)
-@@ -559,10 +566,12 @@
- }
- #endif
- }
-+#if PY_VERSION_HEX < 0x03090000
- else
- {
- _Py_Dealloc(op);
- }
-+#endif
- }
-
- #undef Py_DECREF
diff --git a/www/domoticz-devel/files/patch-asio-deadline_timer b/www/domoticz-devel/files/patch-asio-deadline_timer
deleted file mode 100644
index ffb192872cf7..000000000000
--- a/www/domoticz-devel/files/patch-asio-deadline_timer
+++ /dev/null
@@ -1,20 +0,0 @@
---- webserver/cWebem.h.orig 2024-07-13 14:59:31 UTC
-+++ webserver/cWebem.h
-@@ -1,6 +1,7 @@
- #pragma once
-
- #include <boost/asio.hpp>
-+#include <boost/asio/deadline_timer.hpp>
- #include <boost/thread.hpp>
- #include "server.hpp"
- #include "session_store.hpp"
---- webserver/connection.hpp.orig 2024-07-13 14:59:31 UTC
-+++ webserver/connection.hpp
-@@ -12,6 +12,7 @@
- #define HTTP_CONNECTION_HPP
-
- #include <boost/asio.hpp>
-+#include <boost/asio/deadline_timer.hpp>
- #include <deque>
- #include <fstream>
- #include "reply.hpp"
diff --git a/www/domoticz-devel/files/patch-pr6252 b/www/domoticz-devel/files/patch-pr6252
deleted file mode 100644
index 34c4efd3f4e4..000000000000
--- a/www/domoticz-devel/files/patch-pr6252
+++ /dev/null
@@ -1,2178 +0,0 @@
-Fix for boost 1.87
-
-Removed the diff for the msbuild project files, didn't apply cleanly and not relevant anyway.
-This will merged in the next stable of domoticz.
-
-Pullrequest: https://github.com/domoticz/domoticz/pull/6252
-Patch: https://patch-diff.githubusercontent.com/raw/domoticz/domoticz/pull/6252.patch-diff
-
-diff --git hardware/ASyncSerial.cpp hardware/ASyncSerial.cpp
-index 52c950d..6147cdb 100644
---- hardware/ASyncSerial.cpp
-+++ hardware/ASyncSerial.cpp
-@@ -54,7 +54,7 @@ public:
- {
- }
-
-- boost::asio::io_service io; ///< Io service object
-+ boost::asio::io_context io; ///< Io service object
- boost::asio::serial_port port; ///< Serial port object
- boost::thread backgroundThread; ///< Thread that runs read/write operations
- bool open{ false }; ///< True if port open
-@@ -117,10 +117,10 @@ void AsyncSerial::open(const std::string& devname, unsigned int baud_rate,
- throw;
- }
-
-- pimpl->io.reset();
-+ pimpl->io.restart();
-
-- // This gives some work to the io_service before it is started
-- pimpl->io.post([this] { return doRead(); });
-+ // This gives some work to the io_context before it is started
-+ boost::asio::post(pimpl->io, [this] { return doRead(); });
-
- boost::thread t([p = &pimpl->io] { p->run(); });
- pimpl->backgroundThread.swap(t);
-@@ -149,10 +149,10 @@ void AsyncSerial::openOnlyBaud(const std::string& devname, unsigned int baud_rat
- throw;
- }
-
-- pimpl->io.reset();
-+ pimpl->io.restart();
-
-- //This gives some work to the io_service before it is started
-- pimpl->io.post([this] { return doRead(); });
-+ //This gives some work to the io_context before it is started
-+ boost::asio::post(pimpl->io, [this] { return doRead(); });
-
- boost::thread t([p = &pimpl->io] { p->run(); });
- pimpl->backgroundThread.swap(t);
-@@ -176,9 +176,9 @@ void AsyncSerial::close()
- if(!isOpen()) return;
-
- pimpl->open = false;
-- pimpl->io.post([this] { doClose(); });
-+ boost::asio::post(pimpl->io, [this] { doClose(); });
- pimpl->backgroundThread.join();
-- pimpl->io.reset();
-+ pimpl->io.restart();
- if(errorStatus())
- {
- throw(boost::system::system_error(boost::system::error_code(),
-@@ -192,7 +192,7 @@ void AsyncSerial::write(const char *data, size_t size)
- std::lock_guard<std::mutex> l(pimpl->writeQueueMutex);
- pimpl->writeQueue.insert(pimpl->writeQueue.end(),data,data+size);
- }
-- pimpl->io.post([this] { doWrite(); });
-+ boost::asio::post(pimpl->io, [this] { doWrite(); });
- }
-
- void AsyncSerial::write(const std::string &data)
-@@ -201,7 +201,7 @@ void AsyncSerial::write(const std::string &data)
- std::lock_guard<std::mutex> l(pimpl->writeQueueMutex);
- pimpl->writeQueue.insert(pimpl->writeQueue.end(), data.c_str(), data.c_str()+data.size());
- }
-- pimpl->io.post([this] { doWrite(); });
-+ boost::asio::post(pimpl->io, [this] { doWrite(); });
- }
-
- void AsyncSerial::write(const std::vector<char>& data)
-@@ -211,7 +211,7 @@ void AsyncSerial::write(const std::vector<char>& data)
- pimpl->writeQueue.insert(pimpl->writeQueue.end(),data.begin(),
- data.end());
- }
-- pimpl->io.post([this] { doWrite(); });
-+ boost::asio::post(pimpl->io, [this] { doWrite(); });
- }
-
- void AsyncSerial::writeString(const std::string& s)
-@@ -220,7 +220,7 @@ void AsyncSerial::writeString(const std::string& s)
- std::lock_guard<std::mutex> l(pimpl->writeQueueMutex);
- pimpl->writeQueue.insert(pimpl->writeQueue.end(),s.begin(),s.end());
- }
-- pimpl->io.post([this] { doWrite(); });
-+ boost::asio::post(pimpl->io, [this] { doWrite(); });
- }
-
- void AsyncSerial::doRead()
-diff --git hardware/ASyncSerial.h hardware/ASyncSerial.h
-index 0a51ef0..de83f8a 100644
---- hardware/ASyncSerial.h
-+++ hardware/ASyncSerial.h
-@@ -123,27 +123,27 @@ class AsyncSerial : private domoticz::noncopyable
-
- /**
- * Callback called to start an asynchronous read operation.
-- * This callback is called by the io_service in the spawned thread.
-+ * This callback is called by the io_context in the spawned thread.
- */
- void doRead();
-
- /**
- * Callback called at the end of the asynchronous operation.
-- * This callback is called by the io_service in the spawned thread.
-+ * This callback is called by the io_context in the spawned thread.
- */
- void readEnd(const boost::system::error_code &error, size_t bytes_transferred);
-
- /**
- * Callback called to start an asynchronous write operation.
- * If it is already in progress, does nothing.
-- * This callback is called by the io_service in the spawned thread.
-+ * This callback is called by the io_context in the spawned thread.
- */
- void doWrite();
-
- /**
- * Callback called at the end of an asynchronuous write operation,
- * if there is more data to write, restarts a new write operation.
-- * This callback is called by the io_service in the spawned thread.
-+ * This callback is called by the io_context in the spawned thread.
- */
- void writeEnd(const boost::system::error_code &error);
-
-diff --git hardware/ASyncTCP.cpp hardware/ASyncTCP.cpp
-index a375561..7c3b536 100644
---- hardware/ASyncTCP.cpp
-+++ hardware/ASyncTCP.cpp
-@@ -4,213 +4,241 @@
- #include <boost/system/error_code.hpp> // for error_code
- #include "../main/Logger.h"
-
--struct hostent;
--
- #define MAX_TCP_BUFFER_SIZE 4096
-
--#ifndef WIN32
-- #include <unistd.h> //gethostbyname
--#endif
--
- #define STATUS_OK(err) !err
--
--ASyncTCP::ASyncTCP(const bool secure)
-+#define STATUS_ERR(err) err
-+
-+ASyncTCP::ASyncTCP(const bool secure) :
-+ m_Tcpwork(boost::asio::make_work_guard(m_io_context))
-+ , m_Socket(m_io_context)
-+ , m_Resolver(m_io_context)
-+ , m_ReconnectTimer(m_io_context)
-+ , m_TimeoutTimer(m_io_context)
-+ , m_SendStrand(m_io_context)
- #ifdef WWW_ENABLE_SSL
-- : mSecure(secure)
-+ , m_bSecure(secure)
- #endif
- {
- m_pRXBuffer = new uint8_t[MAX_TCP_BUFFER_SIZE];
- #ifdef WWW_ENABLE_SSL
- mContext.set_verify_mode(boost::asio::ssl::verify_none);
-- if (mSecure)
-+ if (m_bSecure)
- {
-- mSslSocket.reset(new boost::asio::ssl::stream<boost::asio::ip::tcp::socket>(mIos, mContext));
-+ m_SslSocket.reset(new boost::asio::ssl::stream<boost::asio::ip::tcp::socket>(m_io_context, mContext));
- }
- #endif
- }
-
- ASyncTCP::~ASyncTCP()
- {
-- assert(mTcpthread == nullptr);
-- mIsTerminating = true;
-- if (mTcpthread)
-+ assert(m_Tcpthread == nullptr);
-+ m_bIsTerminating = true;
-+ if (m_Tcpthread)
- {
- //This should never happen. terminate() never called!!
-- _log.Log(LOG_ERROR, "ASyncTCP: Workerthread not closed. terminate() never called!!!");
-- mIos.stop();
-- if (mTcpthread)
-+ _log.Log(LOG_ERROR, "ASyncTCP: Worker thread not closed. terminate() never called!!!");
-+ m_io_context.stop();
-+ if (m_Tcpthread)
- {
-- mTcpthread->join();
-- mTcpthread.reset();
-+ m_Tcpthread->join();
-+ m_Tcpthread.reset();
- }
- }
- if (m_pRXBuffer != nullptr)
- delete[] m_pRXBuffer;
- }
-
--void ASyncTCP::SetReconnectDelay(int32_t Delay)
-+void ASyncTCP::SetReconnectDelay(const int32_t Delay)
- {
-- mReconnectDelay = Delay;
-+ m_iReconnectDelay = Delay;
- }
-
- void ASyncTCP::connect(const std::string& ip, uint16_t port)
- {
-- assert(!mSocket.is_open());
-- if (mSocket.is_open())
-+ assert(!m_Socket.is_open());
-+ if (m_Socket.is_open())
- {
- _log.Log(LOG_ERROR, "ASyncTCP: connect called while socket is still open. !!!");
- terminate();
- }
-
-- // RK: We reset mIos here because it might have been stopped in terminate()
-- mIos.reset();
-- // RK: After the reset, we need to provide it work anew
-- mTcpwork = std::make_shared<boost::asio::io_service::work>(mIos);
-- if (!mTcpthread)
-- mTcpthread = std::make_shared<std::thread>([p = &mIos] { p->run(); });
--
-- mIp = ip;
-- mPort = port;
-+ m_IP = ip;
-+ m_Port = port;
- std::string port_str = std::to_string(port);
-- boost::asio::ip::tcp::resolver::query query(ip, port_str);
- timeout_start_timer();
-- mResolver.async_resolve(query, [this](auto &&err, auto &&iter) { cb_resolve_done(err, iter); });
-+
-+ m_Resolver.async_resolve(
-+ ip, port_str,
-+ [this](const boost::system::error_code& error, const boost::asio::ip::tcp::resolver::results_type& endpoints) {
-+ handle_resolve(error, endpoints);
-+ }
-+ );
-+
-+ // RK: We restart m_io_context here because it might have been stopped in terminate()
-+ m_io_context.restart();
-+ // RK: After the reset, we need to provide it work anew
-+ m_Tcpwork.reset();
-+ m_Tcpwork.emplace(boost::asio::make_work_guard(m_io_context));
-+ if (!m_Tcpthread)
-+ m_Tcpthread = std::make_shared<std::thread>([p = &m_io_context] { p->run(); });
- }
-
--void ASyncTCP::cb_resolve_done(const boost::system::error_code& error, boost::asio::ip::tcp::resolver::iterator endpoint_iterator)
-+void ASyncTCP::handle_resolve(const boost::system::error_code& error, const boost::asio::ip::tcp::resolver::results_type &endpoints)
- {
-- if (mIsTerminating) return;
-+ if (m_bIsTerminating) return;
-
-- if (STATUS_OK(error))
-- {
-- connect_start(endpoint_iterator);
-- }
-- else
-+ if (STATUS_ERR(error))
- {
- process_error(error);
-+ return;
- }
--}
--
--void ASyncTCP::connect_start(boost::asio::ip::tcp::resolver::iterator& endpoint_iterator)
--{
-- if (mIsConnected) return;
--
-- mEndPoint = *endpoint_iterator++;
-+ if (m_bIsConnected) return;
-
- timeout_start_timer();
-+
- #ifdef WWW_ENABLE_SSL
-- if (mSecure)
-+ if (m_bSecure)
- {
- // we reset the ssl socket, because the ssl context needs to be reinitialized after a reconnect
-- mSslSocket.reset(new boost::asio::ssl::stream<boost::asio::ip::tcp::socket>(mIos, mContext));
-- mSslSocket->lowest_layer().async_connect(mEndPoint, [this, endpoint_iterator](auto &&err) mutable { cb_connect_done(err, endpoint_iterator); });
-+ m_SslSocket.reset(new boost::asio::ssl::stream<boost::asio::ip::tcp::socket>(m_io_context, mContext));
-+ boost::asio::async_connect(m_SslSocket->lowest_layer(), endpoints,
-+ [this](const boost::system::error_code& error, const boost::asio::ip::tcp::endpoint& endpoint)
-+ {
-+ handle_connect(error, endpoint);
-+ }
-+ );
- }
- else
- #endif
- {
-- mSocket.async_connect(mEndPoint, [this, endpoint_iterator](auto &&err) mutable { cb_connect_done(err, endpoint_iterator); });
-+ boost::asio::async_connect(m_Socket, endpoints,
-+ [this](const boost::system::error_code& error, const boost::asio::ip::tcp::endpoint& endpoint)
-+ {
-+ handle_connect(error, endpoint);
-+ }
-+ );
- }
- }
-
--void ASyncTCP::cb_connect_done(const boost::system::error_code& error, boost::asio::ip::tcp::resolver::iterator &endpoint_iterator)
-+void ASyncTCP::handle_connect(const boost::system::error_code& error, const boost::asio::ip::tcp::endpoint& /*endpoint*/)
- {
-- if (mIsTerminating) return;
-+ if (m_bIsTerminating) return;
-
-- if (STATUS_OK(error))
-+ if (STATUS_ERR(error))
- {
-+ process_error(error);
-+ return;
-+ }
- #ifdef WWW_ENABLE_SSL
-- if (mSecure)
-- {
-- timeout_start_timer();
-- mSslSocket->async_handshake(boost::asio::ssl::stream_base::client, [this](auto &&err) { cb_handshake_done(err); });
-- }
-- else
--#endif
-- {
-- process_connection();
-- }
-+ if (m_bSecure)
-+ {
-+ timeout_start_timer();
-+ m_SslSocket->async_handshake(boost::asio::ssl::stream_base::client,
-+ [this](const boost::system::error_code& error) {
-+ cb_handshake_done(error);
-+ }
-+ );
- }
-- else
-+ else
-+#endif
- {
-- if (endpoint_iterator != boost::asio::ip::tcp::resolver::iterator())
-- {
-- // The connection failed. Try the next endpoint in the list.
-- connect_start(endpoint_iterator);
-- return;
-- }
-- process_error(error);
-+ process_connection();
- }
- }
-
- #ifdef WWW_ENABLE_SSL
- void ASyncTCP::cb_handshake_done(const boost::system::error_code& error)
- {
-- if (mIsTerminating) return;
-+ if (m_bIsTerminating) return;
-
-- if (STATUS_OK(error))
-- {
-- process_connection();
-- }
-- else
-+ if (STATUS_ERR(error))
- {
- process_error(error);
-+ return;
- }
-+ process_connection();
-+#endif
- }
-+
-+void ASyncTCP::process_connection()
-+{
-+ m_bIsConnected = true;
-+#ifdef WWW_ENABLE_SSL
-+
-+ if (!m_bSecure)
- #endif
-+ {
-+ // RK: only if non-secure
-+ boost::asio::socket_base::keep_alive option(true);
-+ m_Socket.set_option(option);
-+ }
-+ OnConnect();
-+ do_read_start();
-+ do_write_start();
-+}
-
- void ASyncTCP::reconnect_start_timer()
- {
-- if (mIsReconnecting) return;
-+ if (m_bIsReconnecting) return;
-
-- if (mReconnectDelay != 0)
-+ if (m_iReconnectDelay != 0)
- {
-- mIsReconnecting = true;
--
-- mReconnectTimer.expires_from_now(boost::posix_time::seconds(mReconnectDelay));
-- mReconnectTimer.async_wait([this](auto &&err) { cb_reconnect_start(err); });
-+ m_bIsReconnecting = true;
-+
-+ m_ReconnectTimer.expires_from_now(boost::posix_time::seconds(m_iReconnectDelay));
-+ m_ReconnectTimer.async_wait(
-+ [this](const boost::system::error_code& error) {
-+ cb_reconnect_start(error);
-+ }
-+ );
- }
- }
-
- void ASyncTCP::cb_reconnect_start(const boost::system::error_code& error)
- {
-- mIsReconnecting = false;
-- mReconnectTimer.cancel();
-- mTimeoutTimer.cancel();
-+ m_bIsReconnecting = false;
-+ m_ReconnectTimer.cancel();
-+ m_TimeoutTimer.cancel();
-
-- if (mIsConnected) return;
-+ if (m_bIsConnected) return;
- if (error) return; // timer was cancelled
-
- do_close();
-- connect(mIp, mPort);
-+ connect(m_IP, m_Port);
- }
-
-
- void ASyncTCP::terminate(const bool silent)
- {
-- mIsTerminating = true;
-+ m_bIsTerminating = true;
- disconnect(silent);
-- mTcpwork.reset();
-- mIos.stop();
-- if (mTcpthread)
-+ m_Tcpwork.reset();
-+ m_io_context.stop();
-+ if (m_Tcpthread)
- {
-- mTcpthread->join();
-- mTcpthread.reset();
-+ m_Tcpthread->join();
-+ m_Tcpthread.reset();
- }
-- mIsReconnecting = false;
-- mIsConnected = false;
-- mWriteQ.clear();
-- mIsTerminating = false;
-+ m_bIsReconnecting = false;
-+ m_bIsConnected = false;
-+ m_WriteQ.clear();
-+ m_bIsTerminating = false;
- }
-
- void ASyncTCP::disconnect(const bool silent)
- {
-- mReconnectTimer.cancel();
-- mTimeoutTimer.cancel();
-- if (!mTcpthread) return;
-+ m_ReconnectTimer.cancel();
-+ m_TimeoutTimer.cancel();
-+ if (!m_Tcpthread) return;
-
- try
- {
-- mIos.post([this] { do_close(); });
-+ boost::asio::post(m_io_context,
-+ [this] {
-+ do_close();
-+ }
-+ );
- }
- catch (...)
- {
-@@ -223,62 +251,68 @@ void ASyncTCP::disconnect(const bool silent)
-
- void ASyncTCP::do_close()
- {
-- if (mIsReconnecting) {
-+ if (m_bIsReconnecting) {
- return;
- }
-- mReconnectTimer.cancel();
-- mTimeoutTimer.cancel();
-+ m_ReconnectTimer.cancel();
-+ m_TimeoutTimer.cancel();
- boost::system::error_code ec;
- #ifdef WWW_ENABLE_SSL
-- if (mSecure)
-+ if (m_bSecure)
- {
-- if (mSslSocket->lowest_layer().is_open())
-+ if (m_SslSocket->lowest_layer().is_open())
- {
-- mSslSocket->lowest_layer().shutdown(boost::asio::ip::tcp::socket::shutdown_both, ec);
-- mSslSocket->lowest_layer().close(ec);
-+ m_SslSocket->lowest_layer().shutdown(boost::asio::ip::tcp::socket::shutdown_both, ec);
-+ m_SslSocket->lowest_layer().close(ec);
- }
- }
- else
- #endif
- {
-- if (mSocket.is_open())
-+ if (m_Socket.is_open())
- {
-- mSocket.close(ec);
-+ m_Socket.close(ec);
- }
- }
- }
-
- void ASyncTCP::do_read_start()
- {
-- if (mIsTerminating) return;
-- if (!mIsConnected) return;
-+ if (m_bIsTerminating) return;
-+ if (!m_bIsConnected) return;
-
- timeout_start_timer();
- #ifdef WWW_ENABLE_SSL
-- if (mSecure)
-+ if (m_bSecure)
- {
-- mSslSocket->async_read_some(boost::asio::buffer(m_pRXBuffer, MAX_TCP_BUFFER_SIZE), [this](auto &&err, auto bytes) { cb_read_done(err, bytes); });
-+ m_SslSocket->async_read_some(boost::asio::buffer(m_pRXBuffer, MAX_TCP_BUFFER_SIZE),
-+ [this](const boost::system::error_code& error, size_t bytes_transferred) {
-+ cb_read_done(error, bytes_transferred);
-+ }
-+ );
- }
- else
- #endif
- {
-- mSocket.async_read_some(boost::asio::buffer(m_pRXBuffer, MAX_TCP_BUFFER_SIZE), [this](auto &&err, auto bytes) { cb_read_done(err, bytes); });
-+ m_Socket.async_read_some(boost::asio::buffer(m_pRXBuffer, MAX_TCP_BUFFER_SIZE),
-+ [this](const boost::system::error_code& error, size_t bytes_transferred) {
-+ cb_read_done(error, bytes_transferred);
-+ }
-+ );
- }
- }
-
- void ASyncTCP::cb_read_done(const boost::system::error_code& error, size_t bytes_transferred)
- {
-- if (mIsTerminating) return;
-+ if (m_bIsTerminating) return;
-
-- if (STATUS_OK(error))
-- {
-- OnData(m_pRXBuffer, bytes_transferred);
-- do_read_start();
-- }
-- else
-+ if (STATUS_ERR(error))
- {
- process_error(error);
-+ return;
- }
-+ OnData(m_pRXBuffer, bytes_transferred);
-+ do_read_start();
- }
-
- void ASyncTCP::write(const uint8_t* pData, size_t length)
-@@ -288,77 +322,66 @@ void ASyncTCP::write(const uint8_t* pData, size_t length)
-
- void ASyncTCP::write(const std::string& msg)
- {
-- if (!mTcpthread) return;
-+ if (!m_Tcpthread) return;
-
-- mSendStrand.post([this, msg]() { cb_write_queue(msg); });
-+ boost::asio::post(m_SendStrand, [this, msg]() { cb_write_queue(msg); });
- }
-
- void ASyncTCP::cb_write_queue(const std::string& msg)
- {
-- mWriteQ.push_back(msg);
-+ m_WriteQ.push_back(msg);
-
-- if (mWriteQ.size() == 1)
-+ if (m_WriteQ.size() == 1)
- do_write_start();
- }
-
- void ASyncTCP::do_write_start()
- {
-- if (mIsTerminating) return;
-- if (!mIsConnected) return;
-- if (mWriteQ.empty())
-+ if (m_bIsTerminating) return;
-+ if (!m_bIsConnected) return;
-+ if (m_WriteQ.empty())
- return;
-
- timeout_start_timer();
- #ifdef WWW_ENABLE_SSL
-- if (mSecure)
-+ if (m_bSecure)
- {
-- boost::asio::async_write(*mSslSocket, boost::asio::buffer(mWriteQ.front()), [this](auto &&err, auto) { cb_write_done(err); });
-+ boost::asio::async_write(*m_SslSocket, boost::asio::buffer(m_WriteQ.front()),
-+ [this](const boost::system::error_code& error, std::size_t length) {
-+ cb_write_done(error, length);
-+ }
-+ );
- }
- else
- #endif
- {
-- boost::asio::async_write(mSocket, boost::asio::buffer(mWriteQ.front()), [this](auto &&err, auto) { cb_write_done(err); });
-+ boost::asio::async_write(m_Socket, boost::asio::buffer(m_WriteQ.front()),
-+ [this](const boost::system::error_code& error, std::size_t length) {
-+ cb_write_done(error, length);
-+ }
-+ );
- }
- }
-
--void ASyncTCP::cb_write_done(const boost::system::error_code& error)
-+void ASyncTCP::cb_write_done(const boost::system::error_code& error, std::size_t /*length*/)
- {
-- if (mIsTerminating) return;
-+ if (m_bIsTerminating) return;
-
-- if (STATUS_OK(error))
-- {
-- mWriteQ.pop_front();
-- do_write_start();
-- }
-- else
-+ if (STATUS_ERR(error))
- {
- process_error(error);
-+ return;
- }
--}
--
--void ASyncTCP::process_connection()
--{
-- mIsConnected = true;
--#ifdef WWW_ENABLE_SSL
--
-- if (!mSecure)
--#endif
-- {
-- // RK: only if non-secure
-- boost::asio::socket_base::keep_alive option(true);
-- mSocket.set_option(option);
-- }
-- OnConnect();
-- do_read_start();
-+ m_WriteQ.pop_front();
- do_write_start();
- }
-
- void ASyncTCP::process_error(const boost::system::error_code& error)
- {
- do_close();
-- if (mIsConnected)
-+ if (m_bIsConnected)
- {
-- mIsConnected = false;
-+ m_bIsConnected = false;
- OnDisconnect();
- }
-
-@@ -369,20 +392,23 @@ void ASyncTCP::process_error(const boost::system::error_code& error)
- reconnect_start_timer();
- }
-
--/* timeout methods */
- void ASyncTCP::timeout_start_timer()
- {
-- if (0 == mTimeoutDelay) {
-+ if (0 == m_iTimeoutDelay) {
- return;
- }
- timeout_cancel_timer();
-- mTimeoutTimer.expires_from_now(boost::posix_time::seconds(mTimeoutDelay));
-- mTimeoutTimer.async_wait([this](auto &&err) { timeout_handler(err); });
-+ m_TimeoutTimer.expires_from_now(boost::posix_time::seconds(m_iTimeoutDelay));
-+ m_TimeoutTimer.async_wait(
-+ [this](const boost::system::error_code& error) {
-+ timeout_handler(error);
-+ }
-+ );
- }
-
- void ASyncTCP::timeout_cancel_timer()
- {
-- mTimeoutTimer.cancel();
-+ m_TimeoutTimer.cancel();
- }
-
- void ASyncTCP::timeout_handler(const boost::system::error_code& error)
-@@ -397,5 +423,5 @@ void ASyncTCP::timeout_handler(const boost::system::error_code& error)
-
- void ASyncTCP::SetTimeout(const uint32_t Timeout)
- {
-- mTimeoutDelay = Timeout;
-+ m_iTimeoutDelay = Timeout;
- }
-diff --git hardware/ASyncTCP.h hardware/ASyncTCP.h
-index cf859bb..a8b3ae2 100644
---- hardware/ASyncTCP.h
-+++ hardware/ASyncTCP.h
-@@ -3,39 +3,31 @@
- #include <stddef.h> // for size_t
- #include <deque> // for write queue
- #include <boost/asio/deadline_timer.hpp> // for deadline_timer
--#include <boost/asio/io_service.hpp> // for io_service
-+#include <boost/asio/io_context.hpp> // for io_context
- #include <boost/asio/strand.hpp> // for strand
- #include <boost/asio/ip/tcp.hpp> // for tcp, tcp::endpoint, tcp::s...
- #include <boost/asio/ssl.hpp> // for secure sockets
- #include <boost/asio/ssl/stream.hpp> // for secure sockets
- #include <exception> // for exception
-+#include <optional> // for optional
-
- #define ASYNCTCP_THREAD_NAME "ASyncTCP"
- #define DEFAULT_RECONNECT_TIME 30
- #define DEFAULT_TIMEOUT_TIME 60
-
--namespace boost
--{
-- namespace system
-- {
-- class error_code;
-- } // namespace system
--} // namespace boost
--
- class ASyncTCP
- {
-- protected:
-+protected:
- ASyncTCP(bool secure = false);
- virtual ~ASyncTCP();
--
-- void connect(const std::string &hostname, uint16_t port);
-+ void connect(const std::string& hostname, uint16_t port);
- void disconnect(bool silent = true);
-- void write(const std::string &msg);
-- void write(const uint8_t *pData, size_t length);
-- void SetReconnectDelay(int32_t Delay = DEFAULT_RECONNECT_TIME);
-+ void write(const std::string& msg);
-+ void write(const uint8_t* pData, size_t length);
-+ void SetReconnectDelay(const int32_t Delay = DEFAULT_RECONNECT_TIME);
- bool isConnected()
- {
-- return mIsConnected;
-+ return m_bIsConnected;
- };
- void terminate(bool silent = true);
- void SetTimeout(uint32_t Timeout = DEFAULT_TIMEOUT_TIME);
-@@ -43,65 +35,61 @@ class ASyncTCP
- // Callback interface to implement in derived classes
- virtual void OnConnect() = 0;
- virtual void OnDisconnect() = 0;
-- virtual void OnData(const uint8_t *pData, size_t length) = 0;
-- virtual void OnError(const boost::system::error_code &error) = 0;
--
-- boost::asio::io_service mIos; // protected to allow derived classes to attach timers etc.
-+ virtual void OnData(const uint8_t* pData, size_t length) = 0;
-+ virtual void OnError(const boost::system::error_code& error) = 0;
-
-- private:
-- void cb_resolve_done(const boost::system::error_code &err, boost::asio::ip::tcp::resolver::iterator endpoint_iterator);
-- void connect_start(boost::asio::ip::tcp::resolver::iterator &endpoint_iterator);
-- void cb_connect_done(const boost::system::error_code &error, boost::asio::ip::tcp::resolver::iterator &endpoint_iterator);
-+ boost::asio::io_context m_io_context; // protected to allow derived classes to attach timers etc.
-+private:
-+ void handle_resolve(const boost::system::error_code& ec, const boost::asio::ip::tcp::resolver::results_type &results);
-+ void handle_connect(const boost::system::error_code& error, const boost::asio::ip::tcp::endpoint& endpoint);
- #ifdef WWW_ENABLE_SSL
-- void cb_handshake_done(const boost::system::error_code &error);
-+ void cb_handshake_done(const boost::system::error_code& error);
- #endif
-
-- /* timeout methods */
- void timeout_start_timer();
- void timeout_cancel_timer();
- void reconnect_start_timer();
-- void timeout_handler(const boost::system::error_code &error);
-+ void timeout_handler(const boost::system::error_code& error);
-
-- void cb_reconnect_start(const boost::system::error_code &error);
-+ void cb_reconnect_start(const boost::system::error_code& error);
-
- void do_close();
-
- void do_read_start();
-- void cb_read_done(const boost::system::error_code &error, size_t bytes_transferred);
-+ void cb_read_done(const boost::system::error_code& error, size_t bytes_transferred);
-
-- void cb_write_queue(const std::string &msg);
-+ void cb_write_queue(const std::string& msg);
- void do_write_start();
-- void cb_write_done(const boost::system::error_code &error);
-+ void cb_write_done(const boost::system::error_code& error, size_t length);
-
- void process_connection();
-- void process_error(const boost::system::error_code &error);
-+ void process_error(const boost::system::error_code& error);
-
-- bool mIsConnected = false;
-- bool mIsReconnecting = false;
-- bool mIsTerminating = false;
-+ bool m_bIsConnected = false;
-+ bool m_bIsReconnecting = false;
-+ bool m_bIsTerminating = false;
-
-- boost::asio::io_service::strand mSendStrand{ mIos };
-- std::deque<std::string> mWriteQ; // we need a write queue to allow concurrent writes
-+ boost::asio::io_context::strand m_SendStrand;
-+ std::deque<std::string> m_WriteQ; // we need a write queue to allow concurrent writes
-
- uint8_t* m_pRXBuffer = nullptr;
-
-- int mReconnectDelay = DEFAULT_RECONNECT_TIME;
-- int mTimeoutDelay = 0;
-- boost::asio::deadline_timer mReconnectTimer{ mIos };
-- boost::asio::deadline_timer mTimeoutTimer{ mIos };
-+ int m_iReconnectDelay = DEFAULT_RECONNECT_TIME;
-+ int m_iTimeoutDelay = 0;
-+ boost::asio::deadline_timer m_ReconnectTimer;
-+ boost::asio::deadline_timer m_TimeoutTimer;
-
-- std::shared_ptr<std::thread> mTcpthread;
-- std::shared_ptr<boost::asio::io_service::work> mTcpwork;
-+ std::shared_ptr<std::thread> m_Tcpthread;
-+ std::optional<boost::asio::executor_work_guard<boost::asio::io_context::executor_type>> m_Tcpwork;
-
- #ifdef WWW_ENABLE_SSL
-- const bool mSecure;
-+ const bool m_bSecure;
- boost::asio::ssl::context mContext{ boost::asio::ssl::context::sslv23 };
-- std::shared_ptr<boost::asio::ssl::stream<boost::asio::ip::tcp::socket>> mSslSocket; // the ssl socket
-+ std::shared_ptr<boost::asio::ssl::stream<boost::asio::ip::tcp::socket>> m_SslSocket;
- #endif
-- boost::asio::ip::tcp::socket mSocket{ mIos };
-- boost::asio::ip::tcp::endpoint mEndPoint;
-- boost::asio::ip::tcp::resolver mResolver{ mIos };
-+ boost::asio::ip::tcp::socket m_Socket;
-+ boost::asio::ip::tcp::resolver m_Resolver;
-
-- std::string mIp;
-- uint16_t mPort;
-+ std::string m_IP;
-+ uint16_t m_Port;
- };
-diff --git hardware/Arilux.cpp hardware/Arilux.cpp
-index 400f5a3..20bc373 100644
---- hardware/Arilux.cpp
-+++ hardware/Arilux.cpp
-@@ -79,7 +79,7 @@ void Arilux::InsertUpdateSwitch(const std::string &lightName, const int subType,
- {
- uint32_t sID;
- try {
-- sID = boost::asio::ip::address_v4::from_string(location).to_ulong();
-+ sID = boost::asio::ip::make_address_v4(location).to_uint();
- } catch (const std::exception &e) {
- Log(LOG_ERROR, "Bad IP address: %s (%s)", location.c_str(), e.what());
- return;
-@@ -112,8 +112,8 @@ bool Arilux::SendTCPCommand(uint32_t ip,std::vector<unsigned char> &command)
- sum = sum & 0xFF;
- command.push_back((unsigned char)sum);
-
-- boost::asio::io_service io_service;
-- boost::asio::ip::tcp::socket sendSocket(io_service);
-+ boost::asio::io_context io_context;
-+ boost::asio::ip::tcp::socket sendSocket(io_context);
- boost::asio::ip::address_v4 address(ip);
- boost::asio::ip::tcp::endpoint endpoint(address, 5577);
- try
-diff --git hardware/Kodi.cpp hardware/Kodi.cpp
-index b528017..5ababf6 100644
---- hardware/Kodi.cpp
-+++ hardware/Kodi.cpp
-@@ -143,14 +143,14 @@ _eNotificationTypes CKodiNode::CKodiStatus::NotificationType()
- }
- }
-
--CKodiNode::CKodiNode(boost::asio::io_service *pIos, const int pHwdID, const int PollIntervalsec, const int pTimeoutMs,
-+CKodiNode::CKodiNode(boost::asio::io_context *pIoc, const int pHwdID, const int PollIntervalsec, const int pTimeoutMs,
- const std::string& pID, const std::string& pName, const std::string& pIP, const std::string& pPort)
- {
- m_Busy = false;
- m_Stoppable = false;
- m_PlaylistPosition = 0;
-
-- m_Ios = pIos;
-+ m_Ioc = pIoc;
- m_HwdID = pHwdID;
- m_DevID = atoi(pID.c_str());
- sprintf(m_szDevID, "%X%02X%02X%02X", 0, 0, (m_DevID & 0xFF00) >> 8, m_DevID & 0xFF);
-@@ -581,11 +581,10 @@ void CKodiNode::handleConnect()
- {
- m_iMissedPongs = 0;
- boost::system::error_code ec;
-- boost::asio::ip::tcp::resolver resolver(*m_Ios);
-- boost::asio::ip::tcp::resolver::query query(m_IP, (m_Port[0] != '-' ? m_Port : m_Port.substr(1)));
-- auto iter = resolver.resolve(query);
-- boost::asio::ip::tcp::endpoint endpoint = *iter;
-- m_Socket = new boost::asio::ip::tcp::socket(*m_Ios);
-+ boost::asio::ip::tcp::resolver resolver(*m_Ioc);
-+ auto iter = resolver.resolve(m_IP, (m_Port[0] != '-' ? m_Port : m_Port.substr(1)));
-+ boost::asio::ip::tcp::endpoint endpoint = *iter.begin();
-+ m_Socket = new boost::asio::ip::tcp::socket(*m_Ioc);
- m_Socket->connect(endpoint, ec);
- if (!ec)
- {
-@@ -975,19 +974,19 @@ void CKodi::Do_Work()
- _log.Log(LOG_NORM, "Kodi: (%s) - Restarting thread.", node->m_Name.c_str());
- boost::thread *tAsync = new boost::thread(&CKodiNode::Do_Work, node);
- SetThreadName(tAsync->native_handle(), "KodiNode");
-- m_ios.stop();
-+ m_ioc.stop();
- }
- if (node->IsOn())
- bWorkToDo = true;
- }
-
-- if (bWorkToDo && m_ios.stopped()) // make sure that there is a boost thread to service i/o operations
-+ if (bWorkToDo && m_ioc.stopped()) // make sure that there is a boost thread to service i/o operations
- {
-- m_ios.reset();
-+ m_ioc.restart();
- // Note that this is the only thread that handles async i/o so we don't
- // need to worry about locking or concurrency issues when processing messages
- _log.Log(LOG_NORM, "Kodi: Restarting I/O service thread.");
-- boost::thread bt([p = &m_ios] { p->run(); });
-+ boost::thread bt([p = &m_ioc] { p->run(); });
- SetThreadName(bt.native_handle(), "KodiIO");
- }
- }
-@@ -1138,7 +1137,7 @@ void CKodi::ReloadNodes()
- {
- UnloadNodes();
-
-- m_ios.reset(); // in case this is not the first time in
-+ m_ioc.restart(); // in case this is not the first time in
-
- std::vector<std::vector<std::string> > result;
- result = m_sql.safe_query("SELECT ID,Name,MacAddress,Timeout FROM WOLNodes WHERE (HardwareID==%d)", m_HwdID);
-@@ -1149,7 +1148,7 @@ void CKodi::ReloadNodes()
- // create a vector to hold the nodes
- for (const auto &sd : result)
- {
-- auto pNode = std::make_shared<CKodiNode>(&m_ios, m_HwdID, m_iPollInterval, m_iPingTimeoutms, sd[0], sd[1], sd[2], sd[3]);
-+ auto pNode = std::make_shared<CKodiNode>(&m_ioc, m_HwdID, m_iPollInterval, m_iPingTimeoutms, sd[0], sd[1], sd[2], sd[3]);
- m_pNodes.push_back(pNode);
- }
- // start the threads to control each kodi
-@@ -1161,7 +1160,7 @@ void CKodi::ReloadNodes()
- }
- sleep_milliseconds(100);
- _log.Log(LOG_NORM, "Kodi: Starting I/O service thread.");
-- boost::thread bt([p = &m_ios] { p->run(); });
-+ boost::thread bt([p = &m_ioc] { p->run(); });
- SetThreadName(bt.native_handle(), "KodiIO");
- }
- }
-@@ -1170,10 +1169,10 @@ void CKodi::UnloadNodes()
- {
- std::lock_guard<std::mutex> l(m_mutex);
-
-- m_ios.stop(); // stop the service if it is running
-+ m_ioc.stop(); // stop the service if it is running
- sleep_milliseconds(100);
-
-- while (((!m_pNodes.empty()) || (!m_ios.stopped())))
-+ while (((!m_pNodes.empty()) || (!m_ioc.stopped())))
- {
- for (auto itt = m_pNodes.begin(); itt != m_pNodes.end(); ++itt)
- {
-diff --git hardware/Kodi.h hardware/Kodi.h
-index 14f331c..4435740 100644
---- hardware/Kodi.h
-+++ hardware/Kodi.h
-@@ -150,7 +150,7 @@ class CKodiNode : public std::enable_shared_from_this<CKodiNode>, StoppableTask
- };
-
- public:
-- CKodiNode(boost::asio::io_service *, int, int, int, const std::string &, const std::string &, const std::string &, const std::string &);
-+ CKodiNode(boost::asio::io_context *, int, int, int, const std::string &, const std::string &, const std::string &, const std::string &);
- ~CKodiNode();
- void Do_Work();
- void SendCommand(const std::string &);
-@@ -207,7 +207,7 @@ class CKodiNode : public std::enable_shared_from_this<CKodiNode>, StoppableTask
- int m_iPollIntSec;
- int m_iMissedPongs;
- std::string m_sLastMessage;
-- boost::asio::io_service *m_Ios;
-+ boost::asio::io_context *m_Ioc;
- boost::asio::ip::tcp::socket *m_Socket;
- std::array<char, 256> m_Buffer;
- };
-@@ -243,5 +243,5 @@ class CKodi : public CDomoticzHardwareBase
- int m_iPingTimeoutms;
- std::shared_ptr<std::thread> m_thread;
- std::mutex m_mutex;
-- boost::asio::io_service m_ios;
-+ boost::asio::io_context m_ioc;
- };
-diff --git hardware/MQTTAutoDiscover.h hardware/MQTTAutoDiscover.h
-index 0832664..1501d6f 100644
---- hardware/MQTTAutoDiscover.h
-+++ hardware/MQTTAutoDiscover.h
-@@ -176,7 +176,7 @@ public:
- void on_message(const struct mosquitto_message *message) override;
- void on_connect(int rc) override;
- void on_disconnect(int rc) override;
-- void on_going_down();
-+ void on_going_down() override;
- private:
- void InsertUpdateSwitch(_tMQTTASensor* pSensor);
-
-diff --git hardware/PanasonicTV.cpp hardware/PanasonicTV.cpp
-index fc57d34..ce20565 100644
---- hardware/PanasonicTV.cpp
-+++ hardware/PanasonicTV.cpp
-@@ -356,18 +356,17 @@ std::string CPanasonicNode::handleWriteAndRead(const std::string& pMessageToSend
- {
-
- _log.Debug(DEBUG_HARDWARE, "Panasonic Plugin: (%s) Handling message: '%s'.", m_Name.c_str(), pMessageToSend.c_str());
-- boost::asio::io_service io_service;
-+ boost::asio::io_context io_context;
- // Get a list of endpoints corresponding to the server name.
-- boost::asio::ip::tcp::resolver resolver(io_service);
-- boost::asio::ip::tcp::resolver::query query(m_IP, (m_Port[0] != '-' ? m_Port : m_Port.substr(1)));
-- auto iter = resolver.resolve(query);
-+ boost::asio::ip::tcp::resolver resolver(io_context);
-+ auto endpoints = resolver.resolve(m_IP, (m_Port[0] != '-' ? m_Port : m_Port.substr(1)));
-+ auto iter = endpoints.begin();
- boost::asio::ip::tcp::endpoint endpoint = *iter;
-- boost::asio::ip::tcp::resolver::iterator end;
-
- // Try each endpoint until we successfully establish a connection.
-- boost::asio::ip::tcp::socket socket(io_service);
-+ boost::asio::ip::tcp::socket socket(io_context);
- boost::system::error_code error = boost::asio::error::host_not_found;
-- while (error && iter != end)
-+ while (error && iter != endpoints.end())
- {
- socket.close();
- if (handleConnect(socket, *iter, error))
-@@ -1060,7 +1059,7 @@ void CPanasonic::ReloadNodes()
- {
- UnloadNodes();
-
-- //m_ios.reset(); // in case this is not the first time in
-+ //m_ioc.reset(); // in case this is not the first time in
-
- std::vector<std::vector<std::string> > result;
- result = m_sql.safe_query("SELECT ID,Name,MacAddress,Timeout FROM WOLNodes WHERE (HardwareID==%d)", m_HwdID);
-@@ -1088,10 +1087,10 @@ void CPanasonic::UnloadNodes()
- {
- std::lock_guard<std::mutex> l(m_mutex);
-
-- m_ios.stop(); // stop the service if it is running
-+ m_ioc.stop(); // stop the service if it is running
- sleep_milliseconds(100);
-
-- while (((!m_pNodes.empty()) || (!m_ios.stopped())))
-+ while (((!m_pNodes.empty()) || (!m_ioc.stopped())))
- {
- for (auto itt = m_pNodes.begin(); itt != m_pNodes.end(); ++itt)
- {
-diff --git hardware/PanasonicTV.h hardware/PanasonicTV.h
-index b0a94ff..30e1ca1 100644
---- hardware/PanasonicTV.h
-+++ hardware/PanasonicTV.h
-@@ -39,7 +39,7 @@ class CPanasonic : public CDomoticzHardwareBase
- bool m_bTryIfOff;
- std::shared_ptr<std::thread> m_thread;
- std::mutex m_mutex;
-- boost::asio::io_service m_ios;
-+ boost::asio::io_context m_ioc;
-
- friend class CPanasonicNode;
- };
-diff --git hardware/Pinger.cpp hardware/Pinger.cpp
-index a66c7a1..e070b29 100644
---- hardware/Pinger.cpp
-+++ hardware/Pinger.cpp
-@@ -21,23 +21,23 @@
- #if BOOST_VERSION >= 107000
- #define GET_IO_SERVICE(s) ((boost::asio::io_context&)(s).get_executor().context())
- #else
--#define GET_IO_SERVICE(s) ((s).get_io_service())
-+#define GET_IO_SERVICE(s) ((s).get_io_context())
- #endif
-
- class pinger
- : private domoticz::noncopyable
- {
- public:
-- pinger(boost::asio::io_service &io_service, const char *destination, const int iPingTimeoutms)
-+ pinger(boost::asio::io_context &io_context, const char *destination, const int iPingTimeoutms)
- : num_replies_(0)
- , m_PingState(false)
-- , resolver_(io_service)
-- , socket_(io_service, boost::asio::ip::icmp::v4())
-- , timer_(io_service)
-+ , resolver_(io_context)
-+ , socket_(io_context, boost::asio::ip::icmp::v4())
-+ , timer_(io_context)
- , sequence_number_(0)
- {
-- boost::asio::ip::icmp::resolver::query query(boost::asio::ip::icmp::v4(), destination, "");
-- destination_ = *resolver_.resolve(query);
-+ auto endpoints = resolver_.resolve(boost::asio::ip::icmp::v4(), destination, "");
-+ destination_ = endpoints.begin()->endpoint();
-
- num_tries_ = 1;
- PingTimeoutms_ = iPingTimeoutms;
-@@ -332,11 +332,11 @@ void CPinger::ReloadNodes()
- void CPinger::Do_Ping_Worker(const PingNode &Node)
- {
- bool bPingOK = false;
-- boost::asio::io_service io_service;
-+ boost::asio::io_context io_context;
- try
- {
-- pinger p(io_service, Node.IP.c_str(), m_iPingTimeoutms);
-- io_service.run();
-+ pinger p(io_context, Node.IP.c_str(), m_iPingTimeoutms);
-+ io_context.run();
- if (p.m_PingState == true)
- {
- bPingOK = true;
-diff --git hardware/RFLinkMQTT.h hardware/RFLinkMQTT.h
-index e938328..72433b8 100644
---- hardware/RFLinkMQTT.h
-+++ hardware/RFLinkMQTT.h
-@@ -46,7 +46,7 @@ protected:
- boost::signals2::connection m_sDeviceReceivedConnection;
- boost::signals2::connection m_sSwitchSceneConnection;
- void selectNextIPAdress( void );
-- virtual bool WriteInt(const std::string &sendString); // override;
-+ bool WriteInt(const std::string &sendString) override;
- void Do_Work();
- virtual void SendHeartbeat();
- void StopMQTT();
-diff --git hardware/TCPProxy/tcpproxy_server.cpp hardware/TCPProxy/tcpproxy_server.cpp
-index 8aceb0b..d77d4bf 100644
---- hardware/TCPProxy/tcpproxy_server.cpp
-+++ hardware/TCPProxy/tcpproxy_server.cpp
-@@ -18,12 +18,12 @@
- #if BOOST_VERSION >= 107000
- #define GET_IO_SERVICE(s) ((boost::asio::io_context&)(s).get_executor().context())
- #else
--#define GET_IO_SERVICE(s) ((s).get_io_service())
-+#define GET_IO_SERVICE(s) ((s).get_io_context())
- #endif
-
- namespace tcp_proxy
- {
-- bridge::bridge(boost::asio::io_service& ios)
-+ bridge::bridge(boost::asio::io_context& ios)
- : downstream_socket_(ios),
- upstream_socket_(ios)
- {
-@@ -44,7 +44,7 @@ namespace tcp_proxy
- boost::asio::ip::tcp::endpoint end;
-
-
-- boost::asio::io_service &ios= GET_IO_SERVICE(downstream_socket_);
-+ boost::asio::io_context &ios= GET_IO_SERVICE(downstream_socket_);
- boost::asio::ip::tcp::resolver resolver(ios);
- boost::asio::ip::tcp::resolver::query query(upstream_host, upstream_port, boost::asio::ip::resolver_query_base::numeric_service);
- auto i = resolver.resolve(query);
-@@ -137,10 +137,10 @@ namespace tcp_proxy
- }
- //Acceptor Class
- acceptor::acceptor(const std::string &local_host, unsigned short local_port, const std::string &upstream_host, const std::string &upstream_port)
-- : io_service_()
-+ : io_context_()
- , m_bDoStop(false)
- , localhost_address(boost::asio::ip::address_v4::from_string(local_host))
-- , acceptor_(io_service_, boost::asio::ip::tcp::endpoint(localhost_address, local_port))
-+ , acceptor_(io_context_, boost::asio::ip::tcp::endpoint(localhost_address, local_port))
- , upstream_host_(upstream_host)
- , upstream_port_(upstream_port)
- {
-@@ -151,7 +151,7 @@ namespace tcp_proxy
- {
- try
- {
-- session_ = std::make_shared<bridge>(io_service_);
-+ session_ = std::make_shared<bridge>(io_context_);
- session_->sDownstreamData.connect([this](auto d, auto l) { OnDownstreamData(d, l); });
- session_->sUpstreamData.connect([this](auto d, auto l) { OnUpstreamData(d, l); });
-
-@@ -169,11 +169,11 @@ namespace tcp_proxy
- m_bDoStop=false;
-
- accept_connections();
-- // The io_service::run() call will block until all asynchronous operations
-+ // The io_context::run() call will block until all asynchronous operations
- // have finished. While the server is running, there is always at least one
- // asynchronous operation outstanding: the asynchronous accept call waiting
- // for new incoming connections.
-- io_service_.run();
-+ io_context_.run();
- return true;
- }
- bool acceptor::stop()
-@@ -181,14 +181,14 @@ namespace tcp_proxy
- m_bDoStop=true;
- // Post a call to the stop function so that server::stop() is safe to call
- // from any thread.
-- io_service_.post([this] { handle_stop(); });
-+ io_context_.post([this] { handle_stop(); });
- return true;
- }
-
- void acceptor::handle_stop()
- {
- // The server is stopped by canceling all outstanding asynchronous
-- // operations. Once all operations have finished the io_service::run() call
-+ // operations. Once all operations have finished the io_context::run() call
- // will exit.
- acceptor_.close();
- //connection_manager_.stop_all();
-diff --git hardware/TCPProxy/tcpproxy_server.h hardware/TCPProxy/tcpproxy_server.h
-index 3d1a150..148e65f 100644
---- hardware/TCPProxy/tcpproxy_server.h
-+++ hardware/TCPProxy/tcpproxy_server.h
-@@ -10,7 +10,7 @@ namespace tcp_proxy
- class bridge : public std::enable_shared_from_this<bridge>
- {
- public:
-- explicit bridge(boost::asio::io_service& ios);
-+ explicit bridge(boost::asio::io_context& ios);
- boost::asio::ip::tcp::socket& downstream_socket();
- boost::asio::ip::tcp::socket& upstream_socket();
-
-@@ -52,8 +52,8 @@ namespace tcp_proxy
- void OnUpstreamData(const unsigned char *pData, size_t Len);
- void OnDownstreamData(const unsigned char *pData, size_t Len);
-
-- /// The io_service used to perform asynchronous operations.
-- boost::asio::io_service io_service_;
-+ /// The io_context used to perform asynchronous operations.
-+ boost::asio::io_context io_context_;
- bool m_bDoStop;
- boost::asio::ip::address_v4 localhost_address;
- boost::asio::ip::tcp::acceptor acceptor_;
-diff --git hardware/XiaomiDeviceSupport.h hardware/XiaomiDeviceSupport.h
-index fad7884..4a76d96 100644
---- hardware/XiaomiDeviceSupport.h
-+++ hardware/XiaomiDeviceSupport.h
-@@ -15,6 +15,7 @@
- class XiaomiDeviceSupport
- {
- public:
-+ virtual ~XiaomiDeviceSupport() = default;
- /**
- * Method to get 'model' corresponding to the ID of the device in case the Gateway API didn't provide it.
- *
-diff --git hardware/XiaomiGateway.cpp hardware/XiaomiGateway.cpp
-index 66acdc5..fb4387a 100644
---- hardware/XiaomiGateway.cpp
-+++ hardware/XiaomiGateway.cpp
-@@ -538,12 +538,12 @@ bool XiaomiGateway::SendMessageToGateway(const std::string &controlmessage)
- {
- std::string message = controlmessage;
- bool result = true;
-- boost::asio::io_service io_service;
-- boost::asio::ip::udp::socket socket_(io_service, boost::asio::ip::udp::endpoint(boost::asio::ip::udp::v4(), 0));
-+ boost::asio::io_context io_context;
-+ boost::asio::ip::udp::socket socket_(io_context, boost::asio::ip::udp::endpoint(boost::asio::ip::udp::v4(), 0));
- stdreplace(message, "@gatewaykey", GetGatewayKey());
- std::shared_ptr<std::string> message1(new std::string(message));
- boost::asio::ip::udp::endpoint remote_endpoint_;
-- remote_endpoint_ = boost::asio::ip::udp::endpoint(boost::asio::ip::address::from_string(m_GatewayIp), 9898);
-+ remote_endpoint_ = boost::asio::ip::udp::endpoint(boost::asio::ip::make_address_v4(m_GatewayIp), 9898);
- socket_.send_to(boost::asio::buffer(*message1), remote_endpoint_);
- sleep_milliseconds(150); // TODO: reduce or remove sleep
- std::array<char, 512> recv_buffer_;
-@@ -1015,15 +1015,14 @@ bool XiaomiGateway::StopHardware()
- void XiaomiGateway::Do_Work()
- {
- Log(LOG_STATUS, "XiaomiGateway (ID=%d): Worker started...", m_HwdID);
-- boost::asio::io_service io_service;
-+ boost::asio::io_context io_context;
- // Find the local ip address that is similar to the xiaomi gateway
- try
- {
-- boost::asio::ip::udp::resolver resolver(io_service);
-- boost::asio::ip::udp::resolver::query query(boost::asio::ip::udp::v4(), m_GatewayIp, "");
-- auto endpoints = resolver.resolve(query);
-- boost::asio::ip::udp::endpoint ep = *endpoints;
-- boost::asio::ip::udp::socket socket(io_service);
-+ boost::asio::ip::udp::resolver resolver(io_context);
-+ auto endpoints = resolver.resolve(boost::asio::ip::udp::v4(), m_GatewayIp, "");
-+ boost::asio::ip::udp::endpoint ep = *endpoints.begin();
-+ boost::asio::ip::udp::socket socket(io_context);
- socket.connect(ep);
- boost::asio::ip::address addr = socket.local_endpoint().address();
- std::string compareIp = m_GatewayIp.substr(0, (m_GatewayIp.length() - 3));
-@@ -1073,11 +1072,11 @@ void XiaomiGateway::Do_Work()
- }
- }
-
-- XiaomiGateway::xiaomi_udp_server udp_server(io_service, m_HwdID, m_GatewayIp, m_LocalIp, m_ListenPort9898, m_OutputMessage, m_IncludeVoltage, this);
-+ XiaomiGateway::xiaomi_udp_server udp_server(io_context, m_HwdID, m_GatewayIp, m_LocalIp, m_ListenPort9898, m_OutputMessage, m_IncludeVoltage, this);
- boost::thread bt;
- if (m_ListenPort9898)
- {
-- bt = boost::thread([p = &io_service] { p->run(); });
-+ bt = boost::thread([p = &io_context] { p->run(); });
- SetThreadName(bt.native_handle(), "XiaomiGatewayIO");
- }
-
-@@ -1094,7 +1093,7 @@ void XiaomiGateway::Do_Work()
- // Log(LOG_STATUS, "sec_counter %d", sec_counter);
- }
- }
-- io_service.stop();
-+ io_context.stop();
- if (bt.joinable())
- {
- bt.join();
-@@ -1178,9 +1177,9 @@ unsigned int XiaomiGateway::GetShortID(const std::string &nodeid)
- return sID;
- }
-
--XiaomiGateway::xiaomi_udp_server::xiaomi_udp_server(boost::asio::io_service &io_service, int m_HwdID, const std::string &gatewayIp, const std::string &localIp, const bool listenPort9898,
-+XiaomiGateway::xiaomi_udp_server::xiaomi_udp_server(boost::asio::io_context &io_context, int m_HwdID, const std::string &gatewayIp, const std::string &localIp, const bool listenPort9898,
- const bool outputMessage, const bool includeVoltage, XiaomiGateway *parent)
-- : socket_(io_service, boost::asio::ip::udp::v4())
-+ : socket_(io_context, boost::asio::ip::udp::v4())
- {
- m_HardwareID = m_HwdID;
- m_XiaomiGateway = parent;
-@@ -1196,8 +1195,8 @@ XiaomiGateway::xiaomi_udp_server::xiaomi_udp_server(boost::asio::io_service &io_
- if (!m_localip.empty())
- {
- boost::system::error_code ec;
-- boost::asio::ip::address listen_addr = boost::asio::ip::address::from_string(m_localip, ec);
-- boost::asio::ip::address mcast_addr = boost::asio::ip::address::from_string("224.0.0.50", ec);
-+ boost::asio::ip::address listen_addr = boost::asio::ip::make_address_v4(m_localip, ec);
-+ boost::asio::ip::address mcast_addr = boost::asio::ip::make_address_v4("224.0.0.50", ec);
- boost::asio::ip::udp::endpoint listen_endpoint(mcast_addr, 9898);
-
- socket_.bind(boost::asio::ip::udp::endpoint(boost::asio::ip::udp::v4(), 9898));
-@@ -1213,9 +1212,9 @@ XiaomiGateway::xiaomi_udp_server::xiaomi_udp_server(boost::asio::io_service &io_
- socket_.bind(boost::asio::ip::udp::endpoint(boost::asio::ip::udp::v4(), 9898));
- std::shared_ptr<std::string> message(new std::string(R"({"cmd":"whois"})"));
- boost::asio::ip::udp::endpoint remote_endpoint;
-- remote_endpoint = boost::asio::ip::udp::endpoint(boost::asio::ip::address::from_string("224.0.0.50"), 4321);
-+ remote_endpoint = boost::asio::ip::udp::endpoint(boost::asio::ip::make_address_v4("224.0.0.50"), 4321);
- socket_.send_to(boost::asio::buffer(*message), remote_endpoint);
-- socket_.set_option(boost::asio::ip::multicast::join_group(boost::asio::ip::address::from_string("224.0.0.50")));
-+ socket_.set_option(boost::asio::ip::multicast::join_group(boost::asio::ip::make_address_v4("224.0.0.50")));
- }
- }
- catch (const boost::system::system_error &ex)
-@@ -1720,7 +1719,7 @@ void XiaomiGateway::xiaomi_udp_server::handle_receive(const boost::system::error
- message.append("\"}");
- std::shared_ptr<std::string> message1(new std::string(message));
- boost::asio::ip::udp::endpoint remote_endpoint;
-- remote_endpoint = boost::asio::ip::udp::endpoint(boost::asio::ip::address::from_string(TrueGateway->GetGatewayIp().c_str()), 9898);
-+ remote_endpoint = boost::asio::ip::udp::endpoint(boost::asio::ip::make_address_v4(TrueGateway->GetGatewayIp().c_str()), 9898);
- socket_.send_to(boost::asio::buffer(*message1), remote_endpoint);
- }
- }
-@@ -1746,7 +1745,7 @@ void XiaomiGateway::xiaomi_udp_server::handle_receive(const boost::system::error
- std::string message = R"({"cmd" : "get_id_list"})";
- std::shared_ptr<std::string> message2(new std::string(message));
- boost::asio::ip::udp::endpoint remote_endpoint;
-- remote_endpoint = boost::asio::ip::udp::endpoint(boost::asio::ip::address::from_string(TrueGateway->GetGatewayIp().c_str()), 9898);
-+ remote_endpoint = boost::asio::ip::udp::endpoint(boost::asio::ip::make_address_v4(TrueGateway->GetGatewayIp().c_str()), 9898);
- socket_.send_to(boost::asio::buffer(*message2), remote_endpoint);
- }
- }
-diff --git hardware/XiaomiGateway.h hardware/XiaomiGateway.h
-index dce4b34..1f552f3 100644
---- hardware/XiaomiGateway.h
-+++ hardware/XiaomiGateway.h
-@@ -100,7 +100,7 @@ class XiaomiGateway : public CDomoticzHardwareBase
- class xiaomi_udp_server
- {
- public:
-- xiaomi_udp_server(boost::asio::io_service &io_service, int m_HwdID, const std::string &gatewayIp, const std::string &localIp, bool listenPort9898, bool outputMessage,
-+ xiaomi_udp_server(boost::asio::io_context &io_context, int m_HwdID, const std::string &gatewayIp, const std::string &localIp, bool listenPort9898, bool outputMessage,
- bool includeVolage, XiaomiGateway *parent);
- ~xiaomi_udp_server() = default;
-
-diff --git hardware/Yeelight.cpp hardware/Yeelight.cpp
-index cdb7889..e5fe8fc 100644
---- hardware/Yeelight.cpp
-+++ hardware/Yeelight.cpp
-@@ -93,8 +93,8 @@ void Yeelight::Do_Work()
-
- try
- {
-- boost::asio::io_service io_service;
-- udp_server server(io_service, m_HwdID);
-+ boost::asio::io_context io_context;
-+ udp_server server(io_context, m_HwdID);
- int sec_counter = YEELIGHT_POLL_INTERVAL - 5;
- while (!IsStopRequested(1000))
- {
-@@ -105,7 +105,7 @@ void Yeelight::Do_Work()
- if (sec_counter % 60 == 0) //poll YeeLights every minute
- {
- server.start_send();
-- io_service.run();
-+ io_context.run();
- }
- }
- }
-@@ -227,12 +227,11 @@ bool Yeelight::WriteToHardware(const char *pdata, const unsigned char length)
-
- try
- {
-- boost::asio::io_service io_service;
-- boost::asio::ip::tcp::socket sendSocket(io_service);
-- boost::asio::ip::tcp::resolver resolver(io_service);
-- boost::asio::ip::tcp::resolver::query query(boost::asio::ip::tcp::v4(), szTmp, "55443");
-- auto iterator = resolver.resolve(query);
-- boost::asio::connect(sendSocket, iterator);
-+ boost::asio::io_context io_context;
-+ boost::asio::ip::tcp::socket sendSocket(io_context);
-+ boost::asio::ip::tcp::resolver resolver(io_context);
-+ auto endpoints = resolver.resolve(boost::asio::ip::tcp::v4(), szTmp, "55443");
-+ boost::asio::connect(sendSocket, endpoints);
-
- std::string message;
- std::string message2;
-@@ -404,8 +403,8 @@ bool Yeelight::WriteToHardware(const char *pdata, const unsigned char length)
- std::array<char, 1024> recv_buffer_;
- int hardwareId;
-
--Yeelight::udp_server::udp_server(boost::asio::io_service& io_service, int m_HwdID)
-- : socket_(io_service, boost::asio::ip::udp::endpoint(boost::asio::ip::udp::v4(), 0))
-+Yeelight::udp_server::udp_server(boost::asio::io_context& io_context, int m_HwdID)
-+ : socket_(io_context, boost::asio::ip::udp::endpoint(boost::asio::ip::udp::v4(), 0))
- {
- socket_.set_option(boost::asio::ip::udp::socket::reuse_address(true));
- socket_.set_option(boost::asio::socket_base::broadcast(true));
-@@ -421,7 +420,7 @@ void Yeelight::udp_server::start_send()
- //Log(LOG_STATUS, "start_send..................");
- std::shared_ptr<std::string> message(
- new std::string(testMessage));
-- remote_endpoint_ = boost::asio::ip::udp::endpoint(boost::asio::ip::address::from_string("239.255.255.250"), 1982);
-+ remote_endpoint_ = boost::asio::ip::udp::endpoint(boost::asio::ip::make_address_v4("239.255.255.250"), 1982);
- socket_.send_to(boost::asio::buffer(*message), remote_endpoint_);
- sleep_milliseconds(150);
- start_receive();
-diff --git hardware/Yeelight.h hardware/Yeelight.h
-index fb03c28..3b7b4c3 100644
---- hardware/Yeelight.h
-+++ hardware/Yeelight.h
-@@ -25,7 +25,7 @@ class Yeelight : public CDomoticzHardwareBase
- class udp_server
- {
- public:
-- udp_server(boost::asio::io_service &io_service, int m_HwdID);
-+ udp_server(boost::asio::io_context &io_context, int m_HwdID);
- boost::asio::ip::udp::socket socket_;
- boost::asio::ip::udp::endpoint remote_endpoint_;
- void start_send();
-diff --git hardware/plugins/PluginManager.cpp hardware/plugins/PluginManager.cpp
-index 2813112..423edbb 100644
---- hardware/plugins/PluginManager.cpp
-+++ hardware/plugins/PluginManager.cpp
-@@ -64,7 +64,7 @@ namespace Plugins {
- // PyMODINIT_FUNC PyInit_DomoticzEvents(void);
-
- std::mutex PluginMutex; // controls accessto the message queue and m_pPlugins map
-- boost::asio::io_service ios;
-+ boost::asio::io_context ios;
-
- std::map<int, CDomoticzHardwareBase*> CPluginSystem::m_pPlugins;
- std::map<std::string, std::string> CPluginSystem::m_PluginXml;
-@@ -315,7 +315,7 @@ namespace Plugins {
- // Create initial IO Service thread
- ios.restart();
- // Create some work to keep IO Service alive
-- auto work = boost::asio::io_service::work(ios);
-+ auto work = boost::asio::make_work_guard(ios);
- boost::thread_group BoostThreads;
- for (int i = 0; i < 1; i++)
- {
-diff --git hardware/plugins/PluginTransports.cpp hardware/plugins/PluginTransports.cpp
-index 52d14e7..f7ace0f 100644
---- hardware/plugins/PluginTransports.cpp
-+++ hardware/plugins/PluginTransports.cpp
-@@ -116,15 +116,14 @@ namespace Plugins {
- m_bConnected = false;
- m_Socket = new boost::asio::ip::tcp::socket(ios);
-
-- boost::system::error_code ec;
-- boost::asio::ip::tcp::resolver::query query(m_IP, m_Port);
-- auto iter = m_Resolver.resolve(query);
-- boost::asio::ip::tcp::endpoint endpoint = *iter;
--
- //
- // Async resolve/connect based on http://www.boost.org/doc/libs/1_45_0/doc/html/boost_asio/example/http/client/async_client.cpp
- //
-- m_Resolver.async_resolve(query, [this](auto &&err, auto end) { handleAsyncResolve(err, end); });
-+ m_Resolver.async_resolve(m_IP, m_Port,
-+ [this](auto &&err, auto endpoints) {
-+ handleAsyncResolve(err, endpoints);
-+ }
-+ );
- }
- }
- catch (std::exception& e)
-@@ -139,15 +138,14 @@ namespace Plugins {
- return true;
- }
-
-- void CPluginTransportTCP::handleAsyncResolve(const boost::system::error_code & err, boost::asio::ip::tcp::resolver::iterator endpoint_iterator)
-+ void CPluginTransportTCP::handleAsyncResolve(const boost::system::error_code & err, boost::asio::ip::tcp::resolver::results_type endpoints)
- {
- CPlugin* pPlugin = ((CConnection*)m_pConnection)->pPlugin;
- AccessPython Guard(pPlugin, "CPluginTransportTCP::handleAsyncResolve");
-
- if (!err)
- {
-- boost::asio::ip::tcp::endpoint endpoint = *endpoint_iterator;
-- m_Socket->async_connect(endpoint, [this, endpoint_iterator](auto &&err) mutable { handleAsyncConnect(err, ++endpoint_iterator); });
-+ boost::asio::async_connect(*m_Socket, endpoints, [this](auto &&err, const boost::asio::ip::tcp::endpoint &endpoint) mutable { handleAsyncConnect(err, endpoint); });
- }
- else
- {
-@@ -169,7 +167,7 @@ namespace Plugins {
- }
- }
-
-- void CPluginTransportTCP::handleAsyncConnect(const boost::system::error_code &err, const boost::asio::ip::tcp::resolver::iterator &endpoint_iterator)
-+ void CPluginTransportTCP::handleAsyncConnect(const boost::system::error_code &err, const boost::asio::ip::tcp::endpoint &endpoint)
- {
- CPlugin* pPlugin = ((CConnection*)m_pConnection)->pPlugin;
- AccessPython Guard(pPlugin, "CPluginTransportTCP::handleAsyncResolve");
-@@ -481,7 +479,7 @@ namespace Plugins {
- }
- };
-
-- void CPluginTransportTCPSecure::handleAsyncConnect(const boost::system::error_code &err, const boost::asio::ip::tcp::resolver::iterator &endpoint_iterator)
-+ void CPluginTransportTCPSecure::handleAsyncConnect(const boost::system::error_code &err, const boost::asio::ip::tcp::endpoint &endpoint)
- {
- CPlugin* pPlugin = ((CConnection*)m_pConnection)->pPlugin;
- if (!pPlugin) return;
-@@ -498,7 +496,7 @@ namespace Plugins {
- SSL_set_tlsext_host_name(m_TLSSock->native_handle(), m_IP.c_str()); // Enable SNI
-
- m_TLSSock->set_verify_mode(boost::asio::ssl::verify_none);
-- m_TLSSock->set_verify_callback(boost::asio::ssl::rfc2818_verification(m_IP));
-+ m_TLSSock->set_verify_callback(boost::asio::ssl::host_name_verification(m_IP));
- // m_TLSSock->set_verify_callback([this](auto v, auto &c){ VerifyCertificate(v, c);});
- try
- {
-@@ -648,7 +646,7 @@ namespace Plugins {
- // Hanlde multicast
- if (((m_IP.substr(0, 4) >= "224.") && (m_IP.substr(0, 4) <= "239.")) || (m_IP.substr(0, 4) == "255."))
- {
-- m_Socket->set_option(boost::asio::ip::multicast::join_group(boost::asio::ip::address::from_string(m_IP.c_str())), ec);
-+ m_Socket->set_option(boost::asio::ip::multicast::join_group(boost::asio::ip::make_address_v4(m_IP.c_str())), ec);
- m_Socket->set_option(boost::asio::ip::multicast::hops(2), ec);
- }
- }
-@@ -764,7 +762,7 @@ namespace Plugins {
- }
- else
- {
-- boost::asio::ip::udp::endpoint destination(boost::asio::ip::address::from_string(m_IP.c_str()), atoi(m_Port.c_str()));
-+ boost::asio::ip::udp::endpoint destination(boost::asio::ip::make_address_v4(m_IP.c_str()), atoi(m_Port.c_str()));
- size_t bytes_transferred = m_Socket->send_to(boost::asio::buffer(pMessage, pMessage.size()), destination);
- }
- }
-@@ -825,12 +823,14 @@ namespace Plugins {
- }
- };
-
-- void CPluginTransportICMP::handleAsyncResolve(const boost::system::error_code &ec, const boost::asio::ip::icmp::resolver::iterator &endpoint_iterator)
-+ void CPluginTransportICMP::handleAsyncResolve(const boost::system::error_code &ec, boost::asio::ip::icmp::resolver::results_type endpoints)
- {
- if (!ec)
- {
-+ m_Endpoint = endpoints.begin()->endpoint();
-+ m_IP = m_Endpoint.address().to_string();
-+
- m_bConnected = true;
-- m_IP = endpoint_iterator->endpoint().address().to_string();
-
- // Listen will fail (10022 - bad parameter) unless something has been sent(?)
- std::string body("ping");
-@@ -857,15 +857,11 @@ namespace Plugins {
- m_bConnecting = true;
- m_Socket = new boost::asio::ip::icmp::socket(ios, boost::asio::ip::icmp::v4());
-
-- boost::system::error_code ec;
-- boost::asio::ip::icmp::resolver::query query(boost::asio::ip::icmp::v4(), m_IP, "");
-- auto iter = m_Resolver.resolve(query);
-- m_Endpoint = *iter;
--
-- //
-- // Async resolve/connect based on http://www.boost.org/doc/libs/1_51_0/doc/html/boost_asio/example/icmp/ping.cpp
-- //
-- m_Resolver.async_resolve(query, [this](auto &&err, auto i) { handleAsyncResolve(err, i); });
-+ m_Resolver.async_resolve(boost::asio::ip::icmp::v4(), m_IP, "",
-+ [this](auto &&err, auto endpoints) {
-+ handleAsyncResolve(err, endpoints);
-+ }
-+ );
- }
- else
- {
-diff --git hardware/plugins/PluginTransports.h hardware/plugins/PluginTransports.h
-index c1cc1e3..79d5725 100644
---- hardware/plugins/PluginTransports.h
-+++ hardware/plugins/PluginTransports.h
-@@ -6,7 +6,7 @@
-
- namespace Plugins {
-
-- extern boost::asio::io_service ios;
-+ extern boost::asio::io_context ios;
-
- class CPluginTransport
- {
-@@ -85,8 +85,8 @@ namespace Plugins {
- , m_Socket(nullptr){};
- bool handleConnect() override;
- bool handleListen() override;
-- virtual void handleAsyncResolve(const boost::system::error_code &err, boost::asio::ip::tcp::resolver::iterator endpoint_iterator);
-- virtual void handleAsyncConnect(const boost::system::error_code &err, const boost::asio::ip::tcp::resolver::iterator &endpoint_iterator);
-+ virtual void handleAsyncResolve(const boost::system::error_code &err, boost::asio::ip::tcp::resolver::results_type endpoints);
-+ virtual void handleAsyncConnect(const boost::system::error_code &err, const boost::asio::ip::tcp::endpoint &endpoint);
- virtual void handleAsyncAccept(boost::asio::ip::tcp::socket *pSocket, const boost::system::error_code &error);
- void handleRead(const boost::system::error_code &e, std::size_t bytes_transferred) override;
- void handleWrite(const std::vector<byte> &pMessage) override;
-@@ -111,7 +111,7 @@ namespace Plugins {
- : CPluginTransportTCP(HwdID, pConnection, Address, Port)
- , m_Context(nullptr)
- , m_TLSSock(nullptr){};
-- void handleAsyncConnect(const boost::system::error_code &err, const boost::asio::ip::tcp::resolver::iterator &endpoint_iterator) override;
-+ void handleAsyncConnect(const boost::system::error_code &err, const boost::asio::ip::tcp::endpoint &endpoint) override;
- void handleRead(const boost::system::error_code &e, std::size_t bytes_transferred) override;
- void handleWrite(const std::vector<byte> &pMessage) override;
- ~CPluginTransportTCPSecure() override;
-@@ -151,7 +151,7 @@ namespace Plugins {
- , m_Socket(nullptr)
- , m_Timer(nullptr)
- , m_SequenceNo(-1){};
-- void handleAsyncResolve(const boost::system::error_code &err, const boost::asio::ip::icmp::resolver::iterator &endpoint_iterator);
-+ void handleAsyncResolve(const boost::system::error_code &err, boost::asio::ip::icmp::resolver::results_type endpoints);
- bool handleListen() override;
- void handleTimeout(const boost::system::error_code &) override;
- void handleRead(const boost::system::error_code &e, std::size_t bytes_transferred) override;
-diff --git main/WebServerCmds.cpp main/WebServerCmds.cpp
-index 7d4a9f2..3586373 100644
---- main/WebServerCmds.cpp
-+++ main/WebServerCmds.cpp
-@@ -1632,7 +1632,7 @@ namespace http
- ExtraHeaders.push_back("App_Revision: " + std::to_string(iAppRevision));
- ExtraHeaders.push_back("System_Name: " + systemname);
- ExtraHeaders.push_back("Machine: " + machine);
-- ExtraHeaders.push_back("Type: " + (!bIsBetaChannel) ? "Stable" : "Beta");
-+ ExtraHeaders.push_back("Type: " + std::string(!bIsBetaChannel ? "Stable" : "Beta"));
-
- if (!HTTPClient::GET(szHistoryURL, ExtraHeaders, historyfile))
- {
-diff --git main/mainworker.cpp main/mainworker.cpp
-index b5027eb..b8f8dc7 100644
---- main/mainworker.cpp
-+++ main/mainworker.cpp
-@@ -1318,7 +1318,7 @@ bool MainWorker::IsUpdateAvailable(const bool bIsForced)
- ExtraHeaders.push_back("App_Revision: " + std::to_string(iAppRevision));
- ExtraHeaders.push_back("System_Name: " + m_szSystemName);
- ExtraHeaders.push_back("Machine: " + machine);
-- ExtraHeaders.push_back("Type: " + (!bIsBetaChannel) ? "Stable" : "Beta");
-+ ExtraHeaders.push_back("Type: " + std::string(!bIsBetaChannel ? "Stable" : "Beta"));
-
- if (!HTTPClient::GET(szURL, ExtraHeaders, revfile))
- return false;
-diff --git plugins/examples/Pinger.py plugins/examples/Pinger.py
-index 6b54559..c7a776d 100644
---- plugins/examples/Pinger.py
-+++ plugins/examples/Pinger.py
-@@ -3,7 +3,7 @@
- # Author: Dnpwwo, 2017 - 2018
- #
- """
--<plugin key="ICMP" name="Pinger (ICMP)" author="dnpwwo" version="3.1.4">
-+<plugin key="ICMP" name="Pinger (ICMP)" author="dnpwwo" version="3.1.5">
- <description>
- ICMP Pinger Plugin.<br/><br/>
- Specify comma delimted addresses (IP or DNS names) of devices that are to be pinged.<br/>
-@@ -144,8 +144,9 @@ class BasePlugin:
- for Device in Devices:
- if (("Name" in Devices[Device].Options) and (Devices[Device].Options["Name"] == Connection.Name)):
- UpdateDevice(Device, 0, "Off", TimedOut)
-- self.icmpConn.Close()
-- self.icmpConn = None
-+ if (self.icmpConn != None):
-+ self.icmpConn.Close()
-+ self.icmpConn = None
-
- def onHeartbeat(self):
- Domoticz.Debug("Heartbeating...")
-diff --git push/MQTTPush.h push/MQTTPush.h
-index 0773b43..d9f9332 100644
---- push/MQTTPush.h
-+++ push/MQTTPush.h
-@@ -14,7 +14,7 @@ public:
- void on_message(const struct mosquitto_message* message) override;
- void on_connect(int rc) override;
- void on_disconnect(int rc) override;
-- void on_going_down();
-+ void on_going_down() override;
- private:
- struct _tPushItem
- {
-diff --git tcpserver/TCPClient.cpp tcpserver/TCPClient.cpp
-index d55da10..3eee093 100644
---- tcpserver/TCPClient.cpp
-+++ tcpserver/TCPClient.cpp
-@@ -19,7 +19,7 @@ namespace tcp {
- delete socket_;
- }
-
-- CTCPClient::CTCPClient(boost::asio::io_service& ios, CTCPServerIntBase* pManager)
-+ CTCPClient::CTCPClient(boost::asio::io_context& ios, CTCPServerIntBase* pManager)
- : CTCPClientBase(pManager)
- {
- socket_ = new boost::asio::ip::tcp::socket(ios);
-diff --git tcpserver/TCPClient.h tcpserver/TCPClient.h
-index df4350d..e7a882b 100644
---- tcpserver/TCPClient.h
-+++ tcpserver/TCPClient.h
-@@ -38,7 +38,7 @@ class CTCPClient : public CTCPClientBase,
- public std::enable_shared_from_this<CTCPClient>
- {
- public:
-- CTCPClient(boost::asio::io_service& ios, CTCPServerIntBase *pManager);
-+ CTCPClient(boost::asio::io_context& ios, CTCPServerIntBase *pManager);
- ~CTCPClient() = default;
- void start() override;
- void stop() override;
-diff --git tcpserver/TCPServer.cpp tcpserver/TCPServer.cpp
-index 91fdc7e..57f8709 100644
---- tcpserver/TCPServer.cpp
-+++ tcpserver/TCPServer.cpp
-@@ -18,14 +18,14 @@ namespace tcp {
-
- CTCPServerInt::CTCPServerInt(const std::string& address, const std::string& port, CTCPServer* pRoot) :
- CTCPServerIntBase(pRoot),
-- io_service_(),
-- acceptor_(io_service_)
-+ io_context_(),
-+ acceptor_(io_context_)
- {
- // Open the acceptor with the option to reuse the address (i.e. SO_REUSEADDR).
-- boost::asio::ip::tcp::resolver resolver(io_service_);
-- boost::asio::ip::tcp::resolver::query query(address, port);
-- boost::asio::ip::tcp::endpoint endpoint = *resolver.resolve(query);
-- acceptor_.open(endpoint.protocol());
-+ boost::asio::ip::tcp::resolver resolver(io_context_);
-+ boost::asio::ip::basic_resolver<boost::asio::ip::tcp>::results_type endpoints = resolver.resolve(address, port);
-+ auto endpoint = *endpoints.begin();
-+ acceptor_.open(endpoint.endpoint().protocol());
- acceptor_.set_option(boost::asio::ip::tcp::acceptor::reuse_address(true));
- // bind to both ipv6 and ipv4 sockets for the "::" address only
- if (address == "::")
-@@ -35,7 +35,7 @@ namespace tcp {
- acceptor_.bind(endpoint);
- acceptor_.listen();
-
-- new_connection_ = std::make_shared<CTCPClient>(io_service_, this);
-+ new_connection_ = std::make_shared<CTCPClient>(io_context_, this);
- if (new_connection_ == nullptr)
- {
- _log.Log(LOG_ERROR, "Error creating new client!");
-@@ -47,24 +47,24 @@ namespace tcp {
-
- void CTCPServerInt::start()
- {
-- // The io_service::run() call will block until all asynchronous operations
-+ // The io_context::run() call will block until all asynchronous operations
- // have finished. While the server is running, there is always at least one
- // asynchronous operation outstanding: the asynchronous accept call waiting
- // for new incoming connections.
-- io_service_.run();
-+ io_context_.run();
- }
-
- void CTCPServerInt::stop()
- {
- // Post a call to the stop function so that server::stop() is safe to call
- // from any thread.
-- io_service_.post([this] { handle_stop(); });
-+ boost::asio::post([this] { handle_stop(); });
- }
-
- void CTCPServerInt::handle_stop()
- {
- // The server is stopped by cancelling all outstanding asynchronous
-- // operations. Once all operations have finished the io_service::run() call
-+ // operations. Once all operations have finished the io_context::run() call
- // will exit.
- acceptor_.close();
- stopAllClients();
-@@ -88,7 +88,7 @@ namespace tcp {
- connections_.insert(new_connection_);
- new_connection_->start();
-
-- new_connection_.reset(new CTCPClient(io_service_, this));
-+ new_connection_.reset(new CTCPClient(io_context_, this));
-
- acceptor_.async_accept(*(new_connection_->socket()), [this](auto&& err) { handleAccept(err); });
- }
-diff --git tcpserver/TCPServer.h tcpserver/TCPServer.h
-index ca611b1..17284ca 100644
---- tcpserver/TCPServer.h
-+++ tcpserver/TCPServer.h
-@@ -70,8 +70,8 @@ private:
- /// Handle a request to stop the server.
- void handle_stop();
-
-- /// The io_service used to perform asynchronous operations.
-- boost::asio::io_service io_service_;
-+ /// The io_context used to perform asynchronous operations.
-+ boost::asio::io_context io_context_;
-
- boost::asio::ip::tcp::acceptor acceptor_;
-
-diff --git webserver/cWebem.cpp webserver/cWebem.cpp
-index 57d9683..c0d292d 100644
---- webserver/cWebem.cpp
-+++ webserver/cWebem.cpp
-@@ -47,13 +47,13 @@ namespace http {
- , myRequestHandler(doc_root, this)
- // Rene, make sure we initialize m_sessions first, before starting a server
- , myServer(server_factory::create(settings, myRequestHandler))
-- , m_io_service()
-- , m_session_clean_timer(m_io_service, boost::posix_time::minutes(1))
-+ , m_io_context()
-+ , m_session_clean_timer(m_io_context, boost::posix_time::minutes(1))
- {
- // associate handler to timer and schedule the first iteration
- m_session_clean_timer.async_wait([this](auto &&) { CleanSessions(); });
-- m_io_service_thread = std::make_shared<std::thread>([p = &m_io_service] { p->run(); });
-- SetThreadName(m_io_service_thread->native_handle(), "Webem_ssncleaner");
-+ m_io_context_thread = std::make_shared<std::thread>([p = &m_io_context] { p->run(); });
-+ SetThreadName(m_io_context_thread->native_handle(), "Webem_ssncleaner");
- }
-
- cWebem::~cWebem()
-@@ -93,14 +93,14 @@ namespace http {
- // Stop session cleaner
- try
- {
-- if (!m_io_service.stopped())
-+ if (!m_io_context.stopped())
- {
-- m_io_service.stop();
-+ m_io_context.stop();
- }
-- if (m_io_service_thread)
-+ if (m_io_context_thread)
- {
-- m_io_service_thread->join();
-- m_io_service_thread.reset();
-+ m_io_context_thread->join();
-+ m_io_context_thread.reset();
- }
- }
- catch (...)
-diff --git webserver/cWebem.h webserver/cWebem.h
-index 6e3b899..7905c45 100644
---- webserver/cWebem.h
-+++ webserver/cWebem.h
-@@ -259,9 +259,9 @@ namespace http
- std::string m_webRoot;
- /// sessions management
- std::mutex m_sessionsMutex;
-- boost::asio::io_service m_io_service;
-+ boost::asio::io_context m_io_context;
- boost::asio::deadline_timer m_session_clean_timer;
-- std::shared_ptr<std::thread> m_io_service_thread;
-+ std::shared_ptr<std::thread> m_io_context_thread;
- };
-
- } // namespace server
-diff --git webserver/connection.cpp webserver/connection.cpp
-index 40f9788..3a70924 100644
---- webserver/connection.cpp
-+++ webserver/connection.cpp
-@@ -22,13 +22,13 @@ namespace http {
- extern time_t last_write_time(const std::string& path);
-
- // this is the constructor for plain connections
-- connection::connection(boost::asio::io_service &io_service, connection_manager &manager, request_handler &handler, int read_timeout)
-+ connection::connection(boost::asio::io_context &io_context, connection_manager &manager, request_handler &handler, int read_timeout)
- : send_buffer_(nullptr)
- , read_timeout_(read_timeout)
-- , read_timer_(io_service, boost::posix_time::seconds(read_timeout))
-+ , read_timer_(io_context, boost::posix_time::seconds(read_timeout))
- , default_abandoned_timeout_(20 * 60)
- // 20mn before stopping abandoned connection
-- , abandoned_timer_(io_service, boost::posix_time::seconds(default_abandoned_timeout_))
-+ , abandoned_timer_(io_context, boost::posix_time::seconds(default_abandoned_timeout_))
- , connection_manager_(manager)
- , request_handler_(handler)
- , status_(INITIALIZING)
-@@ -39,18 +39,18 @@ namespace http {
- keepalive_ = false;
- write_in_progress = false;
- connection_type = ConnectionType::connection_http;
-- socket_ = std::make_unique<boost::asio::ip::tcp::socket>(io_service);
-+ socket_ = std::make_unique<boost::asio::ip::tcp::socket>(io_context);
- }
-
- #ifdef WWW_ENABLE_SSL
- // this is the constructor for secure connections
-- connection::connection(boost::asio::io_service &io_service, connection_manager &manager, request_handler &handler, int read_timeout, boost::asio::ssl::context &context)
-+ connection::connection(boost::asio::io_context &io_context, connection_manager &manager, request_handler &handler, int read_timeout, boost::asio::ssl::context &context)
- : send_buffer_(nullptr)
- , read_timeout_(read_timeout)
-- , read_timer_(io_service, boost::posix_time::seconds(read_timeout))
-+ , read_timer_(io_context, boost::posix_time::seconds(read_timeout))
- , default_abandoned_timeout_(20 * 60)
- // 20mn before stopping abandoned connection
-- , abandoned_timer_(io_service, boost::posix_time::seconds(default_abandoned_timeout_))
-+ , abandoned_timer_(io_context, boost::posix_time::seconds(default_abandoned_timeout_))
- , connection_manager_(manager)
- , request_handler_(handler)
- , status_(INITIALIZING)
-@@ -62,7 +62,7 @@ namespace http {
- write_in_progress = false;
- connection_type = ConnectionType::connection_http;
- socket_ = nullptr;
-- sslsocket_ = std::make_unique<ssl_socket>(io_service, context);
-+ sslsocket_ = std::make_unique<ssl_socket>(io_context, context);
- }
- #endif
-
-@@ -152,9 +152,9 @@ namespace http {
- if (error != boost::asio::error::operation_aborted) {
- switch (connection_type) {
- case ConnectionType::connection_http:
-- // Timers should be cancelled before stopping to remove tasks from the io_service.
-- // The io_service will stop naturally when every tasks are removed.
-- // If timers are not cancelled, the exception ERROR_ABANDONED_WAIT_0 is thrown up to the io_service::run() caller.
-+ // Timers should be cancelled before stopping to remove tasks from the io_context.
-+ // The io_context will stop naturally when every tasks are removed.
-+ // If timers are not cancelled, the exception ERROR_ABANDONED_WAIT_0 is thrown up to the io_context::run() caller.
- cancel_abandoned_timeout();
- cancel_read_timeout();
-
-@@ -372,7 +372,7 @@ namespace http {
- switch (connection_type)
- {
- case ConnectionType::connection_http:
-- begin = boost::asio::buffer_cast<const char*>(_buf.data());
-+ begin = static_cast<const char*>(_buf.data().data());
- try
- {
- request_parser_.reset();
-@@ -404,7 +404,7 @@ namespace http {
- newt = std::chrono::system_clock::to_time_t(std::chrono::system_clock::now());
- }
-
-- size_t sizeread = begin - boost::asio::buffer_cast<const char*>(_buf.data());
-+ size_t sizeread = begin - static_cast<const char*>(_buf.data().data());
- _buf.consume(sizeread);
- reply_.reset();
- const char* pConnection = request_.get_req_header(&request_, "Connection");
-@@ -520,7 +520,7 @@ namespace http {
- break;
- case ConnectionType::connection_websocket:
- case ConnectionType::connection_websocket_closing:
-- begin = boost::asio::buffer_cast<const char*>(_buf.data());
-+ begin = static_cast<const char*>(_buf.data().data());
- result = websocket_parser.parse((const unsigned char*)begin, _buf.size(), bytes_consumed, keepalive_);
- _buf.consume(bytes_consumed);
- if (result) {
-diff --git webserver/connection.hpp webserver/connection.hpp
-index ce452b5..c1a82c5 100644
---- webserver/connection.hpp
-+++ webserver/connection.hpp
-@@ -43,11 +43,11 @@ namespace http {
- std::string host_local_endpoint_port_;
- std::string host_last_request_uri_;
- };
-- /// Construct a connection with the given io_service.
-- explicit connection(boost::asio::io_service& io_service,
-+ /// Construct a connection with the given io_context.
-+ explicit connection(boost::asio::io_context& io_context,
- connection_manager& manager, request_handler& handler, int timeout);
- #ifdef WWW_ENABLE_SSL
-- explicit connection(boost::asio::io_service& io_service,
-+ explicit connection(boost::asio::io_context& io_context,
- connection_manager& manager, request_handler& handler, int timeout, boost::asio::ssl::context& context);
- #endif
- ~connection() = default;
-diff --git webserver/server.cpp webserver/server.cpp
-index da15887..8bdfc13 100644
---- webserver/server.cpp
-+++ webserver/server.cpp
-@@ -13,15 +13,15 @@ namespace http {
- namespace server {
-
- server_base::server_base(const server_settings &settings, request_handler &user_request_handler)
-- : io_service_()
-- , acceptor_(io_service_)
-+ : io_context_()
-+ , acceptor_(io_context_)
- , request_handler_(user_request_handler)
- , settings_(settings)
- , timeout_(20)
- , // default read timeout in seconds
- is_running(false)
- , is_stop_complete(false)
-- , m_heartbeat_timer(io_service_)
-+ , m_heartbeat_timer(io_context_)
- {
- if (!settings.is_enabled())
- {
-@@ -39,10 +39,10 @@ namespace server {
- }
-
- // Open the acceptor with the option to reuse the address (i.e. SO_REUSEADDR).
-- boost::asio::ip::tcp::resolver resolver(io_service_);
-- boost::asio::ip::tcp::resolver::query query(settings_.listening_address, settings_.listening_port);
-- boost::asio::ip::tcp::endpoint endpoint = *resolver.resolve(query);
-- acceptor_.open(endpoint.protocol());
-+ boost::asio::ip::tcp::resolver resolver(io_context_);
-+ boost::asio::ip::basic_resolver<boost::asio::ip::tcp>::results_type endpoints = resolver.resolve(settings_.listening_address, settings_.listening_port);
-+ auto endpoint = *endpoints.begin();
-+ acceptor_.open(endpoint.endpoint().protocol());
- acceptor_.set_option(boost::asio::ip::tcp::acceptor::reuse_address(true));
- // bind to both ipv6 and ipv4 sockets for the "::" address only
- if (settings_.listening_address == "::")
-@@ -59,28 +59,28 @@ namespace server {
- }
-
- void server_base::run() {
-- // The io_service::run() call will block until all asynchronous operations
-+ // The io_context::run() call will block until all asynchronous operations
- // have finished. While the server is running, there is always at least one
- // asynchronous operation outstanding: the asynchronous accept call waiting
- // for new incoming connections.
- try {
- is_running = true;
- heart_beat(boost::system::error_code());
-- io_service_.run();
-+ io_context_.run();
- is_running = false;
- } catch (std::exception& e) {
- _log.Log(LOG_ERROR, "[web:%s] exception occurred : '%s' (need to run again)", settings_.listening_port.c_str(), e.what());
- is_running = false;
- // Note: if acceptor is up everything is OK, we can call run() again
- // but if the exception has broken the acceptor we cannot stop/start it and the next run() will exit immediatly.
-- io_service_.reset(); // this call is needed before calling run() again
-+ io_context_.restart(); // this call is needed before calling run() again
- throw;
- } catch (...) {
- _log.Log(LOG_ERROR, "[web:%s] unknown exception occurred (need to run again)", settings_.listening_port.c_str());
- is_running = false;
- // Note: if acceptor is up everything is OK, we can call run() again
- // but if the exception has broken the acceptor we cannot stop/start it and the next run() will exit immediatly.
-- io_service_.reset(); // this call is needed before calling run() again
-+ io_context_.restart(); // this call is needed before calling run() again
- throw;
- }
- }
-@@ -89,12 +89,12 @@ void server_base::run() {
- void server_base::stop() {
- if (is_running) {
- // Post a call to the stop function so that server_base::stop() is safe to call from any thread.
-- // Rene, set is_running to false, because the following is an io_service call, which makes is_running
-+ // Rene, set is_running to false, because the following is an io_context call, which makes is_running
- // never set to false whilst in the call itself
- is_running = false;
-- io_service_.post([this] { handle_stop(); });
-+ boost::asio::post(io_context_, [this] { handle_stop(); });
- } else {
-- // if io_service is not running then the post call will not be performed
-+ // if io_context is not running then the post call will not be performed
- handle_stop();
- }
-
-@@ -112,7 +112,7 @@ void server_base::stop() {
- }
- sleep_milliseconds(500);
- }
-- io_service_.stop();
-+ io_context_.stop();
-
- // Deregister heartbeat
- m_mainworker.HeartbeatRemove(std::string("WebServer:") + settings_.listening_port);
-@@ -136,7 +136,7 @@ void server_base::heart_beat(const boost::system::error_code& error)
- m_mainworker.HeartbeatUpdate(std::string("WebServer:") + settings_.listening_port);
-
- // Schedule next heartbeat
-- m_heartbeat_timer.expires_from_now(std::chrono::seconds(4));
-+ m_heartbeat_timer.expires_after(std::chrono::seconds(4));
- m_heartbeat_timer.async_wait([this](auto &&err) { heart_beat(err); });
- }
- }
-@@ -148,7 +148,7 @@ server::server(const server_settings &settings, request_handler &user_request_ha
- }
-
- void server::init_connection() {
-- new_connection_.reset(new connection(io_service_, connection_manager_, request_handler_, timeout_));
-+ new_connection_.reset(new connection(io_context_, connection_manager_, request_handler_, timeout_));
- }
-
- /**
-@@ -157,7 +157,7 @@ void server::init_connection() {
- void server::handle_accept(const boost::system::error_code& e) {
- if (!e) {
- connection_manager_.start(new_connection_);
-- new_connection_.reset(new connection(io_service_,
-+ new_connection_.reset(new connection(io_context_,
- connection_manager_, request_handler_, timeout_));
- // listen for a subsequent request
- acceptor_.async_accept(new_connection_->socket(), [this](auto &&err) { handle_accept(err); });
-@@ -267,7 +267,7 @@ void ssl_server::init_connection() {
- } else {
- _log.Log(LOG_ERROR, "[web:%s] missing SSL DH parameters file %s!", settings_.listening_port.c_str(), settings_.tmp_dh_file_path.c_str());
- }
-- new_connection_.reset(new connection(io_service_, connection_manager_, request_handler_, timeout_, context_));
-+ new_connection_.reset(new connection(io_context_, connection_manager_, request_handler_, timeout_, context_));
- }
-
- void ssl_server::reinit_connection()
-@@ -305,7 +305,7 @@ void ssl_server::reinit_connection()
- _log.Log(LOG_ERROR, "[web:%s] missing SSL DH parameters from file %s", settings_.listening_port.c_str(), settings_.tmp_dh_file_path.c_str());
- }
- }
-- new_connection_.reset(new connection(io_service_, connection_manager_, request_handler_, timeout_, context_));
-+ new_connection_.reset(new connection(io_context_, connection_manager_, request_handler_, timeout_, context_));
- }
-
- /**
-diff --git webserver/server.hpp webserver/server.hpp
-index f9e71c5..bd7132a 100644
---- webserver/server.hpp
-+++ webserver/server.hpp
-@@ -31,7 +31,7 @@ namespace http
- explicit server_base(const server_settings &settings, request_handler &user_request_handler);
- virtual ~server_base() = default;
-
-- /// Run the server's io_service loop.
-+ /// Run the server's io_context loop.
- void run();
-
- /// Stop the server.
-@@ -46,8 +46,8 @@ namespace http
- protected:
- void init(const init_connectionhandler_func &init_connection_handler, accept_handler_func accept_handler);
-
-- /// The io_service used to perform asynchronous operations.
-- boost::asio::io_service io_service_;
-+ /// The io_context used to perform asynchronous operations.
-+ boost::asio::io_context io_context_;
-
- /// Acceptor used to listen for incoming connections.
- boost::asio::ip::tcp::acceptor acceptor_;
diff --git a/www/domoticz-devel/pkg-plist b/www/domoticz-devel/pkg-plist
index 41c8f0520d0a..8afc64edd6fb 100644
--- a/www/domoticz-devel/pkg-plist
+++ b/www/domoticz-devel/pkg-plist
@@ -346,6 +346,8 @@ domoticz/www/app/hardware/extra/DaikinParams.html
domoticz/www/app/hardware/extra/DaikinParams.js
domoticz/www/app/hardware/extra/MQTTParams.html
domoticz/www/app/hardware/extra/MQTTParams.js
+domoticz/www/app/hardware/extra/TadoParams.html
+domoticz/www/app/hardware/extra/TadoParams.js
domoticz/www/app/hardware/setup/BleBox.html
domoticz/www/app/hardware/setup/BleBox.js
domoticz/www/app/hardware/setup/EnOceanESP3.html
@@ -559,6 +561,9 @@ domoticz/www/i18n/domoticz-zh_TW.json.gz
domoticz/www/images/AC.png
domoticz/www/images/AC48_Off.png
domoticz/www/images/AC48_On.png
+domoticz/www/images/AirMeasure.png
+domoticz/www/images/AirMeasure48_Off.png
+domoticz/www/images/AirMeasure48_On.png
domoticz/www/images/Alarm.png
domoticz/www/images/Alarm48_Off.png
domoticz/www/images/Alarm48_On.png
@@ -571,9 +576,15 @@ domoticz/www/images/Alert48_4.png
domoticz/www/images/Amplifier.png
domoticz/www/images/Amplifier48_Off.png
domoticz/www/images/Amplifier48_On.png
+domoticz/www/images/Charger.png
+domoticz/www/images/Charger48_Off.png
+domoticz/www/images/Charger48_On.png
domoticz/www/images/ChristmasTree.png
domoticz/www/images/ChristmasTree48_Off.png
domoticz/www/images/ChristmasTree48_On.png
+domoticz/www/images/Coffee.png
+domoticz/www/images/Coffee48_Off.png
+domoticz/www/images/Coffee48_On.png
domoticz/www/images/Coltemp48.png
domoticz/www/images/Coltemp48_Sel.png
domoticz/www/images/Computer.png
@@ -607,6 +618,9 @@ domoticz/www/images/Fan48_On.png
domoticz/www/images/Fireplace.png
domoticz/www/images/Fireplace48_Off.png
domoticz/www/images/Fireplace48_On.png
+domoticz/www/images/GLight.png
+domoticz/www/images/GLight48_Off.png
+domoticz/www/images/GLight48_On.png
domoticz/www/images/Gas48.png
domoticz/www/images/Generic.png
domoticz/www/images/Generic48_Off.png
@@ -617,9 +631,17 @@ domoticz/www/images/Harddisk48_On.png
domoticz/www/images/Heating.png
domoticz/www/images/Heating48_Off.png
domoticz/www/images/Heating48_On.png
+domoticz/www/images/Humidity48_Off.png
+domoticz/www/images/Humidity48_On.png
+domoticz/www/images/Inverter.png
+domoticz/www/images/Inverter48_Off.png
+domoticz/www/images/Inverter48_On.png
domoticz/www/images/Irrigation.png
domoticz/www/images/Irrigation48_Off.png
domoticz/www/images/Irrigation48_On.png
+domoticz/www/images/Laadpaal.png
+domoticz/www/images/Laadpaal48_Off.png
+domoticz/www/images/Laadpaal48_On.png
domoticz/www/images/Light48_Off.png
domoticz/www/images/Light48_On.png
domoticz/www/images/LogitechMediaServer.png
@@ -636,6 +658,9 @@ domoticz/www/images/Phone48_On.png
domoticz/www/images/Printer.png
domoticz/www/images/Printer48_Off.png
domoticz/www/images/Printer48_On.png
+domoticz/www/images/Pump.png
+domoticz/www/images/Pump48_Off.png
+domoticz/www/images/Pump48_On.png
domoticz/www/images/Push48_Off.png
domoticz/www/images/Push48_On.png
domoticz/www/images/RGB.png
@@ -643,23 +668,41 @@ domoticz/www/images/RGB48.png
domoticz/www/images/RGB48_Off.png
domoticz/www/images/RGB48_On.png
domoticz/www/images/RGB48_Sel.png
+domoticz/www/images/Radiator.png
+domoticz/www/images/Radiator48_Off.png
+domoticz/www/images/Radiator48_On.png
domoticz/www/images/Rain48_Off.png
domoticz/www/images/Rain48_On.png
+domoticz/www/images/Soil.png
+domoticz/www/images/Soil48_Off.png
+domoticz/www/images/Soil48_On.png
+domoticz/www/images/Solar.png
+domoticz/www/images/Solar48_Off.png
+domoticz/www/images/Solar48_On.png
domoticz/www/images/Speaker.png
domoticz/www/images/Speaker48_Off.png
domoticz/www/images/Speaker48_On.png
domoticz/www/images/Stop48.png
+domoticz/www/images/Strip.png
+domoticz/www/images/Strip48_Off.png
+domoticz/www/images/Strip48_On.png
domoticz/www/images/Sun.png
domoticz/www/images/Sun48_Off.png
domoticz/www/images/Sun48_On.png
domoticz/www/images/TV.png
domoticz/www/images/TV48_Off.png
domoticz/www/images/TV48_On.png
+domoticz/www/images/Tap.png
+domoticz/www/images/Tap48_Off.png
+domoticz/www/images/Tap48_On.png
domoticz/www/images/Up48.png
domoticz/www/images/Up48_2.png
domoticz/www/images/WallSocket.png
domoticz/www/images/WallSocket48_Off.png
domoticz/www/images/WallSocket48_On.png
+domoticz/www/images/WashingMachine.png
+domoticz/www/images/WashingMachine48_Off.png
+domoticz/www/images/WashingMachine48_On.png
domoticz/www/images/Water.png
domoticz/www/images/Water48_Off.png
domoticz/www/images/Water48_On.png
@@ -682,6 +725,9 @@ domoticz/www/images/WindSW.png
domoticz/www/images/WindW.png
domoticz/www/images/WindWNW.png
domoticz/www/images/WindWSW.png
+domoticz/www/images/Window.png
+domoticz/www/images/Window48_Off.png
+domoticz/www/images/Window48_On.png
domoticz/www/images/about.png
domoticz/www/images/add.png
domoticz/www/images/adjust48.png
@@ -713,6 +759,7 @@ domoticz/www/images/camera_default.png
domoticz/www/images/capture.png
domoticz/www/images/clock.png
domoticz/www/images/clock48.png
+domoticz/www/images/clock48_Off.png
domoticz/www/images/clock48_On.png
domoticz/www/images/collection.png
domoticz/www/images/collection_hover.png
@@ -837,6 +884,9 @@ domoticz/www/images/overrule.png
domoticz/www/images/overrule_mini.png
domoticz/www/images/pdf.png
domoticz/www/images/pdf_hover.png
+domoticz/www/images/pool.png
+domoticz/www/images/pool48_Off.png
+domoticz/www/images/pool48_On.png
domoticz/www/images/print.png
domoticz/www/images/print_hover.png
domoticz/www/images/program.png
@@ -908,6 +958,9 @@ domoticz/www/images/uv48.png
domoticz/www/images/uvdark.png
domoticz/www/images/uvsunny.png
domoticz/www/images/variables.png
+domoticz/www/images/victron.png
+domoticz/www/images/victron48_Off.png
+domoticz/www/images/victron48_On.png
domoticz/www/images/visibility.png
domoticz/www/images/visibility48.png
domoticz/www/images/webcam.png
@@ -1016,6 +1069,7 @@ domoticz/www/js/highcharts/modules/exporting.js.gz
domoticz/www/js/highcharts/modules/no-data-to-display.js.gz
domoticz/www/js/highcharts/modules/sankey.js.gz
domoticz/www/js/highcharts/modules/xrange.js.gz
+domoticz/www/js/highcharts/themes/brand-dark.js.gz
domoticz/www/js/highcharts/themes/dark-unica.js.gz
domoticz/www/js/html5shiv.js.gz
domoticz/www/js/i18next-1.8.0.min.js.gz
diff --git a/www/domoticz/Makefile b/www/domoticz/Makefile
index bfc14a878c90..77660aa2a477 100644
--- a/www/domoticz/Makefile
+++ b/www/domoticz/Makefile
@@ -1,6 +1,5 @@
PORTNAME= domoticz
-DISTVERSION= 2024.7
-PORTREVISION= 4
+DISTVERSION= 2025.2
CATEGORIES= www
MAINTAINER= kiwi@FreeBSD.org
@@ -10,6 +9,8 @@ WWW= https://www.domoticz.com
LICENSE= GPLv3
LICENSE_FILE= ${WRKSRC}/License.txt
+BUILD_DEPENDS= ${LOCALBASE}/include/jwt-cpp/jwt.h:devel/jwt-cpp
+
LIB_DEPENDS= libcurl.so:ftp/curl \
libboost_thread.so:devel/boost-libs \
libjsoncpp.so:devel/jsoncpp \
@@ -27,7 +28,8 @@ CMAKE_OFF+= GIT_SUBMODULE \
USE_BUILTIN_MINIZIP \
USE_BUILTIN_JSONCPP \
USE_BUILTIN_MQTT \
- USE_STATIC_OPENZWAVE
+ USE_STATIC_OPENZWAVE \
+ USE_BUILTIN_JWTCPP
CMAKE_INSTALL_PREFIX= ${PREFIX}/domoticz
@@ -51,11 +53,6 @@ PRECOMP_CMAKE_BOOL= USE_PRECOMPILED_HEADER
PYTHON_USES= python:3.9+
PYTHON_CMAKE_BOOL= USE_PYTHON
-post-patch:
- @${REINPLACE_CMD} -e '/find_package/s| system||' \
- -e '/target_link_libraries/s| Boost::system||' \
- ${WRKSRC}/CMakeLists.txt
-
post-install:
${MKDIR} ${STAGEDIR}/var/db/domoticz ${STAGEDIR}/var/run/domoticz
diff --git a/www/domoticz/distinfo b/www/domoticz/distinfo
index 9df59baa0be1..a6ef79518ca2 100644
--- a/www/domoticz/distinfo
+++ b/www/domoticz/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1735584809
-SHA256 (domoticz-domoticz-2024.7_GH0.tar.gz) = 6ceabbfe36ada4b7c2ebb42c523d723c87e6444b87db6bbb1703d92f38ee754d
-SIZE (domoticz-domoticz-2024.7_GH0.tar.gz) = 13258596
+TIMESTAMP = 1761213053
+SHA256 (domoticz-domoticz-2025.2_GH0.tar.gz) = fd016f4ffe419e8d559bc0a7f9de5ec4fcaf485fc9d1464c8e8221102b13f589
+SIZE (domoticz-domoticz-2025.2_GH0.tar.gz) = 13418498
diff --git a/www/domoticz/files/patch-CMakeLists.txt b/www/domoticz/files/patch-CMakeLists.txt
index 7585d271c86d..09961f6df8c5 100644
--- a/www/domoticz/files/patch-CMakeLists.txt
+++ b/www/domoticz/files/patch-CMakeLists.txt
@@ -1,6 +1,6 @@
---- CMakeLists.txt.orig 2023-05-23 11:37:06.693431000 +0200
-+++ CMakeLists.txt 2023-05-23 11:37:14.422198000 +0200
-@@ -395,11 +395,9 @@
+--- CMakeLists.txt.orig 2025-10-13 11:42:57.000000000 +0200
++++ CMakeLists.txt 2025-10-23 12:10:14.143268000 +0200
+@@ -417,7 +417,6 @@
# Target
set(
@@ -8,11 +8,7 @@
main/stdafx.cpp
main/Helper.cpp
main/CmdLine.cpp
--main/domoticz_tester.cpp
- main/BaroForecastCalculator.cpp
- main/HTMLSanitizer.cpp
- main/localtime_r.cpp
-@@ -412,9 +410,6 @@
+@@ -434,9 +433,6 @@
#main/IFTTT.cpp
@@ -22,7 +18,7 @@
#
# LUA
#
-@@ -513,7 +508,6 @@
+@@ -535,7 +531,6 @@
# explicitly say that the executable depends on the revisiontag
add_dependencies(domoticz revisiontag)
@@ -30,7 +26,7 @@
TEST_BIG_ENDIAN(BIGENDIAN)
IF(${BIGENDIAN})
-@@ -533,7 +527,6 @@
+@@ -555,7 +550,6 @@
set(JSONCPP_WITH_PKGCONFIG_SUPPORT OFF CACHE BOOL "Enable jsoncpp pkgconfig support" FORCE)
add_subdirectory (extern/jsoncpp EXCLUDE_FROM_ALL)
target_link_libraries(domoticz jsoncpp_static)
@@ -38,7 +34,7 @@
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/extern/jsoncpp/include)
ELSE(USE_BUILTIN_JSONCPP)
find_package(PkgConfig)
-@@ -543,9 +536,6 @@
+@@ -565,9 +559,6 @@
target_include_directories(domoticz PRIVATE ${JSONCPP_INCLUDE_DIRS})
target_link_directories(domoticz PRIVATE ${JSONCPP_LIBRARY_DIRS})
target_link_libraries(domoticz ${JSONCPP_LIBRARIES})
@@ -48,7 +44,7 @@
ELSE(JSONCPP_FOUND)
MESSAGE(FATAL_ERROR "JSONCPP not found on your system! try 'sudo apt-get install jsoncpp-dev'")
ENDIF(JSONCPP_FOUND)
-@@ -558,7 +548,6 @@
+@@ -580,7 +571,6 @@
option(DOCUMENTATION "Build documentation?" OFF)
add_subdirectory (extern/mosquitto EXCLUDE_FROM_ALL)
target_link_libraries(domoticz libmosquitto_static)
@@ -56,7 +52,7 @@
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/extern/mosquitto/include)
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/extern/mosquitto/lib)
ELSE(USE_BUILTIN_MQTT)
-@@ -577,7 +566,6 @@
+@@ -599,7 +589,6 @@
MESSAGE(STATUS "Using builtin SQLite library")
add_subdirectory (extern/sqlite-amalgamation EXCLUDE_FROM_ALL)
target_link_libraries(domoticz SQLite3)
@@ -64,7 +60,7 @@
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/extern/sqlite-amalgamation)
ELSE(USE_BUILTIN_SQLITE)
find_package(SQLite3)
-@@ -586,7 +574,6 @@
+@@ -608,7 +597,6 @@
MESSAGE(STATUS "SQLite includes found at: ${SQLite3_INCLUDE_DIRS}")
INCLUDE_DIRECTORIES(${SQLite3_INCLUDE_DIRS})
target_link_libraries(domoticz ${SQLite3_LIBRARIES})
@@ -72,7 +68,7 @@
ELSE(SQLite3_FOUND)
MESSAGE(FATAL_ERROR "SQLite3 not found on your system! try 'sudo apt-get install libsqlite3-dev'")
ENDIF(SQLite3_FOUND)
-@@ -596,7 +583,6 @@
+@@ -618,7 +606,6 @@
IF(USE_BUILTIN_MINIZIP)
add_subdirectory (extern/minizip EXCLUDE_FROM_ALL)
target_link_libraries(domoticz minizip)
@@ -80,7 +76,7 @@
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/extern/minizip)
ELSE(USE_BUILTIN_MINIZIP)
find_package(PkgConfig)
-@@ -606,9 +592,6 @@
+@@ -628,9 +615,6 @@
target_include_directories(domoticz PRIVATE ${MINIZIP_INCLUDE_DIRS})
target_link_directories(domoticz PRIVATE ${MINIZIP_LIBRARY_DIRS})
target_link_libraries(domoticz ${MINIZIP_LIBRARIES})
@@ -90,7 +86,7 @@
ELSE(MINIZIP_FOUND)
MESSAGE(FATAL_ERROR "MINIZIP not found on your system! try 'sudo apt-get install minizip-dev'")
ENDIF(MINIZIP_FOUND)
-@@ -630,7 +613,6 @@
+@@ -658,7 +642,6 @@
find_library(MD_LIBRARY NAMES md)
IF(MD_LIBRARY)
target_link_libraries(domoticz ${MD_LIBRARY})
@@ -98,7 +94,7 @@
ENDIF(MD_LIBRARY)
ELSE()
message(STATUS "OPENSSL library found at: ${OPENSSL_LIBRARIES}")
-@@ -638,7 +620,6 @@
+@@ -666,7 +649,6 @@
add_definitions(-DWITH_TLS)
include_directories(${OPENSSL_INCLUDE_DIR})
target_link_libraries(domoticz ${OPENSSL_LIBRARIES})
@@ -106,20 +102,20 @@
ENDIF()
#
-@@ -779,7 +760,6 @@
- ENDIF(TELLDUSCORE_INCLUDE)
+@@ -804,7 +786,6 @@
+ endif()
- target_link_libraries(domoticz ${Boost_LIBRARIES} ${ZLIB_LIBRARIES} ${MINIZIP_LIBRARIES} ${CURL_LIBRARIES} pthread ${MQTT_LIBRARIES} ${LUA_LIBRARIES} ${CMAKE_DL_LIBS} ${TELLDUS_LIBRARIES})
--target_link_libraries(domoticztester ${Boost_LIBRARIES} ${ZLIB_LIBRARIES} ${MINIZIP_LIBRARIES} ${CURL_LIBRARIES} pthread ${MQTT_LIBRARIES} ${LUA_LIBRARIES} ${CMAKE_DL_LIBS} ${TELLDUS_LIBRARIES})
+ target_link_libraries(domoticz ${Boost_LIBRARIES} ${ZLIB_LIBRARIES} ${MINIZIP_LIBRARIES} ${RESOLV_LIBRARIES} ${CURL_LIBRARIES} pthread ${MQTT_LIBRARIES} ${LUA_LIBRARIES} ${CMAKE_DL_LIBS} ${TELLDUS_LIBRARIES})
+-target_link_libraries(domoticztester ${Boost_LIBRARIES} ${ZLIB_LIBRARIES} ${MINIZIP_LIBRARIES} ${RESOLV_LIBRARIES} ${CURL_LIBRARIES} pthread ${MQTT_LIBRARIES} ${LUA_LIBRARIES} ${CMAKE_DL_LIBS} ${TELLDUS_LIBRARIES})
- IF(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
- target_link_libraries(domoticz -lresolv)
-@@ -789,13 +769,11 @@
+ IF(EXECINFO_LIBRARIES)
target_link_libraries(domoticz ${EXECINFO_LIBRARIES})
- ELSE()
- target_link_libraries(domoticz -lrt -lresolv ${EXECINFO_LIBRARIES})
-- target_link_libraries(domoticztester -lrt -lresolv ${EXECINFO_LIBRARIES})
- ENDIF()
+@@ -813,13 +794,11 @@
+ find_library(LIBRT rt)
+ if(LIBRT)
+ target_link_libraries(domoticz -lrt)
+- target_link_libraries(domoticztester -lrt)
+ endif()
IF(USE_PRECOMPILED_HEADER)
message(STATUS "Using precompiled headers")
diff --git a/www/domoticz/files/patch-asio-deadline_timer b/www/domoticz/files/patch-asio-deadline_timer
deleted file mode 100644
index ffb192872cf7..000000000000
--- a/www/domoticz/files/patch-asio-deadline_timer
+++ /dev/null
@@ -1,20 +0,0 @@
---- webserver/cWebem.h.orig 2024-07-13 14:59:31 UTC
-+++ webserver/cWebem.h
-@@ -1,6 +1,7 @@
- #pragma once
-
- #include <boost/asio.hpp>
-+#include <boost/asio/deadline_timer.hpp>
- #include <boost/thread.hpp>
- #include "server.hpp"
- #include "session_store.hpp"
---- webserver/connection.hpp.orig 2024-07-13 14:59:31 UTC
-+++ webserver/connection.hpp
-@@ -12,6 +12,7 @@
- #define HTTP_CONNECTION_HPP
-
- #include <boost/asio.hpp>
-+#include <boost/asio/deadline_timer.hpp>
- #include <deque>
- #include <fstream>
- #include "reply.hpp"
diff --git a/www/domoticz/files/patch-pr6252 b/www/domoticz/files/patch-pr6252
deleted file mode 100644
index 34c4efd3f4e4..000000000000
--- a/www/domoticz/files/patch-pr6252
+++ /dev/null
@@ -1,2178 +0,0 @@
-Fix for boost 1.87
-
-Removed the diff for the msbuild project files, didn't apply cleanly and not relevant anyway.
-This will merged in the next stable of domoticz.
-
-Pullrequest: https://github.com/domoticz/domoticz/pull/6252
-Patch: https://patch-diff.githubusercontent.com/raw/domoticz/domoticz/pull/6252.patch-diff
-
-diff --git hardware/ASyncSerial.cpp hardware/ASyncSerial.cpp
-index 52c950d..6147cdb 100644
---- hardware/ASyncSerial.cpp
-+++ hardware/ASyncSerial.cpp
-@@ -54,7 +54,7 @@ public:
- {
- }
-
-- boost::asio::io_service io; ///< Io service object
-+ boost::asio::io_context io; ///< Io service object
- boost::asio::serial_port port; ///< Serial port object
- boost::thread backgroundThread; ///< Thread that runs read/write operations
- bool open{ false }; ///< True if port open
-@@ -117,10 +117,10 @@ void AsyncSerial::open(const std::string& devname, unsigned int baud_rate,
- throw;
- }
-
-- pimpl->io.reset();
-+ pimpl->io.restart();
-
-- // This gives some work to the io_service before it is started
-- pimpl->io.post([this] { return doRead(); });
-+ // This gives some work to the io_context before it is started
-+ boost::asio::post(pimpl->io, [this] { return doRead(); });
-
- boost::thread t([p = &pimpl->io] { p->run(); });
- pimpl->backgroundThread.swap(t);
-@@ -149,10 +149,10 @@ void AsyncSerial::openOnlyBaud(const std::string& devname, unsigned int baud_rat
- throw;
- }
-
-- pimpl->io.reset();
-+ pimpl->io.restart();
-
-- //This gives some work to the io_service before it is started
-- pimpl->io.post([this] { return doRead(); });
-+ //This gives some work to the io_context before it is started
-+ boost::asio::post(pimpl->io, [this] { return doRead(); });
-
- boost::thread t([p = &pimpl->io] { p->run(); });
- pimpl->backgroundThread.swap(t);
-@@ -176,9 +176,9 @@ void AsyncSerial::close()
- if(!isOpen()) return;
-
- pimpl->open = false;
-- pimpl->io.post([this] { doClose(); });
-+ boost::asio::post(pimpl->io, [this] { doClose(); });
- pimpl->backgroundThread.join();
-- pimpl->io.reset();
-+ pimpl->io.restart();
- if(errorStatus())
- {
- throw(boost::system::system_error(boost::system::error_code(),
-@@ -192,7 +192,7 @@ void AsyncSerial::write(const char *data, size_t size)
- std::lock_guard<std::mutex> l(pimpl->writeQueueMutex);
- pimpl->writeQueue.insert(pimpl->writeQueue.end(),data,data+size);
- }
-- pimpl->io.post([this] { doWrite(); });
-+ boost::asio::post(pimpl->io, [this] { doWrite(); });
- }
-
- void AsyncSerial::write(const std::string &data)
-@@ -201,7 +201,7 @@ void AsyncSerial::write(const std::string &data)
- std::lock_guard<std::mutex> l(pimpl->writeQueueMutex);
- pimpl->writeQueue.insert(pimpl->writeQueue.end(), data.c_str(), data.c_str()+data.size());
- }
-- pimpl->io.post([this] { doWrite(); });
-+ boost::asio::post(pimpl->io, [this] { doWrite(); });
- }
-
- void AsyncSerial::write(const std::vector<char>& data)
-@@ -211,7 +211,7 @@ void AsyncSerial::write(const std::vector<char>& data)
- pimpl->writeQueue.insert(pimpl->writeQueue.end(),data.begin(),
- data.end());
- }
-- pimpl->io.post([this] { doWrite(); });
-+ boost::asio::post(pimpl->io, [this] { doWrite(); });
- }
-
- void AsyncSerial::writeString(const std::string& s)
-@@ -220,7 +220,7 @@ void AsyncSerial::writeString(const std::string& s)
- std::lock_guard<std::mutex> l(pimpl->writeQueueMutex);
- pimpl->writeQueue.insert(pimpl->writeQueue.end(),s.begin(),s.end());
- }
-- pimpl->io.post([this] { doWrite(); });
-+ boost::asio::post(pimpl->io, [this] { doWrite(); });
- }
-
- void AsyncSerial::doRead()
-diff --git hardware/ASyncSerial.h hardware/ASyncSerial.h
-index 0a51ef0..de83f8a 100644
---- hardware/ASyncSerial.h
-+++ hardware/ASyncSerial.h
-@@ -123,27 +123,27 @@ class AsyncSerial : private domoticz::noncopyable
-
- /**
- * Callback called to start an asynchronous read operation.
-- * This callback is called by the io_service in the spawned thread.
-+ * This callback is called by the io_context in the spawned thread.
- */
- void doRead();
-
- /**
- * Callback called at the end of the asynchronous operation.
-- * This callback is called by the io_service in the spawned thread.
-+ * This callback is called by the io_context in the spawned thread.
- */
- void readEnd(const boost::system::error_code &error, size_t bytes_transferred);
-
- /**
- * Callback called to start an asynchronous write operation.
- * If it is already in progress, does nothing.
-- * This callback is called by the io_service in the spawned thread.
-+ * This callback is called by the io_context in the spawned thread.
- */
- void doWrite();
-
- /**
- * Callback called at the end of an asynchronuous write operation,
- * if there is more data to write, restarts a new write operation.
-- * This callback is called by the io_service in the spawned thread.
-+ * This callback is called by the io_context in the spawned thread.
- */
- void writeEnd(const boost::system::error_code &error);
-
-diff --git hardware/ASyncTCP.cpp hardware/ASyncTCP.cpp
-index a375561..7c3b536 100644
---- hardware/ASyncTCP.cpp
-+++ hardware/ASyncTCP.cpp
-@@ -4,213 +4,241 @@
- #include <boost/system/error_code.hpp> // for error_code
- #include "../main/Logger.h"
-
--struct hostent;
--
- #define MAX_TCP_BUFFER_SIZE 4096
-
--#ifndef WIN32
-- #include <unistd.h> //gethostbyname
--#endif
--
- #define STATUS_OK(err) !err
--
--ASyncTCP::ASyncTCP(const bool secure)
-+#define STATUS_ERR(err) err
-+
-+ASyncTCP::ASyncTCP(const bool secure) :
-+ m_Tcpwork(boost::asio::make_work_guard(m_io_context))
-+ , m_Socket(m_io_context)
-+ , m_Resolver(m_io_context)
-+ , m_ReconnectTimer(m_io_context)
-+ , m_TimeoutTimer(m_io_context)
-+ , m_SendStrand(m_io_context)
- #ifdef WWW_ENABLE_SSL
-- : mSecure(secure)
-+ , m_bSecure(secure)
- #endif
- {
- m_pRXBuffer = new uint8_t[MAX_TCP_BUFFER_SIZE];
- #ifdef WWW_ENABLE_SSL
- mContext.set_verify_mode(boost::asio::ssl::verify_none);
-- if (mSecure)
-+ if (m_bSecure)
- {
-- mSslSocket.reset(new boost::asio::ssl::stream<boost::asio::ip::tcp::socket>(mIos, mContext));
-+ m_SslSocket.reset(new boost::asio::ssl::stream<boost::asio::ip::tcp::socket>(m_io_context, mContext));
- }
- #endif
- }
-
- ASyncTCP::~ASyncTCP()
- {
-- assert(mTcpthread == nullptr);
-- mIsTerminating = true;
-- if (mTcpthread)
-+ assert(m_Tcpthread == nullptr);
-+ m_bIsTerminating = true;
-+ if (m_Tcpthread)
- {
- //This should never happen. terminate() never called!!
-- _log.Log(LOG_ERROR, "ASyncTCP: Workerthread not closed. terminate() never called!!!");
-- mIos.stop();
-- if (mTcpthread)
-+ _log.Log(LOG_ERROR, "ASyncTCP: Worker thread not closed. terminate() never called!!!");
-+ m_io_context.stop();
-+ if (m_Tcpthread)
- {
-- mTcpthread->join();
-- mTcpthread.reset();
-+ m_Tcpthread->join();
-+ m_Tcpthread.reset();
- }
- }
- if (m_pRXBuffer != nullptr)
- delete[] m_pRXBuffer;
- }
-
--void ASyncTCP::SetReconnectDelay(int32_t Delay)
-+void ASyncTCP::SetReconnectDelay(const int32_t Delay)
- {
-- mReconnectDelay = Delay;
-+ m_iReconnectDelay = Delay;
- }
-
- void ASyncTCP::connect(const std::string& ip, uint16_t port)
- {
-- assert(!mSocket.is_open());
-- if (mSocket.is_open())
-+ assert(!m_Socket.is_open());
-+ if (m_Socket.is_open())
- {
- _log.Log(LOG_ERROR, "ASyncTCP: connect called while socket is still open. !!!");
- terminate();
- }
-
-- // RK: We reset mIos here because it might have been stopped in terminate()
-- mIos.reset();
-- // RK: After the reset, we need to provide it work anew
-- mTcpwork = std::make_shared<boost::asio::io_service::work>(mIos);
-- if (!mTcpthread)
-- mTcpthread = std::make_shared<std::thread>([p = &mIos] { p->run(); });
--
-- mIp = ip;
-- mPort = port;
-+ m_IP = ip;
-+ m_Port = port;
- std::string port_str = std::to_string(port);
-- boost::asio::ip::tcp::resolver::query query(ip, port_str);
- timeout_start_timer();
-- mResolver.async_resolve(query, [this](auto &&err, auto &&iter) { cb_resolve_done(err, iter); });
-+
-+ m_Resolver.async_resolve(
-+ ip, port_str,
-+ [this](const boost::system::error_code& error, const boost::asio::ip::tcp::resolver::results_type& endpoints) {
-+ handle_resolve(error, endpoints);
-+ }
-+ );
-+
-+ // RK: We restart m_io_context here because it might have been stopped in terminate()
-+ m_io_context.restart();
-+ // RK: After the reset, we need to provide it work anew
-+ m_Tcpwork.reset();
-+ m_Tcpwork.emplace(boost::asio::make_work_guard(m_io_context));
-+ if (!m_Tcpthread)
-+ m_Tcpthread = std::make_shared<std::thread>([p = &m_io_context] { p->run(); });
- }
-
--void ASyncTCP::cb_resolve_done(const boost::system::error_code& error, boost::asio::ip::tcp::resolver::iterator endpoint_iterator)
-+void ASyncTCP::handle_resolve(const boost::system::error_code& error, const boost::asio::ip::tcp::resolver::results_type &endpoints)
- {
-- if (mIsTerminating) return;
-+ if (m_bIsTerminating) return;
-
-- if (STATUS_OK(error))
-- {
-- connect_start(endpoint_iterator);
-- }
-- else
-+ if (STATUS_ERR(error))
- {
- process_error(error);
-+ return;
- }
--}
--
--void ASyncTCP::connect_start(boost::asio::ip::tcp::resolver::iterator& endpoint_iterator)
--{
-- if (mIsConnected) return;
--
-- mEndPoint = *endpoint_iterator++;
-+ if (m_bIsConnected) return;
-
- timeout_start_timer();
-+
- #ifdef WWW_ENABLE_SSL
-- if (mSecure)
-+ if (m_bSecure)
- {
- // we reset the ssl socket, because the ssl context needs to be reinitialized after a reconnect
-- mSslSocket.reset(new boost::asio::ssl::stream<boost::asio::ip::tcp::socket>(mIos, mContext));
-- mSslSocket->lowest_layer().async_connect(mEndPoint, [this, endpoint_iterator](auto &&err) mutable { cb_connect_done(err, endpoint_iterator); });
-+ m_SslSocket.reset(new boost::asio::ssl::stream<boost::asio::ip::tcp::socket>(m_io_context, mContext));
-+ boost::asio::async_connect(m_SslSocket->lowest_layer(), endpoints,
-+ [this](const boost::system::error_code& error, const boost::asio::ip::tcp::endpoint& endpoint)
-+ {
-+ handle_connect(error, endpoint);
-+ }
-+ );
- }
- else
- #endif
- {
-- mSocket.async_connect(mEndPoint, [this, endpoint_iterator](auto &&err) mutable { cb_connect_done(err, endpoint_iterator); });
-+ boost::asio::async_connect(m_Socket, endpoints,
-+ [this](const boost::system::error_code& error, const boost::asio::ip::tcp::endpoint& endpoint)
-+ {
-+ handle_connect(error, endpoint);
-+ }
-+ );
- }
- }
-
--void ASyncTCP::cb_connect_done(const boost::system::error_code& error, boost::asio::ip::tcp::resolver::iterator &endpoint_iterator)
-+void ASyncTCP::handle_connect(const boost::system::error_code& error, const boost::asio::ip::tcp::endpoint& /*endpoint*/)
- {
-- if (mIsTerminating) return;
-+ if (m_bIsTerminating) return;
-
-- if (STATUS_OK(error))
-+ if (STATUS_ERR(error))
- {
-+ process_error(error);
-+ return;
-+ }
- #ifdef WWW_ENABLE_SSL
-- if (mSecure)
-- {
-- timeout_start_timer();
-- mSslSocket->async_handshake(boost::asio::ssl::stream_base::client, [this](auto &&err) { cb_handshake_done(err); });
-- }
-- else
--#endif
-- {
-- process_connection();
-- }
-+ if (m_bSecure)
-+ {
-+ timeout_start_timer();
-+ m_SslSocket->async_handshake(boost::asio::ssl::stream_base::client,
-+ [this](const boost::system::error_code& error) {
-+ cb_handshake_done(error);
-+ }
-+ );
- }
-- else
-+ else
-+#endif
- {
-- if (endpoint_iterator != boost::asio::ip::tcp::resolver::iterator())
-- {
-- // The connection failed. Try the next endpoint in the list.
-- connect_start(endpoint_iterator);
-- return;
-- }
-- process_error(error);
-+ process_connection();
- }
- }
-
- #ifdef WWW_ENABLE_SSL
- void ASyncTCP::cb_handshake_done(const boost::system::error_code& error)
- {
-- if (mIsTerminating) return;
-+ if (m_bIsTerminating) return;
-
-- if (STATUS_OK(error))
-- {
-- process_connection();
-- }
-- else
-+ if (STATUS_ERR(error))
- {
- process_error(error);
-+ return;
- }
-+ process_connection();
-+#endif
- }
-+
-+void ASyncTCP::process_connection()
-+{
-+ m_bIsConnected = true;
-+#ifdef WWW_ENABLE_SSL
-+
-+ if (!m_bSecure)
- #endif
-+ {
-+ // RK: only if non-secure
-+ boost::asio::socket_base::keep_alive option(true);
-+ m_Socket.set_option(option);
-+ }
-+ OnConnect();
-+ do_read_start();
-+ do_write_start();
-+}
-
- void ASyncTCP::reconnect_start_timer()
- {
-- if (mIsReconnecting) return;
-+ if (m_bIsReconnecting) return;
-
-- if (mReconnectDelay != 0)
-+ if (m_iReconnectDelay != 0)
- {
-- mIsReconnecting = true;
--
-- mReconnectTimer.expires_from_now(boost::posix_time::seconds(mReconnectDelay));
-- mReconnectTimer.async_wait([this](auto &&err) { cb_reconnect_start(err); });
-+ m_bIsReconnecting = true;
-+
-+ m_ReconnectTimer.expires_from_now(boost::posix_time::seconds(m_iReconnectDelay));
-+ m_ReconnectTimer.async_wait(
-+ [this](const boost::system::error_code& error) {
-+ cb_reconnect_start(error);
-+ }
-+ );
- }
- }
-
- void ASyncTCP::cb_reconnect_start(const boost::system::error_code& error)
- {
-- mIsReconnecting = false;
-- mReconnectTimer.cancel();
-- mTimeoutTimer.cancel();
-+ m_bIsReconnecting = false;
-+ m_ReconnectTimer.cancel();
-+ m_TimeoutTimer.cancel();
-
-- if (mIsConnected) return;
-+ if (m_bIsConnected) return;
- if (error) return; // timer was cancelled
-
- do_close();
-- connect(mIp, mPort);
-+ connect(m_IP, m_Port);
- }
-
-
- void ASyncTCP::terminate(const bool silent)
- {
-- mIsTerminating = true;
-+ m_bIsTerminating = true;
- disconnect(silent);
-- mTcpwork.reset();
-- mIos.stop();
-- if (mTcpthread)
-+ m_Tcpwork.reset();
-+ m_io_context.stop();
-+ if (m_Tcpthread)
- {
-- mTcpthread->join();
-- mTcpthread.reset();
-+ m_Tcpthread->join();
-+ m_Tcpthread.reset();
- }
-- mIsReconnecting = false;
-- mIsConnected = false;
-- mWriteQ.clear();
-- mIsTerminating = false;
-+ m_bIsReconnecting = false;
-+ m_bIsConnected = false;
-+ m_WriteQ.clear();
-+ m_bIsTerminating = false;
- }
-
- void ASyncTCP::disconnect(const bool silent)
- {
-- mReconnectTimer.cancel();
-- mTimeoutTimer.cancel();
-- if (!mTcpthread) return;
-+ m_ReconnectTimer.cancel();
-+ m_TimeoutTimer.cancel();
-+ if (!m_Tcpthread) return;
-
- try
- {
-- mIos.post([this] { do_close(); });
-+ boost::asio::post(m_io_context,
-+ [this] {
-+ do_close();
-+ }
-+ );
- }
- catch (...)
- {
-@@ -223,62 +251,68 @@ void ASyncTCP::disconnect(const bool silent)
-
- void ASyncTCP::do_close()
- {
-- if (mIsReconnecting) {
-+ if (m_bIsReconnecting) {
- return;
- }
-- mReconnectTimer.cancel();
-- mTimeoutTimer.cancel();
-+ m_ReconnectTimer.cancel();
-+ m_TimeoutTimer.cancel();
- boost::system::error_code ec;
- #ifdef WWW_ENABLE_SSL
-- if (mSecure)
-+ if (m_bSecure)
- {
-- if (mSslSocket->lowest_layer().is_open())
-+ if (m_SslSocket->lowest_layer().is_open())
- {
-- mSslSocket->lowest_layer().shutdown(boost::asio::ip::tcp::socket::shutdown_both, ec);
-- mSslSocket->lowest_layer().close(ec);
-+ m_SslSocket->lowest_layer().shutdown(boost::asio::ip::tcp::socket::shutdown_both, ec);
-+ m_SslSocket->lowest_layer().close(ec);
- }
- }
- else
- #endif
- {
-- if (mSocket.is_open())
-+ if (m_Socket.is_open())
- {
-- mSocket.close(ec);
-+ m_Socket.close(ec);
- }
- }
- }
-
- void ASyncTCP::do_read_start()
- {
-- if (mIsTerminating) return;
-- if (!mIsConnected) return;
-+ if (m_bIsTerminating) return;
-+ if (!m_bIsConnected) return;
-
- timeout_start_timer();
- #ifdef WWW_ENABLE_SSL
-- if (mSecure)
-+ if (m_bSecure)
- {
-- mSslSocket->async_read_some(boost::asio::buffer(m_pRXBuffer, MAX_TCP_BUFFER_SIZE), [this](auto &&err, auto bytes) { cb_read_done(err, bytes); });
-+ m_SslSocket->async_read_some(boost::asio::buffer(m_pRXBuffer, MAX_TCP_BUFFER_SIZE),
-+ [this](const boost::system::error_code& error, size_t bytes_transferred) {
-+ cb_read_done(error, bytes_transferred);
-+ }
-+ );
- }
- else
- #endif
- {
-- mSocket.async_read_some(boost::asio::buffer(m_pRXBuffer, MAX_TCP_BUFFER_SIZE), [this](auto &&err, auto bytes) { cb_read_done(err, bytes); });
-+ m_Socket.async_read_some(boost::asio::buffer(m_pRXBuffer, MAX_TCP_BUFFER_SIZE),
-+ [this](const boost::system::error_code& error, size_t bytes_transferred) {
-+ cb_read_done(error, bytes_transferred);
-+ }
-+ );
- }
- }
-
- void ASyncTCP::cb_read_done(const boost::system::error_code& error, size_t bytes_transferred)
- {
-- if (mIsTerminating) return;
-+ if (m_bIsTerminating) return;
-
-- if (STATUS_OK(error))
-- {
-- OnData(m_pRXBuffer, bytes_transferred);
-- do_read_start();
-- }
-- else
-+ if (STATUS_ERR(error))
- {
- process_error(error);
-+ return;
- }
-+ OnData(m_pRXBuffer, bytes_transferred);
-+ do_read_start();
- }
-
- void ASyncTCP::write(const uint8_t* pData, size_t length)
-@@ -288,77 +322,66 @@ void ASyncTCP::write(const uint8_t* pData, size_t length)
-
- void ASyncTCP::write(const std::string& msg)
- {
-- if (!mTcpthread) return;
-+ if (!m_Tcpthread) return;
-
-- mSendStrand.post([this, msg]() { cb_write_queue(msg); });
-+ boost::asio::post(m_SendStrand, [this, msg]() { cb_write_queue(msg); });
- }
-
- void ASyncTCP::cb_write_queue(const std::string& msg)
- {
-- mWriteQ.push_back(msg);
-+ m_WriteQ.push_back(msg);
-
-- if (mWriteQ.size() == 1)
-+ if (m_WriteQ.size() == 1)
- do_write_start();
- }
-
- void ASyncTCP::do_write_start()
- {
-- if (mIsTerminating) return;
-- if (!mIsConnected) return;
-- if (mWriteQ.empty())
-+ if (m_bIsTerminating) return;
-+ if (!m_bIsConnected) return;
-+ if (m_WriteQ.empty())
- return;
-
- timeout_start_timer();
- #ifdef WWW_ENABLE_SSL
-- if (mSecure)
-+ if (m_bSecure)
- {
-- boost::asio::async_write(*mSslSocket, boost::asio::buffer(mWriteQ.front()), [this](auto &&err, auto) { cb_write_done(err); });
-+ boost::asio::async_write(*m_SslSocket, boost::asio::buffer(m_WriteQ.front()),
-+ [this](const boost::system::error_code& error, std::size_t length) {
-+ cb_write_done(error, length);
-+ }
-+ );
- }
- else
- #endif
- {
-- boost::asio::async_write(mSocket, boost::asio::buffer(mWriteQ.front()), [this](auto &&err, auto) { cb_write_done(err); });
-+ boost::asio::async_write(m_Socket, boost::asio::buffer(m_WriteQ.front()),
-+ [this](const boost::system::error_code& error, std::size_t length) {
-+ cb_write_done(error, length);
-+ }
-+ );
- }
- }
-
--void ASyncTCP::cb_write_done(const boost::system::error_code& error)
-+void ASyncTCP::cb_write_done(const boost::system::error_code& error, std::size_t /*length*/)
- {
-- if (mIsTerminating) return;
-+ if (m_bIsTerminating) return;
-
-- if (STATUS_OK(error))
-- {
-- mWriteQ.pop_front();
-- do_write_start();
-- }
-- else
-+ if (STATUS_ERR(error))
- {
- process_error(error);
-+ return;
- }
--}
--
--void ASyncTCP::process_connection()
--{
-- mIsConnected = true;
--#ifdef WWW_ENABLE_SSL
--
-- if (!mSecure)
--#endif
-- {
-- // RK: only if non-secure
-- boost::asio::socket_base::keep_alive option(true);
-- mSocket.set_option(option);
-- }
-- OnConnect();
-- do_read_start();
-+ m_WriteQ.pop_front();
- do_write_start();
- }
-
- void ASyncTCP::process_error(const boost::system::error_code& error)
- {
- do_close();
-- if (mIsConnected)
-+ if (m_bIsConnected)
- {
-- mIsConnected = false;
-+ m_bIsConnected = false;
- OnDisconnect();
- }
-
-@@ -369,20 +392,23 @@ void ASyncTCP::process_error(const boost::system::error_code& error)
- reconnect_start_timer();
- }
-
--/* timeout methods */
- void ASyncTCP::timeout_start_timer()
- {
-- if (0 == mTimeoutDelay) {
-+ if (0 == m_iTimeoutDelay) {
- return;
- }
- timeout_cancel_timer();
-- mTimeoutTimer.expires_from_now(boost::posix_time::seconds(mTimeoutDelay));
-- mTimeoutTimer.async_wait([this](auto &&err) { timeout_handler(err); });
-+ m_TimeoutTimer.expires_from_now(boost::posix_time::seconds(m_iTimeoutDelay));
-+ m_TimeoutTimer.async_wait(
-+ [this](const boost::system::error_code& error) {
-+ timeout_handler(error);
-+ }
-+ );
- }
-
- void ASyncTCP::timeout_cancel_timer()
- {
-- mTimeoutTimer.cancel();
-+ m_TimeoutTimer.cancel();
- }
-
- void ASyncTCP::timeout_handler(const boost::system::error_code& error)
-@@ -397,5 +423,5 @@ void ASyncTCP::timeout_handler(const boost::system::error_code& error)
-
- void ASyncTCP::SetTimeout(const uint32_t Timeout)
- {
-- mTimeoutDelay = Timeout;
-+ m_iTimeoutDelay = Timeout;
- }
-diff --git hardware/ASyncTCP.h hardware/ASyncTCP.h
-index cf859bb..a8b3ae2 100644
---- hardware/ASyncTCP.h
-+++ hardware/ASyncTCP.h
-@@ -3,39 +3,31 @@
- #include <stddef.h> // for size_t
- #include <deque> // for write queue
- #include <boost/asio/deadline_timer.hpp> // for deadline_timer
--#include <boost/asio/io_service.hpp> // for io_service
-+#include <boost/asio/io_context.hpp> // for io_context
- #include <boost/asio/strand.hpp> // for strand
- #include <boost/asio/ip/tcp.hpp> // for tcp, tcp::endpoint, tcp::s...
- #include <boost/asio/ssl.hpp> // for secure sockets
- #include <boost/asio/ssl/stream.hpp> // for secure sockets
- #include <exception> // for exception
-+#include <optional> // for optional
-
- #define ASYNCTCP_THREAD_NAME "ASyncTCP"
- #define DEFAULT_RECONNECT_TIME 30
- #define DEFAULT_TIMEOUT_TIME 60
-
--namespace boost
--{
-- namespace system
-- {
-- class error_code;
-- } // namespace system
--} // namespace boost
--
- class ASyncTCP
- {
-- protected:
-+protected:
- ASyncTCP(bool secure = false);
- virtual ~ASyncTCP();
--
-- void connect(const std::string &hostname, uint16_t port);
-+ void connect(const std::string& hostname, uint16_t port);
- void disconnect(bool silent = true);
-- void write(const std::string &msg);
-- void write(const uint8_t *pData, size_t length);
-- void SetReconnectDelay(int32_t Delay = DEFAULT_RECONNECT_TIME);
-+ void write(const std::string& msg);
-+ void write(const uint8_t* pData, size_t length);
-+ void SetReconnectDelay(const int32_t Delay = DEFAULT_RECONNECT_TIME);
- bool isConnected()
- {
-- return mIsConnected;
-+ return m_bIsConnected;
- };
- void terminate(bool silent = true);
- void SetTimeout(uint32_t Timeout = DEFAULT_TIMEOUT_TIME);
-@@ -43,65 +35,61 @@ class ASyncTCP
- // Callback interface to implement in derived classes
- virtual void OnConnect() = 0;
- virtual void OnDisconnect() = 0;
-- virtual void OnData(const uint8_t *pData, size_t length) = 0;
-- virtual void OnError(const boost::system::error_code &error) = 0;
--
-- boost::asio::io_service mIos; // protected to allow derived classes to attach timers etc.
-+ virtual void OnData(const uint8_t* pData, size_t length) = 0;
-+ virtual void OnError(const boost::system::error_code& error) = 0;
-
-- private:
-- void cb_resolve_done(const boost::system::error_code &err, boost::asio::ip::tcp::resolver::iterator endpoint_iterator);
-- void connect_start(boost::asio::ip::tcp::resolver::iterator &endpoint_iterator);
-- void cb_connect_done(const boost::system::error_code &error, boost::asio::ip::tcp::resolver::iterator &endpoint_iterator);
-+ boost::asio::io_context m_io_context; // protected to allow derived classes to attach timers etc.
-+private:
-+ void handle_resolve(const boost::system::error_code& ec, const boost::asio::ip::tcp::resolver::results_type &results);
-+ void handle_connect(const boost::system::error_code& error, const boost::asio::ip::tcp::endpoint& endpoint);
- #ifdef WWW_ENABLE_SSL
-- void cb_handshake_done(const boost::system::error_code &error);
-+ void cb_handshake_done(const boost::system::error_code& error);
- #endif
-
-- /* timeout methods */
- void timeout_start_timer();
- void timeout_cancel_timer();
- void reconnect_start_timer();
-- void timeout_handler(const boost::system::error_code &error);
-+ void timeout_handler(const boost::system::error_code& error);
-
-- void cb_reconnect_start(const boost::system::error_code &error);
-+ void cb_reconnect_start(const boost::system::error_code& error);
-
- void do_close();
-
- void do_read_start();
-- void cb_read_done(const boost::system::error_code &error, size_t bytes_transferred);
-+ void cb_read_done(const boost::system::error_code& error, size_t bytes_transferred);
-
-- void cb_write_queue(const std::string &msg);
-+ void cb_write_queue(const std::string& msg);
- void do_write_start();
-- void cb_write_done(const boost::system::error_code &error);
-+ void cb_write_done(const boost::system::error_code& error, size_t length);
-
- void process_connection();
-- void process_error(const boost::system::error_code &error);
-+ void process_error(const boost::system::error_code& error);
-
-- bool mIsConnected = false;
-- bool mIsReconnecting = false;
-- bool mIsTerminating = false;
-+ bool m_bIsConnected = false;
-+ bool m_bIsReconnecting = false;
-+ bool m_bIsTerminating = false;
-
-- boost::asio::io_service::strand mSendStrand{ mIos };
-- std::deque<std::string> mWriteQ; // we need a write queue to allow concurrent writes
-+ boost::asio::io_context::strand m_SendStrand;
-+ std::deque<std::string> m_WriteQ; // we need a write queue to allow concurrent writes
-
- uint8_t* m_pRXBuffer = nullptr;
-
-- int mReconnectDelay = DEFAULT_RECONNECT_TIME;
-- int mTimeoutDelay = 0;
-- boost::asio::deadline_timer mReconnectTimer{ mIos };
-- boost::asio::deadline_timer mTimeoutTimer{ mIos };
-+ int m_iReconnectDelay = DEFAULT_RECONNECT_TIME;
-+ int m_iTimeoutDelay = 0;
-+ boost::asio::deadline_timer m_ReconnectTimer;
-+ boost::asio::deadline_timer m_TimeoutTimer;
-
-- std::shared_ptr<std::thread> mTcpthread;
-- std::shared_ptr<boost::asio::io_service::work> mTcpwork;
-+ std::shared_ptr<std::thread> m_Tcpthread;
-+ std::optional<boost::asio::executor_work_guard<boost::asio::io_context::executor_type>> m_Tcpwork;
-
- #ifdef WWW_ENABLE_SSL
-- const bool mSecure;
-+ const bool m_bSecure;
- boost::asio::ssl::context mContext{ boost::asio::ssl::context::sslv23 };
-- std::shared_ptr<boost::asio::ssl::stream<boost::asio::ip::tcp::socket>> mSslSocket; // the ssl socket
-+ std::shared_ptr<boost::asio::ssl::stream<boost::asio::ip::tcp::socket>> m_SslSocket;
- #endif
-- boost::asio::ip::tcp::socket mSocket{ mIos };
-- boost::asio::ip::tcp::endpoint mEndPoint;
-- boost::asio::ip::tcp::resolver mResolver{ mIos };
-+ boost::asio::ip::tcp::socket m_Socket;
-+ boost::asio::ip::tcp::resolver m_Resolver;
-
-- std::string mIp;
-- uint16_t mPort;
-+ std::string m_IP;
-+ uint16_t m_Port;
- };
-diff --git hardware/Arilux.cpp hardware/Arilux.cpp
-index 400f5a3..20bc373 100644
---- hardware/Arilux.cpp
-+++ hardware/Arilux.cpp
-@@ -79,7 +79,7 @@ void Arilux::InsertUpdateSwitch(const std::string &lightName, const int subType,
- {
- uint32_t sID;
- try {
-- sID = boost::asio::ip::address_v4::from_string(location).to_ulong();
-+ sID = boost::asio::ip::make_address_v4(location).to_uint();
- } catch (const std::exception &e) {
- Log(LOG_ERROR, "Bad IP address: %s (%s)", location.c_str(), e.what());
- return;
-@@ -112,8 +112,8 @@ bool Arilux::SendTCPCommand(uint32_t ip,std::vector<unsigned char> &command)
- sum = sum & 0xFF;
- command.push_back((unsigned char)sum);
-
-- boost::asio::io_service io_service;
-- boost::asio::ip::tcp::socket sendSocket(io_service);
-+ boost::asio::io_context io_context;
-+ boost::asio::ip::tcp::socket sendSocket(io_context);
- boost::asio::ip::address_v4 address(ip);
- boost::asio::ip::tcp::endpoint endpoint(address, 5577);
- try
-diff --git hardware/Kodi.cpp hardware/Kodi.cpp
-index b528017..5ababf6 100644
---- hardware/Kodi.cpp
-+++ hardware/Kodi.cpp
-@@ -143,14 +143,14 @@ _eNotificationTypes CKodiNode::CKodiStatus::NotificationType()
- }
- }
-
--CKodiNode::CKodiNode(boost::asio::io_service *pIos, const int pHwdID, const int PollIntervalsec, const int pTimeoutMs,
-+CKodiNode::CKodiNode(boost::asio::io_context *pIoc, const int pHwdID, const int PollIntervalsec, const int pTimeoutMs,
- const std::string& pID, const std::string& pName, const std::string& pIP, const std::string& pPort)
- {
- m_Busy = false;
- m_Stoppable = false;
- m_PlaylistPosition = 0;
-
-- m_Ios = pIos;
-+ m_Ioc = pIoc;
- m_HwdID = pHwdID;
- m_DevID = atoi(pID.c_str());
- sprintf(m_szDevID, "%X%02X%02X%02X", 0, 0, (m_DevID & 0xFF00) >> 8, m_DevID & 0xFF);
-@@ -581,11 +581,10 @@ void CKodiNode::handleConnect()
- {
- m_iMissedPongs = 0;
- boost::system::error_code ec;
-- boost::asio::ip::tcp::resolver resolver(*m_Ios);
-- boost::asio::ip::tcp::resolver::query query(m_IP, (m_Port[0] != '-' ? m_Port : m_Port.substr(1)));
-- auto iter = resolver.resolve(query);
-- boost::asio::ip::tcp::endpoint endpoint = *iter;
-- m_Socket = new boost::asio::ip::tcp::socket(*m_Ios);
-+ boost::asio::ip::tcp::resolver resolver(*m_Ioc);
-+ auto iter = resolver.resolve(m_IP, (m_Port[0] != '-' ? m_Port : m_Port.substr(1)));
-+ boost::asio::ip::tcp::endpoint endpoint = *iter.begin();
-+ m_Socket = new boost::asio::ip::tcp::socket(*m_Ioc);
- m_Socket->connect(endpoint, ec);
- if (!ec)
- {
-@@ -975,19 +974,19 @@ void CKodi::Do_Work()
- _log.Log(LOG_NORM, "Kodi: (%s) - Restarting thread.", node->m_Name.c_str());
- boost::thread *tAsync = new boost::thread(&CKodiNode::Do_Work, node);
- SetThreadName(tAsync->native_handle(), "KodiNode");
-- m_ios.stop();
-+ m_ioc.stop();
- }
- if (node->IsOn())
- bWorkToDo = true;
- }
-
-- if (bWorkToDo && m_ios.stopped()) // make sure that there is a boost thread to service i/o operations
-+ if (bWorkToDo && m_ioc.stopped()) // make sure that there is a boost thread to service i/o operations
- {
-- m_ios.reset();
-+ m_ioc.restart();
- // Note that this is the only thread that handles async i/o so we don't
- // need to worry about locking or concurrency issues when processing messages
- _log.Log(LOG_NORM, "Kodi: Restarting I/O service thread.");
-- boost::thread bt([p = &m_ios] { p->run(); });
-+ boost::thread bt([p = &m_ioc] { p->run(); });
- SetThreadName(bt.native_handle(), "KodiIO");
- }
- }
-@@ -1138,7 +1137,7 @@ void CKodi::ReloadNodes()
- {
- UnloadNodes();
-
-- m_ios.reset(); // in case this is not the first time in
-+ m_ioc.restart(); // in case this is not the first time in
-
- std::vector<std::vector<std::string> > result;
- result = m_sql.safe_query("SELECT ID,Name,MacAddress,Timeout FROM WOLNodes WHERE (HardwareID==%d)", m_HwdID);
-@@ -1149,7 +1148,7 @@ void CKodi::ReloadNodes()
- // create a vector to hold the nodes
- for (const auto &sd : result)
- {
-- auto pNode = std::make_shared<CKodiNode>(&m_ios, m_HwdID, m_iPollInterval, m_iPingTimeoutms, sd[0], sd[1], sd[2], sd[3]);
-+ auto pNode = std::make_shared<CKodiNode>(&m_ioc, m_HwdID, m_iPollInterval, m_iPingTimeoutms, sd[0], sd[1], sd[2], sd[3]);
- m_pNodes.push_back(pNode);
- }
- // start the threads to control each kodi
-@@ -1161,7 +1160,7 @@ void CKodi::ReloadNodes()
- }
- sleep_milliseconds(100);
- _log.Log(LOG_NORM, "Kodi: Starting I/O service thread.");
-- boost::thread bt([p = &m_ios] { p->run(); });
-+ boost::thread bt([p = &m_ioc] { p->run(); });
- SetThreadName(bt.native_handle(), "KodiIO");
- }
- }
-@@ -1170,10 +1169,10 @@ void CKodi::UnloadNodes()
- {
- std::lock_guard<std::mutex> l(m_mutex);
-
-- m_ios.stop(); // stop the service if it is running
-+ m_ioc.stop(); // stop the service if it is running
- sleep_milliseconds(100);
-
-- while (((!m_pNodes.empty()) || (!m_ios.stopped())))
-+ while (((!m_pNodes.empty()) || (!m_ioc.stopped())))
- {
- for (auto itt = m_pNodes.begin(); itt != m_pNodes.end(); ++itt)
- {
-diff --git hardware/Kodi.h hardware/Kodi.h
-index 14f331c..4435740 100644
---- hardware/Kodi.h
-+++ hardware/Kodi.h
-@@ -150,7 +150,7 @@ class CKodiNode : public std::enable_shared_from_this<CKodiNode>, StoppableTask
- };
-
- public:
-- CKodiNode(boost::asio::io_service *, int, int, int, const std::string &, const std::string &, const std::string &, const std::string &);
-+ CKodiNode(boost::asio::io_context *, int, int, int, const std::string &, const std::string &, const std::string &, const std::string &);
- ~CKodiNode();
- void Do_Work();
- void SendCommand(const std::string &);
-@@ -207,7 +207,7 @@ class CKodiNode : public std::enable_shared_from_this<CKodiNode>, StoppableTask
- int m_iPollIntSec;
- int m_iMissedPongs;
- std::string m_sLastMessage;
-- boost::asio::io_service *m_Ios;
-+ boost::asio::io_context *m_Ioc;
- boost::asio::ip::tcp::socket *m_Socket;
- std::array<char, 256> m_Buffer;
- };
-@@ -243,5 +243,5 @@ class CKodi : public CDomoticzHardwareBase
- int m_iPingTimeoutms;
- std::shared_ptr<std::thread> m_thread;
- std::mutex m_mutex;
-- boost::asio::io_service m_ios;
-+ boost::asio::io_context m_ioc;
- };
-diff --git hardware/MQTTAutoDiscover.h hardware/MQTTAutoDiscover.h
-index 0832664..1501d6f 100644
---- hardware/MQTTAutoDiscover.h
-+++ hardware/MQTTAutoDiscover.h
-@@ -176,7 +176,7 @@ public:
- void on_message(const struct mosquitto_message *message) override;
- void on_connect(int rc) override;
- void on_disconnect(int rc) override;
-- void on_going_down();
-+ void on_going_down() override;
- private:
- void InsertUpdateSwitch(_tMQTTASensor* pSensor);
-
-diff --git hardware/PanasonicTV.cpp hardware/PanasonicTV.cpp
-index fc57d34..ce20565 100644
---- hardware/PanasonicTV.cpp
-+++ hardware/PanasonicTV.cpp
-@@ -356,18 +356,17 @@ std::string CPanasonicNode::handleWriteAndRead(const std::string& pMessageToSend
- {
-
- _log.Debug(DEBUG_HARDWARE, "Panasonic Plugin: (%s) Handling message: '%s'.", m_Name.c_str(), pMessageToSend.c_str());
-- boost::asio::io_service io_service;
-+ boost::asio::io_context io_context;
- // Get a list of endpoints corresponding to the server name.
-- boost::asio::ip::tcp::resolver resolver(io_service);
-- boost::asio::ip::tcp::resolver::query query(m_IP, (m_Port[0] != '-' ? m_Port : m_Port.substr(1)));
-- auto iter = resolver.resolve(query);
-+ boost::asio::ip::tcp::resolver resolver(io_context);
-+ auto endpoints = resolver.resolve(m_IP, (m_Port[0] != '-' ? m_Port : m_Port.substr(1)));
-+ auto iter = endpoints.begin();
- boost::asio::ip::tcp::endpoint endpoint = *iter;
-- boost::asio::ip::tcp::resolver::iterator end;
-
- // Try each endpoint until we successfully establish a connection.
-- boost::asio::ip::tcp::socket socket(io_service);
-+ boost::asio::ip::tcp::socket socket(io_context);
- boost::system::error_code error = boost::asio::error::host_not_found;
-- while (error && iter != end)
-+ while (error && iter != endpoints.end())
- {
- socket.close();
- if (handleConnect(socket, *iter, error))
-@@ -1060,7 +1059,7 @@ void CPanasonic::ReloadNodes()
- {
- UnloadNodes();
-
-- //m_ios.reset(); // in case this is not the first time in
-+ //m_ioc.reset(); // in case this is not the first time in
-
- std::vector<std::vector<std::string> > result;
- result = m_sql.safe_query("SELECT ID,Name,MacAddress,Timeout FROM WOLNodes WHERE (HardwareID==%d)", m_HwdID);
-@@ -1088,10 +1087,10 @@ void CPanasonic::UnloadNodes()
- {
- std::lock_guard<std::mutex> l(m_mutex);
-
-- m_ios.stop(); // stop the service if it is running
-+ m_ioc.stop(); // stop the service if it is running
- sleep_milliseconds(100);
-
-- while (((!m_pNodes.empty()) || (!m_ios.stopped())))
-+ while (((!m_pNodes.empty()) || (!m_ioc.stopped())))
- {
- for (auto itt = m_pNodes.begin(); itt != m_pNodes.end(); ++itt)
- {
-diff --git hardware/PanasonicTV.h hardware/PanasonicTV.h
-index b0a94ff..30e1ca1 100644
---- hardware/PanasonicTV.h
-+++ hardware/PanasonicTV.h
-@@ -39,7 +39,7 @@ class CPanasonic : public CDomoticzHardwareBase
- bool m_bTryIfOff;
- std::shared_ptr<std::thread> m_thread;
- std::mutex m_mutex;
-- boost::asio::io_service m_ios;
-+ boost::asio::io_context m_ioc;
-
- friend class CPanasonicNode;
- };
-diff --git hardware/Pinger.cpp hardware/Pinger.cpp
-index a66c7a1..e070b29 100644
---- hardware/Pinger.cpp
-+++ hardware/Pinger.cpp
-@@ -21,23 +21,23 @@
- #if BOOST_VERSION >= 107000
- #define GET_IO_SERVICE(s) ((boost::asio::io_context&)(s).get_executor().context())
- #else
--#define GET_IO_SERVICE(s) ((s).get_io_service())
-+#define GET_IO_SERVICE(s) ((s).get_io_context())
- #endif
-
- class pinger
- : private domoticz::noncopyable
- {
- public:
-- pinger(boost::asio::io_service &io_service, const char *destination, const int iPingTimeoutms)
-+ pinger(boost::asio::io_context &io_context, const char *destination, const int iPingTimeoutms)
- : num_replies_(0)
- , m_PingState(false)
-- , resolver_(io_service)
-- , socket_(io_service, boost::asio::ip::icmp::v4())
-- , timer_(io_service)
-+ , resolver_(io_context)
-+ , socket_(io_context, boost::asio::ip::icmp::v4())
-+ , timer_(io_context)
- , sequence_number_(0)
- {
-- boost::asio::ip::icmp::resolver::query query(boost::asio::ip::icmp::v4(), destination, "");
-- destination_ = *resolver_.resolve(query);
-+ auto endpoints = resolver_.resolve(boost::asio::ip::icmp::v4(), destination, "");
-+ destination_ = endpoints.begin()->endpoint();
-
- num_tries_ = 1;
- PingTimeoutms_ = iPingTimeoutms;
-@@ -332,11 +332,11 @@ void CPinger::ReloadNodes()
- void CPinger::Do_Ping_Worker(const PingNode &Node)
- {
- bool bPingOK = false;
-- boost::asio::io_service io_service;
-+ boost::asio::io_context io_context;
- try
- {
-- pinger p(io_service, Node.IP.c_str(), m_iPingTimeoutms);
-- io_service.run();
-+ pinger p(io_context, Node.IP.c_str(), m_iPingTimeoutms);
-+ io_context.run();
- if (p.m_PingState == true)
- {
- bPingOK = true;
-diff --git hardware/RFLinkMQTT.h hardware/RFLinkMQTT.h
-index e938328..72433b8 100644
---- hardware/RFLinkMQTT.h
-+++ hardware/RFLinkMQTT.h
-@@ -46,7 +46,7 @@ protected:
- boost::signals2::connection m_sDeviceReceivedConnection;
- boost::signals2::connection m_sSwitchSceneConnection;
- void selectNextIPAdress( void );
-- virtual bool WriteInt(const std::string &sendString); // override;
-+ bool WriteInt(const std::string &sendString) override;
- void Do_Work();
- virtual void SendHeartbeat();
- void StopMQTT();
-diff --git hardware/TCPProxy/tcpproxy_server.cpp hardware/TCPProxy/tcpproxy_server.cpp
-index 8aceb0b..d77d4bf 100644
---- hardware/TCPProxy/tcpproxy_server.cpp
-+++ hardware/TCPProxy/tcpproxy_server.cpp
-@@ -18,12 +18,12 @@
- #if BOOST_VERSION >= 107000
- #define GET_IO_SERVICE(s) ((boost::asio::io_context&)(s).get_executor().context())
- #else
--#define GET_IO_SERVICE(s) ((s).get_io_service())
-+#define GET_IO_SERVICE(s) ((s).get_io_context())
- #endif
-
- namespace tcp_proxy
- {
-- bridge::bridge(boost::asio::io_service& ios)
-+ bridge::bridge(boost::asio::io_context& ios)
- : downstream_socket_(ios),
- upstream_socket_(ios)
- {
-@@ -44,7 +44,7 @@ namespace tcp_proxy
- boost::asio::ip::tcp::endpoint end;
-
-
-- boost::asio::io_service &ios= GET_IO_SERVICE(downstream_socket_);
-+ boost::asio::io_context &ios= GET_IO_SERVICE(downstream_socket_);
- boost::asio::ip::tcp::resolver resolver(ios);
- boost::asio::ip::tcp::resolver::query query(upstream_host, upstream_port, boost::asio::ip::resolver_query_base::numeric_service);
- auto i = resolver.resolve(query);
-@@ -137,10 +137,10 @@ namespace tcp_proxy
- }
- //Acceptor Class
- acceptor::acceptor(const std::string &local_host, unsigned short local_port, const std::string &upstream_host, const std::string &upstream_port)
-- : io_service_()
-+ : io_context_()
- , m_bDoStop(false)
- , localhost_address(boost::asio::ip::address_v4::from_string(local_host))
-- , acceptor_(io_service_, boost::asio::ip::tcp::endpoint(localhost_address, local_port))
-+ , acceptor_(io_context_, boost::asio::ip::tcp::endpoint(localhost_address, local_port))
- , upstream_host_(upstream_host)
- , upstream_port_(upstream_port)
- {
-@@ -151,7 +151,7 @@ namespace tcp_proxy
- {
- try
- {
-- session_ = std::make_shared<bridge>(io_service_);
-+ session_ = std::make_shared<bridge>(io_context_);
- session_->sDownstreamData.connect([this](auto d, auto l) { OnDownstreamData(d, l); });
- session_->sUpstreamData.connect([this](auto d, auto l) { OnUpstreamData(d, l); });
-
-@@ -169,11 +169,11 @@ namespace tcp_proxy
- m_bDoStop=false;
-
- accept_connections();
-- // The io_service::run() call will block until all asynchronous operations
-+ // The io_context::run() call will block until all asynchronous operations
- // have finished. While the server is running, there is always at least one
- // asynchronous operation outstanding: the asynchronous accept call waiting
- // for new incoming connections.
-- io_service_.run();
-+ io_context_.run();
- return true;
- }
- bool acceptor::stop()
-@@ -181,14 +181,14 @@ namespace tcp_proxy
- m_bDoStop=true;
- // Post a call to the stop function so that server::stop() is safe to call
- // from any thread.
-- io_service_.post([this] { handle_stop(); });
-+ io_context_.post([this] { handle_stop(); });
- return true;
- }
-
- void acceptor::handle_stop()
- {
- // The server is stopped by canceling all outstanding asynchronous
-- // operations. Once all operations have finished the io_service::run() call
-+ // operations. Once all operations have finished the io_context::run() call
- // will exit.
- acceptor_.close();
- //connection_manager_.stop_all();
-diff --git hardware/TCPProxy/tcpproxy_server.h hardware/TCPProxy/tcpproxy_server.h
-index 3d1a150..148e65f 100644
---- hardware/TCPProxy/tcpproxy_server.h
-+++ hardware/TCPProxy/tcpproxy_server.h
-@@ -10,7 +10,7 @@ namespace tcp_proxy
- class bridge : public std::enable_shared_from_this<bridge>
- {
- public:
-- explicit bridge(boost::asio::io_service& ios);
-+ explicit bridge(boost::asio::io_context& ios);
- boost::asio::ip::tcp::socket& downstream_socket();
- boost::asio::ip::tcp::socket& upstream_socket();
-
-@@ -52,8 +52,8 @@ namespace tcp_proxy
- void OnUpstreamData(const unsigned char *pData, size_t Len);
- void OnDownstreamData(const unsigned char *pData, size_t Len);
-
-- /// The io_service used to perform asynchronous operations.
-- boost::asio::io_service io_service_;
-+ /// The io_context used to perform asynchronous operations.
-+ boost::asio::io_context io_context_;
- bool m_bDoStop;
- boost::asio::ip::address_v4 localhost_address;
- boost::asio::ip::tcp::acceptor acceptor_;
-diff --git hardware/XiaomiDeviceSupport.h hardware/XiaomiDeviceSupport.h
-index fad7884..4a76d96 100644
---- hardware/XiaomiDeviceSupport.h
-+++ hardware/XiaomiDeviceSupport.h
-@@ -15,6 +15,7 @@
- class XiaomiDeviceSupport
- {
- public:
-+ virtual ~XiaomiDeviceSupport() = default;
- /**
- * Method to get 'model' corresponding to the ID of the device in case the Gateway API didn't provide it.
- *
-diff --git hardware/XiaomiGateway.cpp hardware/XiaomiGateway.cpp
-index 66acdc5..fb4387a 100644
---- hardware/XiaomiGateway.cpp
-+++ hardware/XiaomiGateway.cpp
-@@ -538,12 +538,12 @@ bool XiaomiGateway::SendMessageToGateway(const std::string &controlmessage)
- {
- std::string message = controlmessage;
- bool result = true;
-- boost::asio::io_service io_service;
-- boost::asio::ip::udp::socket socket_(io_service, boost::asio::ip::udp::endpoint(boost::asio::ip::udp::v4(), 0));
-+ boost::asio::io_context io_context;
-+ boost::asio::ip::udp::socket socket_(io_context, boost::asio::ip::udp::endpoint(boost::asio::ip::udp::v4(), 0));
- stdreplace(message, "@gatewaykey", GetGatewayKey());
- std::shared_ptr<std::string> message1(new std::string(message));
- boost::asio::ip::udp::endpoint remote_endpoint_;
-- remote_endpoint_ = boost::asio::ip::udp::endpoint(boost::asio::ip::address::from_string(m_GatewayIp), 9898);
-+ remote_endpoint_ = boost::asio::ip::udp::endpoint(boost::asio::ip::make_address_v4(m_GatewayIp), 9898);
- socket_.send_to(boost::asio::buffer(*message1), remote_endpoint_);
- sleep_milliseconds(150); // TODO: reduce or remove sleep
- std::array<char, 512> recv_buffer_;
-@@ -1015,15 +1015,14 @@ bool XiaomiGateway::StopHardware()
- void XiaomiGateway::Do_Work()
- {
- Log(LOG_STATUS, "XiaomiGateway (ID=%d): Worker started...", m_HwdID);
-- boost::asio::io_service io_service;
-+ boost::asio::io_context io_context;
- // Find the local ip address that is similar to the xiaomi gateway
- try
- {
-- boost::asio::ip::udp::resolver resolver(io_service);
-- boost::asio::ip::udp::resolver::query query(boost::asio::ip::udp::v4(), m_GatewayIp, "");
-- auto endpoints = resolver.resolve(query);
-- boost::asio::ip::udp::endpoint ep = *endpoints;
-- boost::asio::ip::udp::socket socket(io_service);
-+ boost::asio::ip::udp::resolver resolver(io_context);
-+ auto endpoints = resolver.resolve(boost::asio::ip::udp::v4(), m_GatewayIp, "");
-+ boost::asio::ip::udp::endpoint ep = *endpoints.begin();
-+ boost::asio::ip::udp::socket socket(io_context);
- socket.connect(ep);
- boost::asio::ip::address addr = socket.local_endpoint().address();
- std::string compareIp = m_GatewayIp.substr(0, (m_GatewayIp.length() - 3));
-@@ -1073,11 +1072,11 @@ void XiaomiGateway::Do_Work()
- }
- }
-
-- XiaomiGateway::xiaomi_udp_server udp_server(io_service, m_HwdID, m_GatewayIp, m_LocalIp, m_ListenPort9898, m_OutputMessage, m_IncludeVoltage, this);
-+ XiaomiGateway::xiaomi_udp_server udp_server(io_context, m_HwdID, m_GatewayIp, m_LocalIp, m_ListenPort9898, m_OutputMessage, m_IncludeVoltage, this);
- boost::thread bt;
- if (m_ListenPort9898)
- {
-- bt = boost::thread([p = &io_service] { p->run(); });
-+ bt = boost::thread([p = &io_context] { p->run(); });
- SetThreadName(bt.native_handle(), "XiaomiGatewayIO");
- }
-
-@@ -1094,7 +1093,7 @@ void XiaomiGateway::Do_Work()
- // Log(LOG_STATUS, "sec_counter %d", sec_counter);
- }
- }
-- io_service.stop();
-+ io_context.stop();
- if (bt.joinable())
- {
- bt.join();
-@@ -1178,9 +1177,9 @@ unsigned int XiaomiGateway::GetShortID(const std::string &nodeid)
- return sID;
- }
-
--XiaomiGateway::xiaomi_udp_server::xiaomi_udp_server(boost::asio::io_service &io_service, int m_HwdID, const std::string &gatewayIp, const std::string &localIp, const bool listenPort9898,
-+XiaomiGateway::xiaomi_udp_server::xiaomi_udp_server(boost::asio::io_context &io_context, int m_HwdID, const std::string &gatewayIp, const std::string &localIp, const bool listenPort9898,
- const bool outputMessage, const bool includeVoltage, XiaomiGateway *parent)
-- : socket_(io_service, boost::asio::ip::udp::v4())
-+ : socket_(io_context, boost::asio::ip::udp::v4())
- {
- m_HardwareID = m_HwdID;
- m_XiaomiGateway = parent;
-@@ -1196,8 +1195,8 @@ XiaomiGateway::xiaomi_udp_server::xiaomi_udp_server(boost::asio::io_service &io_
- if (!m_localip.empty())
- {
- boost::system::error_code ec;
-- boost::asio::ip::address listen_addr = boost::asio::ip::address::from_string(m_localip, ec);
-- boost::asio::ip::address mcast_addr = boost::asio::ip::address::from_string("224.0.0.50", ec);
-+ boost::asio::ip::address listen_addr = boost::asio::ip::make_address_v4(m_localip, ec);
-+ boost::asio::ip::address mcast_addr = boost::asio::ip::make_address_v4("224.0.0.50", ec);
- boost::asio::ip::udp::endpoint listen_endpoint(mcast_addr, 9898);
-
- socket_.bind(boost::asio::ip::udp::endpoint(boost::asio::ip::udp::v4(), 9898));
-@@ -1213,9 +1212,9 @@ XiaomiGateway::xiaomi_udp_server::xiaomi_udp_server(boost::asio::io_service &io_
- socket_.bind(boost::asio::ip::udp::endpoint(boost::asio::ip::udp::v4(), 9898));
- std::shared_ptr<std::string> message(new std::string(R"({"cmd":"whois"})"));
- boost::asio::ip::udp::endpoint remote_endpoint;
-- remote_endpoint = boost::asio::ip::udp::endpoint(boost::asio::ip::address::from_string("224.0.0.50"), 4321);
-+ remote_endpoint = boost::asio::ip::udp::endpoint(boost::asio::ip::make_address_v4("224.0.0.50"), 4321);
- socket_.send_to(boost::asio::buffer(*message), remote_endpoint);
-- socket_.set_option(boost::asio::ip::multicast::join_group(boost::asio::ip::address::from_string("224.0.0.50")));
-+ socket_.set_option(boost::asio::ip::multicast::join_group(boost::asio::ip::make_address_v4("224.0.0.50")));
- }
- }
- catch (const boost::system::system_error &ex)
-@@ -1720,7 +1719,7 @@ void XiaomiGateway::xiaomi_udp_server::handle_receive(const boost::system::error
- message.append("\"}");
- std::shared_ptr<std::string> message1(new std::string(message));
- boost::asio::ip::udp::endpoint remote_endpoint;
-- remote_endpoint = boost::asio::ip::udp::endpoint(boost::asio::ip::address::from_string(TrueGateway->GetGatewayIp().c_str()), 9898);
-+ remote_endpoint = boost::asio::ip::udp::endpoint(boost::asio::ip::make_address_v4(TrueGateway->GetGatewayIp().c_str()), 9898);
- socket_.send_to(boost::asio::buffer(*message1), remote_endpoint);
- }
- }
-@@ -1746,7 +1745,7 @@ void XiaomiGateway::xiaomi_udp_server::handle_receive(const boost::system::error
- std::string message = R"({"cmd" : "get_id_list"})";
- std::shared_ptr<std::string> message2(new std::string(message));
- boost::asio::ip::udp::endpoint remote_endpoint;
-- remote_endpoint = boost::asio::ip::udp::endpoint(boost::asio::ip::address::from_string(TrueGateway->GetGatewayIp().c_str()), 9898);
-+ remote_endpoint = boost::asio::ip::udp::endpoint(boost::asio::ip::make_address_v4(TrueGateway->GetGatewayIp().c_str()), 9898);
- socket_.send_to(boost::asio::buffer(*message2), remote_endpoint);
- }
- }
-diff --git hardware/XiaomiGateway.h hardware/XiaomiGateway.h
-index dce4b34..1f552f3 100644
---- hardware/XiaomiGateway.h
-+++ hardware/XiaomiGateway.h
-@@ -100,7 +100,7 @@ class XiaomiGateway : public CDomoticzHardwareBase
- class xiaomi_udp_server
- {
- public:
-- xiaomi_udp_server(boost::asio::io_service &io_service, int m_HwdID, const std::string &gatewayIp, const std::string &localIp, bool listenPort9898, bool outputMessage,
-+ xiaomi_udp_server(boost::asio::io_context &io_context, int m_HwdID, const std::string &gatewayIp, const std::string &localIp, bool listenPort9898, bool outputMessage,
- bool includeVolage, XiaomiGateway *parent);
- ~xiaomi_udp_server() = default;
-
-diff --git hardware/Yeelight.cpp hardware/Yeelight.cpp
-index cdb7889..e5fe8fc 100644
---- hardware/Yeelight.cpp
-+++ hardware/Yeelight.cpp
-@@ -93,8 +93,8 @@ void Yeelight::Do_Work()
-
- try
- {
-- boost::asio::io_service io_service;
-- udp_server server(io_service, m_HwdID);
-+ boost::asio::io_context io_context;
-+ udp_server server(io_context, m_HwdID);
- int sec_counter = YEELIGHT_POLL_INTERVAL - 5;
- while (!IsStopRequested(1000))
- {
-@@ -105,7 +105,7 @@ void Yeelight::Do_Work()
- if (sec_counter % 60 == 0) //poll YeeLights every minute
- {
- server.start_send();
-- io_service.run();
-+ io_context.run();
- }
- }
- }
-@@ -227,12 +227,11 @@ bool Yeelight::WriteToHardware(const char *pdata, const unsigned char length)
-
- try
- {
-- boost::asio::io_service io_service;
-- boost::asio::ip::tcp::socket sendSocket(io_service);
-- boost::asio::ip::tcp::resolver resolver(io_service);
-- boost::asio::ip::tcp::resolver::query query(boost::asio::ip::tcp::v4(), szTmp, "55443");
-- auto iterator = resolver.resolve(query);
-- boost::asio::connect(sendSocket, iterator);
-+ boost::asio::io_context io_context;
-+ boost::asio::ip::tcp::socket sendSocket(io_context);
-+ boost::asio::ip::tcp::resolver resolver(io_context);
-+ auto endpoints = resolver.resolve(boost::asio::ip::tcp::v4(), szTmp, "55443");
-+ boost::asio::connect(sendSocket, endpoints);
-
- std::string message;
- std::string message2;
-@@ -404,8 +403,8 @@ bool Yeelight::WriteToHardware(const char *pdata, const unsigned char length)
- std::array<char, 1024> recv_buffer_;
- int hardwareId;
-
--Yeelight::udp_server::udp_server(boost::asio::io_service& io_service, int m_HwdID)
-- : socket_(io_service, boost::asio::ip::udp::endpoint(boost::asio::ip::udp::v4(), 0))
-+Yeelight::udp_server::udp_server(boost::asio::io_context& io_context, int m_HwdID)
-+ : socket_(io_context, boost::asio::ip::udp::endpoint(boost::asio::ip::udp::v4(), 0))
- {
- socket_.set_option(boost::asio::ip::udp::socket::reuse_address(true));
- socket_.set_option(boost::asio::socket_base::broadcast(true));
-@@ -421,7 +420,7 @@ void Yeelight::udp_server::start_send()
- //Log(LOG_STATUS, "start_send..................");
- std::shared_ptr<std::string> message(
- new std::string(testMessage));
-- remote_endpoint_ = boost::asio::ip::udp::endpoint(boost::asio::ip::address::from_string("239.255.255.250"), 1982);
-+ remote_endpoint_ = boost::asio::ip::udp::endpoint(boost::asio::ip::make_address_v4("239.255.255.250"), 1982);
- socket_.send_to(boost::asio::buffer(*message), remote_endpoint_);
- sleep_milliseconds(150);
- start_receive();
-diff --git hardware/Yeelight.h hardware/Yeelight.h
-index fb03c28..3b7b4c3 100644
---- hardware/Yeelight.h
-+++ hardware/Yeelight.h
-@@ -25,7 +25,7 @@ class Yeelight : public CDomoticzHardwareBase
- class udp_server
- {
- public:
-- udp_server(boost::asio::io_service &io_service, int m_HwdID);
-+ udp_server(boost::asio::io_context &io_context, int m_HwdID);
- boost::asio::ip::udp::socket socket_;
- boost::asio::ip::udp::endpoint remote_endpoint_;
- void start_send();
-diff --git hardware/plugins/PluginManager.cpp hardware/plugins/PluginManager.cpp
-index 2813112..423edbb 100644
---- hardware/plugins/PluginManager.cpp
-+++ hardware/plugins/PluginManager.cpp
-@@ -64,7 +64,7 @@ namespace Plugins {
- // PyMODINIT_FUNC PyInit_DomoticzEvents(void);
-
- std::mutex PluginMutex; // controls accessto the message queue and m_pPlugins map
-- boost::asio::io_service ios;
-+ boost::asio::io_context ios;
-
- std::map<int, CDomoticzHardwareBase*> CPluginSystem::m_pPlugins;
- std::map<std::string, std::string> CPluginSystem::m_PluginXml;
-@@ -315,7 +315,7 @@ namespace Plugins {
- // Create initial IO Service thread
- ios.restart();
- // Create some work to keep IO Service alive
-- auto work = boost::asio::io_service::work(ios);
-+ auto work = boost::asio::make_work_guard(ios);
- boost::thread_group BoostThreads;
- for (int i = 0; i < 1; i++)
- {
-diff --git hardware/plugins/PluginTransports.cpp hardware/plugins/PluginTransports.cpp
-index 52d14e7..f7ace0f 100644
---- hardware/plugins/PluginTransports.cpp
-+++ hardware/plugins/PluginTransports.cpp
-@@ -116,15 +116,14 @@ namespace Plugins {
- m_bConnected = false;
- m_Socket = new boost::asio::ip::tcp::socket(ios);
-
-- boost::system::error_code ec;
-- boost::asio::ip::tcp::resolver::query query(m_IP, m_Port);
-- auto iter = m_Resolver.resolve(query);
-- boost::asio::ip::tcp::endpoint endpoint = *iter;
--
- //
- // Async resolve/connect based on http://www.boost.org/doc/libs/1_45_0/doc/html/boost_asio/example/http/client/async_client.cpp
- //
-- m_Resolver.async_resolve(query, [this](auto &&err, auto end) { handleAsyncResolve(err, end); });
-+ m_Resolver.async_resolve(m_IP, m_Port,
-+ [this](auto &&err, auto endpoints) {
-+ handleAsyncResolve(err, endpoints);
-+ }
-+ );
- }
- }
- catch (std::exception& e)
-@@ -139,15 +138,14 @@ namespace Plugins {
- return true;
- }
-
-- void CPluginTransportTCP::handleAsyncResolve(const boost::system::error_code & err, boost::asio::ip::tcp::resolver::iterator endpoint_iterator)
-+ void CPluginTransportTCP::handleAsyncResolve(const boost::system::error_code & err, boost::asio::ip::tcp::resolver::results_type endpoints)
- {
- CPlugin* pPlugin = ((CConnection*)m_pConnection)->pPlugin;
- AccessPython Guard(pPlugin, "CPluginTransportTCP::handleAsyncResolve");
-
- if (!err)
- {
-- boost::asio::ip::tcp::endpoint endpoint = *endpoint_iterator;
-- m_Socket->async_connect(endpoint, [this, endpoint_iterator](auto &&err) mutable { handleAsyncConnect(err, ++endpoint_iterator); });
-+ boost::asio::async_connect(*m_Socket, endpoints, [this](auto &&err, const boost::asio::ip::tcp::endpoint &endpoint) mutable { handleAsyncConnect(err, endpoint); });
- }
- else
- {
-@@ -169,7 +167,7 @@ namespace Plugins {
- }
- }
-
-- void CPluginTransportTCP::handleAsyncConnect(const boost::system::error_code &err, const boost::asio::ip::tcp::resolver::iterator &endpoint_iterator)
-+ void CPluginTransportTCP::handleAsyncConnect(const boost::system::error_code &err, const boost::asio::ip::tcp::endpoint &endpoint)
- {
- CPlugin* pPlugin = ((CConnection*)m_pConnection)->pPlugin;
- AccessPython Guard(pPlugin, "CPluginTransportTCP::handleAsyncResolve");
-@@ -481,7 +479,7 @@ namespace Plugins {
- }
- };
-
-- void CPluginTransportTCPSecure::handleAsyncConnect(const boost::system::error_code &err, const boost::asio::ip::tcp::resolver::iterator &endpoint_iterator)
-+ void CPluginTransportTCPSecure::handleAsyncConnect(const boost::system::error_code &err, const boost::asio::ip::tcp::endpoint &endpoint)
- {
- CPlugin* pPlugin = ((CConnection*)m_pConnection)->pPlugin;
- if (!pPlugin) return;
-@@ -498,7 +496,7 @@ namespace Plugins {
- SSL_set_tlsext_host_name(m_TLSSock->native_handle(), m_IP.c_str()); // Enable SNI
-
- m_TLSSock->set_verify_mode(boost::asio::ssl::verify_none);
-- m_TLSSock->set_verify_callback(boost::asio::ssl::rfc2818_verification(m_IP));
-+ m_TLSSock->set_verify_callback(boost::asio::ssl::host_name_verification(m_IP));
- // m_TLSSock->set_verify_callback([this](auto v, auto &c){ VerifyCertificate(v, c);});
- try
- {
-@@ -648,7 +646,7 @@ namespace Plugins {
- // Hanlde multicast
- if (((m_IP.substr(0, 4) >= "224.") && (m_IP.substr(0, 4) <= "239.")) || (m_IP.substr(0, 4) == "255."))
- {
-- m_Socket->set_option(boost::asio::ip::multicast::join_group(boost::asio::ip::address::from_string(m_IP.c_str())), ec);
-+ m_Socket->set_option(boost::asio::ip::multicast::join_group(boost::asio::ip::make_address_v4(m_IP.c_str())), ec);
- m_Socket->set_option(boost::asio::ip::multicast::hops(2), ec);
- }
- }
-@@ -764,7 +762,7 @@ namespace Plugins {
- }
- else
- {
-- boost::asio::ip::udp::endpoint destination(boost::asio::ip::address::from_string(m_IP.c_str()), atoi(m_Port.c_str()));
-+ boost::asio::ip::udp::endpoint destination(boost::asio::ip::make_address_v4(m_IP.c_str()), atoi(m_Port.c_str()));
- size_t bytes_transferred = m_Socket->send_to(boost::asio::buffer(pMessage, pMessage.size()), destination);
- }
- }
-@@ -825,12 +823,14 @@ namespace Plugins {
- }
- };
-
-- void CPluginTransportICMP::handleAsyncResolve(const boost::system::error_code &ec, const boost::asio::ip::icmp::resolver::iterator &endpoint_iterator)
-+ void CPluginTransportICMP::handleAsyncResolve(const boost::system::error_code &ec, boost::asio::ip::icmp::resolver::results_type endpoints)
- {
- if (!ec)
- {
-+ m_Endpoint = endpoints.begin()->endpoint();
-+ m_IP = m_Endpoint.address().to_string();
-+
- m_bConnected = true;
-- m_IP = endpoint_iterator->endpoint().address().to_string();
-
- // Listen will fail (10022 - bad parameter) unless something has been sent(?)
- std::string body("ping");
-@@ -857,15 +857,11 @@ namespace Plugins {
- m_bConnecting = true;
- m_Socket = new boost::asio::ip::icmp::socket(ios, boost::asio::ip::icmp::v4());
-
-- boost::system::error_code ec;
-- boost::asio::ip::icmp::resolver::query query(boost::asio::ip::icmp::v4(), m_IP, "");
-- auto iter = m_Resolver.resolve(query);
-- m_Endpoint = *iter;
--
-- //
-- // Async resolve/connect based on http://www.boost.org/doc/libs/1_51_0/doc/html/boost_asio/example/icmp/ping.cpp
-- //
-- m_Resolver.async_resolve(query, [this](auto &&err, auto i) { handleAsyncResolve(err, i); });
-+ m_Resolver.async_resolve(boost::asio::ip::icmp::v4(), m_IP, "",
-+ [this](auto &&err, auto endpoints) {
-+ handleAsyncResolve(err, endpoints);
-+ }
-+ );
- }
- else
- {
-diff --git hardware/plugins/PluginTransports.h hardware/plugins/PluginTransports.h
-index c1cc1e3..79d5725 100644
---- hardware/plugins/PluginTransports.h
-+++ hardware/plugins/PluginTransports.h
-@@ -6,7 +6,7 @@
-
- namespace Plugins {
-
-- extern boost::asio::io_service ios;
-+ extern boost::asio::io_context ios;
-
- class CPluginTransport
- {
-@@ -85,8 +85,8 @@ namespace Plugins {
- , m_Socket(nullptr){};
- bool handleConnect() override;
- bool handleListen() override;
-- virtual void handleAsyncResolve(const boost::system::error_code &err, boost::asio::ip::tcp::resolver::iterator endpoint_iterator);
-- virtual void handleAsyncConnect(const boost::system::error_code &err, const boost::asio::ip::tcp::resolver::iterator &endpoint_iterator);
-+ virtual void handleAsyncResolve(const boost::system::error_code &err, boost::asio::ip::tcp::resolver::results_type endpoints);
-+ virtual void handleAsyncConnect(const boost::system::error_code &err, const boost::asio::ip::tcp::endpoint &endpoint);
- virtual void handleAsyncAccept(boost::asio::ip::tcp::socket *pSocket, const boost::system::error_code &error);
- void handleRead(const boost::system::error_code &e, std::size_t bytes_transferred) override;
- void handleWrite(const std::vector<byte> &pMessage) override;
-@@ -111,7 +111,7 @@ namespace Plugins {
- : CPluginTransportTCP(HwdID, pConnection, Address, Port)
- , m_Context(nullptr)
- , m_TLSSock(nullptr){};
-- void handleAsyncConnect(const boost::system::error_code &err, const boost::asio::ip::tcp::resolver::iterator &endpoint_iterator) override;
-+ void handleAsyncConnect(const boost::system::error_code &err, const boost::asio::ip::tcp::endpoint &endpoint) override;
- void handleRead(const boost::system::error_code &e, std::size_t bytes_transferred) override;
- void handleWrite(const std::vector<byte> &pMessage) override;
- ~CPluginTransportTCPSecure() override;
-@@ -151,7 +151,7 @@ namespace Plugins {
- , m_Socket(nullptr)
- , m_Timer(nullptr)
- , m_SequenceNo(-1){};
-- void handleAsyncResolve(const boost::system::error_code &err, const boost::asio::ip::icmp::resolver::iterator &endpoint_iterator);
-+ void handleAsyncResolve(const boost::system::error_code &err, boost::asio::ip::icmp::resolver::results_type endpoints);
- bool handleListen() override;
- void handleTimeout(const boost::system::error_code &) override;
- void handleRead(const boost::system::error_code &e, std::size_t bytes_transferred) override;
-diff --git main/WebServerCmds.cpp main/WebServerCmds.cpp
-index 7d4a9f2..3586373 100644
---- main/WebServerCmds.cpp
-+++ main/WebServerCmds.cpp
-@@ -1632,7 +1632,7 @@ namespace http
- ExtraHeaders.push_back("App_Revision: " + std::to_string(iAppRevision));
- ExtraHeaders.push_back("System_Name: " + systemname);
- ExtraHeaders.push_back("Machine: " + machine);
-- ExtraHeaders.push_back("Type: " + (!bIsBetaChannel) ? "Stable" : "Beta");
-+ ExtraHeaders.push_back("Type: " + std::string(!bIsBetaChannel ? "Stable" : "Beta"));
-
- if (!HTTPClient::GET(szHistoryURL, ExtraHeaders, historyfile))
- {
-diff --git main/mainworker.cpp main/mainworker.cpp
-index b5027eb..b8f8dc7 100644
---- main/mainworker.cpp
-+++ main/mainworker.cpp
-@@ -1318,7 +1318,7 @@ bool MainWorker::IsUpdateAvailable(const bool bIsForced)
- ExtraHeaders.push_back("App_Revision: " + std::to_string(iAppRevision));
- ExtraHeaders.push_back("System_Name: " + m_szSystemName);
- ExtraHeaders.push_back("Machine: " + machine);
-- ExtraHeaders.push_back("Type: " + (!bIsBetaChannel) ? "Stable" : "Beta");
-+ ExtraHeaders.push_back("Type: " + std::string(!bIsBetaChannel ? "Stable" : "Beta"));
-
- if (!HTTPClient::GET(szURL, ExtraHeaders, revfile))
- return false;
-diff --git plugins/examples/Pinger.py plugins/examples/Pinger.py
-index 6b54559..c7a776d 100644
---- plugins/examples/Pinger.py
-+++ plugins/examples/Pinger.py
-@@ -3,7 +3,7 @@
- # Author: Dnpwwo, 2017 - 2018
- #
- """
--<plugin key="ICMP" name="Pinger (ICMP)" author="dnpwwo" version="3.1.4">
-+<plugin key="ICMP" name="Pinger (ICMP)" author="dnpwwo" version="3.1.5">
- <description>
- ICMP Pinger Plugin.<br/><br/>
- Specify comma delimted addresses (IP or DNS names) of devices that are to be pinged.<br/>
-@@ -144,8 +144,9 @@ class BasePlugin:
- for Device in Devices:
- if (("Name" in Devices[Device].Options) and (Devices[Device].Options["Name"] == Connection.Name)):
- UpdateDevice(Device, 0, "Off", TimedOut)
-- self.icmpConn.Close()
-- self.icmpConn = None
-+ if (self.icmpConn != None):
-+ self.icmpConn.Close()
-+ self.icmpConn = None
-
- def onHeartbeat(self):
- Domoticz.Debug("Heartbeating...")
-diff --git push/MQTTPush.h push/MQTTPush.h
-index 0773b43..d9f9332 100644
---- push/MQTTPush.h
-+++ push/MQTTPush.h
-@@ -14,7 +14,7 @@ public:
- void on_message(const struct mosquitto_message* message) override;
- void on_connect(int rc) override;
- void on_disconnect(int rc) override;
-- void on_going_down();
-+ void on_going_down() override;
- private:
- struct _tPushItem
- {
-diff --git tcpserver/TCPClient.cpp tcpserver/TCPClient.cpp
-index d55da10..3eee093 100644
---- tcpserver/TCPClient.cpp
-+++ tcpserver/TCPClient.cpp
-@@ -19,7 +19,7 @@ namespace tcp {
- delete socket_;
- }
-
-- CTCPClient::CTCPClient(boost::asio::io_service& ios, CTCPServerIntBase* pManager)
-+ CTCPClient::CTCPClient(boost::asio::io_context& ios, CTCPServerIntBase* pManager)
- : CTCPClientBase(pManager)
- {
- socket_ = new boost::asio::ip::tcp::socket(ios);
-diff --git tcpserver/TCPClient.h tcpserver/TCPClient.h
-index df4350d..e7a882b 100644
---- tcpserver/TCPClient.h
-+++ tcpserver/TCPClient.h
-@@ -38,7 +38,7 @@ class CTCPClient : public CTCPClientBase,
- public std::enable_shared_from_this<CTCPClient>
- {
- public:
-- CTCPClient(boost::asio::io_service& ios, CTCPServerIntBase *pManager);
-+ CTCPClient(boost::asio::io_context& ios, CTCPServerIntBase *pManager);
- ~CTCPClient() = default;
- void start() override;
- void stop() override;
-diff --git tcpserver/TCPServer.cpp tcpserver/TCPServer.cpp
-index 91fdc7e..57f8709 100644
---- tcpserver/TCPServer.cpp
-+++ tcpserver/TCPServer.cpp
-@@ -18,14 +18,14 @@ namespace tcp {
-
- CTCPServerInt::CTCPServerInt(const std::string& address, const std::string& port, CTCPServer* pRoot) :
- CTCPServerIntBase(pRoot),
-- io_service_(),
-- acceptor_(io_service_)
-+ io_context_(),
-+ acceptor_(io_context_)
- {
- // Open the acceptor with the option to reuse the address (i.e. SO_REUSEADDR).
-- boost::asio::ip::tcp::resolver resolver(io_service_);
-- boost::asio::ip::tcp::resolver::query query(address, port);
-- boost::asio::ip::tcp::endpoint endpoint = *resolver.resolve(query);
-- acceptor_.open(endpoint.protocol());
-+ boost::asio::ip::tcp::resolver resolver(io_context_);
-+ boost::asio::ip::basic_resolver<boost::asio::ip::tcp>::results_type endpoints = resolver.resolve(address, port);
-+ auto endpoint = *endpoints.begin();
-+ acceptor_.open(endpoint.endpoint().protocol());
- acceptor_.set_option(boost::asio::ip::tcp::acceptor::reuse_address(true));
- // bind to both ipv6 and ipv4 sockets for the "::" address only
- if (address == "::")
-@@ -35,7 +35,7 @@ namespace tcp {
- acceptor_.bind(endpoint);
- acceptor_.listen();
-
-- new_connection_ = std::make_shared<CTCPClient>(io_service_, this);
-+ new_connection_ = std::make_shared<CTCPClient>(io_context_, this);
- if (new_connection_ == nullptr)
- {
- _log.Log(LOG_ERROR, "Error creating new client!");
-@@ -47,24 +47,24 @@ namespace tcp {
-
- void CTCPServerInt::start()
- {
-- // The io_service::run() call will block until all asynchronous operations
-+ // The io_context::run() call will block until all asynchronous operations
- // have finished. While the server is running, there is always at least one
- // asynchronous operation outstanding: the asynchronous accept call waiting
- // for new incoming connections.
-- io_service_.run();
-+ io_context_.run();
- }
-
- void CTCPServerInt::stop()
- {
- // Post a call to the stop function so that server::stop() is safe to call
- // from any thread.
-- io_service_.post([this] { handle_stop(); });
-+ boost::asio::post([this] { handle_stop(); });
- }
-
- void CTCPServerInt::handle_stop()
- {
- // The server is stopped by cancelling all outstanding asynchronous
-- // operations. Once all operations have finished the io_service::run() call
-+ // operations. Once all operations have finished the io_context::run() call
- // will exit.
- acceptor_.close();
- stopAllClients();
-@@ -88,7 +88,7 @@ namespace tcp {
- connections_.insert(new_connection_);
- new_connection_->start();
-
-- new_connection_.reset(new CTCPClient(io_service_, this));
-+ new_connection_.reset(new CTCPClient(io_context_, this));
-
- acceptor_.async_accept(*(new_connection_->socket()), [this](auto&& err) { handleAccept(err); });
- }
-diff --git tcpserver/TCPServer.h tcpserver/TCPServer.h
-index ca611b1..17284ca 100644
---- tcpserver/TCPServer.h
-+++ tcpserver/TCPServer.h
-@@ -70,8 +70,8 @@ private:
- /// Handle a request to stop the server.
- void handle_stop();
-
-- /// The io_service used to perform asynchronous operations.
-- boost::asio::io_service io_service_;
-+ /// The io_context used to perform asynchronous operations.
-+ boost::asio::io_context io_context_;
-
- boost::asio::ip::tcp::acceptor acceptor_;
-
-diff --git webserver/cWebem.cpp webserver/cWebem.cpp
-index 57d9683..c0d292d 100644
---- webserver/cWebem.cpp
-+++ webserver/cWebem.cpp
-@@ -47,13 +47,13 @@ namespace http {
- , myRequestHandler(doc_root, this)
- // Rene, make sure we initialize m_sessions first, before starting a server
- , myServer(server_factory::create(settings, myRequestHandler))
-- , m_io_service()
-- , m_session_clean_timer(m_io_service, boost::posix_time::minutes(1))
-+ , m_io_context()
-+ , m_session_clean_timer(m_io_context, boost::posix_time::minutes(1))
- {
- // associate handler to timer and schedule the first iteration
- m_session_clean_timer.async_wait([this](auto &&) { CleanSessions(); });
-- m_io_service_thread = std::make_shared<std::thread>([p = &m_io_service] { p->run(); });
-- SetThreadName(m_io_service_thread->native_handle(), "Webem_ssncleaner");
-+ m_io_context_thread = std::make_shared<std::thread>([p = &m_io_context] { p->run(); });
-+ SetThreadName(m_io_context_thread->native_handle(), "Webem_ssncleaner");
- }
-
- cWebem::~cWebem()
-@@ -93,14 +93,14 @@ namespace http {
- // Stop session cleaner
- try
- {
-- if (!m_io_service.stopped())
-+ if (!m_io_context.stopped())
- {
-- m_io_service.stop();
-+ m_io_context.stop();
- }
-- if (m_io_service_thread)
-+ if (m_io_context_thread)
- {
-- m_io_service_thread->join();
-- m_io_service_thread.reset();
-+ m_io_context_thread->join();
-+ m_io_context_thread.reset();
- }
- }
- catch (...)
-diff --git webserver/cWebem.h webserver/cWebem.h
-index 6e3b899..7905c45 100644
---- webserver/cWebem.h
-+++ webserver/cWebem.h
-@@ -259,9 +259,9 @@ namespace http
- std::string m_webRoot;
- /// sessions management
- std::mutex m_sessionsMutex;
-- boost::asio::io_service m_io_service;
-+ boost::asio::io_context m_io_context;
- boost::asio::deadline_timer m_session_clean_timer;
-- std::shared_ptr<std::thread> m_io_service_thread;
-+ std::shared_ptr<std::thread> m_io_context_thread;
- };
-
- } // namespace server
-diff --git webserver/connection.cpp webserver/connection.cpp
-index 40f9788..3a70924 100644
---- webserver/connection.cpp
-+++ webserver/connection.cpp
-@@ -22,13 +22,13 @@ namespace http {
- extern time_t last_write_time(const std::string& path);
-
- // this is the constructor for plain connections
-- connection::connection(boost::asio::io_service &io_service, connection_manager &manager, request_handler &handler, int read_timeout)
-+ connection::connection(boost::asio::io_context &io_context, connection_manager &manager, request_handler &handler, int read_timeout)
- : send_buffer_(nullptr)
- , read_timeout_(read_timeout)
-- , read_timer_(io_service, boost::posix_time::seconds(read_timeout))
-+ , read_timer_(io_context, boost::posix_time::seconds(read_timeout))
- , default_abandoned_timeout_(20 * 60)
- // 20mn before stopping abandoned connection
-- , abandoned_timer_(io_service, boost::posix_time::seconds(default_abandoned_timeout_))
-+ , abandoned_timer_(io_context, boost::posix_time::seconds(default_abandoned_timeout_))
- , connection_manager_(manager)
- , request_handler_(handler)
- , status_(INITIALIZING)
-@@ -39,18 +39,18 @@ namespace http {
- keepalive_ = false;
- write_in_progress = false;
- connection_type = ConnectionType::connection_http;
-- socket_ = std::make_unique<boost::asio::ip::tcp::socket>(io_service);
-+ socket_ = std::make_unique<boost::asio::ip::tcp::socket>(io_context);
- }
-
- #ifdef WWW_ENABLE_SSL
- // this is the constructor for secure connections
-- connection::connection(boost::asio::io_service &io_service, connection_manager &manager, request_handler &handler, int read_timeout, boost::asio::ssl::context &context)
-+ connection::connection(boost::asio::io_context &io_context, connection_manager &manager, request_handler &handler, int read_timeout, boost::asio::ssl::context &context)
- : send_buffer_(nullptr)
- , read_timeout_(read_timeout)
-- , read_timer_(io_service, boost::posix_time::seconds(read_timeout))
-+ , read_timer_(io_context, boost::posix_time::seconds(read_timeout))
- , default_abandoned_timeout_(20 * 60)
- // 20mn before stopping abandoned connection
-- , abandoned_timer_(io_service, boost::posix_time::seconds(default_abandoned_timeout_))
-+ , abandoned_timer_(io_context, boost::posix_time::seconds(default_abandoned_timeout_))
- , connection_manager_(manager)
- , request_handler_(handler)
- , status_(INITIALIZING)
-@@ -62,7 +62,7 @@ namespace http {
- write_in_progress = false;
- connection_type = ConnectionType::connection_http;
- socket_ = nullptr;
-- sslsocket_ = std::make_unique<ssl_socket>(io_service, context);
-+ sslsocket_ = std::make_unique<ssl_socket>(io_context, context);
- }
- #endif
-
-@@ -152,9 +152,9 @@ namespace http {
- if (error != boost::asio::error::operation_aborted) {
- switch (connection_type) {
- case ConnectionType::connection_http:
-- // Timers should be cancelled before stopping to remove tasks from the io_service.
-- // The io_service will stop naturally when every tasks are removed.
-- // If timers are not cancelled, the exception ERROR_ABANDONED_WAIT_0 is thrown up to the io_service::run() caller.
-+ // Timers should be cancelled before stopping to remove tasks from the io_context.
-+ // The io_context will stop naturally when every tasks are removed.
-+ // If timers are not cancelled, the exception ERROR_ABANDONED_WAIT_0 is thrown up to the io_context::run() caller.
- cancel_abandoned_timeout();
- cancel_read_timeout();
-
-@@ -372,7 +372,7 @@ namespace http {
- switch (connection_type)
- {
- case ConnectionType::connection_http:
-- begin = boost::asio::buffer_cast<const char*>(_buf.data());
-+ begin = static_cast<const char*>(_buf.data().data());
- try
- {
- request_parser_.reset();
-@@ -404,7 +404,7 @@ namespace http {
- newt = std::chrono::system_clock::to_time_t(std::chrono::system_clock::now());
- }
-
-- size_t sizeread = begin - boost::asio::buffer_cast<const char*>(_buf.data());
-+ size_t sizeread = begin - static_cast<const char*>(_buf.data().data());
- _buf.consume(sizeread);
- reply_.reset();
- const char* pConnection = request_.get_req_header(&request_, "Connection");
-@@ -520,7 +520,7 @@ namespace http {
- break;
- case ConnectionType::connection_websocket:
- case ConnectionType::connection_websocket_closing:
-- begin = boost::asio::buffer_cast<const char*>(_buf.data());
-+ begin = static_cast<const char*>(_buf.data().data());
- result = websocket_parser.parse((const unsigned char*)begin, _buf.size(), bytes_consumed, keepalive_);
- _buf.consume(bytes_consumed);
- if (result) {
-diff --git webserver/connection.hpp webserver/connection.hpp
-index ce452b5..c1a82c5 100644
---- webserver/connection.hpp
-+++ webserver/connection.hpp
-@@ -43,11 +43,11 @@ namespace http {
- std::string host_local_endpoint_port_;
- std::string host_last_request_uri_;
- };
-- /// Construct a connection with the given io_service.
-- explicit connection(boost::asio::io_service& io_service,
-+ /// Construct a connection with the given io_context.
-+ explicit connection(boost::asio::io_context& io_context,
- connection_manager& manager, request_handler& handler, int timeout);
- #ifdef WWW_ENABLE_SSL
-- explicit connection(boost::asio::io_service& io_service,
-+ explicit connection(boost::asio::io_context& io_context,
- connection_manager& manager, request_handler& handler, int timeout, boost::asio::ssl::context& context);
- #endif
- ~connection() = default;
-diff --git webserver/server.cpp webserver/server.cpp
-index da15887..8bdfc13 100644
---- webserver/server.cpp
-+++ webserver/server.cpp
-@@ -13,15 +13,15 @@ namespace http {
- namespace server {
-
- server_base::server_base(const server_settings &settings, request_handler &user_request_handler)
-- : io_service_()
-- , acceptor_(io_service_)
-+ : io_context_()
-+ , acceptor_(io_context_)
- , request_handler_(user_request_handler)
- , settings_(settings)
- , timeout_(20)
- , // default read timeout in seconds
- is_running(false)
- , is_stop_complete(false)
-- , m_heartbeat_timer(io_service_)
-+ , m_heartbeat_timer(io_context_)
- {
- if (!settings.is_enabled())
- {
-@@ -39,10 +39,10 @@ namespace server {
- }
-
- // Open the acceptor with the option to reuse the address (i.e. SO_REUSEADDR).
-- boost::asio::ip::tcp::resolver resolver(io_service_);
-- boost::asio::ip::tcp::resolver::query query(settings_.listening_address, settings_.listening_port);
-- boost::asio::ip::tcp::endpoint endpoint = *resolver.resolve(query);
-- acceptor_.open(endpoint.protocol());
-+ boost::asio::ip::tcp::resolver resolver(io_context_);
-+ boost::asio::ip::basic_resolver<boost::asio::ip::tcp>::results_type endpoints = resolver.resolve(settings_.listening_address, settings_.listening_port);
-+ auto endpoint = *endpoints.begin();
-+ acceptor_.open(endpoint.endpoint().protocol());
- acceptor_.set_option(boost::asio::ip::tcp::acceptor::reuse_address(true));
- // bind to both ipv6 and ipv4 sockets for the "::" address only
- if (settings_.listening_address == "::")
-@@ -59,28 +59,28 @@ namespace server {
- }
-
- void server_base::run() {
-- // The io_service::run() call will block until all asynchronous operations
-+ // The io_context::run() call will block until all asynchronous operations
- // have finished. While the server is running, there is always at least one
- // asynchronous operation outstanding: the asynchronous accept call waiting
- // for new incoming connections.
- try {
- is_running = true;
- heart_beat(boost::system::error_code());
-- io_service_.run();
-+ io_context_.run();
- is_running = false;
- } catch (std::exception& e) {
- _log.Log(LOG_ERROR, "[web:%s] exception occurred : '%s' (need to run again)", settings_.listening_port.c_str(), e.what());
- is_running = false;
- // Note: if acceptor is up everything is OK, we can call run() again
- // but if the exception has broken the acceptor we cannot stop/start it and the next run() will exit immediatly.
-- io_service_.reset(); // this call is needed before calling run() again
-+ io_context_.restart(); // this call is needed before calling run() again
- throw;
- } catch (...) {
- _log.Log(LOG_ERROR, "[web:%s] unknown exception occurred (need to run again)", settings_.listening_port.c_str());
- is_running = false;
- // Note: if acceptor is up everything is OK, we can call run() again
- // but if the exception has broken the acceptor we cannot stop/start it and the next run() will exit immediatly.
-- io_service_.reset(); // this call is needed before calling run() again
-+ io_context_.restart(); // this call is needed before calling run() again
- throw;
- }
- }
-@@ -89,12 +89,12 @@ void server_base::run() {
- void server_base::stop() {
- if (is_running) {
- // Post a call to the stop function so that server_base::stop() is safe to call from any thread.
-- // Rene, set is_running to false, because the following is an io_service call, which makes is_running
-+ // Rene, set is_running to false, because the following is an io_context call, which makes is_running
- // never set to false whilst in the call itself
- is_running = false;
-- io_service_.post([this] { handle_stop(); });
-+ boost::asio::post(io_context_, [this] { handle_stop(); });
- } else {
-- // if io_service is not running then the post call will not be performed
-+ // if io_context is not running then the post call will not be performed
- handle_stop();
- }
-
-@@ -112,7 +112,7 @@ void server_base::stop() {
- }
- sleep_milliseconds(500);
- }
-- io_service_.stop();
-+ io_context_.stop();
-
- // Deregister heartbeat
- m_mainworker.HeartbeatRemove(std::string("WebServer:") + settings_.listening_port);
-@@ -136,7 +136,7 @@ void server_base::heart_beat(const boost::system::error_code& error)
- m_mainworker.HeartbeatUpdate(std::string("WebServer:") + settings_.listening_port);
-
- // Schedule next heartbeat
-- m_heartbeat_timer.expires_from_now(std::chrono::seconds(4));
-+ m_heartbeat_timer.expires_after(std::chrono::seconds(4));
- m_heartbeat_timer.async_wait([this](auto &&err) { heart_beat(err); });
- }
- }
-@@ -148,7 +148,7 @@ server::server(const server_settings &settings, request_handler &user_request_ha
- }
-
- void server::init_connection() {
-- new_connection_.reset(new connection(io_service_, connection_manager_, request_handler_, timeout_));
-+ new_connection_.reset(new connection(io_context_, connection_manager_, request_handler_, timeout_));
- }
-
- /**
-@@ -157,7 +157,7 @@ void server::init_connection() {
- void server::handle_accept(const boost::system::error_code& e) {
- if (!e) {
- connection_manager_.start(new_connection_);
-- new_connection_.reset(new connection(io_service_,
-+ new_connection_.reset(new connection(io_context_,
- connection_manager_, request_handler_, timeout_));
- // listen for a subsequent request
- acceptor_.async_accept(new_connection_->socket(), [this](auto &&err) { handle_accept(err); });
-@@ -267,7 +267,7 @@ void ssl_server::init_connection() {
- } else {
- _log.Log(LOG_ERROR, "[web:%s] missing SSL DH parameters file %s!", settings_.listening_port.c_str(), settings_.tmp_dh_file_path.c_str());
- }
-- new_connection_.reset(new connection(io_service_, connection_manager_, request_handler_, timeout_, context_));
-+ new_connection_.reset(new connection(io_context_, connection_manager_, request_handler_, timeout_, context_));
- }
-
- void ssl_server::reinit_connection()
-@@ -305,7 +305,7 @@ void ssl_server::reinit_connection()
- _log.Log(LOG_ERROR, "[web:%s] missing SSL DH parameters from file %s", settings_.listening_port.c_str(), settings_.tmp_dh_file_path.c_str());
- }
- }
-- new_connection_.reset(new connection(io_service_, connection_manager_, request_handler_, timeout_, context_));
-+ new_connection_.reset(new connection(io_context_, connection_manager_, request_handler_, timeout_, context_));
- }
-
- /**
-diff --git webserver/server.hpp webserver/server.hpp
-index f9e71c5..bd7132a 100644
---- webserver/server.hpp
-+++ webserver/server.hpp
-@@ -31,7 +31,7 @@ namespace http
- explicit server_base(const server_settings &settings, request_handler &user_request_handler);
- virtual ~server_base() = default;
-
-- /// Run the server's io_service loop.
-+ /// Run the server's io_context loop.
- void run();
-
- /// Stop the server.
-@@ -46,8 +46,8 @@ namespace http
- protected:
- void init(const init_connectionhandler_func &init_connection_handler, accept_handler_func accept_handler);
-
-- /// The io_service used to perform asynchronous operations.
-- boost::asio::io_service io_service_;
-+ /// The io_context used to perform asynchronous operations.
-+ boost::asio::io_context io_context_;
-
- /// Acceptor used to listen for incoming connections.
- boost::asio::ip::tcp::acceptor acceptor_;
diff --git a/www/domoticz/pkg-plist b/www/domoticz/pkg-plist
index c21a1e3986e8..6abd562fad81 100644
--- a/www/domoticz/pkg-plist
+++ b/www/domoticz/pkg-plist
@@ -276,7 +276,6 @@ domoticz/scripts/templates/UserVariable.dzVents
domoticz/scripts/templates/global_data.dzVents
domoticz/scripts/update_domoticz
domoticz/server_cert.pem
-domoticz/updatedomo
domoticz/www/app/AboutController.js
domoticz/www/app/ApplicationsController.js
domoticz/www/app/CamController.js
@@ -347,6 +346,8 @@ domoticz/www/app/hardware/extra/DaikinParams.html
domoticz/www/app/hardware/extra/DaikinParams.js
domoticz/www/app/hardware/extra/MQTTParams.html
domoticz/www/app/hardware/extra/MQTTParams.js
+domoticz/www/app/hardware/extra/TadoParams.html
+domoticz/www/app/hardware/extra/TadoParams.js
domoticz/www/app/hardware/setup/BleBox.html
domoticz/www/app/hardware/setup/BleBox.js
domoticz/www/app/hardware/setup/EnOceanESP3.html
@@ -408,9 +409,11 @@ domoticz/www/app/log/chart-hour.html
domoticz/www/app/log/chart-month.html
domoticz/www/app/log/chart-week.html
domoticz/www/app/log/chart-year.html
+domoticz/www/app/log/components/CounterStatChart.js
domoticz/www/app/log/components/DeviceLevelChart.js
domoticz/www/app/log/components/DeviceOnOffChart.js
domoticz/www/app/log/components/DeviceTextLogTable.js
+domoticz/www/app/log/components/chart-counter-stat.html
domoticz/www/app/log/factories.js
domoticz/www/app/main.js
domoticz/www/app/notifications/DeviceNotifications.js
@@ -560,6 +563,9 @@ domoticz/www/i18n/domoticz-zh_TW.json.gz
domoticz/www/images/AC.png
domoticz/www/images/AC48_Off.png
domoticz/www/images/AC48_On.png
+domoticz/www/images/AirMeasure.png
+domoticz/www/images/AirMeasure48_Off.png
+domoticz/www/images/AirMeasure48_On.png
domoticz/www/images/Alarm.png
domoticz/www/images/Alarm48_Off.png
domoticz/www/images/Alarm48_On.png
@@ -572,9 +578,15 @@ domoticz/www/images/Alert48_4.png
domoticz/www/images/Amplifier.png
domoticz/www/images/Amplifier48_Off.png
domoticz/www/images/Amplifier48_On.png
+domoticz/www/images/Charger.png
+domoticz/www/images/Charger48_Off.png
+domoticz/www/images/Charger48_On.png
domoticz/www/images/ChristmasTree.png
domoticz/www/images/ChristmasTree48_Off.png
domoticz/www/images/ChristmasTree48_On.png
+domoticz/www/images/Coffee.png
+domoticz/www/images/Coffee48_Off.png
+domoticz/www/images/Coffee48_On.png
domoticz/www/images/Coltemp48.png
domoticz/www/images/Coltemp48_Sel.png
domoticz/www/images/Computer.png
@@ -608,6 +620,9 @@ domoticz/www/images/Fan48_On.png
domoticz/www/images/Fireplace.png
domoticz/www/images/Fireplace48_Off.png
domoticz/www/images/Fireplace48_On.png
+domoticz/www/images/GLight.png
+domoticz/www/images/GLight48_Off.png
+domoticz/www/images/GLight48_On.png
domoticz/www/images/Gas48.png
domoticz/www/images/Generic.png
domoticz/www/images/Generic48_Off.png
@@ -618,9 +633,17 @@ domoticz/www/images/Harddisk48_On.png
domoticz/www/images/Heating.png
domoticz/www/images/Heating48_Off.png
domoticz/www/images/Heating48_On.png
+domoticz/www/images/Humidity48_Off.png
+domoticz/www/images/Humidity48_On.png
+domoticz/www/images/Inverter.png
+domoticz/www/images/Inverter48_Off.png
+domoticz/www/images/Inverter48_On.png
domoticz/www/images/Irrigation.png
domoticz/www/images/Irrigation48_Off.png
domoticz/www/images/Irrigation48_On.png
+domoticz/www/images/Laadpaal.png
+domoticz/www/images/Laadpaal48_Off.png
+domoticz/www/images/Laadpaal48_On.png
domoticz/www/images/Light48_Off.png
domoticz/www/images/Light48_On.png
domoticz/www/images/LogitechMediaServer.png
@@ -637,6 +660,9 @@ domoticz/www/images/Phone48_On.png
domoticz/www/images/Printer.png
domoticz/www/images/Printer48_Off.png
domoticz/www/images/Printer48_On.png
+domoticz/www/images/Pump.png
+domoticz/www/images/Pump48_Off.png
+domoticz/www/images/Pump48_On.png
domoticz/www/images/Push48_Off.png
domoticz/www/images/Push48_On.png
domoticz/www/images/RGB.png
@@ -644,23 +670,41 @@ domoticz/www/images/RGB48.png
domoticz/www/images/RGB48_Off.png
domoticz/www/images/RGB48_On.png
domoticz/www/images/RGB48_Sel.png
+domoticz/www/images/Radiator.png
+domoticz/www/images/Radiator48_Off.png
+domoticz/www/images/Radiator48_On.png
domoticz/www/images/Rain48_Off.png
domoticz/www/images/Rain48_On.png
+domoticz/www/images/Soil.png
+domoticz/www/images/Soil48_Off.png
+domoticz/www/images/Soil48_On.png
+domoticz/www/images/Solar.png
+domoticz/www/images/Solar48_Off.png
+domoticz/www/images/Solar48_On.png
domoticz/www/images/Speaker.png
domoticz/www/images/Speaker48_Off.png
domoticz/www/images/Speaker48_On.png
domoticz/www/images/Stop48.png
+domoticz/www/images/Strip.png
+domoticz/www/images/Strip48_Off.png
+domoticz/www/images/Strip48_On.png
domoticz/www/images/Sun.png
domoticz/www/images/Sun48_Off.png
domoticz/www/images/Sun48_On.png
domoticz/www/images/TV.png
domoticz/www/images/TV48_Off.png
domoticz/www/images/TV48_On.png
+domoticz/www/images/Tap.png
+domoticz/www/images/Tap48_Off.png
+domoticz/www/images/Tap48_On.png
domoticz/www/images/Up48.png
domoticz/www/images/Up48_2.png
domoticz/www/images/WallSocket.png
domoticz/www/images/WallSocket48_Off.png
domoticz/www/images/WallSocket48_On.png
+domoticz/www/images/WashingMachine.png
+domoticz/www/images/WashingMachine48_Off.png
+domoticz/www/images/WashingMachine48_On.png
domoticz/www/images/Water.png
domoticz/www/images/Water48_Off.png
domoticz/www/images/Water48_On.png
@@ -683,6 +727,9 @@ domoticz/www/images/WindSW.png
domoticz/www/images/WindW.png
domoticz/www/images/WindWNW.png
domoticz/www/images/WindWSW.png
+domoticz/www/images/Window.png
+domoticz/www/images/Window48_Off.png
+domoticz/www/images/Window48_On.png
domoticz/www/images/about.png
domoticz/www/images/add.png
domoticz/www/images/adjust48.png
@@ -714,6 +761,7 @@ domoticz/www/images/camera_default.png
domoticz/www/images/capture.png
domoticz/www/images/clock.png
domoticz/www/images/clock48.png
+domoticz/www/images/clock48_Off.png
domoticz/www/images/clock48_On.png
domoticz/www/images/collection.png
domoticz/www/images/collection_hover.png
@@ -838,6 +886,9 @@ domoticz/www/images/overrule.png
domoticz/www/images/overrule_mini.png
domoticz/www/images/pdf.png
domoticz/www/images/pdf_hover.png
+domoticz/www/images/pool.png
+domoticz/www/images/pool48_Off.png
+domoticz/www/images/pool48_On.png
domoticz/www/images/print.png
domoticz/www/images/print_hover.png
domoticz/www/images/program.png
@@ -909,6 +960,9 @@ domoticz/www/images/uv48.png
domoticz/www/images/uvdark.png
domoticz/www/images/uvsunny.png
domoticz/www/images/variables.png
+domoticz/www/images/victron.png
+domoticz/www/images/victron48_Off.png
+domoticz/www/images/victron48_On.png
domoticz/www/images/visibility.png
domoticz/www/images/visibility48.png
domoticz/www/images/webcam.png
@@ -1017,6 +1071,7 @@ domoticz/www/js/highcharts/modules/exporting.js.gz
domoticz/www/js/highcharts/modules/no-data-to-display.js.gz
domoticz/www/js/highcharts/modules/sankey.js.gz
domoticz/www/js/highcharts/modules/xrange.js.gz
+domoticz/www/js/highcharts/themes/brand-dark.js.gz
domoticz/www/js/highcharts/themes/dark-unica.js.gz
domoticz/www/js/html5shiv.js.gz
domoticz/www/js/i18next-1.8.0.min.js.gz
diff --git a/www/feroxbuster/Makefile b/www/feroxbuster/Makefile
index de6d405018a0..172571c2d580 100644
--- a/www/feroxbuster/Makefile
+++ b/www/feroxbuster/Makefile
@@ -1,7 +1,6 @@
PORTNAME= feroxbuster
DISTVERSIONPREFIX= v
-DISTVERSION= 2.11.0
-PORTREVISION= 9
+DISTVERSION= 2.13.0
CATEGORIES= www security
MAINTAINER= yuri@FreeBSD.org
@@ -20,236 +19,239 @@ USE_PERL5= build
USE_GITHUB= yes
GH_ACCOUNT= epi052
-CARGO_CRATES= addr2line-0.22.0 \
- adler-1.0.2 \
- adler2-2.0.0 \
- ahash-0.8.11 \
+CARGO_CRATES= addr2line-0.24.2 \
+ adler2-2.0.1 \
+ ahash-0.8.12 \
aho-corasick-1.1.3 \
- anstream-0.6.15 \
- anstyle-1.0.8 \
- anstyle-parse-0.2.5 \
- anstyle-query-1.1.1 \
- anstyle-wincon-3.0.4 \
- anyhow-1.0.86 \
+ anstream-0.6.19 \
+ anstyle-1.0.11 \
+ anstyle-parse-0.2.7 \
+ anstyle-query-1.1.3 \
+ anstyle-wincon-3.0.9 \
+ anyhow-1.0.98 \
ascii-canvas-3.0.0 \
assert-json-diff-2.0.2 \
- assert_cmd-2.0.16 \
+ assert_cmd-2.0.17 \
async-attributes-1.1.2 \
async-channel-1.9.0 \
- async-channel-2.3.1 \
- async-executor-1.13.0 \
+ async-channel-2.5.0 \
+ async-executor-1.13.2 \
async-global-executor-2.4.1 \
- async-io-1.13.0 \
- async-io-2.3.4 \
- async-lock-2.8.0 \
- async-lock-3.4.0 \
- async-object-pool-0.1.4 \
- async-process-1.8.1 \
- async-signal-0.2.10 \
- async-std-1.12.0 \
+ async-io-2.5.0 \
+ async-lock-3.4.1 \
+ async-object-pool-0.1.5 \
+ async-process-2.4.0 \
+ async-signal-0.2.12 \
+ async-std-1.13.1 \
async-task-4.7.1 \
- async-trait-0.1.81 \
+ async-trait-0.1.88 \
atomic-waker-1.1.2 \
- autocfg-1.3.0 \
- backtrace-0.3.73 \
+ autocfg-1.5.0 \
+ backtrace-0.3.75 \
base64-0.21.7 \
base64-0.22.1 \
- base64ct-1.6.0 \
+ base64ct-1.8.0 \
basic-cookies-0.1.5 \
bit-set-0.5.3 \
bit-vec-0.6.3 \
- bitflags-1.3.2 \
- bitflags-2.6.0 \
+ bitflags-2.9.1 \
block-buffer-0.10.4 \
- blocking-1.6.1 \
- bstr-1.10.0 \
- bumpalo-3.16.0 \
+ blocking-1.6.2 \
+ bstr-1.12.0 \
+ bumpalo-3.19.0 \
byteorder-1.5.0 \
- bytes-1.7.1 \
- cc-1.1.15 \
- cfg-if-1.0.0 \
+ bytes-1.10.1 \
+ cc-1.2.31 \
+ cfg-if-1.0.1 \
cfg_aliases-0.2.1 \
- clap-4.5.16 \
- clap_builder-4.5.15 \
- clap_complete-4.5.23 \
- clap_lex-0.7.2 \
- colorchoice-1.0.2 \
+ clap-4.5.42 \
+ clap_builder-4.5.42 \
+ clap_complete-4.5.55 \
+ clap_lex-0.7.5 \
+ colorchoice-1.0.4 \
concurrent-queue-2.5.0 \
- console-0.15.8 \
+ console-0.15.11 \
const-oid-0.9.6 \
core-foundation-0.9.4 \
core-foundation-sys-0.8.7 \
- cpufeatures-0.2.13 \
- crc32fast-1.4.2 \
- crossbeam-deque-0.8.5 \
+ cpufeatures-0.2.17 \
+ crc32fast-1.5.0 \
+ crossbeam-deque-0.8.6 \
crossbeam-epoch-0.9.18 \
- crossbeam-utils-0.8.20 \
+ crossbeam-utils-0.8.21 \
crossterm-0.27.0 \
crossterm_winapi-0.9.1 \
- crunchy-0.2.2 \
+ crunchy-0.2.4 \
crypto-common-0.1.6 \
cssparser-0.31.2 \
cssparser-macros-0.6.1 \
- ctrlc-3.4.5 \
+ ctrlc-3.4.7 \
curve25519-dalek-4.1.3 \
curve25519-dalek-derive-0.1.1 \
- der-0.7.9 \
- deranged-0.3.11 \
- derive_more-0.99.18 \
+ der-0.7.10 \
+ deranged-0.4.0 \
+ derive_more-0.99.20 \
difflib-0.4.0 \
digest-0.10.7 \
dirs-5.0.1 \
dirs-next-2.0.0 \
dirs-sys-0.4.1 \
dirs-sys-next-0.1.2 \
+ displaydoc-0.2.5 \
doc-comment-0.3.3 \
- dtoa-1.0.9 \
+ dtoa-1.0.10 \
dtoa-short-0.3.5 \
ed25519-2.2.3 \
- ed25519-dalek-2.1.1 \
+ ed25519-dalek-2.2.0 \
ego-tree-0.6.3 \
- either-1.13.0 \
+ either-1.15.0 \
ena-0.14.3 \
- encode_unicode-0.3.6 \
- encoding_rs-0.8.34 \
- env_filter-0.1.2 \
- env_logger-0.11.5 \
- equivalent-1.0.1 \
- errno-0.3.9 \
+ encode_unicode-1.0.0 \
+ encoding_rs-0.8.35 \
+ env_filter-0.1.3 \
+ env_logger-0.11.8 \
+ equivalent-1.0.2 \
+ errno-0.3.13 \
event-listener-2.5.3 \
- event-listener-3.1.0 \
- event-listener-5.3.1 \
- event-listener-strategy-0.5.2 \
- fastrand-1.9.0 \
- fastrand-2.1.1 \
+ event-listener-5.4.1 \
+ event-listener-strategy-0.5.4 \
+ fastrand-2.3.0 \
fiat-crypto-0.2.9 \
- filetime-0.2.24 \
+ filetime-0.2.25 \
fixedbitset-0.4.2 \
- flate2-1.0.33 \
- float-cmp-0.9.0 \
+ flate2-1.1.2 \
+ float-cmp-0.10.0 \
fnv-1.0.7 \
foreign-types-0.3.2 \
foreign-types-shared-0.1.1 \
form_urlencoded-1.2.1 \
fuchsia-cprng-0.1.1 \
futf-0.1.5 \
- futures-0.3.30 \
- futures-channel-0.3.30 \
- futures-core-0.3.30 \
- futures-executor-0.3.30 \
- futures-io-0.3.30 \
- futures-lite-1.13.0 \
- futures-lite-2.3.0 \
- futures-macro-0.3.30 \
- futures-sink-0.3.30 \
- futures-task-0.3.30 \
- futures-util-0.3.30 \
+ futures-0.3.31 \
+ futures-channel-0.3.31 \
+ futures-core-0.3.31 \
+ futures-executor-0.3.31 \
+ futures-io-0.3.31 \
+ futures-lite-2.6.1 \
+ futures-macro-0.3.31 \
+ futures-sink-0.3.31 \
+ futures-task-0.3.31 \
+ futures-util-0.3.31 \
fxhash-0.2.1 \
gaoya-0.2.0 \
generic-array-0.14.7 \
- getopts-0.2.21 \
- getrandom-0.2.15 \
- gimli-0.29.0 \
- gloo-timers-0.2.6 \
- h2-0.4.6 \
- hashbrown-0.14.5 \
- hermit-abi-0.3.9 \
- hermit-abi-0.4.0 \
+ getopts-0.2.23 \
+ getrandom-0.2.16 \
+ getrandom-0.3.3 \
+ gimli-0.31.1 \
+ gloo-timers-0.3.0 \
+ h2-0.4.11 \
+ hashbrown-0.15.4 \
+ hermit-abi-0.5.2 \
html5ever-0.27.0 \
http-0.2.12 \
- http-1.1.0 \
+ http-1.3.1 \
http-body-0.4.6 \
http-body-1.0.1 \
- http-body-util-0.1.2 \
- httparse-1.9.4 \
+ http-body-util-0.1.3 \
+ httparse-1.10.1 \
httpdate-1.0.3 \
httpmock-0.7.0 \
- humantime-2.1.0 \
- hyper-0.14.30 \
- hyper-1.4.1 \
- hyper-rustls-0.27.2 \
+ hyper-0.14.32 \
+ hyper-1.6.0 \
+ hyper-rustls-0.27.7 \
hyper-tls-0.6.0 \
- hyper-util-0.1.7 \
- idna-0.5.0 \
- indexmap-2.4.0 \
- indicatif-0.17.8 \
- instant-0.1.13 \
- io-lifetimes-1.0.11 \
- ipnet-2.9.0 \
+ hyper-util-0.1.16 \
+ icu_collections-2.0.0 \
+ icu_locale_core-2.0.0 \
+ icu_normalizer-2.0.0 \
+ icu_normalizer_data-2.0.0 \
+ icu_properties-2.0.1 \
+ icu_properties_data-2.0.1 \
+ icu_provider-2.0.0 \
+ idna-1.0.3 \
+ idna_adapter-1.2.1 \
+ indexmap-2.10.0 \
+ indicatif-0.17.11 \
+ io-uring-0.7.9 \
+ ipnet-2.11.0 \
+ iri-string-0.7.8 \
is_terminal_polyfill-1.70.1 \
itertools-0.10.5 \
itertools-0.11.0 \
- itoa-1.0.11 \
- js-sys-0.3.70 \
+ itoa-1.0.15 \
+ jiff-0.2.15 \
+ jiff-static-0.2.15 \
+ js-sys-0.3.77 \
kv-log-macro-1.0.7 \
lalrpop-0.20.2 \
lalrpop-util-0.20.2 \
lazy_static-1.5.0 \
leaky-bucket-1.1.2 \
levenshtein-1.0.5 \
- libc-0.2.158 \
- libredox-0.1.3 \
- linux-raw-sys-0.3.8 \
- linux-raw-sys-0.4.14 \
- lock_api-0.4.12 \
- log-0.4.22 \
+ libc-0.2.174 \
+ libredox-0.1.9 \
+ linux-raw-sys-0.9.4 \
+ litemap-0.8.0 \
+ lock_api-0.4.13 \
+ log-0.4.27 \
mac-0.1.1 \
markup5ever-0.12.1 \
- memchr-2.7.4 \
+ memchr-2.7.5 \
mime-0.3.17 \
- miniz_oxide-0.7.4 \
- miniz_oxide-0.8.0 \
+ miniz_oxide-0.8.9 \
mio-0.8.11 \
- mio-1.0.2 \
- native-tls-0.2.12 \
+ mio-1.0.4 \
+ native-tls-0.2.14 \
new_debug_unreachable-1.0.6 \
- nix-0.29.0 \
+ nix-0.30.1 \
normalize-line-endings-0.3.0 \
num-conv-0.1.0 \
num-traits-0.2.19 \
number_prefix-0.4.0 \
- object-0.36.3 \
- once_cell-1.19.0 \
- openssl-0.10.66 \
+ object-0.36.7 \
+ once_cell-1.21.3 \
+ once_cell_polyfill-1.70.1 \
+ openssl-0.10.73 \
openssl-macros-0.1.1 \
- openssl-probe-0.1.5 \
- openssl-src-300.3.1+3.3.1 \
- openssl-sys-0.9.103 \
+ openssl-probe-0.1.6 \
+ openssl-src-300.5.1+3.5.1 \
+ openssl-sys-0.9.109 \
option-ext-0.2.0 \
- parking-2.2.0 \
- parking_lot-0.12.3 \
- parking_lot_core-0.9.10 \
+ parking-2.2.1 \
+ parking_lot-0.12.4 \
+ parking_lot_core-0.9.11 \
percent-encoding-2.3.1 \
petgraph-0.6.5 \
phf-0.10.1 \
- phf-0.11.2 \
+ phf-0.11.3 \
phf_codegen-0.10.0 \
- phf_codegen-0.11.2 \
+ phf_codegen-0.11.3 \
phf_generator-0.10.0 \
- phf_generator-0.11.2 \
- phf_macros-0.11.2 \
+ phf_generator-0.11.3 \
+ phf_macros-0.11.3 \
phf_shared-0.10.0 \
- phf_shared-0.11.2 \
+ phf_shared-0.11.3 \
pico-args-0.5.0 \
- pin-project-1.1.5 \
- pin-project-internal-1.1.5 \
- pin-project-lite-0.2.14 \
+ pin-project-lite-0.2.16 \
pin-utils-0.1.0 \
piper-0.2.4 \
pkcs8-0.10.2 \
- pkg-config-0.3.30 \
- polling-2.8.0 \
- polling-3.7.3 \
- portable-atomic-1.7.0 \
+ pkg-config-0.3.32 \
+ polling-3.10.0 \
+ portable-atomic-1.11.1 \
+ portable-atomic-util-0.2.4 \
+ potential_utf-0.1.2 \
powerfmt-0.2.0 \
- ppv-lite86-0.2.20 \
+ ppv-lite86-0.2.21 \
precomputed-hash-0.1.1 \
- predicates-3.1.2 \
- predicates-core-1.0.8 \
- predicates-tree-1.0.11 \
- proc-macro2-1.0.86 \
+ predicates-3.1.3 \
+ predicates-core-1.0.9 \
+ predicates-tree-1.0.12 \
+ proc-macro2-1.0.95 \
quick-xml-0.23.1 \
- quote-1.0.37 \
+ quote-1.0.40 \
+ r-efi-5.3.0 \
rand-0.3.23 \
rand-0.4.6 \
rand-0.8.5 \
@@ -262,158 +264,179 @@ CARGO_CRATES= addr2line-0.22.0 \
rayon-1.10.0 \
rayon-core-1.12.1 \
rdrand-0.4.0 \
- redox_syscall-0.5.3 \
+ redox_syscall-0.5.17 \
redox_users-0.4.6 \
- regex-1.10.6 \
- regex-automata-0.4.7 \
- regex-syntax-0.8.4 \
- reqwest-0.12.7 \
- ring-0.17.8 \
- rlimit-0.10.1 \
- rustc-demangle-0.1.24 \
- rustc_version-0.4.0 \
- rustix-0.37.27 \
- rustix-0.38.34 \
- rustls-0.23.12 \
- rustls-pemfile-2.1.3 \
- rustls-pki-types-1.8.0 \
- rustls-webpki-0.102.6 \
- rustversion-1.0.17 \
- ryu-1.0.18 \
+ regex-1.11.1 \
+ regex-automata-0.4.9 \
+ regex-syntax-0.8.5 \
+ reqwest-0.12.22 \
+ ring-0.17.14 \
+ rlimit-0.10.2 \
+ rustc-demangle-0.1.26 \
+ rustc_version-0.4.1 \
+ rustix-1.0.8 \
+ rustls-0.23.31 \
+ rustls-pki-types-1.12.0 \
+ rustls-webpki-0.103.4 \
+ rustversion-1.0.21 \
+ ryu-1.0.20 \
same-file-1.0.6 \
- schannel-0.1.23 \
+ schannel-0.1.27 \
scopeguard-1.2.0 \
scraper-0.19.1 \
seahash-4.1.0 \
security-framework-2.11.1 \
- security-framework-sys-2.11.1 \
+ security-framework-sys-2.14.0 \
selectors-0.25.0 \
- self-replace-1.4.0 \
+ self-replace-1.5.0 \
self_update-0.40.0 \
- semver-1.0.23 \
- serde-1.0.209 \
- serde_derive-1.0.209 \
- serde_json-1.0.127 \
+ semver-1.0.26 \
+ serde-1.0.219 \
+ serde_derive-1.0.219 \
+ serde_json-1.0.142 \
serde_regex-1.1.0 \
- serde_spanned-0.6.7 \
+ serde_spanned-0.6.9 \
serde_urlencoded-0.7.1 \
servo_arc-0.3.0 \
sha-1-0.10.1 \
- sha2-0.10.8 \
+ sha2-0.10.9 \
shingles-0.1.1 \
shlex-1.3.0 \
- signal-hook-0.3.17 \
+ signal-hook-0.3.18 \
signal-hook-mio-0.2.4 \
- signal-hook-registry-1.4.2 \
+ signal-hook-registry-1.4.6 \
signature-2.2.0 \
- similar-2.6.0 \
+ similar-2.7.0 \
siphasher-0.3.11 \
- slab-0.4.9 \
- smallvec-1.13.2 \
- socket2-0.4.10 \
- socket2-0.5.7 \
- spin-0.9.8 \
+ siphasher-1.0.1 \
+ slab-0.4.10 \
+ smallvec-1.15.1 \
+ socket2-0.5.10 \
+ socket2-0.6.0 \
spki-0.7.3 \
stable_deref_trait-1.2.0 \
- string_cache-0.8.7 \
- string_cache_codegen-0.5.2 \
+ string_cache-0.8.9 \
+ string_cache_codegen-0.5.4 \
strsim-0.11.1 \
subtle-2.6.1 \
syn-1.0.109 \
- syn-2.0.76 \
- sync_wrapper-1.0.1 \
+ syn-2.0.104 \
+ sync_wrapper-1.0.2 \
+ synstructure-0.13.2 \
system-configuration-0.6.1 \
system-configuration-sys-0.6.0 \
- tar-0.4.41 \
- tempfile-3.12.0 \
+ tar-0.4.44 \
+ tempfile-3.20.0 \
tendril-0.4.3 \
term-0.7.0 \
- terminal_size-0.3.0 \
- termtree-0.4.1 \
- thiserror-1.0.63 \
- thiserror-impl-1.0.63 \
- time-0.3.36 \
- time-core-0.1.2 \
+ terminal_size-0.4.2 \
+ termtree-0.5.1 \
+ thiserror-1.0.69 \
+ thiserror-2.0.12 \
+ thiserror-impl-1.0.69 \
+ thiserror-impl-2.0.12 \
+ time-0.3.41 \
+ time-core-0.1.4 \
tiny-keccak-2.0.2 \
- tinyvec-1.8.0 \
- tinyvec_macros-0.1.1 \
- tokio-1.39.3 \
- tokio-macros-2.4.0 \
+ tinystr-0.8.1 \
+ tokio-1.47.1 \
+ tokio-macros-2.5.0 \
tokio-native-tls-0.3.1 \
- tokio-rustls-0.26.0 \
- tokio-socks-0.5.2 \
- tokio-util-0.7.11 \
- toml-0.8.19 \
- toml_datetime-0.6.8 \
- toml_edit-0.22.20 \
- tower-0.4.13 \
+ tokio-rustls-0.26.2 \
+ tokio-util-0.7.16 \
+ toml-0.8.23 \
+ toml_datetime-0.6.11 \
+ toml_edit-0.22.27 \
+ toml_write-0.1.2 \
+ tower-0.5.2 \
+ tower-http-0.6.6 \
tower-layer-0.3.3 \
tower-service-0.3.3 \
- tracing-0.1.40 \
- tracing-core-0.1.32 \
- triomphe-0.1.13 \
+ tracing-0.1.41 \
+ tracing-core-0.1.34 \
+ triomphe-0.1.14 \
try-lock-0.2.5 \
- typenum-1.17.0 \
- unicode-bidi-0.3.15 \
- unicode-ident-1.0.12 \
- unicode-normalization-0.1.23 \
- unicode-width-0.1.13 \
- unicode-xid-0.2.5 \
+ typenum-1.18.0 \
+ unicode-ident-1.0.18 \
+ unicode-width-0.2.1 \
+ unicode-xid-0.2.6 \
untrusted-0.9.0 \
- url-2.5.2 \
+ url-2.5.4 \
urlencoding-2.1.3 \
utf-8-0.7.6 \
+ utf8_iter-1.0.4 \
utf8parse-0.2.2 \
- uuid-1.10.0 \
- value-bag-1.9.0 \
+ uuid-1.17.0 \
+ value-bag-1.11.1 \
vcpkg-0.2.15 \
version_check-0.9.5 \
- wait-timeout-0.2.0 \
- waker-fn-1.2.0 \
+ wait-timeout-0.2.1 \
walkdir-2.5.0 \
want-0.3.1 \
- wasi-0.11.0+wasi-snapshot-preview1 \
- wasm-bindgen-0.2.93 \
- wasm-bindgen-backend-0.2.93 \
- wasm-bindgen-futures-0.4.43 \
- wasm-bindgen-macro-0.2.93 \
- wasm-bindgen-macro-support-0.2.93 \
- wasm-bindgen-shared-0.2.93 \
- web-sys-0.3.70 \
+ wasi-0.11.1+wasi-snapshot-preview1 \
+ wasi-0.14.2+wasi-0.2.4 \
+ wasm-bindgen-0.2.100 \
+ wasm-bindgen-backend-0.2.100 \
+ wasm-bindgen-futures-0.4.50 \
+ wasm-bindgen-macro-0.2.100 \
+ wasm-bindgen-macro-support-0.2.100 \
+ wasm-bindgen-shared-0.2.100 \
+ web-sys-0.3.77 \
+ web-time-1.1.0 \
winapi-0.3.9 \
winapi-i686-pc-windows-gnu-0.4.0 \
winapi-util-0.1.9 \
winapi-x86_64-pc-windows-gnu-0.4.0 \
- windows-registry-0.2.0 \
- windows-result-0.2.0 \
- windows-strings-0.1.0 \
+ windows-link-0.1.3 \
+ windows-registry-0.5.3 \
+ windows-result-0.3.4 \
+ windows-strings-0.4.2 \
windows-sys-0.48.0 \
windows-sys-0.52.0 \
windows-sys-0.59.0 \
+ windows-sys-0.60.2 \
windows-targets-0.48.5 \
windows-targets-0.52.6 \
+ windows-targets-0.53.3 \
windows_aarch64_gnullvm-0.48.5 \
windows_aarch64_gnullvm-0.52.6 \
+ windows_aarch64_gnullvm-0.53.0 \
windows_aarch64_msvc-0.48.5 \
windows_aarch64_msvc-0.52.6 \
+ windows_aarch64_msvc-0.53.0 \
windows_i686_gnu-0.48.5 \
windows_i686_gnu-0.52.6 \
+ windows_i686_gnu-0.53.0 \
windows_i686_gnullvm-0.52.6 \
+ windows_i686_gnullvm-0.53.0 \
windows_i686_msvc-0.48.5 \
windows_i686_msvc-0.52.6 \
+ windows_i686_msvc-0.53.0 \
windows_x86_64_gnu-0.48.5 \
windows_x86_64_gnu-0.52.6 \
+ windows_x86_64_gnu-0.53.0 \
windows_x86_64_gnullvm-0.48.5 \
windows_x86_64_gnullvm-0.52.6 \
+ windows_x86_64_gnullvm-0.53.0 \
windows_x86_64_msvc-0.48.5 \
windows_x86_64_msvc-0.52.6 \
- winnow-0.6.18 \
- xattr-1.3.1 \
- zerocopy-0.7.35 \
- zerocopy-derive-0.7.35 \
+ windows_x86_64_msvc-0.53.0 \
+ winnow-0.7.12 \
+ wit-bindgen-rt-0.39.0 \
+ writeable-0.6.1 \
+ xattr-1.5.1 \
+ yoke-0.8.0 \
+ yoke-derive-0.8.0 \
+ zerocopy-0.8.26 \
+ zerocopy-derive-0.8.26 \
+ zerofrom-0.1.6 \
+ zerofrom-derive-0.1.6 \
zeroize-1.8.1 \
+ zerotrie-0.2.2 \
+ zerovec-0.11.2 \
+ zerovec-derive-0.11.1 \
zip-0.6.6 \
- zipsign-api-0.1.2
+ zipsign-api-0.1.5
OPENSSLINC= /usr/include
OPENSSLLIB= /usr/lib
diff --git a/www/feroxbuster/distinfo b/www/feroxbuster/distinfo
index 587ba112d90f..64a9de56e460 100644
--- a/www/feroxbuster/distinfo
+++ b/www/feroxbuster/distinfo
@@ -1,156 +1,148 @@
-TIMESTAMP = 1726525061
-SHA256 (rust/crates/addr2line-0.22.0.crate) = 6e4503c46a5c0c7844e948c9a4d6acd9f50cccb4de1c48eb9e291ea17470c678
-SIZE (rust/crates/addr2line-0.22.0.crate) = 39156
-SHA256 (rust/crates/adler-1.0.2.crate) = f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe
-SIZE (rust/crates/adler-1.0.2.crate) = 12778
-SHA256 (rust/crates/adler2-2.0.0.crate) = 512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627
-SIZE (rust/crates/adler2-2.0.0.crate) = 13529
-SHA256 (rust/crates/ahash-0.8.11.crate) = e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011
-SIZE (rust/crates/ahash-0.8.11.crate) = 43607
+TIMESTAMP = 1761529073
+SHA256 (rust/crates/addr2line-0.24.2.crate) = dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1
+SIZE (rust/crates/addr2line-0.24.2.crate) = 39015
+SHA256 (rust/crates/adler2-2.0.1.crate) = 320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa
+SIZE (rust/crates/adler2-2.0.1.crate) = 13366
+SHA256 (rust/crates/ahash-0.8.12.crate) = 5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75
+SIZE (rust/crates/ahash-0.8.12.crate) = 43413
SHA256 (rust/crates/aho-corasick-1.1.3.crate) = 8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916
SIZE (rust/crates/aho-corasick-1.1.3.crate) = 183311
-SHA256 (rust/crates/anstream-0.6.15.crate) = 64e15c1ab1f89faffbf04a634d5e1962e9074f2741eef6d97f3c4e322426d526
-SIZE (rust/crates/anstream-0.6.15.crate) = 29231
-SHA256 (rust/crates/anstyle-1.0.8.crate) = 1bec1de6f59aedf83baf9ff929c98f2ad654b97c9510f4e70cf6f661d49fd5b1
-SIZE (rust/crates/anstyle-1.0.8.crate) = 15771
-SHA256 (rust/crates/anstyle-parse-0.2.5.crate) = eb47de1e80c2b463c735db5b217a0ddc39d612e7ac9e2e96a5aed1f57616c1cb
-SIZE (rust/crates/anstyle-parse-0.2.5.crate) = 22680
-SHA256 (rust/crates/anstyle-query-1.1.1.crate) = 6d36fc52c7f6c869915e99412912f22093507da8d9e942ceaf66fe4b7c14422a
-SIZE (rust/crates/anstyle-query-1.1.1.crate) = 9891
-SHA256 (rust/crates/anstyle-wincon-3.0.4.crate) = 5bf74e1b6e971609db8ca7a9ce79fd5768ab6ae46441c572e46cf596f59e57f8
-SIZE (rust/crates/anstyle-wincon-3.0.4.crate) = 12234
-SHA256 (rust/crates/anyhow-1.0.86.crate) = b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da
-SIZE (rust/crates/anyhow-1.0.86.crate) = 46741
+SHA256 (rust/crates/anstream-0.6.19.crate) = 301af1932e46185686725e0fad2f8f2aa7da69dd70bf6ecc44d6b703844a3933
+SIZE (rust/crates/anstream-0.6.19.crate) = 28767
+SHA256 (rust/crates/anstyle-1.0.11.crate) = 862ed96ca487e809f1c8e5a8447f6ee2cf102f846893800b20cebdf541fc6bbd
+SIZE (rust/crates/anstyle-1.0.11.crate) = 15880
+SHA256 (rust/crates/anstyle-parse-0.2.7.crate) = 4e7644824f0aa2c7b9384579234ef10eb7efb6a0deb83f9630a49594dd9c15c2
+SIZE (rust/crates/anstyle-parse-0.2.7.crate) = 21707
+SHA256 (rust/crates/anstyle-query-1.1.3.crate) = 6c8bdeb6047d8983be085bab0ba1472e6dc604e7041dbf6fcd5e71523014fae9
+SIZE (rust/crates/anstyle-query-1.1.3.crate) = 10190
+SHA256 (rust/crates/anstyle-wincon-3.0.9.crate) = 403f75924867bb1033c59fbf0797484329750cfbe3c4325cd33127941fabc882
+SIZE (rust/crates/anstyle-wincon-3.0.9.crate) = 12561
+SHA256 (rust/crates/anyhow-1.0.98.crate) = e16d2d3311acee920a9eb8d33b8cbc1787ce4a264e85f964c2404b969bdcd487
+SIZE (rust/crates/anyhow-1.0.98.crate) = 53334
SHA256 (rust/crates/ascii-canvas-3.0.0.crate) = 8824ecca2e851cec16968d54a01dd372ef8f95b244fb84b84e70128be347c3c6
SIZE (rust/crates/ascii-canvas-3.0.0.crate) = 10575
SHA256 (rust/crates/assert-json-diff-2.0.2.crate) = 47e4f2b81832e72834d7518d8487a0396a28cc408186a2e8854c0f98011faf12
SIZE (rust/crates/assert-json-diff-2.0.2.crate) = 10874
-SHA256 (rust/crates/assert_cmd-2.0.16.crate) = dc1835b7f27878de8525dc71410b5a31cdcc5f230aed5ba5df968e09c201b23d
-SIZE (rust/crates/assert_cmd-2.0.16.crate) = 26554
+SHA256 (rust/crates/assert_cmd-2.0.17.crate) = 2bd389a4b2970a01282ee455294913c0a43724daedcd1a24c3eb0ec1c1320b66
+SIZE (rust/crates/assert_cmd-2.0.17.crate) = 26914
SHA256 (rust/crates/async-attributes-1.1.2.crate) = a3203e79f4dd9bdda415ed03cf14dae5a2bf775c683a00f94e9cd1faf0f596e5
SIZE (rust/crates/async-attributes-1.1.2.crate) = 11431
SHA256 (rust/crates/async-channel-1.9.0.crate) = 81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35
SIZE (rust/crates/async-channel-1.9.0.crate) = 13664
-SHA256 (rust/crates/async-channel-2.3.1.crate) = 89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a
-SIZE (rust/crates/async-channel-2.3.1.crate) = 14576
-SHA256 (rust/crates/async-executor-1.13.0.crate) = d7ebdfa2ebdab6b1760375fa7d6f382b9f486eac35fc994625a00e89280bdbb7
-SIZE (rust/crates/async-executor-1.13.0.crate) = 27974
+SHA256 (rust/crates/async-channel-2.5.0.crate) = 924ed96dd52d1b75e9c1a3e6275715fd320f5f9439fb5a4a11fa51f4221158d2
+SIZE (rust/crates/async-channel-2.5.0.crate) = 18624
+SHA256 (rust/crates/async-executor-1.13.2.crate) = bb812ffb58524bdd10860d7d974e2f01cc0950c2438a74ee5ec2e2280c6c4ffa
+SIZE (rust/crates/async-executor-1.13.2.crate) = 28392
SHA256 (rust/crates/async-global-executor-2.4.1.crate) = 05b1b633a2115cd122d73b955eadd9916c18c8f510ec9cd1686404c60ad1c29c
SIZE (rust/crates/async-global-executor-2.4.1.crate) = 11844
-SHA256 (rust/crates/async-io-1.13.0.crate) = 0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af
-SIZE (rust/crates/async-io-1.13.0.crate) = 37191
-SHA256 (rust/crates/async-io-2.3.4.crate) = 444b0228950ee6501b3568d3c93bf1176a1fdbc3b758dcd9475046d30f4dc7e8
-SIZE (rust/crates/async-io-2.3.4.crate) = 49145
-SHA256 (rust/crates/async-lock-2.8.0.crate) = 287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b
-SIZE (rust/crates/async-lock-2.8.0.crate) = 29944
-SHA256 (rust/crates/async-lock-3.4.0.crate) = ff6e472cdea888a4bd64f342f09b3f50e1886d32afe8df3d663c01140b811b18
-SIZE (rust/crates/async-lock-3.4.0.crate) = 34446
-SHA256 (rust/crates/async-object-pool-0.1.4.crate) = aeb901c30ebc2fc4ab46395bbfbdba9542c16559d853645d75190c3056caf3bc
-SIZE (rust/crates/async-object-pool-0.1.4.crate) = 5056
-SHA256 (rust/crates/async-process-1.8.1.crate) = ea6438ba0a08d81529c69b36700fa2f95837bfe3e776ab39cde9c14d9149da88
-SIZE (rust/crates/async-process-1.8.1.crate) = 22758
-SHA256 (rust/crates/async-signal-0.2.10.crate) = 637e00349800c0bdf8bfc21ebbc0b6524abea702b0da4168ac00d070d0c0b9f3
-SIZE (rust/crates/async-signal-0.2.10.crate) = 16970
-SHA256 (rust/crates/async-std-1.12.0.crate) = 62565bb4402e926b29953c785397c6dc0391b7b446e45008b0049eb43cec6f5d
-SIZE (rust/crates/async-std-1.12.0.crate) = 215080
+SHA256 (rust/crates/async-io-2.5.0.crate) = 19634d6336019ef220f09fd31168ce5c184b295cbf80345437cc36094ef223ca
+SIZE (rust/crates/async-io-2.5.0.crate) = 50545
+SHA256 (rust/crates/async-lock-3.4.1.crate) = 5fd03604047cee9b6ce9de9f70c6cd540a0520c813cbd49bae61f33ab80ed1dc
+SIZE (rust/crates/async-lock-3.4.1.crate) = 40981
+SHA256 (rust/crates/async-object-pool-0.1.5.crate) = 333c456b97c3f2d50604e8b2624253b7f787208cb72eb75e64b0ad11b221652c
+SIZE (rust/crates/async-object-pool-0.1.5.crate) = 5067
+SHA256 (rust/crates/async-process-2.4.0.crate) = 65daa13722ad51e6ab1a1b9c01299142bc75135b337923cfa10e79bbbd669f00
+SIZE (rust/crates/async-process-2.4.0.crate) = 26871
+SHA256 (rust/crates/async-signal-0.2.12.crate) = f567af260ef69e1d52c2b560ce0ea230763e6fbb9214a85d768760a920e3e3c1
+SIZE (rust/crates/async-signal-0.2.12.crate) = 16790
+SHA256 (rust/crates/async-std-1.13.1.crate) = 730294c1c08c2e0f85759590518f6333f0d5a0a766a27d519c1b244c3dfd8a24
+SIZE (rust/crates/async-std-1.13.1.crate) = 219113
SHA256 (rust/crates/async-task-4.7.1.crate) = 8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de
SIZE (rust/crates/async-task-4.7.1.crate) = 38077
-SHA256 (rust/crates/async-trait-0.1.81.crate) = 6e0c28dcc82d7c8ead5cb13beb15405b57b8546e93215673ff8ca0349a028107
-SIZE (rust/crates/async-trait-0.1.81.crate) = 28896
+SHA256 (rust/crates/async-trait-0.1.88.crate) = e539d3fca749fcee5236ab05e93a52867dd549cc157c8cb7f99595f3cedffdb5
+SIZE (rust/crates/async-trait-0.1.88.crate) = 32084
SHA256 (rust/crates/atomic-waker-1.1.2.crate) = 1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0
SIZE (rust/crates/atomic-waker-1.1.2.crate) = 12422
-SHA256 (rust/crates/autocfg-1.3.0.crate) = 0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0
-SIZE (rust/crates/autocfg-1.3.0.crate) = 16524
-SHA256 (rust/crates/backtrace-0.3.73.crate) = 5cc23269a4f8976d0a4d2e7109211a419fe30e8d88d677cd60b6bc79c5732e0a
-SIZE (rust/crates/backtrace-0.3.73.crate) = 87617
+SHA256 (rust/crates/autocfg-1.5.0.crate) = c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8
+SIZE (rust/crates/autocfg-1.5.0.crate) = 18729
+SHA256 (rust/crates/backtrace-0.3.75.crate) = 6806a6321ec58106fea15becdad98371e28d92ccbc7c8f1b3b6dd724fe8f1002
+SIZE (rust/crates/backtrace-0.3.75.crate) = 92665
SHA256 (rust/crates/base64-0.21.7.crate) = 9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567
SIZE (rust/crates/base64-0.21.7.crate) = 82576
SHA256 (rust/crates/base64-0.22.1.crate) = 72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6
SIZE (rust/crates/base64-0.22.1.crate) = 81597
-SHA256 (rust/crates/base64ct-1.6.0.crate) = 8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b
-SIZE (rust/crates/base64ct-1.6.0.crate) = 28870
+SHA256 (rust/crates/base64ct-1.8.0.crate) = 55248b47b0caf0546f7988906588779981c43bb1bc9d0c44087278f80cdb44ba
+SIZE (rust/crates/base64ct-1.8.0.crate) = 31211
SHA256 (rust/crates/basic-cookies-0.1.5.crate) = 67bd8fd42c16bdb08688243dc5f0cc117a3ca9efeeaba3a345a18a6159ad96f7
SIZE (rust/crates/basic-cookies-0.1.5.crate) = 7106
SHA256 (rust/crates/bit-set-0.5.3.crate) = 0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1
SIZE (rust/crates/bit-set-0.5.3.crate) = 14470
SHA256 (rust/crates/bit-vec-0.6.3.crate) = 349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb
SIZE (rust/crates/bit-vec-0.6.3.crate) = 19927
-SHA256 (rust/crates/bitflags-1.3.2.crate) = bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a
-SIZE (rust/crates/bitflags-1.3.2.crate) = 23021
-SHA256 (rust/crates/bitflags-2.6.0.crate) = b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de
-SIZE (rust/crates/bitflags-2.6.0.crate) = 45357
+SHA256 (rust/crates/bitflags-2.9.1.crate) = 1b8e56985ec62d17e9c1001dc89c88ecd7dc08e47eba5ec7c29c7b5eeecde967
+SIZE (rust/crates/bitflags-2.9.1.crate) = 47913
SHA256 (rust/crates/block-buffer-0.10.4.crate) = 3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71
SIZE (rust/crates/block-buffer-0.10.4.crate) = 10538
-SHA256 (rust/crates/blocking-1.6.1.crate) = 703f41c54fc768e63e091340b424302bb1c29ef4aa0c7f10fe849dfb114d29ea
-SIZE (rust/crates/blocking-1.6.1.crate) = 17788
-SHA256 (rust/crates/bstr-1.10.0.crate) = 40723b8fb387abc38f4f4a37c09073622e41dd12327033091ef8950659e6dc0c
-SIZE (rust/crates/bstr-1.10.0.crate) = 380426
-SHA256 (rust/crates/bumpalo-3.16.0.crate) = 79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c
-SIZE (rust/crates/bumpalo-3.16.0.crate) = 85677
+SHA256 (rust/crates/blocking-1.6.2.crate) = e83f8d02be6967315521be875afa792a316e28d57b5a2d401897e2a7921b7f21
+SIZE (rust/crates/blocking-1.6.2.crate) = 17754
+SHA256 (rust/crates/bstr-1.12.0.crate) = 234113d19d0d7d613b40e86fb654acf958910802bcceab913a4f9e7cda03b1a4
+SIZE (rust/crates/bstr-1.12.0.crate) = 351557
+SHA256 (rust/crates/bumpalo-3.19.0.crate) = 46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43
+SIZE (rust/crates/bumpalo-3.19.0.crate) = 96414
SHA256 (rust/crates/byteorder-1.5.0.crate) = 1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b
SIZE (rust/crates/byteorder-1.5.0.crate) = 23288
-SHA256 (rust/crates/bytes-1.7.1.crate) = 8318a53db07bb3f8dca91a600466bdb3f2eaadeedfdbcf02e1accbad9271ba50
-SIZE (rust/crates/bytes-1.7.1.crate) = 63623
-SHA256 (rust/crates/cc-1.1.15.crate) = 57b6a275aa2903740dc87da01c62040406b8812552e97129a63ea8850a17c6e6
-SIZE (rust/crates/cc-1.1.15.crate) = 83085
-SHA256 (rust/crates/cfg-if-1.0.0.crate) = baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd
-SIZE (rust/crates/cfg-if-1.0.0.crate) = 7934
+SHA256 (rust/crates/bytes-1.10.1.crate) = d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a
+SIZE (rust/crates/bytes-1.10.1.crate) = 76779
+SHA256 (rust/crates/cc-1.2.31.crate) = c3a42d84bb6b69d3a8b3eaacf0d88f179e1929695e1ad012b6cf64d9caaa5fd2
+SIZE (rust/crates/cc-1.2.31.crate) = 109427
+SHA256 (rust/crates/cfg-if-1.0.1.crate) = 9555578bc9e57714c812a1f84e4fc5b4d21fcb063490c624de019f7464c91268
+SIZE (rust/crates/cfg-if-1.0.1.crate) = 8683
SHA256 (rust/crates/cfg_aliases-0.2.1.crate) = 613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724
SIZE (rust/crates/cfg_aliases-0.2.1.crate) = 6355
-SHA256 (rust/crates/clap-4.5.16.crate) = ed6719fffa43d0d87e5fd8caeab59be1554fb028cd30edc88fc4369b17971019
-SIZE (rust/crates/clap-4.5.16.crate) = 56627
-SHA256 (rust/crates/clap_builder-4.5.15.crate) = 216aec2b177652e3846684cbfe25c9964d18ec45234f0f5da5157b207ed1aab6
-SIZE (rust/crates/clap_builder-4.5.15.crate) = 163717
-SHA256 (rust/crates/clap_complete-4.5.23.crate) = 531d7959c5bbb6e266cecdd0f20213639c3a5c3e4d615f97db87661745f781ff
-SIZE (rust/crates/clap_complete-4.5.23.crate) = 51273
-SHA256 (rust/crates/clap_lex-0.7.2.crate) = 1462739cb27611015575c0c11df5df7601141071f07518d56fcc1be504cbec97
-SIZE (rust/crates/clap_lex-0.7.2.crate) = 12805
-SHA256 (rust/crates/colorchoice-1.0.2.crate) = d3fd119d74b830634cea2a0f58bbd0d54540518a14397557951e79340abc28c0
-SIZE (rust/crates/colorchoice-1.0.2.crate) = 7924
+SHA256 (rust/crates/clap-4.5.42.crate) = ed87a9d530bb41a67537289bafcac159cb3ee28460e0a4571123d2a778a6a882
+SIZE (rust/crates/clap-4.5.42.crate) = 58305
+SHA256 (rust/crates/clap_builder-4.5.42.crate) = 64f4f3f3c77c94aff3c7e9aac9a2ca1974a5adf392a8bb751e827d6d127ab966
+SIZE (rust/crates/clap_builder-4.5.42.crate) = 169655
+SHA256 (rust/crates/clap_complete-4.5.55.crate) = a5abde44486daf70c5be8b8f8f1b66c49f86236edf6fa2abadb4d961c4c6229a
+SIZE (rust/crates/clap_complete-4.5.55.crate) = 48536
+SHA256 (rust/crates/clap_lex-0.7.5.crate) = b94f61472cee1439c0b966b47e3aca9ae07e45d070759512cd390ea2bebc6675
+SIZE (rust/crates/clap_lex-0.7.5.crate) = 13469
+SHA256 (rust/crates/colorchoice-1.0.4.crate) = b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75
+SIZE (rust/crates/colorchoice-1.0.4.crate) = 8196
SHA256 (rust/crates/concurrent-queue-2.5.0.crate) = 4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973
SIZE (rust/crates/concurrent-queue-2.5.0.crate) = 22654
-SHA256 (rust/crates/console-0.15.8.crate) = 0e1f83fc076bd6dd27517eacdf25fef6c4dfe5f1d7448bafaaf3a26f13b5e4eb
-SIZE (rust/crates/console-0.15.8.crate) = 36364
+SHA256 (rust/crates/console-0.15.11.crate) = 054ccb5b10f9f2cbf51eb355ca1d05c2d279ce1804688d0db74b4733a5aeafd8
+SIZE (rust/crates/console-0.15.11.crate) = 37822
SHA256 (rust/crates/const-oid-0.9.6.crate) = c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8
SIZE (rust/crates/const-oid-0.9.6.crate) = 45382
SHA256 (rust/crates/core-foundation-0.9.4.crate) = 91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f
SIZE (rust/crates/core-foundation-0.9.4.crate) = 27743
SHA256 (rust/crates/core-foundation-sys-0.8.7.crate) = 773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b
SIZE (rust/crates/core-foundation-sys-0.8.7.crate) = 37712
-SHA256 (rust/crates/cpufeatures-0.2.13.crate) = 51e852e6dc9a5bed1fae92dd2375037bf2b768725bf3be87811edee3249d09ad
-SIZE (rust/crates/cpufeatures-0.2.13.crate) = 12999
-SHA256 (rust/crates/crc32fast-1.4.2.crate) = a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3
-SIZE (rust/crates/crc32fast-1.4.2.crate) = 38491
-SHA256 (rust/crates/crossbeam-deque-0.8.5.crate) = 613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d
-SIZE (rust/crates/crossbeam-deque-0.8.5.crate) = 21726
+SHA256 (rust/crates/cpufeatures-0.2.17.crate) = 59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280
+SIZE (rust/crates/cpufeatures-0.2.17.crate) = 13466
+SHA256 (rust/crates/crc32fast-1.5.0.crate) = 9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511
+SIZE (rust/crates/crc32fast-1.5.0.crate) = 40723
+SHA256 (rust/crates/crossbeam-deque-0.8.6.crate) = 9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51
+SIZE (rust/crates/crossbeam-deque-0.8.6.crate) = 22471
SHA256 (rust/crates/crossbeam-epoch-0.9.18.crate) = 5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e
SIZE (rust/crates/crossbeam-epoch-0.9.18.crate) = 46875
-SHA256 (rust/crates/crossbeam-utils-0.8.20.crate) = 22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80
-SIZE (rust/crates/crossbeam-utils-0.8.20.crate) = 42487
+SHA256 (rust/crates/crossbeam-utils-0.8.21.crate) = d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28
+SIZE (rust/crates/crossbeam-utils-0.8.21.crate) = 42691
SHA256 (rust/crates/crossterm-0.27.0.crate) = f476fe445d41c9e991fd07515a6f463074b782242ccf4a5b7b1d1012e70824df
SIZE (rust/crates/crossterm-0.27.0.crate) = 125311
SHA256 (rust/crates/crossterm_winapi-0.9.1.crate) = acdd7c62a3665c7f6830a51635d9ac9b23ed385797f70a83bb8bafe9c572ab2b
SIZE (rust/crates/crossterm_winapi-0.9.1.crate) = 16027
-SHA256 (rust/crates/crunchy-0.2.2.crate) = 7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7
-SIZE (rust/crates/crunchy-0.2.2.crate) = 2995
+SHA256 (rust/crates/crunchy-0.2.4.crate) = 460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5
+SIZE (rust/crates/crunchy-0.2.4.crate) = 3887
SHA256 (rust/crates/crypto-common-0.1.6.crate) = 1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3
SIZE (rust/crates/crypto-common-0.1.6.crate) = 8760
SHA256 (rust/crates/cssparser-0.31.2.crate) = 5b3df4f93e5fbbe73ec01ec8d3f68bba73107993a5b1e7519273c32db9b0d5be
SIZE (rust/crates/cssparser-0.31.2.crate) = 60602
SHA256 (rust/crates/cssparser-macros-0.6.1.crate) = 13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331
SIZE (rust/crates/cssparser-macros-0.6.1.crate) = 7914
-SHA256 (rust/crates/ctrlc-3.4.5.crate) = 90eeab0aa92f3f9b4e87f258c72b139c207d251f9cbc1080a0086b86a8870dd3
-SIZE (rust/crates/ctrlc-3.4.5.crate) = 14592
+SHA256 (rust/crates/ctrlc-3.4.7.crate) = 46f93780a459b7d656ef7f071fe699c4d3d2cb201c4b24d085b6ddc505276e73
+SIZE (rust/crates/ctrlc-3.4.7.crate) = 14606
SHA256 (rust/crates/curve25519-dalek-4.1.3.crate) = 97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be
SIZE (rust/crates/curve25519-dalek-4.1.3.crate) = 306017
SHA256 (rust/crates/curve25519-dalek-derive-0.1.1.crate) = f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3
SIZE (rust/crates/curve25519-dalek-derive-0.1.1.crate) = 11723
-SHA256 (rust/crates/der-0.7.9.crate) = f55bf8e7b65898637379c1b74eb1551107c8294ed26d855ceb9fd1a09cfc9bc0
-SIZE (rust/crates/der-0.7.9.crate) = 85173
-SHA256 (rust/crates/deranged-0.3.11.crate) = b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4
-SIZE (rust/crates/deranged-0.3.11.crate) = 18043
-SHA256 (rust/crates/derive_more-0.99.18.crate) = 5f33878137e4dafd7fa914ad4e259e18a4e8e532b9617a2d0150262bf53abfce
-SIZE (rust/crates/derive_more-0.99.18.crate) = 55013
+SHA256 (rust/crates/der-0.7.10.crate) = e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb
+SIZE (rust/crates/der-0.7.10.crate) = 90111
+SHA256 (rust/crates/deranged-0.4.0.crate) = 9c9e6a11ca8224451684bc0d7d5a7adbf8f2fd6887261a1cfc3c0432f9d4068e
+SIZE (rust/crates/deranged-0.4.0.crate) = 23235
+SHA256 (rust/crates/derive_more-0.99.20.crate) = 6edb4b64a43d977b8e99788fe3a04d483834fba1215a7e02caa415b626497f7f
+SIZE (rust/crates/derive_more-0.99.20.crate) = 55041
SHA256 (rust/crates/difflib-0.4.0.crate) = 6184e33543162437515c2e2b48714794e37845ec9851711914eec9d308f6ebe8
SIZE (rust/crates/difflib-0.4.0.crate) = 7638
SHA256 (rust/crates/digest-0.10.7.crate) = 9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292
@@ -163,56 +155,54 @@ SHA256 (rust/crates/dirs-sys-0.4.1.crate) = 520f05a5cbd335fae5a99ff7a6ab86275776
SIZE (rust/crates/dirs-sys-0.4.1.crate) = 10719
SHA256 (rust/crates/dirs-sys-next-0.1.2.crate) = 4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d
SIZE (rust/crates/dirs-sys-next-0.1.2.crate) = 10681
+SHA256 (rust/crates/displaydoc-0.2.5.crate) = 97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0
+SIZE (rust/crates/displaydoc-0.2.5.crate) = 24219
SHA256 (rust/crates/doc-comment-0.3.3.crate) = fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10
SIZE (rust/crates/doc-comment-0.3.3.crate) = 4123
-SHA256 (rust/crates/dtoa-1.0.9.crate) = dcbb2bf8e87535c23f7a8a321e364ce21462d0ff10cb6407820e8e96dfff6653
-SIZE (rust/crates/dtoa-1.0.9.crate) = 17002
+SHA256 (rust/crates/dtoa-1.0.10.crate) = d6add3b8cff394282be81f3fc1a0605db594ed69890078ca6e2cab1c408bcf04
+SIZE (rust/crates/dtoa-1.0.10.crate) = 17584
SHA256 (rust/crates/dtoa-short-0.3.5.crate) = cd1511a7b6a56299bd043a9c167a6d2bfb37bf84a6dfceaba651168adfb43c87
SIZE (rust/crates/dtoa-short-0.3.5.crate) = 8287
SHA256 (rust/crates/ed25519-2.2.3.crate) = 115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53
SIZE (rust/crates/ed25519-2.2.3.crate) = 17802
-SHA256 (rust/crates/ed25519-dalek-2.1.1.crate) = 4a3daa8e81a3963a60642bcc1f90a670680bd4a77535faa384e9d1c79d620871
-SIZE (rust/crates/ed25519-dalek-2.1.1.crate) = 85736
+SHA256 (rust/crates/ed25519-dalek-2.2.0.crate) = 70e796c081cee67dc755e1a36a0a172b897fab85fc3f6bc48307991f64e4eca9
+SIZE (rust/crates/ed25519-dalek-2.2.0.crate) = 98034
SHA256 (rust/crates/ego-tree-0.6.3.crate) = 12a0bb14ac04a9fcf170d0bbbef949b44cc492f4452bd20c095636956f653642
SIZE (rust/crates/ego-tree-0.6.3.crate) = 10005
-SHA256 (rust/crates/either-1.13.0.crate) = 60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0
-SIZE (rust/crates/either-1.13.0.crate) = 19169
+SHA256 (rust/crates/either-1.15.0.crate) = 48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719
+SIZE (rust/crates/either-1.15.0.crate) = 20114
SHA256 (rust/crates/ena-0.14.3.crate) = 3d248bdd43ce613d87415282f69b9bb99d947d290b10962dd6c56233312c2ad5
SIZE (rust/crates/ena-0.14.3.crate) = 22986
-SHA256 (rust/crates/encode_unicode-0.3.6.crate) = a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f
-SIZE (rust/crates/encode_unicode-0.3.6.crate) = 45741
-SHA256 (rust/crates/encoding_rs-0.8.34.crate) = b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59
-SIZE (rust/crates/encoding_rs-0.8.34.crate) = 1378166
-SHA256 (rust/crates/env_filter-0.1.2.crate) = 4f2c92ceda6ceec50f43169f9ee8424fe2db276791afde7b2cd8bc084cb376ab
-SIZE (rust/crates/env_filter-0.1.2.crate) = 13327
-SHA256 (rust/crates/env_logger-0.11.5.crate) = e13fa619b91fb2381732789fc5de83b45675e882f66623b7d8cb4f643017018d
-SIZE (rust/crates/env_logger-0.11.5.crate) = 30683
-SHA256 (rust/crates/equivalent-1.0.1.crate) = 5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5
-SIZE (rust/crates/equivalent-1.0.1.crate) = 6615
-SHA256 (rust/crates/errno-0.3.9.crate) = 534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba
-SIZE (rust/crates/errno-0.3.9.crate) = 10690
+SHA256 (rust/crates/encode_unicode-1.0.0.crate) = 34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0
+SIZE (rust/crates/encode_unicode-1.0.0.crate) = 56986
+SHA256 (rust/crates/encoding_rs-0.8.35.crate) = 75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3
+SIZE (rust/crates/encoding_rs-0.8.35.crate) = 1381050
+SHA256 (rust/crates/env_filter-0.1.3.crate) = 186e05a59d4c50738528153b83b0b0194d3a29507dfec16eccd4b342903397d0
+SIZE (rust/crates/env_filter-0.1.3.crate) = 15191
+SHA256 (rust/crates/env_logger-0.11.8.crate) = 13c863f0904021b108aa8b2f55046443e6b1ebde8fd4a15c399893aae4fa069f
+SIZE (rust/crates/env_logger-0.11.8.crate) = 32538
+SHA256 (rust/crates/equivalent-1.0.2.crate) = 877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f
+SIZE (rust/crates/equivalent-1.0.2.crate) = 7419
+SHA256 (rust/crates/errno-0.3.13.crate) = 778e2ac28f6c47af28e4907f13ffd1e1ddbd400980a9abd7c8df189bf578a5ad
+SIZE (rust/crates/errno-0.3.13.crate) = 12449
SHA256 (rust/crates/event-listener-2.5.3.crate) = 0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0
SIZE (rust/crates/event-listener-2.5.3.crate) = 15392
-SHA256 (rust/crates/event-listener-3.1.0.crate) = d93877bcde0eb80ca09131a08d23f0a5c18a620b01db137dba666d18cd9b30c2
-SIZE (rust/crates/event-listener-3.1.0.crate) = 38793
-SHA256 (rust/crates/event-listener-5.3.1.crate) = 6032be9bd27023a771701cc49f9f053c751055f71efb2e0ae5c15809093675ba
-SIZE (rust/crates/event-listener-5.3.1.crate) = 42576
-SHA256 (rust/crates/event-listener-strategy-0.5.2.crate) = 0f214dc438f977e6d4e3500aaa277f5ad94ca83fbbd9b1a15713ce2344ccc5a1
-SIZE (rust/crates/event-listener-strategy-0.5.2.crate) = 10697
-SHA256 (rust/crates/fastrand-1.9.0.crate) = e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be
-SIZE (rust/crates/fastrand-1.9.0.crate) = 11910
-SHA256 (rust/crates/fastrand-2.1.1.crate) = e8c02a5121d4ea3eb16a80748c74f5549a5665e4c21333c6098f283870fbdea6
-SIZE (rust/crates/fastrand-2.1.1.crate) = 14983
+SHA256 (rust/crates/event-listener-5.4.1.crate) = e13b66accf52311f30a0db42147dadea9850cb48cd070028831ae5f5d4b856ab
+SIZE (rust/crates/event-listener-5.4.1.crate) = 43782
+SHA256 (rust/crates/event-listener-strategy-0.5.4.crate) = 8be9f3dfaaffdae2972880079a491a1a8bb7cbed0b8dd7a347f668b4150a3b93
+SIZE (rust/crates/event-listener-strategy-0.5.4.crate) = 16179
+SHA256 (rust/crates/fastrand-2.3.0.crate) = 37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be
+SIZE (rust/crates/fastrand-2.3.0.crate) = 15076
SHA256 (rust/crates/fiat-crypto-0.2.9.crate) = 28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d
SIZE (rust/crates/fiat-crypto-0.2.9.crate) = 495390
-SHA256 (rust/crates/filetime-0.2.24.crate) = bf401df4a4e3872c4fe8151134cf483738e74b67fc934d6532c882b3d24a4550
-SIZE (rust/crates/filetime-0.2.24.crate) = 14938
+SHA256 (rust/crates/filetime-0.2.25.crate) = 35c0522e981e68cbfa8c3f978441a5f34b30b96e146b33cd3359176b50fe8586
+SIZE (rust/crates/filetime-0.2.25.crate) = 14940
SHA256 (rust/crates/fixedbitset-0.4.2.crate) = 0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80
SIZE (rust/crates/fixedbitset-0.4.2.crate) = 15954
-SHA256 (rust/crates/flate2-1.0.33.crate) = 324a1be68054ef05ad64b861cc9eaf1d623d2d8cb25b4bf2cb9cdd902b4bf253
-SIZE (rust/crates/flate2-1.0.33.crate) = 108838
-SHA256 (rust/crates/float-cmp-0.9.0.crate) = 98de4bbd547a563b716d8dfa9aad1cb19bfab00f4fa09a6a4ed21dbcf44ce9c4
-SIZE (rust/crates/float-cmp-0.9.0.crate) = 10102
+SHA256 (rust/crates/flate2-1.1.2.crate) = 4a3d7db9596fecd151c5f638c0ee5d5bd487b6e0ea232e5dc96d5250f6f94b1d
+SIZE (rust/crates/flate2-1.1.2.crate) = 76495
+SHA256 (rust/crates/float-cmp-0.10.0.crate) = b09cf3155332e944990140d967ff5eceb70df778b34f77d8075db46e4704e6d8
+SIZE (rust/crates/float-cmp-0.10.0.crate) = 10702
SHA256 (rust/crates/fnv-1.0.7.crate) = 3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1
SIZE (rust/crates/fnv-1.0.7.crate) = 11266
SHA256 (rust/crates/foreign-types-0.3.2.crate) = f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1
@@ -225,102 +215,118 @@ SHA256 (rust/crates/fuchsia-cprng-0.1.1.crate) = a06f77d526c1a601b7c4cdd98f54b5e
SIZE (rust/crates/fuchsia-cprng-0.1.1.crate) = 2950
SHA256 (rust/crates/futf-0.1.5.crate) = df420e2e84819663797d1ec6544b13c5be84629e7bb00dc960d6917db2987843
SIZE (rust/crates/futf-0.1.5.crate) = 11344
-SHA256 (rust/crates/futures-0.3.30.crate) = 645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0
-SIZE (rust/crates/futures-0.3.30.crate) = 53828
-SHA256 (rust/crates/futures-channel-0.3.30.crate) = eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78
-SIZE (rust/crates/futures-channel-0.3.30.crate) = 31736
-SHA256 (rust/crates/futures-core-0.3.30.crate) = dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d
-SIZE (rust/crates/futures-core-0.3.30.crate) = 14071
-SHA256 (rust/crates/futures-executor-0.3.30.crate) = a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d
-SIZE (rust/crates/futures-executor-0.3.30.crate) = 17744
-SHA256 (rust/crates/futures-io-0.3.30.crate) = a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1
-SIZE (rust/crates/futures-io-0.3.30.crate) = 8910
-SHA256 (rust/crates/futures-lite-1.13.0.crate) = 49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce
-SIZE (rust/crates/futures-lite-1.13.0.crate) = 37058
-SHA256 (rust/crates/futures-lite-2.3.0.crate) = 52527eb5074e35e9339c6b4e8d12600c7128b68fb25dcb9fa9dec18f7c25f3a5
-SIZE (rust/crates/futures-lite-2.3.0.crate) = 39181
-SHA256 (rust/crates/futures-macro-0.3.30.crate) = 87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac
-SIZE (rust/crates/futures-macro-0.3.30.crate) = 11278
-SHA256 (rust/crates/futures-sink-0.3.30.crate) = 9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5
-SIZE (rust/crates/futures-sink-0.3.30.crate) = 7852
-SHA256 (rust/crates/futures-task-0.3.30.crate) = 38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004
-SIZE (rust/crates/futures-task-0.3.30.crate) = 11126
-SHA256 (rust/crates/futures-util-0.3.30.crate) = 3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48
-SIZE (rust/crates/futures-util-0.3.30.crate) = 159977
+SHA256 (rust/crates/futures-0.3.31.crate) = 65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876
+SIZE (rust/crates/futures-0.3.31.crate) = 54953
+SHA256 (rust/crates/futures-channel-0.3.31.crate) = 2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10
+SIZE (rust/crates/futures-channel-0.3.31.crate) = 31971
+SHA256 (rust/crates/futures-core-0.3.31.crate) = 05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e
+SIZE (rust/crates/futures-core-0.3.31.crate) = 14318
+SHA256 (rust/crates/futures-executor-0.3.31.crate) = 1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f
+SIZE (rust/crates/futures-executor-0.3.31.crate) = 17965
+SHA256 (rust/crates/futures-io-0.3.31.crate) = 9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6
+SIZE (rust/crates/futures-io-0.3.31.crate) = 9047
+SHA256 (rust/crates/futures-lite-2.6.1.crate) = f78e10609fe0e0b3f4157ffab1876319b5b0db102a2c60dc4626306dc46b44ad
+SIZE (rust/crates/futures-lite-2.6.1.crate) = 46095
+SHA256 (rust/crates/futures-macro-0.3.31.crate) = 162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650
+SIZE (rust/crates/futures-macro-0.3.31.crate) = 11341
+SHA256 (rust/crates/futures-sink-0.3.31.crate) = e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7
+SIZE (rust/crates/futures-sink-0.3.31.crate) = 7958
+SHA256 (rust/crates/futures-task-0.3.31.crate) = f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988
+SIZE (rust/crates/futures-task-0.3.31.crate) = 11217
+SHA256 (rust/crates/futures-util-0.3.31.crate) = 9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81
+SIZE (rust/crates/futures-util-0.3.31.crate) = 162124
SHA256 (rust/crates/fxhash-0.2.1.crate) = c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c
SIZE (rust/crates/fxhash-0.2.1.crate) = 4102
SHA256 (rust/crates/gaoya-0.2.0.crate) = 0c75195ebd4c5589a505e1f0bf81052c52f55dfa40c1afefac1f95b67846adb1
SIZE (rust/crates/gaoya-0.2.0.crate) = 26557
SHA256 (rust/crates/generic-array-0.14.7.crate) = 85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a
SIZE (rust/crates/generic-array-0.14.7.crate) = 15950
-SHA256 (rust/crates/getopts-0.2.21.crate) = 14dbbfd5c71d70241ecf9e6f13737f7b5ce823821063188d7e46c41d371eebd5
-SIZE (rust/crates/getopts-0.2.21.crate) = 18457
-SHA256 (rust/crates/getrandom-0.2.15.crate) = c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7
-SIZE (rust/crates/getrandom-0.2.15.crate) = 37163
-SHA256 (rust/crates/gimli-0.29.0.crate) = 40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd
-SIZE (rust/crates/gimli-0.29.0.crate) = 275756
-SHA256 (rust/crates/gloo-timers-0.2.6.crate) = 9b995a66bb87bebce9a0f4a95aed01daca4872c050bfcb21653361c03bc35e5c
-SIZE (rust/crates/gloo-timers-0.2.6.crate) = 5516
-SHA256 (rust/crates/h2-0.4.6.crate) = 524e8ac6999421f49a846c2d4411f337e53497d8ec55d67753beffa43c5d9205
-SIZE (rust/crates/h2-0.4.6.crate) = 173912
-SHA256 (rust/crates/hashbrown-0.14.5.crate) = e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1
-SIZE (rust/crates/hashbrown-0.14.5.crate) = 141498
-SHA256 (rust/crates/hermit-abi-0.3.9.crate) = d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024
-SIZE (rust/crates/hermit-abi-0.3.9.crate) = 16165
-SHA256 (rust/crates/hermit-abi-0.4.0.crate) = fbf6a919d6cf397374f7dfeeea91d974c7c0a7221d0d0f4f20d859d329e53fcc
-SIZE (rust/crates/hermit-abi-0.4.0.crate) = 16310
+SHA256 (rust/crates/getopts-0.2.23.crate) = cba6ae63eb948698e300f645f87c70f76630d505f23b8907cf1e193ee85048c1
+SIZE (rust/crates/getopts-0.2.23.crate) = 21409
+SHA256 (rust/crates/getrandom-0.2.16.crate) = 335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592
+SIZE (rust/crates/getrandom-0.2.16.crate) = 40163
+SHA256 (rust/crates/getrandom-0.3.3.crate) = 26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4
+SIZE (rust/crates/getrandom-0.3.3.crate) = 49493
+SHA256 (rust/crates/gimli-0.31.1.crate) = 07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f
+SIZE (rust/crates/gimli-0.31.1.crate) = 279515
+SHA256 (rust/crates/gloo-timers-0.3.0.crate) = bbb143cf96099802033e0d4f4963b19fd2e0b728bcf076cd9cf7f6634f092994
+SIZE (rust/crates/gloo-timers-0.3.0.crate) = 5530
+SHA256 (rust/crates/h2-0.4.11.crate) = 17da50a276f1e01e0ba6c029e47b7100754904ee8a278f886546e98575380785
+SIZE (rust/crates/h2-0.4.11.crate) = 175810
+SHA256 (rust/crates/hashbrown-0.15.4.crate) = 5971ac85611da7067dbfcabef3c70ebb5606018acd9e2a3903a0da507521e0d5
+SIZE (rust/crates/hashbrown-0.15.4.crate) = 140447
+SHA256 (rust/crates/hermit-abi-0.5.2.crate) = fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c
+SIZE (rust/crates/hermit-abi-0.5.2.crate) = 17435
SHA256 (rust/crates/html5ever-0.27.0.crate) = c13771afe0e6e846f1e67d038d4cb29998a6779f93c809212e4e9c32efd244d4
SIZE (rust/crates/html5ever-0.27.0.crate) = 72913
SHA256 (rust/crates/http-0.2.12.crate) = 601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1
SIZE (rust/crates/http-0.2.12.crate) = 101964
-SHA256 (rust/crates/http-1.1.0.crate) = 21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258
-SIZE (rust/crates/http-1.1.0.crate) = 103144
+SHA256 (rust/crates/http-1.3.1.crate) = f4a85d31aea989eead29a3aaf9e1115a180df8282431156e533de47660892565
+SIZE (rust/crates/http-1.3.1.crate) = 106063
SHA256 (rust/crates/http-body-0.4.6.crate) = 7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2
SIZE (rust/crates/http-body-0.4.6.crate) = 10773
SHA256 (rust/crates/http-body-1.0.1.crate) = 1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184
SIZE (rust/crates/http-body-1.0.1.crate) = 6125
-SHA256 (rust/crates/http-body-util-0.1.2.crate) = 793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f
-SIZE (rust/crates/http-body-util-0.1.2.crate) = 12821
-SHA256 (rust/crates/httparse-1.9.4.crate) = 0fcc0b4a115bf80b728eb8ea024ad5bd707b615bfed49e0665b6e0f86fd082d9
-SIZE (rust/crates/httparse-1.9.4.crate) = 38555
+SHA256 (rust/crates/http-body-util-0.1.3.crate) = b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a
+SIZE (rust/crates/http-body-util-0.1.3.crate) = 16975
+SHA256 (rust/crates/httparse-1.10.1.crate) = 6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87
+SIZE (rust/crates/httparse-1.10.1.crate) = 45190
SHA256 (rust/crates/httpdate-1.0.3.crate) = df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9
SIZE (rust/crates/httpdate-1.0.3.crate) = 10639
SHA256 (rust/crates/httpmock-0.7.0.crate) = 08ec9586ee0910472dec1a1f0f8acf52f0fdde93aea74d70d4a3107b4be0fd5b
SIZE (rust/crates/httpmock-0.7.0.crate) = 69825
-SHA256 (rust/crates/humantime-2.1.0.crate) = 9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4
-SIZE (rust/crates/humantime-2.1.0.crate) = 16749
-SHA256 (rust/crates/hyper-0.14.30.crate) = a152ddd61dfaec7273fe8419ab357f33aee0d914c5f4efbf0d96fa749eea5ec9
-SIZE (rust/crates/hyper-0.14.30.crate) = 198175
-SHA256 (rust/crates/hyper-1.4.1.crate) = 50dfd22e0e76d0f662d429a5f80fcaf3855009297eab6a0a9f8543834744ba05
-SIZE (rust/crates/hyper-1.4.1.crate) = 151849
-SHA256 (rust/crates/hyper-rustls-0.27.2.crate) = 5ee4be2c948921a1a5320b629c4193916ed787a7f7f293fd3f7f5a6c9de74155
-SIZE (rust/crates/hyper-rustls-0.27.2.crate) = 34421
+SHA256 (rust/crates/hyper-0.14.32.crate) = 41dfc780fdec9373c01bae43289ea34c972e40ee3c9f6b3c8801a35f35586ce7
+SIZE (rust/crates/hyper-0.14.32.crate) = 199622
+SHA256 (rust/crates/hyper-1.6.0.crate) = cc2b571658e38e0c01b1fdca3bbbe93c00d3d71693ff2770043f8c29bc7d6f80
+SIZE (rust/crates/hyper-1.6.0.crate) = 153923
+SHA256 (rust/crates/hyper-rustls-0.27.7.crate) = e3c93eb611681b207e1fe55d5a71ecf91572ec8a6705cdb6857f7d8d5242cf58
+SIZE (rust/crates/hyper-rustls-0.27.7.crate) = 35435
SHA256 (rust/crates/hyper-tls-0.6.0.crate) = 70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0
SIZE (rust/crates/hyper-tls-0.6.0.crate) = 15052
-SHA256 (rust/crates/hyper-util-0.1.7.crate) = cde7055719c54e36e95e8719f95883f22072a48ede39db7fc17a4e1d5281e9b9
-SIZE (rust/crates/hyper-util-0.1.7.crate) = 71121
-SHA256 (rust/crates/idna-0.5.0.crate) = 634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6
-SIZE (rust/crates/idna-0.5.0.crate) = 271940
-SHA256 (rust/crates/indexmap-2.4.0.crate) = 93ead53efc7ea8ed3cfb0c79fc8023fbb782a5432b52830b6518941cebe6505c
-SIZE (rust/crates/indexmap-2.4.0.crate) = 83544
-SHA256 (rust/crates/indicatif-0.17.8.crate) = 763a5a8f45087d6bcea4222e7b72c291a054edf80e4ef6efd2a4979878c7bea3
-SIZE (rust/crates/indicatif-0.17.8.crate) = 64869
-SHA256 (rust/crates/instant-0.1.13.crate) = e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222
-SIZE (rust/crates/instant-0.1.13.crate) = 6305
-SHA256 (rust/crates/io-lifetimes-1.0.11.crate) = eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2
-SIZE (rust/crates/io-lifetimes-1.0.11.crate) = 37346
-SHA256 (rust/crates/ipnet-2.9.0.crate) = 8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3
-SIZE (rust/crates/ipnet-2.9.0.crate) = 27627
+SHA256 (rust/crates/hyper-util-0.1.16.crate) = 8d9b05277c7e8da2c93a568989bb6207bef0112e8d17df7a6eda4a3cf143bc5e
+SIZE (rust/crates/hyper-util-0.1.16.crate) = 101184
+SHA256 (rust/crates/icu_collections-2.0.0.crate) = 200072f5d0e3614556f94a9930d5dc3e0662a652823904c3a75dc3b0af7fee47
+SIZE (rust/crates/icu_collections-2.0.0.crate) = 83033
+SHA256 (rust/crates/icu_locale_core-2.0.0.crate) = 0cde2700ccaed3872079a65fb1a78f6c0a36c91570f28755dda67bc8f7d9f00a
+SIZE (rust/crates/icu_locale_core-2.0.0.crate) = 74430
+SHA256 (rust/crates/icu_normalizer-2.0.0.crate) = 436880e8e18df4d7bbc06d58432329d6458cc84531f7ac5f024e93deadb37979
+SIZE (rust/crates/icu_normalizer-2.0.0.crate) = 61543
+SHA256 (rust/crates/icu_normalizer_data-2.0.0.crate) = 00210d6893afc98edb752b664b8890f0ef174c8adbb8d0be9710fa66fbbf72d3
+SIZE (rust/crates/icu_normalizer_data-2.0.0.crate) = 68101
+SHA256 (rust/crates/icu_properties-2.0.1.crate) = 016c619c1eeb94efb86809b015c58f479963de65bdb6253345c1a1276f22e32b
+SIZE (rust/crates/icu_properties-2.0.1.crate) = 58165
+SHA256 (rust/crates/icu_properties_data-2.0.1.crate) = 298459143998310acd25ffe6810ed544932242d3f07083eee1084d83a71bd632
+SIZE (rust/crates/icu_properties_data-2.0.1.crate) = 159735
+SHA256 (rust/crates/icu_provider-2.0.0.crate) = 03c80da27b5f4187909049ee2d72f276f0d9f99a42c306bd0131ecfe04d8e5af
+SIZE (rust/crates/icu_provider-2.0.0.crate) = 50966
+SHA256 (rust/crates/idna-1.0.3.crate) = 686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e
+SIZE (rust/crates/idna-1.0.3.crate) = 142515
+SHA256 (rust/crates/idna_adapter-1.2.1.crate) = 3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344
+SIZE (rust/crates/idna_adapter-1.2.1.crate) = 10389
+SHA256 (rust/crates/indexmap-2.10.0.crate) = fe4cd85333e22411419a0bcae1297d25e58c9443848b11dc6a86fefe8c78a661
+SIZE (rust/crates/indexmap-2.10.0.crate) = 95836
+SHA256 (rust/crates/indicatif-0.17.11.crate) = 183b3088984b400f4cfac3620d5e076c84da5364016b4f49473de574b2586235
+SIZE (rust/crates/indicatif-0.17.11.crate) = 66577
+SHA256 (rust/crates/io-uring-0.7.9.crate) = d93587f37623a1a17d94ef2bc9ada592f5465fe7732084ab7beefabe5c77c0c4
+SIZE (rust/crates/io-uring-0.7.9.crate) = 99792
+SHA256 (rust/crates/ipnet-2.11.0.crate) = 469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130
+SIZE (rust/crates/ipnet-2.11.0.crate) = 29718
+SHA256 (rust/crates/iri-string-0.7.8.crate) = dbc5ebe9c3a1a7a5127f920a418f7585e9e758e911d0466ed004f393b0e380b2
+SIZE (rust/crates/iri-string-0.7.8.crate) = 141493
SHA256 (rust/crates/is_terminal_polyfill-1.70.1.crate) = 7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf
SIZE (rust/crates/is_terminal_polyfill-1.70.1.crate) = 7492
SHA256 (rust/crates/itertools-0.10.5.crate) = b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473
SIZE (rust/crates/itertools-0.10.5.crate) = 115354
SHA256 (rust/crates/itertools-0.11.0.crate) = b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57
SIZE (rust/crates/itertools-0.11.0.crate) = 125074
-SHA256 (rust/crates/itoa-1.0.11.crate) = 49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b
-SIZE (rust/crates/itoa-1.0.11.crate) = 10563
-SHA256 (rust/crates/js-sys-0.3.70.crate) = 1868808506b929d7b0cfa8f75951347aa71bb21144b7791bae35d9bccfcfe37a
-SIZE (rust/crates/js-sys-0.3.70.crate) = 53863
+SHA256 (rust/crates/itoa-1.0.15.crate) = 4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c
+SIZE (rust/crates/itoa-1.0.15.crate) = 11231
+SHA256 (rust/crates/jiff-0.2.15.crate) = be1f93b8b1eb69c77f24bbb0afdf66f54b632ee39af40ca21c4365a1d7347e49
+SIZE (rust/crates/jiff-0.2.15.crate) = 712996
+SHA256 (rust/crates/jiff-static-0.2.15.crate) = 03343451ff899767262ec32146f6d559dd759fdadf42ff0e227c7c48f72594b4
+SIZE (rust/crates/jiff-static-0.2.15.crate) = 76146
+SHA256 (rust/crates/js-sys-0.3.77.crate) = 1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f
+SIZE (rust/crates/js-sys-0.3.77.crate) = 55538
SHA256 (rust/crates/kv-log-macro-1.0.7.crate) = 0de8b303297635ad57c9f5059fd9cee7a47f8e8daa09df0fcd07dd39fb22977f
SIZE (rust/crates/kv-log-macro-1.0.7.crate) = 16842
SHA256 (rust/crates/lalrpop-0.20.2.crate) = 55cb077ad656299f160924eb2912aa147d7339ea7d69e1b5517326fdcec3c1ca
@@ -333,40 +339,38 @@ SHA256 (rust/crates/leaky-bucket-1.1.2.crate) = 0a396bb213c2d09ed6c5495fd082c991
SIZE (rust/crates/leaky-bucket-1.1.2.crate) = 29556
SHA256 (rust/crates/levenshtein-1.0.5.crate) = db13adb97ab515a3691f56e4dbab09283d0b86cb45abd991d8634a9d6f501760
SIZE (rust/crates/levenshtein-1.0.5.crate) = 1389
-SHA256 (rust/crates/libc-0.2.158.crate) = d8adc4bb1803a324070e64a98ae98f38934d91957a99cfb3a43dcbc01bc56439
-SIZE (rust/crates/libc-0.2.158.crate) = 751340
-SHA256 (rust/crates/libredox-0.1.3.crate) = c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d
-SIZE (rust/crates/libredox-0.1.3.crate) = 6068
-SHA256 (rust/crates/linux-raw-sys-0.3.8.crate) = ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519
-SIZE (rust/crates/linux-raw-sys-0.3.8.crate) = 1013776
-SHA256 (rust/crates/linux-raw-sys-0.4.14.crate) = 78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89
-SIZE (rust/crates/linux-raw-sys-0.4.14.crate) = 1826665
-SHA256 (rust/crates/lock_api-0.4.12.crate) = 07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17
-SIZE (rust/crates/lock_api-0.4.12.crate) = 27591
-SHA256 (rust/crates/log-0.4.22.crate) = a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24
-SIZE (rust/crates/log-0.4.22.crate) = 44027
+SHA256 (rust/crates/libc-0.2.174.crate) = 1171693293099992e19cddea4e8b849964e9846f4acee11b3948bcc337be8776
+SIZE (rust/crates/libc-0.2.174.crate) = 779933
+SHA256 (rust/crates/libredox-0.1.9.crate) = 391290121bad3d37fbddad76d8f5d1c1c314cfc646d143d7e07a3086ddff0ce3
+SIZE (rust/crates/libredox-0.1.9.crate) = 7281
+SHA256 (rust/crates/linux-raw-sys-0.9.4.crate) = cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12
+SIZE (rust/crates/linux-raw-sys-0.9.4.crate) = 2311088
+SHA256 (rust/crates/litemap-0.8.0.crate) = 241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956
+SIZE (rust/crates/litemap-0.8.0.crate) = 34344
+SHA256 (rust/crates/lock_api-0.4.13.crate) = 96936507f153605bddfcda068dd804796c84324ed2510809e5b2a624c81da765
+SIZE (rust/crates/lock_api-0.4.13.crate) = 28565
+SHA256 (rust/crates/log-0.4.27.crate) = 13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94
+SIZE (rust/crates/log-0.4.27.crate) = 48120
SHA256 (rust/crates/mac-0.1.1.crate) = c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4
SIZE (rust/crates/mac-0.1.1.crate) = 4838
SHA256 (rust/crates/markup5ever-0.12.1.crate) = 16ce3abbeba692c8b8441d036ef91aea6df8da2c6b6e21c7e14d3c18e526be45
SIZE (rust/crates/markup5ever-0.12.1.crate) = 34763
-SHA256 (rust/crates/memchr-2.7.4.crate) = 78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3
-SIZE (rust/crates/memchr-2.7.4.crate) = 96670
+SHA256 (rust/crates/memchr-2.7.5.crate) = 32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0
+SIZE (rust/crates/memchr-2.7.5.crate) = 97603
SHA256 (rust/crates/mime-0.3.17.crate) = 6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a
SIZE (rust/crates/mime-0.3.17.crate) = 15712
-SHA256 (rust/crates/miniz_oxide-0.7.4.crate) = b8a240ddb74feaf34a79a7add65a741f3167852fba007066dcac1ca548d89c08
-SIZE (rust/crates/miniz_oxide-0.7.4.crate) = 56119
-SHA256 (rust/crates/miniz_oxide-0.8.0.crate) = e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1
-SIZE (rust/crates/miniz_oxide-0.8.0.crate) = 56343
+SHA256 (rust/crates/miniz_oxide-0.8.9.crate) = 1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316
+SIZE (rust/crates/miniz_oxide-0.8.9.crate) = 67132
SHA256 (rust/crates/mio-0.8.11.crate) = a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c
SIZE (rust/crates/mio-0.8.11.crate) = 102983
-SHA256 (rust/crates/mio-1.0.2.crate) = 80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec
-SIZE (rust/crates/mio-1.0.2.crate) = 102777
-SHA256 (rust/crates/native-tls-0.2.12.crate) = a8614eb2c83d59d1c8cc974dd3f920198647674a0a035e1af1fa58707e317466
-SIZE (rust/crates/native-tls-0.2.12.crate) = 29517
+SHA256 (rust/crates/mio-1.0.4.crate) = 78bed444cc8a2160f01cbcf811ef18cac863ad68ae8ca62092e8db51d51c761c
+SIZE (rust/crates/mio-1.0.4.crate) = 104212
+SHA256 (rust/crates/native-tls-0.2.14.crate) = 87de3442987e9dbec73158d5c715e7ad9072fda936bb03d19d7fa10e00520f0e
+SIZE (rust/crates/native-tls-0.2.14.crate) = 29385
SHA256 (rust/crates/new_debug_unreachable-1.0.6.crate) = 650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086
SIZE (rust/crates/new_debug_unreachable-1.0.6.crate) = 2582
-SHA256 (rust/crates/nix-0.29.0.crate) = 71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46
-SIZE (rust/crates/nix-0.29.0.crate) = 318248
+SHA256 (rust/crates/nix-0.30.1.crate) = 74523f3a35e05aba87a1d978330aef40f67b0304ac79c1c00b294c9830543db6
+SIZE (rust/crates/nix-0.30.1.crate) = 342015
SHA256 (rust/crates/normalize-line-endings-0.3.0.crate) = 61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be
SIZE (rust/crates/normalize-line-endings-0.3.0.crate) = 5737
SHA256 (rust/crates/num-conv-0.1.0.crate) = 51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9
@@ -375,90 +379,92 @@ SHA256 (rust/crates/num-traits-0.2.19.crate) = 071dfc062690e90b734c0b2273ce72ad0
SIZE (rust/crates/num-traits-0.2.19.crate) = 51631
SHA256 (rust/crates/number_prefix-0.4.0.crate) = 830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3
SIZE (rust/crates/number_prefix-0.4.0.crate) = 6922
-SHA256 (rust/crates/object-0.36.3.crate) = 27b64972346851a39438c60b341ebc01bba47464ae329e55cf343eb93964efd9
-SIZE (rust/crates/object-0.36.3.crate) = 325288
-SHA256 (rust/crates/once_cell-1.19.0.crate) = 3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92
-SIZE (rust/crates/once_cell-1.19.0.crate) = 33046
-SHA256 (rust/crates/openssl-0.10.66.crate) = 9529f4786b70a3e8c61e11179af17ab6188ad8d0ded78c5529441ed39d4bd9c1
-SIZE (rust/crates/openssl-0.10.66.crate) = 273705
+SHA256 (rust/crates/object-0.36.7.crate) = 62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87
+SIZE (rust/crates/object-0.36.7.crate) = 329938
+SHA256 (rust/crates/once_cell-1.21.3.crate) = 42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d
+SIZE (rust/crates/once_cell-1.21.3.crate) = 34534
+SHA256 (rust/crates/once_cell_polyfill-1.70.1.crate) = a4895175b425cb1f87721b59f0f286c2092bd4af812243672510e1ac53e2e0ad
+SIZE (rust/crates/once_cell_polyfill-1.70.1.crate) = 7510
+SHA256 (rust/crates/openssl-0.10.73.crate) = 8505734d46c8ab1e19a1dce3aef597ad87dcb4c37e7188231769bd6bd51cebf8
+SIZE (rust/crates/openssl-0.10.73.crate) = 283994
SHA256 (rust/crates/openssl-macros-0.1.1.crate) = a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c
SIZE (rust/crates/openssl-macros-0.1.1.crate) = 5601
-SHA256 (rust/crates/openssl-probe-0.1.5.crate) = ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf
-SIZE (rust/crates/openssl-probe-0.1.5.crate) = 7227
-SHA256 (rust/crates/openssl-src-300.3.1+3.3.1.crate) = 7259953d42a81bf137fbbd73bd30a8e1914d6dce43c2b90ed575783a22608b91
-SIZE (rust/crates/openssl-src-300.3.1+3.3.1.crate) = 9783559
-SHA256 (rust/crates/openssl-sys-0.9.103.crate) = 7f9e8deee91df40a943c71b917e5874b951d32a802526c85721ce3b776c929d6
-SIZE (rust/crates/openssl-sys-0.9.103.crate) = 71552
+SHA256 (rust/crates/openssl-probe-0.1.6.crate) = d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e
+SIZE (rust/crates/openssl-probe-0.1.6.crate) = 8128
+SHA256 (rust/crates/openssl-src-300.5.1+3.5.1.crate) = 735230c832b28c000e3bc117119e6466a663ec73506bc0a9907ea4187508e42a
+SIZE (rust/crates/openssl-src-300.5.1+3.5.1.crate) = 10505501
+SHA256 (rust/crates/openssl-sys-0.9.109.crate) = 90096e2e47630d78b7d1c20952dc621f957103f8bc2c8359ec81290d75238571
+SIZE (rust/crates/openssl-sys-0.9.109.crate) = 78247
SHA256 (rust/crates/option-ext-0.2.0.crate) = 04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d
SIZE (rust/crates/option-ext-0.2.0.crate) = 7345
-SHA256 (rust/crates/parking-2.2.0.crate) = bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae
-SIZE (rust/crates/parking-2.2.0.crate) = 9730
-SHA256 (rust/crates/parking_lot-0.12.3.crate) = f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27
-SIZE (rust/crates/parking_lot-0.12.3.crate) = 41860
-SHA256 (rust/crates/parking_lot_core-0.9.10.crate) = 1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8
-SIZE (rust/crates/parking_lot_core-0.9.10.crate) = 32406
+SHA256 (rust/crates/parking-2.2.1.crate) = f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba
+SIZE (rust/crates/parking-2.2.1.crate) = 10685
+SHA256 (rust/crates/parking_lot-0.12.4.crate) = 70d58bf43669b5795d1576d0641cfb6fbb2057bf629506267a92807158584a13
+SIZE (rust/crates/parking_lot-0.12.4.crate) = 46779
+SHA256 (rust/crates/parking_lot_core-0.9.11.crate) = bc838d2a56b5b1a6c25f55575dfc605fabb63bb2365f6c2353ef9159aa69e4a5
+SIZE (rust/crates/parking_lot_core-0.9.11.crate) = 34773
SHA256 (rust/crates/percent-encoding-2.3.1.crate) = e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e
SIZE (rust/crates/percent-encoding-2.3.1.crate) = 10235
SHA256 (rust/crates/petgraph-0.6.5.crate) = b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db
SIZE (rust/crates/petgraph-0.6.5.crate) = 710970
SHA256 (rust/crates/phf-0.10.1.crate) = fabbf1ead8a5bcbc20f5f8b939ee3f5b0f6f281b6ad3468b84656b658b455259
SIZE (rust/crates/phf-0.10.1.crate) = 5406
-SHA256 (rust/crates/phf-0.11.2.crate) = ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc
-SIZE (rust/crates/phf-0.11.2.crate) = 21569
+SHA256 (rust/crates/phf-0.11.3.crate) = 1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078
+SIZE (rust/crates/phf-0.11.3.crate) = 23231
SHA256 (rust/crates/phf_codegen-0.10.0.crate) = 4fb1c3a8bc4dd4e5cfce29b44ffc14bedd2ee294559a294e2a4d4c9e9a6a13cd
SIZE (rust/crates/phf_codegen-0.10.0.crate) = 3402
-SHA256 (rust/crates/phf_codegen-0.11.2.crate) = e8d39688d359e6b34654d328e262234662d16cc0f60ec8dcbe5e718709342a5a
-SIZE (rust/crates/phf_codegen-0.11.2.crate) = 12977
+SHA256 (rust/crates/phf_codegen-0.11.3.crate) = aef8048c789fa5e851558d709946d6d79a8ff88c0440c587967f8e94bfb1216a
+SIZE (rust/crates/phf_codegen-0.11.3.crate) = 13741
SHA256 (rust/crates/phf_generator-0.10.0.crate) = 5d5285893bb5eb82e6aaf5d59ee909a06a16737a8970984dd7746ba9283498d6
SIZE (rust/crates/phf_generator-0.10.0.crate) = 7525
-SHA256 (rust/crates/phf_generator-0.11.2.crate) = 48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0
-SIZE (rust/crates/phf_generator-0.11.2.crate) = 14190
-SHA256 (rust/crates/phf_macros-0.11.2.crate) = 3444646e286606587e49f3bcf1679b8cef1dc2c5ecc29ddacaffc305180d464b
-SIZE (rust/crates/phf_macros-0.11.2.crate) = 4748
+SHA256 (rust/crates/phf_generator-0.11.3.crate) = 3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d
+SIZE (rust/crates/phf_generator-0.11.3.crate) = 15431
+SHA256 (rust/crates/phf_macros-0.11.3.crate) = f84ac04429c13a7ff43785d75ad27569f2951ce0ffd30a3321230db2fc727216
+SIZE (rust/crates/phf_macros-0.11.3.crate) = 18436
SHA256 (rust/crates/phf_shared-0.10.0.crate) = b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096
SIZE (rust/crates/phf_shared-0.10.0.crate) = 4095
-SHA256 (rust/crates/phf_shared-0.11.2.crate) = 90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b
-SIZE (rust/crates/phf_shared-0.11.2.crate) = 14284
+SHA256 (rust/crates/phf_shared-0.11.3.crate) = 67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5
+SIZE (rust/crates/phf_shared-0.11.3.crate) = 15199
SHA256 (rust/crates/pico-args-0.5.0.crate) = 5be167a7af36ee22fe3115051bc51f6e6c7054c9348e28deb4f49bd6f705a315
SIZE (rust/crates/pico-args-0.5.0.crate) = 11545
-SHA256 (rust/crates/pin-project-1.1.5.crate) = b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3
-SIZE (rust/crates/pin-project-1.1.5.crate) = 54214
-SHA256 (rust/crates/pin-project-internal-1.1.5.crate) = 2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965
-SIZE (rust/crates/pin-project-internal-1.1.5.crate) = 28280
-SHA256 (rust/crates/pin-project-lite-0.2.14.crate) = bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02
-SIZE (rust/crates/pin-project-lite-0.2.14.crate) = 28817
+SHA256 (rust/crates/pin-project-lite-0.2.16.crate) = 3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b
+SIZE (rust/crates/pin-project-lite-0.2.16.crate) = 30504
SHA256 (rust/crates/pin-utils-0.1.0.crate) = 8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184
SIZE (rust/crates/pin-utils-0.1.0.crate) = 7580
SHA256 (rust/crates/piper-0.2.4.crate) = 96c8c490f422ef9a4efd2cb5b42b76c8613d7e7dfc1caf667b8a3350a5acc066
SIZE (rust/crates/piper-0.2.4.crate) = 15950
SHA256 (rust/crates/pkcs8-0.10.2.crate) = f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7
SIZE (rust/crates/pkcs8-0.10.2.crate) = 26360
-SHA256 (rust/crates/pkg-config-0.3.30.crate) = d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec
-SIZE (rust/crates/pkg-config-0.3.30.crate) = 20613
-SHA256 (rust/crates/polling-2.8.0.crate) = 4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce
-SIZE (rust/crates/polling-2.8.0.crate) = 43554
-SHA256 (rust/crates/polling-3.7.3.crate) = cc2790cd301dec6cd3b7a025e4815cf825724a51c98dccfe6a3e55f05ffb6511
-SIZE (rust/crates/polling-3.7.3.crate) = 58276
-SHA256 (rust/crates/portable-atomic-1.7.0.crate) = da544ee218f0d287a911e9c99a39a8c9bc8fcad3cb8db5959940044ecfc67265
-SIZE (rust/crates/portable-atomic-1.7.0.crate) = 145385
+SHA256 (rust/crates/pkg-config-0.3.32.crate) = 7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c
+SIZE (rust/crates/pkg-config-0.3.32.crate) = 21370
+SHA256 (rust/crates/polling-3.10.0.crate) = b5bd19146350fe804f7cb2669c851c03d69da628803dab0d98018142aaa5d829
+SIZE (rust/crates/polling-3.10.0.crate) = 60095
+SHA256 (rust/crates/portable-atomic-1.11.1.crate) = f84267b20a16ea918e43c6a88433c2d54fa145c92a811b5b047ccbe153674483
+SIZE (rust/crates/portable-atomic-1.11.1.crate) = 185506
+SHA256 (rust/crates/portable-atomic-util-0.2.4.crate) = d8a2f0d8d040d7848a709caf78912debcc3f33ee4b3cac47d73d1e1069e83507
+SIZE (rust/crates/portable-atomic-util-0.2.4.crate) = 47043
+SHA256 (rust/crates/potential_utf-0.1.2.crate) = e5a7c30837279ca13e7c867e9e40053bc68740f988cb07f7ca6df43cc734b585
+SIZE (rust/crates/potential_utf-0.1.2.crate) = 9613
SHA256 (rust/crates/powerfmt-0.2.0.crate) = 439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391
SIZE (rust/crates/powerfmt-0.2.0.crate) = 15165
-SHA256 (rust/crates/ppv-lite86-0.2.20.crate) = 77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04
-SIZE (rust/crates/ppv-lite86-0.2.20.crate) = 22478
+SHA256 (rust/crates/ppv-lite86-0.2.21.crate) = 85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9
+SIZE (rust/crates/ppv-lite86-0.2.21.crate) = 22522
SHA256 (rust/crates/precomputed-hash-0.1.1.crate) = 925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c
SIZE (rust/crates/precomputed-hash-0.1.1.crate) = 1640
-SHA256 (rust/crates/predicates-3.1.2.crate) = 7e9086cc7640c29a356d1a29fd134380bee9d8f79a17410aa76e7ad295f42c97
-SIZE (rust/crates/predicates-3.1.2.crate) = 23986
-SHA256 (rust/crates/predicates-core-1.0.8.crate) = ae8177bee8e75d6846599c6b9ff679ed51e882816914eec639944d7c9aa11931
-SIZE (rust/crates/predicates-core-1.0.8.crate) = 8552
-SHA256 (rust/crates/predicates-tree-1.0.11.crate) = 41b740d195ed3166cd147c8047ec98db0e22ec019eb8eeb76d343b795304fb13
-SIZE (rust/crates/predicates-tree-1.0.11.crate) = 8393
-SHA256 (rust/crates/proc-macro2-1.0.86.crate) = 5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77
-SIZE (rust/crates/proc-macro2-1.0.86.crate) = 48958
+SHA256 (rust/crates/predicates-3.1.3.crate) = a5d19ee57562043d37e82899fade9a22ebab7be9cef5026b07fda9cdd4293573
+SIZE (rust/crates/predicates-3.1.3.crate) = 24063
+SHA256 (rust/crates/predicates-core-1.0.9.crate) = 727e462b119fe9c93fd0eb1429a5f7647394014cf3c04ab2c0350eeb09095ffa
+SIZE (rust/crates/predicates-core-1.0.9.crate) = 8618
+SHA256 (rust/crates/predicates-tree-1.0.12.crate) = 72dd2d6d381dfb73a193c7fca536518d7caee39fc8503f74e7dc0be0531b425c
+SIZE (rust/crates/predicates-tree-1.0.12.crate) = 8392
+SHA256 (rust/crates/proc-macro2-1.0.95.crate) = 02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778
+SIZE (rust/crates/proc-macro2-1.0.95.crate) = 51820
SHA256 (rust/crates/quick-xml-0.23.1.crate) = 11bafc859c6815fbaffbbbf4229ecb767ac913fecb27f9ad4343662e9ef099ea
SIZE (rust/crates/quick-xml-0.23.1.crate) = 161488
-SHA256 (rust/crates/quote-1.0.37.crate) = b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af
-SIZE (rust/crates/quote-1.0.37.crate) = 28558
+SHA256 (rust/crates/quote-1.0.40.crate) = 1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d
+SIZE (rust/crates/quote-1.0.40.crate) = 31063
+SHA256 (rust/crates/r-efi-5.3.0.crate) = 69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f
+SIZE (rust/crates/r-efi-5.3.0.crate) = 64532
SHA256 (rust/crates/rand-0.3.23.crate) = 64ac302d8f83c0c1974bf758f6b041c6c8ada916fbb44a609158ca8b064cc76c
SIZE (rust/crates/rand-0.3.23.crate) = 11318
SHA256 (rust/crates/rand-0.4.6.crate) = 552840b97013b1a26992c11eac34bdd778e464601a4c2054b5f0bff7c6761293
@@ -483,46 +489,42 @@ SHA256 (rust/crates/rayon-core-1.12.1.crate) = 1465873a3dfdaa8ae7cb14b4383657caa
SIZE (rust/crates/rayon-core-1.12.1.crate) = 70701
SHA256 (rust/crates/rdrand-0.4.0.crate) = 678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2
SIZE (rust/crates/rdrand-0.4.0.crate) = 6456
-SHA256 (rust/crates/redox_syscall-0.5.3.crate) = 2a908a6e00f1fdd0dfd9c0eb08ce85126f6d8bbda50017e74bc4a4b7d4a926a4
-SIZE (rust/crates/redox_syscall-0.5.3.crate) = 23830
+SHA256 (rust/crates/redox_syscall-0.5.17.crate) = 5407465600fb0548f1442edf71dd20683c6ed326200ace4b1ef0763521bb3b77
+SIZE (rust/crates/redox_syscall-0.5.17.crate) = 30002
SHA256 (rust/crates/redox_users-0.4.6.crate) = ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43
SIZE (rust/crates/redox_users-0.4.6.crate) = 15585
-SHA256 (rust/crates/regex-1.10.6.crate) = 4219d74c6b67a3654a9fbebc4b419e22126d13d2f3c4a07ee0cb61ff79a79619
-SIZE (rust/crates/regex-1.10.6.crate) = 253894
-SHA256 (rust/crates/regex-automata-0.4.7.crate) = 38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df
-SIZE (rust/crates/regex-automata-0.4.7.crate) = 617582
-SHA256 (rust/crates/regex-syntax-0.8.4.crate) = 7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b
-SIZE (rust/crates/regex-syntax-0.8.4.crate) = 347577
-SHA256 (rust/crates/reqwest-0.12.7.crate) = f8f4955649ef5c38cc7f9e8aa41761d48fb9677197daea9984dc54f56aad5e63
-SIZE (rust/crates/reqwest-0.12.7.crate) = 176918
-SHA256 (rust/crates/ring-0.17.8.crate) = c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d
-SIZE (rust/crates/ring-0.17.8.crate) = 4188554
-SHA256 (rust/crates/rlimit-0.10.1.crate) = 3560f70f30a0f16d11d01ed078a07740fe6b489667abc7c7b029155d9f21c3d8
-SIZE (rust/crates/rlimit-0.10.1.crate) = 18802
-SHA256 (rust/crates/rustc-demangle-0.1.24.crate) = 719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f
-SIZE (rust/crates/rustc-demangle-0.1.24.crate) = 29047
-SHA256 (rust/crates/rustc_version-0.4.0.crate) = bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366
-SIZE (rust/crates/rustc_version-0.4.0.crate) = 12175
-SHA256 (rust/crates/rustix-0.37.27.crate) = fea8ca367a3a01fe35e6943c400addf443c0f57670e6ec51196f71a4b8762dd2
-SIZE (rust/crates/rustix-0.37.27.crate) = 324534
-SHA256 (rust/crates/rustix-0.38.34.crate) = 70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f
-SIZE (rust/crates/rustix-0.38.34.crate) = 365160
-SHA256 (rust/crates/rustls-0.23.12.crate) = c58f8c84392efc0a126acce10fa59ff7b3d2ac06ab451a33f2741989b806b044
-SIZE (rust/crates/rustls-0.23.12.crate) = 438443
-SHA256 (rust/crates/rustls-pemfile-2.1.3.crate) = 196fe16b00e106300d3e45ecfcb764fa292a535d7326a29a5875c579c7417425
-SIZE (rust/crates/rustls-pemfile-2.1.3.crate) = 26757
-SHA256 (rust/crates/rustls-pki-types-1.8.0.crate) = fc0a2ce646f8655401bb81e7927b812614bd5d91dbc968696be50603510fcaf0
-SIZE (rust/crates/rustls-pki-types-1.8.0.crate) = 29562
-SHA256 (rust/crates/rustls-webpki-0.102.6.crate) = 8e6b52d4fda176fd835fdc55a835d4a89b8499cad995885a21149d5ad62f852e
-SIZE (rust/crates/rustls-webpki-0.102.6.crate) = 201331
-SHA256 (rust/crates/rustversion-1.0.17.crate) = 955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6
-SIZE (rust/crates/rustversion-1.0.17.crate) = 17621
-SHA256 (rust/crates/ryu-1.0.18.crate) = f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f
-SIZE (rust/crates/ryu-1.0.18.crate) = 47713
+SHA256 (rust/crates/regex-1.11.1.crate) = b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191
+SIZE (rust/crates/regex-1.11.1.crate) = 254170
+SHA256 (rust/crates/regex-automata-0.4.9.crate) = 809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908
+SIZE (rust/crates/regex-automata-0.4.9.crate) = 618525
+SHA256 (rust/crates/regex-syntax-0.8.5.crate) = 2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c
+SIZE (rust/crates/regex-syntax-0.8.5.crate) = 357541
+SHA256 (rust/crates/reqwest-0.12.22.crate) = cbc931937e6ca3a06e3b6c0aa7841849b160a90351d6ab467a8b9b9959767531
+SIZE (rust/crates/reqwest-0.12.22.crate) = 200283
+SHA256 (rust/crates/ring-0.17.14.crate) = a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7
+SIZE (rust/crates/ring-0.17.14.crate) = 1502610
+SHA256 (rust/crates/rlimit-0.10.2.crate) = 7043b63bd0cd1aaa628e476b80e6d4023a3b50eb32789f2728908107bd0c793a
+SIZE (rust/crates/rlimit-0.10.2.crate) = 19093
+SHA256 (rust/crates/rustc-demangle-0.1.26.crate) = 56f7d92ca342cea22a06f2121d944b4fd82af56988c270852495420f961d4ace
+SIZE (rust/crates/rustc-demangle-0.1.26.crate) = 30340
+SHA256 (rust/crates/rustc_version-0.4.1.crate) = cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92
+SIZE (rust/crates/rustc_version-0.4.1.crate) = 12245
+SHA256 (rust/crates/rustix-1.0.8.crate) = 11181fbabf243db407ef8df94a6ce0b2f9a733bd8be4ad02b4eda9602296cac8
+SIZE (rust/crates/rustix-1.0.8.crate) = 416688
+SHA256 (rust/crates/rustls-0.23.31.crate) = c0ebcbd2f03de0fc1122ad9bb24b127a5a6cd51d72604a3f3c50ac459762b6cc
+SIZE (rust/crates/rustls-0.23.31.crate) = 371259
+SHA256 (rust/crates/rustls-pki-types-1.12.0.crate) = 229a4a4c221013e7e1f1a043678c5cc39fe5171437c88fb47151a21e6f5b5c79
+SIZE (rust/crates/rustls-pki-types-1.12.0.crate) = 64740
+SHA256 (rust/crates/rustls-webpki-0.103.4.crate) = 0a17884ae0c1b773f1ccd2bd4a8c72f16da897310a98b0e84bf349ad5ead92fc
+SIZE (rust/crates/rustls-webpki-0.103.4.crate) = 84241
+SHA256 (rust/crates/rustversion-1.0.21.crate) = 8a0d197bd2c9dc6e53b84da9556a69ba4cdfab8619eb41a8bd1cc2027a0f6b1d
+SIZE (rust/crates/rustversion-1.0.21.crate) = 21001
+SHA256 (rust/crates/ryu-1.0.20.crate) = 28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f
+SIZE (rust/crates/ryu-1.0.20.crate) = 48738
SHA256 (rust/crates/same-file-1.0.6.crate) = 93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502
SIZE (rust/crates/same-file-1.0.6.crate) = 10183
-SHA256 (rust/crates/schannel-0.1.23.crate) = fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534
-SIZE (rust/crates/schannel-0.1.23.crate) = 41667
+SHA256 (rust/crates/schannel-0.1.27.crate) = 1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d
+SIZE (rust/crates/schannel-0.1.27.crate) = 42772
SHA256 (rust/crates/scopeguard-1.2.0.crate) = 94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49
SIZE (rust/crates/scopeguard-1.2.0.crate) = 11619
SHA256 (rust/crates/scraper-0.19.1.crate) = 761fb705fdf625482d2ed91d3f0559dcfeab2798fe2771c69560a774865d0802
@@ -531,194 +533,200 @@ SHA256 (rust/crates/seahash-4.1.0.crate) = 1c107b6f4780854c8b126e228ea8869f4d7b7
SIZE (rust/crates/seahash-4.1.0.crate) = 31976
SHA256 (rust/crates/security-framework-2.11.1.crate) = 897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02
SIZE (rust/crates/security-framework-2.11.1.crate) = 80188
-SHA256 (rust/crates/security-framework-sys-2.11.1.crate) = 75da29fe9b9b08fe9d6b22b5b4bcbc75d8db3aa31e639aa56bb62e9d46bfceaf
-SIZE (rust/crates/security-framework-sys-2.11.1.crate) = 18755
+SHA256 (rust/crates/security-framework-sys-2.14.0.crate) = 49db231d56a190491cb4aeda9527f1ad45345af50b0851622a7adb8c03b01c32
+SIZE (rust/crates/security-framework-sys-2.14.0.crate) = 20537
SHA256 (rust/crates/selectors-0.25.0.crate) = 4eb30575f3638fc8f6815f448d50cb1a2e255b0897985c8c59f4d37b72a07b06
SIZE (rust/crates/selectors-0.25.0.crate) = 53052
-SHA256 (rust/crates/self-replace-1.4.0.crate) = f7828a58998685d8bf5a3c5e7a3379a5867289c20828c3ee436280b44b598515
-SIZE (rust/crates/self-replace-1.4.0.crate) = 17148
+SHA256 (rust/crates/self-replace-1.5.0.crate) = 03ec815b5eab420ab893f63393878d89c90fdd94c0bcc44c07abb8ad95552fb7
+SIZE (rust/crates/self-replace-1.5.0.crate) = 17000
SHA256 (rust/crates/self_update-0.40.0.crate) = 4e4997484b55df069a4773d822715695b2cc27b23829eca2a4b41690e948bdeb
SIZE (rust/crates/self_update-0.40.0.crate) = 41274
-SHA256 (rust/crates/semver-1.0.23.crate) = 61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b
-SIZE (rust/crates/semver-1.0.23.crate) = 30622
-SHA256 (rust/crates/serde-1.0.209.crate) = 99fce0ffe7310761ca6bf9faf5115afbc19688edd00171d81b1bb1b116c63e09
-SIZE (rust/crates/serde-1.0.209.crate) = 78364
-SHA256 (rust/crates/serde_derive-1.0.209.crate) = a5831b979fd7b5439637af1752d535ff49f4860c0f341d1baeb6faf0f4242170
-SIZE (rust/crates/serde_derive-1.0.209.crate) = 56023
-SHA256 (rust/crates/serde_json-1.0.127.crate) = 8043c06d9f82bd7271361ed64f415fe5e12a77fdb52e573e7f06a516dea329ad
-SIZE (rust/crates/serde_json-1.0.127.crate) = 149465
+SHA256 (rust/crates/semver-1.0.26.crate) = 56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0
+SIZE (rust/crates/semver-1.0.26.crate) = 31303
+SHA256 (rust/crates/serde-1.0.219.crate) = 5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6
+SIZE (rust/crates/serde-1.0.219.crate) = 78983
+SHA256 (rust/crates/serde_derive-1.0.219.crate) = 5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00
+SIZE (rust/crates/serde_derive-1.0.219.crate) = 57798
+SHA256 (rust/crates/serde_json-1.0.142.crate) = 030fedb782600dcbd6f02d479bf0d817ac3bb40d644745b769d6a96bc3afc5a7
+SIZE (rust/crates/serde_json-1.0.142.crate) = 155363
SHA256 (rust/crates/serde_regex-1.1.0.crate) = a8136f1a4ea815d7eac4101cfd0b16dc0cb5e1fe1b8609dfd728058656b7badf
SIZE (rust/crates/serde_regex-1.1.0.crate) = 9710
-SHA256 (rust/crates/serde_spanned-0.6.7.crate) = eb5b1b31579f3811bf615c144393417496f152e12ac8b7663bf664f4a815306d
-SIZE (rust/crates/serde_spanned-0.6.7.crate) = 9164
+SHA256 (rust/crates/serde_spanned-0.6.9.crate) = bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3
+SIZE (rust/crates/serde_spanned-0.6.9.crate) = 10210
SHA256 (rust/crates/serde_urlencoded-0.7.1.crate) = d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd
SIZE (rust/crates/serde_urlencoded-0.7.1.crate) = 12822
SHA256 (rust/crates/servo_arc-0.3.0.crate) = d036d71a959e00c77a63538b90a6c2390969f9772b096ea837205c6bd0491a44
SIZE (rust/crates/servo_arc-0.3.0.crate) = 12738
SHA256 (rust/crates/sha-1-0.10.1.crate) = f5058ada175748e33390e40e872bd0fe59a19f265d0158daa551c5a88a76009c
SIZE (rust/crates/sha-1-0.10.1.crate) = 12018
-SHA256 (rust/crates/sha2-0.10.8.crate) = 793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8
-SIZE (rust/crates/sha2-0.10.8.crate) = 26357
+SHA256 (rust/crates/sha2-0.10.9.crate) = a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283
+SIZE (rust/crates/sha2-0.10.9.crate) = 29271
SHA256 (rust/crates/shingles-0.1.1.crate) = 72bb884be1ddfbded5873be4672cf5aee71210ce0f8ae99787d158b9b72b5ca0
SIZE (rust/crates/shingles-0.1.1.crate) = 5458
SHA256 (rust/crates/shlex-1.3.0.crate) = 0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64
SIZE (rust/crates/shlex-1.3.0.crate) = 18713
-SHA256 (rust/crates/signal-hook-0.3.17.crate) = 8621587d4798caf8eb44879d42e56b9a93ea5dcd315a6487c357130095b62801
-SIZE (rust/crates/signal-hook-0.3.17.crate) = 50296
+SHA256 (rust/crates/signal-hook-0.3.18.crate) = d881a16cf4426aa584979d30bd82cb33429027e42122b169753d6ef1085ed6e2
+SIZE (rust/crates/signal-hook-0.3.18.crate) = 50862
SHA256 (rust/crates/signal-hook-mio-0.2.4.crate) = 34db1a06d485c9142248b7a054f034b349b212551f3dfd19c94d45a754a217cd
SIZE (rust/crates/signal-hook-mio-0.2.4.crate) = 9314
-SHA256 (rust/crates/signal-hook-registry-1.4.2.crate) = a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1
-SIZE (rust/crates/signal-hook-registry-1.4.2.crate) = 18064
+SHA256 (rust/crates/signal-hook-registry-1.4.6.crate) = b2a4719bff48cee6b39d12c020eeb490953ad2443b7055bd0b21fca26bd8c28b
+SIZE (rust/crates/signal-hook-registry-1.4.6.crate) = 19277
SHA256 (rust/crates/signature-2.2.0.crate) = 77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de
SIZE (rust/crates/signature-2.2.0.crate) = 15531
-SHA256 (rust/crates/similar-2.6.0.crate) = 1de1d4f81173b03af4c0cbed3c898f6bff5b870e4a7f5d6f4057d62a7a4b686e
-SIZE (rust/crates/similar-2.6.0.crate) = 51659
+SHA256 (rust/crates/similar-2.7.0.crate) = bbbb5d9659141646ae647b42fe094daf6c6192d1620870b449d9557f748b2daa
+SIZE (rust/crates/similar-2.7.0.crate) = 53928
SHA256 (rust/crates/siphasher-0.3.11.crate) = 38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d
SIZE (rust/crates/siphasher-0.3.11.crate) = 10442
-SHA256 (rust/crates/slab-0.4.9.crate) = 8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67
-SIZE (rust/crates/slab-0.4.9.crate) = 17108
-SHA256 (rust/crates/smallvec-1.13.2.crate) = 3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67
-SIZE (rust/crates/smallvec-1.13.2.crate) = 35216
-SHA256 (rust/crates/socket2-0.4.10.crate) = 9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d
-SIZE (rust/crates/socket2-0.4.10.crate) = 45697
-SHA256 (rust/crates/socket2-0.5.7.crate) = ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c
-SIZE (rust/crates/socket2-0.5.7.crate) = 55758
-SHA256 (rust/crates/spin-0.9.8.crate) = 6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67
-SIZE (rust/crates/spin-0.9.8.crate) = 38958
+SHA256 (rust/crates/siphasher-1.0.1.crate) = 56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d
+SIZE (rust/crates/siphasher-1.0.1.crate) = 10351
+SHA256 (rust/crates/slab-0.4.10.crate) = 04dc19736151f35336d325007ac991178d504a119863a2fcb3758cdb5e52c50d
+SIZE (rust/crates/slab-0.4.10.crate) = 17810
+SHA256 (rust/crates/smallvec-1.15.1.crate) = 67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03
+SIZE (rust/crates/smallvec-1.15.1.crate) = 38116
+SHA256 (rust/crates/socket2-0.5.10.crate) = e22376abed350d73dd1cd119b57ffccad95b4e585a7cda43e286245ce23c0678
+SIZE (rust/crates/socket2-0.5.10.crate) = 58169
+SHA256 (rust/crates/socket2-0.6.0.crate) = 233504af464074f9d066d7b5416c5f9b894a5862a6506e306f7b816cdd6f1807
+SIZE (rust/crates/socket2-0.6.0.crate) = 57974
SHA256 (rust/crates/spki-0.7.3.crate) = d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d
SIZE (rust/crates/spki-0.7.3.crate) = 16409
SHA256 (rust/crates/stable_deref_trait-1.2.0.crate) = a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3
SIZE (rust/crates/stable_deref_trait-1.2.0.crate) = 8054
-SHA256 (rust/crates/string_cache-0.8.7.crate) = f91138e76242f575eb1d3b38b4f1362f10d3a43f47d182a5b359af488a02293b
-SIZE (rust/crates/string_cache-0.8.7.crate) = 16655
-SHA256 (rust/crates/string_cache_codegen-0.5.2.crate) = 6bb30289b722be4ff74a408c3cc27edeaad656e06cb1fe8fa9231fa59c728988
-SIZE (rust/crates/string_cache_codegen-0.5.2.crate) = 8156
+SHA256 (rust/crates/string_cache-0.8.9.crate) = bf776ba3fa74f83bf4b63c3dcbbf82173db2632ed8452cb2d891d33f459de70f
+SIZE (rust/crates/string_cache-0.8.9.crate) = 17408
+SHA256 (rust/crates/string_cache_codegen-0.5.4.crate) = c711928715f1fe0fe509c53b43e993a9a557babc2d0a3567d0a3006f1ac931a0
+SIZE (rust/crates/string_cache_codegen-0.5.4.crate) = 9406
SHA256 (rust/crates/strsim-0.11.1.crate) = 7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f
SIZE (rust/crates/strsim-0.11.1.crate) = 14266
SHA256 (rust/crates/subtle-2.6.1.crate) = 13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292
SIZE (rust/crates/subtle-2.6.1.crate) = 14562
SHA256 (rust/crates/syn-1.0.109.crate) = 72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237
SIZE (rust/crates/syn-1.0.109.crate) = 237611
-SHA256 (rust/crates/syn-2.0.76.crate) = 578e081a14e0cefc3279b0472138c513f37b41a08d5a3cca9b6e4e8ceb6cd525
-SIZE (rust/crates/syn-2.0.76.crate) = 268798
-SHA256 (rust/crates/sync_wrapper-1.0.1.crate) = a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394
-SIZE (rust/crates/sync_wrapper-1.0.1.crate) = 6939
+SHA256 (rust/crates/syn-2.0.104.crate) = 17b6f705963418cdb9927482fa304bc562ece2fdd4f616084c50b7023b435a40
+SIZE (rust/crates/syn-2.0.104.crate) = 299699
+SHA256 (rust/crates/sync_wrapper-1.0.2.crate) = 0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263
+SIZE (rust/crates/sync_wrapper-1.0.2.crate) = 6958
+SHA256 (rust/crates/synstructure-0.13.2.crate) = 728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2
+SIZE (rust/crates/synstructure-0.13.2.crate) = 18950
SHA256 (rust/crates/system-configuration-0.6.1.crate) = 3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b
SIZE (rust/crates/system-configuration-0.6.1.crate) = 17935
SHA256 (rust/crates/system-configuration-sys-0.6.0.crate) = 8e1d1b10ced5ca923a1fcb8d03e96b8d3268065d724548c0211415ff6ac6bac4
SIZE (rust/crates/system-configuration-sys-0.6.0.crate) = 11090
-SHA256 (rust/crates/tar-0.4.41.crate) = cb797dad5fb5b76fcf519e702f4a589483b5ef06567f160c392832c1f5e44909
-SIZE (rust/crates/tar-0.4.41.crate) = 51871
-SHA256 (rust/crates/tempfile-3.12.0.crate) = 04cbcdd0c794ebb0d4cf35e88edd2f7d2c4c3e9a5a6dab322839b321c6a87a64
-SIZE (rust/crates/tempfile-3.12.0.crate) = 34423
+SHA256 (rust/crates/tar-0.4.44.crate) = 1d863878d212c87a19c1a610eb53bb01fe12951c0501cf5a0d65f724914a667a
+SIZE (rust/crates/tar-0.4.44.crate) = 61020
+SHA256 (rust/crates/tempfile-3.20.0.crate) = e8a64e3985349f2441a1a9ef0b853f869006c3855f2cda6862a94d26ebb9d6a1
+SIZE (rust/crates/tempfile-3.20.0.crate) = 42306
SHA256 (rust/crates/tendril-0.4.3.crate) = d24a120c5fc464a3458240ee02c299ebcb9d67b5249c8848b09d639dca8d7bb0
SIZE (rust/crates/tendril-0.4.3.crate) = 37210
SHA256 (rust/crates/term-0.7.0.crate) = c59df8ac95d96ff9bede18eb7300b0fda5e5d8d90960e76f8e14ae765eedbf1f
SIZE (rust/crates/term-0.7.0.crate) = 37082
-SHA256 (rust/crates/terminal_size-0.3.0.crate) = 21bebf2b7c9e0a515f6e0f8c51dc0f8e4696391e6f1ff30379559f8365fb0df7
-SIZE (rust/crates/terminal_size-0.3.0.crate) = 10096
-SHA256 (rust/crates/termtree-0.4.1.crate) = 3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76
-SIZE (rust/crates/termtree-0.4.1.crate) = 4557
-SHA256 (rust/crates/thiserror-1.0.63.crate) = c0342370b38b6a11b6cc11d6a805569958d54cfa061a29969c3b5ce2ea405724
-SIZE (rust/crates/thiserror-1.0.63.crate) = 21537
-SHA256 (rust/crates/thiserror-impl-1.0.63.crate) = a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261
-SIZE (rust/crates/thiserror-impl-1.0.63.crate) = 16047
-SHA256 (rust/crates/time-0.3.36.crate) = 5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885
-SIZE (rust/crates/time-0.3.36.crate) = 119805
-SHA256 (rust/crates/time-core-0.1.2.crate) = ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3
-SIZE (rust/crates/time-core-0.1.2.crate) = 7191
+SHA256 (rust/crates/terminal_size-0.4.2.crate) = 45c6481c4829e4cc63825e62c49186a34538b7b2750b73b266581ffb612fb5ed
+SIZE (rust/crates/terminal_size-0.4.2.crate) = 9976
+SHA256 (rust/crates/termtree-0.5.1.crate) = 8f50febec83f5ee1df3015341d8bd429f2d1cc62bcba7ea2076759d315084683
+SIZE (rust/crates/termtree-0.5.1.crate) = 8498
+SHA256 (rust/crates/thiserror-1.0.69.crate) = b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52
+SIZE (rust/crates/thiserror-1.0.69.crate) = 22198
+SHA256 (rust/crates/thiserror-2.0.12.crate) = 567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708
+SIZE (rust/crates/thiserror-2.0.12.crate) = 28693
+SHA256 (rust/crates/thiserror-impl-1.0.69.crate) = 4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1
+SIZE (rust/crates/thiserror-impl-1.0.69.crate) = 18365
+SHA256 (rust/crates/thiserror-impl-2.0.12.crate) = 7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d
+SIZE (rust/crates/thiserror-impl-2.0.12.crate) = 21141
+SHA256 (rust/crates/time-0.3.41.crate) = 8a7619e19bc266e0f9c5e6686659d394bc57973859340060a69221e57dbc0c40
+SIZE (rust/crates/time-0.3.41.crate) = 138369
+SHA256 (rust/crates/time-core-0.1.4.crate) = c9e9a38711f559d9e3ce1cdb06dd7c5b8ea546bc90052da6d06bb76da74bb07c
+SIZE (rust/crates/time-core-0.1.4.crate) = 8422
SHA256 (rust/crates/tiny-keccak-2.0.2.crate) = 2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237
SIZE (rust/crates/tiny-keccak-2.0.2.crate) = 20129
-SHA256 (rust/crates/tinyvec-1.8.0.crate) = 445e881f4f6d382d5f27c034e25eb92edd7c784ceab92a0937db7f2e9471b938
-SIZE (rust/crates/tinyvec-1.8.0.crate) = 46796
-SHA256 (rust/crates/tinyvec_macros-0.1.1.crate) = 1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20
-SIZE (rust/crates/tinyvec_macros-0.1.1.crate) = 5865
-SHA256 (rust/crates/tokio-1.39.3.crate) = 9babc99b9923bfa4804bd74722ff02c0381021eafa4db9949217e3be8e84fff5
-SIZE (rust/crates/tokio-1.39.3.crate) = 782858
-SHA256 (rust/crates/tokio-macros-2.4.0.crate) = 693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752
-SIZE (rust/crates/tokio-macros-2.4.0.crate) = 12501
+SHA256 (rust/crates/tinystr-0.8.1.crate) = 5d4f6d1145dcb577acf783d4e601bc1d76a13337bb54e6233add580b07344c8b
+SIZE (rust/crates/tinystr-0.8.1.crate) = 23333
+SHA256 (rust/crates/tokio-1.47.1.crate) = 89e49afdadebb872d3145a5638b59eb0691ea23e46ca484037cfab3b76b95038
+SIZE (rust/crates/tokio-1.47.1.crate) = 829790
+SHA256 (rust/crates/tokio-macros-2.5.0.crate) = 6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8
+SIZE (rust/crates/tokio-macros-2.5.0.crate) = 12617
SHA256 (rust/crates/tokio-native-tls-0.3.1.crate) = bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2
SIZE (rust/crates/tokio-native-tls-0.3.1.crate) = 20676
-SHA256 (rust/crates/tokio-rustls-0.26.0.crate) = 0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4
-SIZE (rust/crates/tokio-rustls-0.26.0.crate) = 34253
-SHA256 (rust/crates/tokio-socks-0.5.2.crate) = 0d4770b8024672c1101b3f6733eab95b18007dbe0847a8afe341fcf79e06043f
-SIZE (rust/crates/tokio-socks-0.5.2.crate) = 22102
-SHA256 (rust/crates/tokio-util-0.7.11.crate) = 9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1
-SIZE (rust/crates/tokio-util-0.7.11.crate) = 113421
-SHA256 (rust/crates/toml-0.8.19.crate) = a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e
-SIZE (rust/crates/toml-0.8.19.crate) = 50974
-SHA256 (rust/crates/toml_datetime-0.6.8.crate) = 0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41
-SIZE (rust/crates/toml_datetime-0.6.8.crate) = 12028
-SHA256 (rust/crates/toml_edit-0.22.20.crate) = 583c44c02ad26b0c3f3066fe629275e50627026c51ac2e595cca4c230ce1ce1d
-SIZE (rust/crates/toml_edit-0.22.20.crate) = 106726
-SHA256 (rust/crates/tower-0.4.13.crate) = b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c
-SIZE (rust/crates/tower-0.4.13.crate) = 106906
+SHA256 (rust/crates/tokio-rustls-0.26.2.crate) = 8e727b36a1a0e8b74c376ac2211e40c2c8af09fb4013c60d910495810f008e9b
+SIZE (rust/crates/tokio-rustls-0.26.2.crate) = 31655
+SHA256 (rust/crates/tokio-util-0.7.16.crate) = 14307c986784f72ef81c89db7d9e28d6ac26d16213b109ea501696195e6e3ce5
+SIZE (rust/crates/tokio-util-0.7.16.crate) = 127775
+SHA256 (rust/crates/toml-0.8.23.crate) = dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362
+SIZE (rust/crates/toml-0.8.23.crate) = 36050
+SHA256 (rust/crates/toml_datetime-0.6.11.crate) = 22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c
+SIZE (rust/crates/toml_datetime-0.6.11.crate) = 16125
+SHA256 (rust/crates/toml_edit-0.22.27.crate) = 41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a
+SIZE (rust/crates/toml_edit-0.22.27.crate) = 78602
+SHA256 (rust/crates/toml_write-0.1.2.crate) = 5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801
+SIZE (rust/crates/toml_write-0.1.2.crate) = 15660
+SHA256 (rust/crates/tower-0.5.2.crate) = d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9
+SIZE (rust/crates/tower-0.5.2.crate) = 109417
+SHA256 (rust/crates/tower-http-0.6.6.crate) = adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2
+SIZE (rust/crates/tower-http-0.6.6.crate) = 133515
SHA256 (rust/crates/tower-layer-0.3.3.crate) = 121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e
SIZE (rust/crates/tower-layer-0.3.3.crate) = 6180
SHA256 (rust/crates/tower-service-0.3.3.crate) = 8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3
SIZE (rust/crates/tower-service-0.3.3.crate) = 6950
-SHA256 (rust/crates/tracing-0.1.40.crate) = c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef
-SIZE (rust/crates/tracing-0.1.40.crate) = 79459
-SHA256 (rust/crates/tracing-core-0.1.32.crate) = c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54
-SIZE (rust/crates/tracing-core-0.1.32.crate) = 61221
-SHA256 (rust/crates/triomphe-0.1.13.crate) = e6631e42e10b40c0690bf92f404ebcfe6e1fdb480391d15f17cc8e96eeed5369
-SIZE (rust/crates/triomphe-0.1.13.crate) = 29568
+SHA256 (rust/crates/tracing-0.1.41.crate) = 784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0
+SIZE (rust/crates/tracing-0.1.41.crate) = 82448
+SHA256 (rust/crates/tracing-core-0.1.34.crate) = b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678
+SIZE (rust/crates/tracing-core-0.1.34.crate) = 63760
+SHA256 (rust/crates/triomphe-0.1.14.crate) = ef8f7726da4807b58ea5c96fdc122f80702030edc33b35aff9190a51148ccc85
+SIZE (rust/crates/triomphe-0.1.14.crate) = 30292
SHA256 (rust/crates/try-lock-0.2.5.crate) = e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b
SIZE (rust/crates/try-lock-0.2.5.crate) = 4314
-SHA256 (rust/crates/typenum-1.17.0.crate) = 42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825
-SIZE (rust/crates/typenum-1.17.0.crate) = 42849
-SHA256 (rust/crates/unicode-bidi-0.3.15.crate) = 08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75
-SIZE (rust/crates/unicode-bidi-0.3.15.crate) = 56811
-SHA256 (rust/crates/unicode-ident-1.0.12.crate) = 3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b
-SIZE (rust/crates/unicode-ident-1.0.12.crate) = 42168
-SHA256 (rust/crates/unicode-normalization-0.1.23.crate) = a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5
-SIZE (rust/crates/unicode-normalization-0.1.23.crate) = 122649
-SHA256 (rust/crates/unicode-width-0.1.13.crate) = 0336d538f7abc86d282a4189614dfaa90810dfc2c6f6427eaf88e16311dd225d
-SIZE (rust/crates/unicode-width-0.1.13.crate) = 457228
-SHA256 (rust/crates/unicode-xid-0.2.5.crate) = 229730647fbc343e3a80e463c1db7f78f3855d3f3739bee0dda773c9a037c90a
-SIZE (rust/crates/unicode-xid-0.2.5.crate) = 15530
+SHA256 (rust/crates/typenum-1.18.0.crate) = 1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f
+SIZE (rust/crates/typenum-1.18.0.crate) = 74871
+SHA256 (rust/crates/unicode-ident-1.0.18.crate) = 5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512
+SIZE (rust/crates/unicode-ident-1.0.18.crate) = 47743
+SHA256 (rust/crates/unicode-width-0.2.1.crate) = 4a1a07cc7db3810833284e8d372ccdc6da29741639ecc70c9ec107df0fa6154c
+SIZE (rust/crates/unicode-width-0.2.1.crate) = 279344
+SHA256 (rust/crates/unicode-xid-0.2.6.crate) = ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853
+SIZE (rust/crates/unicode-xid-0.2.6.crate) = 15744
SHA256 (rust/crates/untrusted-0.9.0.crate) = 8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1
SIZE (rust/crates/untrusted-0.9.0.crate) = 14447
-SHA256 (rust/crates/url-2.5.2.crate) = 22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c
-SIZE (rust/crates/url-2.5.2.crate) = 79704
+SHA256 (rust/crates/url-2.5.4.crate) = 32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60
+SIZE (rust/crates/url-2.5.4.crate) = 81097
SHA256 (rust/crates/urlencoding-2.1.3.crate) = daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da
SIZE (rust/crates/urlencoding-2.1.3.crate) = 6538
SHA256 (rust/crates/utf-8-0.7.6.crate) = 09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9
SIZE (rust/crates/utf-8-0.7.6.crate) = 10422
+SHA256 (rust/crates/utf8_iter-1.0.4.crate) = b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be
+SIZE (rust/crates/utf8_iter-1.0.4.crate) = 10437
SHA256 (rust/crates/utf8parse-0.2.2.crate) = 06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821
SIZE (rust/crates/utf8parse-0.2.2.crate) = 13499
-SHA256 (rust/crates/uuid-1.10.0.crate) = 81dfa00651efa65069b0b6b651f4aaa31ba9e3c3ce0137aaad053604ee7e0314
-SIZE (rust/crates/uuid-1.10.0.crate) = 47648
-SHA256 (rust/crates/value-bag-1.9.0.crate) = 5a84c137d37ab0142f0f2ddfe332651fdbf252e7b7dbb4e67b6c1f1b2e925101
-SIZE (rust/crates/value-bag-1.9.0.crate) = 39936
+SHA256 (rust/crates/uuid-1.17.0.crate) = 3cf4199d1e5d15ddd86a694e4d0dffa9c323ce759fea589f00fef9d81cc1931d
+SIZE (rust/crates/uuid-1.17.0.crate) = 59014
+SHA256 (rust/crates/value-bag-1.11.1.crate) = 943ce29a8a743eb10d6082545d861b24f9d1b160b7d741e0f2cdf726bec909c5
+SIZE (rust/crates/value-bag-1.11.1.crate) = 44649
SHA256 (rust/crates/vcpkg-0.2.15.crate) = accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426
SIZE (rust/crates/vcpkg-0.2.15.crate) = 228735
SHA256 (rust/crates/version_check-0.9.5.crate) = 0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a
SIZE (rust/crates/version_check-0.9.5.crate) = 15554
-SHA256 (rust/crates/wait-timeout-0.2.0.crate) = 9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6
-SIZE (rust/crates/wait-timeout-0.2.0.crate) = 12441
-SHA256 (rust/crates/waker-fn-1.2.0.crate) = 317211a0dc0ceedd78fb2ca9a44aed3d7b9b26f81870d485c07122b4350673b7
-SIZE (rust/crates/waker-fn-1.2.0.crate) = 6685
+SHA256 (rust/crates/wait-timeout-0.2.1.crate) = 09ac3b126d3914f9849036f826e054cbabdc8519970b8998ddaf3b5bd3c65f11
+SIZE (rust/crates/wait-timeout-0.2.1.crate) = 11435
SHA256 (rust/crates/walkdir-2.5.0.crate) = 29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b
SIZE (rust/crates/walkdir-2.5.0.crate) = 23951
SHA256 (rust/crates/want-0.3.1.crate) = bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e
SIZE (rust/crates/want-0.3.1.crate) = 6398
-SHA256 (rust/crates/wasi-0.11.0+wasi-snapshot-preview1.crate) = 9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423
-SIZE (rust/crates/wasi-0.11.0+wasi-snapshot-preview1.crate) = 28131
-SHA256 (rust/crates/wasm-bindgen-0.2.93.crate) = a82edfc16a6c469f5f44dc7b571814045d60404b55a0ee849f9bcfa2e63dd9b5
-SIZE (rust/crates/wasm-bindgen-0.2.93.crate) = 43769
-SHA256 (rust/crates/wasm-bindgen-backend-0.2.93.crate) = 9de396da306523044d3302746f1208fa71d7532227f15e347e2d93e4145dd77b
-SIZE (rust/crates/wasm-bindgen-backend-0.2.93.crate) = 30344
-SHA256 (rust/crates/wasm-bindgen-futures-0.4.43.crate) = 61e9300f63a621e96ed275155c108eb6f843b6a26d053f122ab69724559dc8ed
-SIZE (rust/crates/wasm-bindgen-futures-0.4.43.crate) = 14207
-SHA256 (rust/crates/wasm-bindgen-macro-0.2.93.crate) = 585c4c91a46b072c92e908d99cb1dcdf95c5218eeb6f3bf1efa991ee7a68cccf
-SIZE (rust/crates/wasm-bindgen-macro-0.2.93.crate) = 6822
-SHA256 (rust/crates/wasm-bindgen-macro-support-0.2.93.crate) = afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836
-SIZE (rust/crates/wasm-bindgen-macro-support-0.2.93.crate) = 20642
-SHA256 (rust/crates/wasm-bindgen-shared-0.2.93.crate) = c62a0a307cb4a311d3a07867860911ca130c3494e8c2719593806c08bc5d0484
-SIZE (rust/crates/wasm-bindgen-shared-0.2.93.crate) = 7527
-SHA256 (rust/crates/web-sys-0.3.70.crate) = 26fdeaafd9bd129f65e7c031593c24d62186301e0c72c8978fa1678be7d532c0
-SIZE (rust/crates/web-sys-0.3.70.crate) = 615438
+SHA256 (rust/crates/wasi-0.11.1+wasi-snapshot-preview1.crate) = ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b
+SIZE (rust/crates/wasi-0.11.1+wasi-snapshot-preview1.crate) = 28477
+SHA256 (rust/crates/wasi-0.14.2+wasi-0.2.4.crate) = 9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3
+SIZE (rust/crates/wasi-0.14.2+wasi-0.2.4.crate) = 140921
+SHA256 (rust/crates/wasm-bindgen-0.2.100.crate) = 1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5
+SIZE (rust/crates/wasm-bindgen-0.2.100.crate) = 48288
+SHA256 (rust/crates/wasm-bindgen-backend-0.2.100.crate) = 2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6
+SIZE (rust/crates/wasm-bindgen-backend-0.2.100.crate) = 32111
+SHA256 (rust/crates/wasm-bindgen-futures-0.4.50.crate) = 555d470ec0bc3bb57890405e5d4322cc9ea83cebb085523ced7be4144dac1e61
+SIZE (rust/crates/wasm-bindgen-futures-0.4.50.crate) = 16181
+SHA256 (rust/crates/wasm-bindgen-macro-0.2.100.crate) = 7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407
+SIZE (rust/crates/wasm-bindgen-macro-0.2.100.crate) = 9663
+SHA256 (rust/crates/wasm-bindgen-macro-support-0.2.100.crate) = 8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de
+SIZE (rust/crates/wasm-bindgen-macro-support-0.2.100.crate) = 26243
+SHA256 (rust/crates/wasm-bindgen-shared-0.2.100.crate) = 1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d
+SIZE (rust/crates/wasm-bindgen-shared-0.2.100.crate) = 8570
+SHA256 (rust/crates/web-sys-0.3.77.crate) = 33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2
+SIZE (rust/crates/web-sys-0.3.77.crate) = 638246
+SHA256 (rust/crates/web-time-1.1.0.crate) = 5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb
+SIZE (rust/crates/web-time-1.1.0.crate) = 18026
SHA256 (rust/crates/winapi-0.3.9.crate) = 5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419
SIZE (rust/crates/winapi-0.3.9.crate) = 1200382
SHA256 (rust/crates/winapi-i686-pc-windows-gnu-0.4.0.crate) = ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6
@@ -727,65 +735,105 @@ SHA256 (rust/crates/winapi-util-0.1.9.crate) = cf221c93e13a30d793f7645a0e7762c55
SIZE (rust/crates/winapi-util-0.1.9.crate) = 12464
SHA256 (rust/crates/winapi-x86_64-pc-windows-gnu-0.4.0.crate) = 712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f
SIZE (rust/crates/winapi-x86_64-pc-windows-gnu-0.4.0.crate) = 2947998
-SHA256 (rust/crates/windows-registry-0.2.0.crate) = e400001bb720a623c1c69032f8e3e4cf09984deec740f007dd2b03ec864804b0
-SIZE (rust/crates/windows-registry-0.2.0.crate) = 10470
-SHA256 (rust/crates/windows-result-0.2.0.crate) = 1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e
-SIZE (rust/crates/windows-result-0.2.0.crate) = 12756
-SHA256 (rust/crates/windows-strings-0.1.0.crate) = 4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10
-SIZE (rust/crates/windows-strings-0.1.0.crate) = 13832
+SHA256 (rust/crates/windows-link-0.1.3.crate) = 5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a
+SIZE (rust/crates/windows-link-0.1.3.crate) = 6154
+SHA256 (rust/crates/windows-registry-0.5.3.crate) = 5b8a9ed28765efc97bbc954883f4e6796c33a06546ebafacbabee9696967499e
+SIZE (rust/crates/windows-registry-0.5.3.crate) = 13386
+SHA256 (rust/crates/windows-result-0.3.4.crate) = 56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6
+SIZE (rust/crates/windows-result-0.3.4.crate) = 13418
+SHA256 (rust/crates/windows-strings-0.4.2.crate) = 56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57
+SIZE (rust/crates/windows-strings-0.4.2.crate) = 13983
SHA256 (rust/crates/windows-sys-0.48.0.crate) = 677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9
SIZE (rust/crates/windows-sys-0.48.0.crate) = 2628884
SHA256 (rust/crates/windows-sys-0.52.0.crate) = 282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d
SIZE (rust/crates/windows-sys-0.52.0.crate) = 2576877
SHA256 (rust/crates/windows-sys-0.59.0.crate) = 1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b
SIZE (rust/crates/windows-sys-0.59.0.crate) = 2387323
+SHA256 (rust/crates/windows-sys-0.60.2.crate) = f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb
+SIZE (rust/crates/windows-sys-0.60.2.crate) = 2518479
SHA256 (rust/crates/windows-targets-0.48.5.crate) = 9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c
SIZE (rust/crates/windows-targets-0.48.5.crate) = 6904
SHA256 (rust/crates/windows-targets-0.52.6.crate) = 9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973
SIZE (rust/crates/windows-targets-0.52.6.crate) = 6403
+SHA256 (rust/crates/windows-targets-0.53.3.crate) = d5fe6031c4041849d7c496a8ded650796e7b6ecc19df1a431c1a363342e5dc91
+SIZE (rust/crates/windows-targets-0.53.3.crate) = 7099
SHA256 (rust/crates/windows_aarch64_gnullvm-0.48.5.crate) = 2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8
SIZE (rust/crates/windows_aarch64_gnullvm-0.48.5.crate) = 418492
SHA256 (rust/crates/windows_aarch64_gnullvm-0.52.6.crate) = 32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3
SIZE (rust/crates/windows_aarch64_gnullvm-0.52.6.crate) = 435718
+SHA256 (rust/crates/windows_aarch64_gnullvm-0.53.0.crate) = 86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764
+SIZE (rust/crates/windows_aarch64_gnullvm-0.53.0.crate) = 782443
SHA256 (rust/crates/windows_aarch64_msvc-0.48.5.crate) = dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc
SIZE (rust/crates/windows_aarch64_msvc-0.48.5.crate) = 798483
SHA256 (rust/crates/windows_aarch64_msvc-0.52.6.crate) = 09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469
SIZE (rust/crates/windows_aarch64_msvc-0.52.6.crate) = 832615
+SHA256 (rust/crates/windows_aarch64_msvc-0.53.0.crate) = c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c
+SIZE (rust/crates/windows_aarch64_msvc-0.53.0.crate) = 834446
SHA256 (rust/crates/windows_i686_gnu-0.48.5.crate) = a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e
SIZE (rust/crates/windows_i686_gnu-0.48.5.crate) = 844891
SHA256 (rust/crates/windows_i686_gnu-0.52.6.crate) = 8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b
SIZE (rust/crates/windows_i686_gnu-0.52.6.crate) = 880402
+SHA256 (rust/crates/windows_i686_gnu-0.53.0.crate) = c1dc67659d35f387f5f6c479dc4e28f1d4bb90ddd1a5d3da2e5d97b42d6272c3
+SIZE (rust/crates/windows_i686_gnu-0.53.0.crate) = 936973
SHA256 (rust/crates/windows_i686_gnullvm-0.52.6.crate) = 0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66
SIZE (rust/crates/windows_i686_gnullvm-0.52.6.crate) = 475940
+SHA256 (rust/crates/windows_i686_gnullvm-0.53.0.crate) = 9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11
+SIZE (rust/crates/windows_i686_gnullvm-0.53.0.crate) = 854056
SHA256 (rust/crates/windows_i686_msvc-0.48.5.crate) = 8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406
SIZE (rust/crates/windows_i686_msvc-0.48.5.crate) = 864300
SHA256 (rust/crates/windows_i686_msvc-0.52.6.crate) = 240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66
SIZE (rust/crates/windows_i686_msvc-0.52.6.crate) = 901163
+SHA256 (rust/crates/windows_i686_msvc-0.53.0.crate) = 581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d
+SIZE (rust/crates/windows_i686_msvc-0.53.0.crate) = 903450
SHA256 (rust/crates/windows_x86_64_gnu-0.48.5.crate) = 53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e
SIZE (rust/crates/windows_x86_64_gnu-0.48.5.crate) = 801619
SHA256 (rust/crates/windows_x86_64_gnu-0.52.6.crate) = 147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78
SIZE (rust/crates/windows_x86_64_gnu-0.52.6.crate) = 836363
+SHA256 (rust/crates/windows_x86_64_gnu-0.53.0.crate) = 2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba
+SIZE (rust/crates/windows_x86_64_gnu-0.53.0.crate) = 902585
SHA256 (rust/crates/windows_x86_64_gnullvm-0.48.5.crate) = 0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc
SIZE (rust/crates/windows_x86_64_gnullvm-0.48.5.crate) = 418486
SHA256 (rust/crates/windows_x86_64_gnullvm-0.52.6.crate) = 24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d
SIZE (rust/crates/windows_x86_64_gnullvm-0.52.6.crate) = 435707
+SHA256 (rust/crates/windows_x86_64_gnullvm-0.53.0.crate) = 0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57
+SIZE (rust/crates/windows_x86_64_gnullvm-0.53.0.crate) = 782434
SHA256 (rust/crates/windows_x86_64_msvc-0.48.5.crate) = ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538
SIZE (rust/crates/windows_x86_64_msvc-0.48.5.crate) = 798412
SHA256 (rust/crates/windows_x86_64_msvc-0.52.6.crate) = 589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec
SIZE (rust/crates/windows_x86_64_msvc-0.52.6.crate) = 832564
-SHA256 (rust/crates/winnow-0.6.18.crate) = 68a9bda4691f099d435ad181000724da8e5899daa10713c2d432552b9ccd3a6f
-SIZE (rust/crates/winnow-0.6.18.crate) = 163357
-SHA256 (rust/crates/xattr-1.3.1.crate) = 8da84f1a25939b27f6820d92aed108f83ff920fdf11a7b19366c27c4cda81d4f
-SIZE (rust/crates/xattr-1.3.1.crate) = 12580
-SHA256 (rust/crates/zerocopy-0.7.35.crate) = 1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0
-SIZE (rust/crates/zerocopy-0.7.35.crate) = 152645
-SHA256 (rust/crates/zerocopy-derive-0.7.35.crate) = fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e
-SIZE (rust/crates/zerocopy-derive-0.7.35.crate) = 37829
+SHA256 (rust/crates/windows_x86_64_msvc-0.53.0.crate) = 271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486
+SIZE (rust/crates/windows_x86_64_msvc-0.53.0.crate) = 834400
+SHA256 (rust/crates/winnow-0.7.12.crate) = f3edebf492c8125044983378ecb5766203ad3b4c2f7a922bd7dd207f6d443e95
+SIZE (rust/crates/winnow-0.7.12.crate) = 174403
+SHA256 (rust/crates/wit-bindgen-rt-0.39.0.crate) = 6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1
+SIZE (rust/crates/wit-bindgen-rt-0.39.0.crate) = 12241
+SHA256 (rust/crates/writeable-0.6.1.crate) = ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb
+SIZE (rust/crates/writeable-0.6.1.crate) = 24068
+SHA256 (rust/crates/xattr-1.5.1.crate) = af3a19837351dc82ba89f8a125e22a3c475f05aba604acc023d62b2739ae2909
+SIZE (rust/crates/xattr-1.5.1.crate) = 14565
+SHA256 (rust/crates/yoke-0.8.0.crate) = 5f41bb01b8226ef4bfd589436a297c53d118f65921786300e427be8d487695cc
+SIZE (rust/crates/yoke-0.8.0.crate) = 28726
+SHA256 (rust/crates/yoke-derive-0.8.0.crate) = 38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6
+SIZE (rust/crates/yoke-derive-0.8.0.crate) = 7521
+SHA256 (rust/crates/zerocopy-0.8.26.crate) = 1039dd0d3c310cf05de012d8a39ff557cb0d23087fd44cad61df08fc31907a2f
+SIZE (rust/crates/zerocopy-0.8.26.crate) = 249223
+SHA256 (rust/crates/zerocopy-derive-0.8.26.crate) = 9ecf5b4cc5364572d7f4c329661bcc82724222973f2cab6f050a4e5c22f75181
+SIZE (rust/crates/zerocopy-derive-0.8.26.crate) = 88080
+SHA256 (rust/crates/zerofrom-0.1.6.crate) = 50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5
+SIZE (rust/crates/zerofrom-0.1.6.crate) = 5669
+SHA256 (rust/crates/zerofrom-derive-0.1.6.crate) = d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502
+SIZE (rust/crates/zerofrom-derive-0.1.6.crate) = 8305
SHA256 (rust/crates/zeroize-1.8.1.crate) = ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde
SIZE (rust/crates/zeroize-1.8.1.crate) = 20029
+SHA256 (rust/crates/zerotrie-0.2.2.crate) = 36f0bbd478583f79edad978b407914f61b2972f5af6fa089686016be8f9af595
+SIZE (rust/crates/zerotrie-0.2.2.crate) = 74423
+SHA256 (rust/crates/zerovec-0.11.2.crate) = 4a05eb080e015ba39cc9e23bbe5e7fb04d5fb040350f99f34e338d5fdd294428
+SIZE (rust/crates/zerovec-0.11.2.crate) = 124500
+SHA256 (rust/crates/zerovec-derive-0.11.1.crate) = 5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f
+SIZE (rust/crates/zerovec-derive-0.11.1.crate) = 21294
SHA256 (rust/crates/zip-0.6.6.crate) = 760394e246e4c28189f19d488c058bf16f564016aefac5d32bb1f3b51d5e9261
SIZE (rust/crates/zip-0.6.6.crate) = 65789
-SHA256 (rust/crates/zipsign-api-0.1.2.crate) = 6413a546ada9dbcd0b9a3e0b0880581279e35047bce9797e523b3408e1df607c
-SIZE (rust/crates/zipsign-api-0.1.2.crate) = 12997
-SHA256 (epi052-feroxbuster-v2.11.0_GH0.tar.gz) = 61aa0a5654584c015ff58df69091ec40919b38235b20862975a8ab0649467a83
-SIZE (epi052-feroxbuster-v2.11.0_GH0.tar.gz) = 11594148
+SHA256 (rust/crates/zipsign-api-0.1.5.crate) = dba6063ff82cdbd9a765add16d369abe81e520f836054e997c2db217ceca40c0
+SIZE (rust/crates/zipsign-api-0.1.5.crate) = 17451
+SHA256 (epi052-feroxbuster-v2.13.0_GH0.tar.gz) = 41b3131870c07e3bb93f769444c1e59d3ec370a1c7195bf8bfa192ef179bcf01
+SIZE (epi052-feroxbuster-v2.13.0_GH0.tar.gz) = 11622709
diff --git a/www/filebrowser-quantum/Makefile b/www/filebrowser-quantum/Makefile
index b8a402d60aa2..5738cca2a30f 100644
--- a/www/filebrowser-quantum/Makefile
+++ b/www/filebrowser-quantum/Makefile
@@ -1,7 +1,6 @@
PORTNAME= filebrowser-quantum
DISTVERSIONPREFIX= v
-DISTVERSION= 0.8.8-beta
-PORTREVISION= 1
+DISTVERSION= 0.8.11-beta
CATEGORIES= www
MASTER_SITES= LOCAL/dtxdf/${PORTNAME}/
DISTFILES= ${PORTNAME}-${DISTVERSIONPREFIX}${DISTVERSION}.frontend${EXTRACT_SUFX} \
diff --git a/www/filebrowser-quantum/distinfo b/www/filebrowser-quantum/distinfo
index 5aa8814ff541..4c8c5b7ae49f 100644
--- a/www/filebrowser-quantum/distinfo
+++ b/www/filebrowser-quantum/distinfo
@@ -1,7 +1,7 @@
-TIMESTAMP = 1760141546
-SHA256 (filebrowser-quantum-v0.8.8-beta.frontend.tar.gz) = 9311198a33fc58221c205314a81475576fc645f7cc52bb4574a0698fc934ddd1
-SIZE (filebrowser-quantum-v0.8.8-beta.frontend.tar.gz) = 1925261
-SHA256 (filebrowser-quantum-v0.8.8-beta.vendor.tar.gz) = 0d5d83155905231518175b1c30fd47bc4322e71e3fc0fc87b19ba70be312a988
-SIZE (filebrowser-quantum-v0.8.8-beta.vendor.tar.gz) = 67861899
-SHA256 (gtsteffaniak-filebrowser-v0.8.8-beta_GH0.tar.gz) = e4cbf80c38c4cdcf1db799cb055a8cd0966bee7616d38499e584801ca1c83709
-SIZE (gtsteffaniak-filebrowser-v0.8.8-beta_GH0.tar.gz) = 4608205
+TIMESTAMP = 1761626828
+SHA256 (filebrowser-quantum-v0.8.11-beta.frontend.tar.gz) = eb7e3cefaea5ca294018e485529c32ca19bfb928cb79d0e88bea6e61be8046bb
+SIZE (filebrowser-quantum-v0.8.11-beta.frontend.tar.gz) = 1742849
+SHA256 (filebrowser-quantum-v0.8.11-beta.vendor.tar.gz) = b3121ca408d9dfaa43d56135d22c44b2a4e92766130b6a06bed842ec773231f1
+SIZE (filebrowser-quantum-v0.8.11-beta.vendor.tar.gz) = 68014721
+SHA256 (gtsteffaniak-filebrowser-v0.8.11-beta_GH0.tar.gz) = db5198c8c06846ad3ef9bfb256b6466a03fc54d8e244553d6fab3a965dd3f0e0
+SIZE (gtsteffaniak-filebrowser-v0.8.11-beta_GH0.tar.gz) = 4457656
diff --git a/www/filebrowser/Makefile b/www/filebrowser/Makefile
index 3cba344a872d..03c3ed0c329c 100644
--- a/www/filebrowser/Makefile
+++ b/www/filebrowser/Makefile
@@ -1,7 +1,6 @@
PORTNAME= filebrowser
DISTVERSIONPREFIX= v
-DISTVERSION= 2.44.0
-PORTREVISION= 2
+DISTVERSION= 2.44.2
CATEGORIES= www
MASTER_SITES= LOCAL/dtxdf/${PORTNAME}/
DISTFILES= ${PORTNAME}-${DISTVERSIONPREFIX}${DISTVERSION}.frontend${EXTRACT_SUFX}
diff --git a/www/filebrowser/distinfo b/www/filebrowser/distinfo
index 5879d4fb4ee3..aa3520ba7b57 100644
--- a/www/filebrowser/distinfo
+++ b/www/filebrowser/distinfo
@@ -1,7 +1,7 @@
-TIMESTAMP = 1759459477
-SHA256 (go/www_filebrowser/filebrowser-filebrowser-v2.44.0_GH0/filebrowser-v2.44.0.frontend.tar.gz) = fb434faf31ed3b1ee3a8402d2a673b148602b220576ac0f3cbb712ccafd05d2f
-SIZE (go/www_filebrowser/filebrowser-filebrowser-v2.44.0_GH0/filebrowser-v2.44.0.frontend.tar.gz) = 2337854
-SHA256 (go/www_filebrowser/filebrowser-filebrowser-v2.44.0_GH0/go.mod) = 2d9ea37e7c9c4de9f21ebc040de03ea38bb5fd35c89a770d2535240a54c6df19
-SIZE (go/www_filebrowser/filebrowser-filebrowser-v2.44.0_GH0/go.mod) = 3248
-SHA256 (go/www_filebrowser/filebrowser-filebrowser-v2.44.0_GH0/filebrowser-filebrowser-v2.44.0_GH0.tar.gz) = b2ceb3c9bbfb6e0e2c31764b8ff1d7788fa965081eb3d43452b6a5065027f71f
-SIZE (go/www_filebrowser/filebrowser-filebrowser-v2.44.0_GH0/filebrowser-filebrowser-v2.44.0_GH0.tar.gz) = 5295078
+TIMESTAMP = 1761602202
+SHA256 (go/www_filebrowser/filebrowser-filebrowser-v2.44.2_GH0/filebrowser-v2.44.2.frontend.tar.gz) = eb01e1430a0c86e3c1eb5936962a0cd52c73ce325307ca8107f12870104e3ccf
+SIZE (go/www_filebrowser/filebrowser-filebrowser-v2.44.2_GH0/filebrowser-v2.44.2.frontend.tar.gz) = 2338827
+SHA256 (go/www_filebrowser/filebrowser-filebrowser-v2.44.2_GH0/go.mod) = 2d9ea37e7c9c4de9f21ebc040de03ea38bb5fd35c89a770d2535240a54c6df19
+SIZE (go/www_filebrowser/filebrowser-filebrowser-v2.44.2_GH0/go.mod) = 3248
+SHA256 (go/www_filebrowser/filebrowser-filebrowser-v2.44.2_GH0/filebrowser-filebrowser-v2.44.2_GH0.tar.gz) = a1825ead2a890fb5b7d6c73d3a5f4518fb8479b0a1c10aa6ce5ba495ebaa4b65
+SIZE (go/www_filebrowser/filebrowser-filebrowser-v2.44.2_GH0/filebrowser-filebrowser-v2.44.2_GH0.tar.gz) = 5296320
diff --git a/www/firefox/Makefile b/www/firefox/Makefile
index 360f8cc237ea..1bf4b7ab3de6 100644
--- a/www/firefox/Makefile
+++ b/www/firefox/Makefile
@@ -1,10 +1,9 @@
PORTNAME= firefox
-DISTVERSION= 144.0
-PORTREVISION= 2
+DISTVERSION= 144.0.2
PORTEPOCH= 2
CATEGORIES= www wayland
MASTER_SITES= MOZILLA/${PORTNAME}/releases/${DISTVERSION}${DISTVERSIONSUFFIX}/source \
- MOZILLA/${PORTNAME}/candidates/${DISTVERSION}${DISTVERSIONSUFFIX}-candidates/build2/source
+ MOZILLA/${PORTNAME}/candidates/${DISTVERSION}${DISTVERSIONSUFFIX}-candidates/build1/source
DISTFILES= ${DISTNAME}.source${EXTRACT_SUFX}
MAINTAINER= gecko@FreeBSD.org
diff --git a/www/firefox/distinfo b/www/firefox/distinfo
index 8e8077624997..985b123dc0a0 100644
--- a/www/firefox/distinfo
+++ b/www/firefox/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1760048842
-SHA256 (firefox-144.0.source.tar.xz) = 612064a55610f0dfddfbff681930bea16f7593b40bd70c86e0518dc85d096b1f
-SIZE (firefox-144.0.source.tar.xz) = 658857488
+TIMESTAMP = 1761589296
+SHA256 (firefox-144.0.2.source.tar.xz) = eac4722ed259008d73006c4894c18d2871702c661d14e27505812351df62806b
+SIZE (firefox-144.0.2.source.tar.xz) = 646304416
diff --git a/www/forgejo-lts/Makefile b/www/forgejo-lts/Makefile
new file mode 100644
index 000000000000..4c6d2ebe4db1
--- /dev/null
+++ b/www/forgejo-lts/Makefile
@@ -0,0 +1,91 @@
+PORTNAME= forgejo
+DISTVERSIONPREFIX= v
+DISTVERSION= 11.0.7
+CATEGORIES= www
+MASTER_SITES= https://codeberg.org/forgejo/forgejo/releases/download/${DISTVERSIONFULL}/
+PKGNAMESUFFIX= -lts
+DISTNAME= forgejo-src-${DISTVERSION}
+
+MAINTAINER= des@FreeBSD.org
+COMMENT= Compact self-hosted Git forge
+WWW= https://forgejo.org/
+
+LICENSE= MIT
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+RUN_DEPENDS= git:devel/git
+
+USES= cpe gmake go:1.25,no_targets
+USE_RC_SUBR= forgejo
+
+PIE_UNSAFE= yes
+
+CONFLICTS_INSTALL= forgejo forgejo7
+
+EXTRACT_AFTER_ARGS= --strip-components 1
+DBDIR= /var/db/forgejo
+LOGDIR= /var/log/forgejo
+SUB_FILES= app.ini.sample pkg-message
+SUB_LIST= GITUSER=${USERS} DBDIR=${DBDIR} LOGDIR=${LOGDIR}
+PLIST_SUB= DBDIR=${DBDIR} LOGDIR=${LOGDIR}
+
+NO_WRKSUBDIR= yes
+
+USERS= git
+GROUPS= git
+
+PORTDATA= *
+
+OPTIONS_DEFINE= BINDATA GIT_LFS PAM SQLITE
+OPTIONS_DEFAULT= BINDATA GIT_LFS PAM SQLITE
+OPTIONS_SUB= yes
+
+BINDATA_DESC= Build a single monolithic binary, with all assets included
+GIT_LFS_DESC= Support for Git Large File Storage (LFS)
+PAM_DESC= Enable support for PAM
+
+BINDATA_VARS= GO_TAGS+=bindata
+GIT_LFS_RUN_DEPENDS= git-lfs:devel/git-lfs
+PAM_VARS= GO_TAGS+=pam
+SQLITE_VARS= GO_TAGS+="sqlite sqlite_unlock_notify"
+
+SSP_UNSAFE= true
+LDFLAGS= "'-X "forgejo.org/modules/setting.CustomPath=${PREFIX}/etc/forgejo"'" \
+ "'-X "forgejo.org/modules/setting.AppWorkPath=${DATADIR}"'"
+MAKE_ARGS= GOFLAGS="-buildvcs=false" \
+ GOPATH=${WRKDIR} \
+ TAGS="${GO_TAGS}"
+ALL_TARGET= backend
+MAKE_JOBS_UNSAFE= yes
+
+.include <bsd.port.options.mk>
+
+.if ${OPSYS} == FreeBSD
+DAEMONARGS= -S -l \$${forgejo_facility} -s \$${forgejo_priority} -T \
+ \$${name}
+.else
+DAEMONARGS= -f
+.endif
+SUB_LIST+= DAEMONARGS="${DAEMONARGS}"
+
+# Too lazy to figure out why go install won't work.
+do-install:
+# Go binary is statically linked and cannot be stripped, so use
+# INSTALL_SCRIPT.
+ ${INSTALL_SCRIPT} ${WRKSRC}/gitea \
+ ${STAGEDIR}${PREFIX}/sbin/forgejo
+ @${MKDIR} ${STAGEDIR}${ETCDIR}/conf
+ ${INSTALL_DATA} ${WRKDIR}/app.ini.sample \
+ ${STAGEDIR}${ETCDIR}/conf/app.ini.sample
+ ${INSTALL_DATA} ${WRKSRC}/custom/conf/app.example.ini \
+ ${STAGEDIR}${ETCDIR}/conf/app.ini.defaults
+ ${MKDIR} ${STAGEDIR}${DATADIR}
+ ${MKDIR} ${STAGEDIR}${DBDIR}/data
+ ${MKDIR} ${STAGEDIR}${DBDIR}/forgejo-repositories
+ ${MKDIR} ${STAGEDIR}${LOGDIR}
+
+do-install-BINDATA-off:
+ cd ${WRKSRC} && \
+ ${COPYTREE_SHARE} "options public templates" ${STAGEDIR}${DATADIR}
+
+.include <bsd.port.mk>
diff --git a/www/forgejo-lts/distinfo b/www/forgejo-lts/distinfo
new file mode 100644
index 000000000000..29ed500307b8
--- /dev/null
+++ b/www/forgejo-lts/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1761594357
+SHA256 (forgejo-src-11.0.7.tar.gz) = 9b8cf1d593e855f35c8dd02364a62e9bb289cfe23d82c0c99c84e60caf061459
+SIZE (forgejo-src-11.0.7.tar.gz) = 55672879
diff --git a/www/forgejo-lts/files/app.ini.sample.in b/www/forgejo-lts/files/app.ini.sample.in
new file mode 100644
index 000000000000..f06b9819cc84
--- /dev/null
+++ b/www/forgejo-lts/files/app.ini.sample.in
@@ -0,0 +1,94 @@
+#
+# Sample Configuration for Forgejo using SQLite
+#
+# For information on the available settings, consult the online
+# documentation, or see the accompanying file app.ini.defaults, which
+# contains the settings incorporated into the forgejo binary.
+#
+# This sample configuration runs Forgejo with a local database. Before
+# running this configuration, make sure to change the INTERNAL_TOKEN,
+# JWT_SECRET, and SECRET_KEY variables. SECRET_KEY is a password of your
+# choosing, INTERNAL_TOKEN is a 64-byte random number in BASE64 encoding,
+# JWT_SECRET is a 32-byte random number in BASE64 encoding.
+#
+# You can generate appropriate values using:
+# gitea generate secret [INTERNAL_TOKEN|JWT_SECRET|LFS_JWT_SECRET|SECRET_KEY]
+# and then copy that output to the appropriate place in this file.
+#
+# You can let Forgejo add these to the config for you; you need to make
+# app.ini writeable by the git user.
+#
+# There are no pre-configured users; the first user to register becomes an
+# admin. In this sample configuration, the HTTP server only listens on
+# localhost.
+#
+# If you'd rather use the web-based installer, remove this conf/app.ini file
+# and make %%ETCDIR%%/conf writeable to the git user.
+
+APP_NAME = Forgejo: A self-hosted lightweight software forge
+RUN_MODE = prod
+RUN_USER = %%GITUSER%%
+
+[database]
+DB_TYPE = sqlite3
+HOST = 127.0.0.1:3306
+NAME = forgejo
+PASSWD =
+PATH = %%DBDIR%%/forgejo.db
+SSL_MODE = disable
+USER = root
+
+[indexer]
+ISSUE_INDEXER_PATH = %%DBDIR%%/indexers/issues.bleve
+
+[log]
+LEVEL = Info
+MODE = file
+ROOT_PATH = %%LOGDIR%%
+
+[mailer]
+ENABLED = false
+
+[oauth2]
+JWT_SECRET = CHANGE_ME
+
+[picture]
+AVATAR_UPLOAD_PATH = %%DBDIR%%/data/avatars
+DISABLE_GRAVATAR = true
+ENABLE_FEDERATED_AVATAR = false
+
+[repository]
+ROOT = %%DBDIR%%/forgejo-repositories
+# Forgejo's default is 'bash', so if you have bash installed, you can comment
+# this out.
+SCRIPT_TYPE = sh
+
+[repository.upload]
+TEMP_PATH = %%DBDIR%%/data/tmp/uploads
+
+[security]
+INSTALL_LOCK = true
+INTERNAL_TOKEN = CHANGE_ME
+SECRET_KEY = CHANGE_ME
+
+[session]
+PROVIDER = file
+PROVIDER_CONFIG = %%DBDIR%%/data/sessions
+
+[server]
+APP_DATA_PATH = %%DBDIR%%/data
+DISABLE_SSH = false
+DOMAIN = localhost
+HTTP_ADDR = 127.0.0.1
+HTTP_PORT = 3000
+OFFLINE_MODE = false
+ROOT_URL = http://localhost:3000/
+SSH_DOMAIN = %(DOMAIN)s
+SSH_PORT = 22
+
+[service]
+DISABLE_REGISTRATION = false
+ENABLE_CAPTCHA = true
+ENABLE_NOTIFY_MAIL = false
+REGISTER_EMAIL_CONFIRM = false
+REQUIRE_SIGNIN_VIEW = false
diff --git a/www/forgejo-lts/files/forgejo.in b/www/forgejo-lts/files/forgejo.in
new file mode 100644
index 000000000000..1474bd63438a
--- /dev/null
+++ b/www/forgejo-lts/files/forgejo.in
@@ -0,0 +1,67 @@
+#!/bin/sh
+
+# PROVIDE: forgejo
+# REQUIRE: NETWORKING SYSLOG
+# KEYWORD: shutdown
+#
+# Add the following lines to /etc/rc.conf to enable forgejo:
+#
+#forgejo_enable="YES"
+
+. /etc/rc.subr
+
+name="forgejo"
+rcvar="forgejo_enable"
+
+load_rc_config $name
+
+: ${forgejo_user:="%%GITUSER%%"}
+: ${forgejo_enable:="NO"}
+: ${forgejo_configcheck_enable:="YES"}
+: ${forgejo_facility:="daemon"}
+: ${forgejo_priority:="info"}
+: ${forgejo_custom:="%%PREFIX%%/etc/${name}"}
+
+command="%%PREFIX%%/sbin/${name} web"
+procname="%%PREFIX%%/sbin/${name}"
+githome="$(eval echo ~${forgejo_user})"
+
+pidfile="/var/run/${name}.pid"
+
+start_cmd="${name}_start"
+start_precmd="${name}_prestart"
+
+forgejo_start() {
+ for d in %%DBDIR%% %%LOGDIR%%; do
+ if [ ! -e "$d" ]; then
+ mkdir "$d"
+ chown ${forgejo_user} "$d"
+ fi
+ done
+ /usr/sbin/daemon %%DAEMONARGS%% \
+ -u ${forgejo_user} -p ${pidfile} \
+ /usr/bin/env -i \
+ "FORGEJO_CUSTOM=${forgejo_custom}" \
+ "HOME=${githome}" \
+ "PATH=%%PREFIX%%/bin:${PATH}" \
+ "USER=${forgejo_user}" \
+ $command
+}
+
+forgejo_prestart() {
+ if checkyesno forgejo_configcheck_enable; then
+ if ! errstr=$(/usr/bin/env -i \
+ "FORGEJO_CUSTOM=${forgejo_custom}" \
+ "HOME=${githome}" \
+ "PATH=%%PREFIX%%/bin:${PATH}" \
+ "USER=${forgejo_user}" \
+ /usr/bin/su -m ${forgejo_user} -c \
+ "%%PREFIX%%/sbin/${name} doctor check" 2>&1); then
+ rc=$?
+ echo "$errstr" >&2
+ return $rc
+ fi
+ fi
+}
+
+run_rc_command "$1"
diff --git a/www/forgejo-lts/files/pkg-message.in b/www/forgejo-lts/files/pkg-message.in
new file mode 100644
index 000000000000..17b47fd6688b
--- /dev/null
+++ b/www/forgejo-lts/files/pkg-message.in
@@ -0,0 +1,35 @@
+[
+{ type: install
+ message: <<EOM
+Before starting forgejo for the first time, you must set a number of
+secrets in the configuration file. For your convenience, a sample file
+has been copied to %%PREFIX%%/etc/forgejo/conf/app.ini.
+
+You need to replace every occurence of CHANGE_ME in the file with
+sensible values. Please refer to the official documentation at
+https://forgejo.org for details.
+
+You will also likely need to create directories for persistent storage.
+Run
+ su -m git -c 'forgejo doctor check'
+to check if all prerequisites have been met.
+EOM
+}
+{ type: upgrade
+ maximum_version: "1.21"
+ message: <<EOM
+Since forgejo version 7, the startup script will run forgejo doctor check
+to verify that forgejo can be started successfully. If you are sure that
+forgejo will start even if doctor has identified an issue, you can disable
+the check by setting forgejo_configcheck_enabled=NO in rc.conf.
+EOM
+}
+{ type: upgrade
+ maximum_version: "8.0.2"
+ message: <<EOM
+Breaking changes: upgrading from Forgejo 8 changes the semantics of some
+authentication, breaking previously working API calls. Please see the
+release notes for details: https://codeberg.org/forgejo/forgejo/milestone/7235
+EOM
+}
+]
diff --git a/www/forgejo-lts/pkg-descr b/www/forgejo-lts/pkg-descr
new file mode 100644
index 000000000000..f7e721e96eea
--- /dev/null
+++ b/www/forgejo-lts/pkg-descr
@@ -0,0 +1,5 @@
+A self-hosted Git service.
+
+Forgejo is a community managed soft-fork of Gitea, which is a fork of Gogs,
+lightweight code hosting solution written in Go and published under the MIT
+license.
diff --git a/www/forgejo-lts/pkg-plist b/www/forgejo-lts/pkg-plist
new file mode 100644
index 000000000000..133c23b66678
--- /dev/null
+++ b/www/forgejo-lts/pkg-plist
@@ -0,0 +1,8 @@
+@sample %%ETCDIR%%/conf/app.ini.sample
+%%ETCDIR%%/conf/app.ini.defaults
+sbin/forgejo
+@dir %%DATADIR%%
+@dir(git,git,755) %%DBDIR%%
+@dir(git,git,755) %%DBDIR%%/data
+@dir(git,git,755) %%DBDIR%%/forgejo-repositories
+@dir(git,git,755) %%LOGDIR%%
diff --git a/www/forgejo/Makefile b/www/forgejo/Makefile
index 1b2111c3be11..92df5e9e5661 100644
--- a/www/forgejo/Makefile
+++ b/www/forgejo/Makefile
@@ -1,6 +1,6 @@
PORTNAME= forgejo
DISTVERSIONPREFIX= v
-DISTVERSION= 13.0.1
+DISTVERSION= 13.0.2
CATEGORIES= www
MASTER_SITES= https://codeberg.org/forgejo/forgejo/releases/download/${DISTVERSIONFULL}/
DISTNAME= forgejo-src-${DISTVERSION}
@@ -14,12 +14,12 @@ LICENSE_FILE= ${WRKSRC}/LICENSE
RUN_DEPENDS= git:devel/git
-USES= cpe gmake go:no_targets
+USES= cpe gmake go:1.25,no_targets
USE_RC_SUBR= forgejo
PIE_UNSAFE= yes
-CONFLICTS_INSTALL= forgejo[0-79]*
+CONFLICTS_INSTALL= forgejo-lts forgejo7
EXTRACT_AFTER_ARGS= --strip-components 1
DBDIR= /var/db/forgejo
diff --git a/www/forgejo/distinfo b/www/forgejo/distinfo
index 4c444383e3ce..ec6731f34bd8 100644
--- a/www/forgejo/distinfo
+++ b/www/forgejo/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1761217700
-SHA256 (forgejo-src-13.0.1.tar.gz) = 98cb495cd07881d90aa32cf143facef4abba2b732684ab1d938af9fa3ab12f26
-SIZE (forgejo-src-13.0.1.tar.gz) = 55449730
+TIMESTAMP = 1761594542
+SHA256 (forgejo-src-13.0.2.tar.gz) = 6731d5e73a025c1a04aba0f84caf80886d5be0031f4c154ac63026e7fe30918a
+SIZE (forgejo-src-13.0.2.tar.gz) = 55481937
diff --git a/www/forgejo/files/forgejo.in b/www/forgejo/files/forgejo.in
index 516f63862e60..1474bd63438a 100644
--- a/www/forgejo/files/forgejo.in
+++ b/www/forgejo/files/forgejo.in
@@ -20,7 +20,6 @@ load_rc_config $name
: ${forgejo_configcheck_enable:="YES"}
: ${forgejo_facility:="daemon"}
: ${forgejo_priority:="info"}
-: ${forgejo_shared:="%%PREFIX%%/share/${name}"}
: ${forgejo_custom:="%%PREFIX%%/etc/${name}"}
command="%%PREFIX%%/sbin/${name} web"
@@ -42,7 +41,6 @@ forgejo_start() {
/usr/sbin/daemon %%DAEMONARGS%% \
-u ${forgejo_user} -p ${pidfile} \
/usr/bin/env -i \
- "FORGEJO_WORK_DIR=${forgejo_shared}" \
"FORGEJO_CUSTOM=${forgejo_custom}" \
"HOME=${githome}" \
"PATH=%%PREFIX%%/bin:${PATH}" \
@@ -52,13 +50,16 @@ forgejo_start() {
forgejo_prestart() {
if checkyesno forgejo_configcheck_enable; then
- if su -m ${forgejo_user} -c "FORGEJO_CUSTOM=${forgejo_custom} \
- %%PREFIX%%/sbin/${name} doctor check >/dev/null"; then
- else
- echo "cannot start ${name} because of configuration errors. Run" >&2
- echo " su -m git -c '${name} doctor check'" >&2
- echo "for further details"
- return 1
+ if ! errstr=$(/usr/bin/env -i \
+ "FORGEJO_CUSTOM=${forgejo_custom}" \
+ "HOME=${githome}" \
+ "PATH=%%PREFIX%%/bin:${PATH}" \
+ "USER=${forgejo_user}" \
+ /usr/bin/su -m ${forgejo_user} -c \
+ "%%PREFIX%%/sbin/${name} doctor check" 2>&1); then
+ rc=$?
+ echo "$errstr" >&2
+ return $rc
fi
fi
}
diff --git a/www/forgejo7/Makefile b/www/forgejo7/Makefile
index 0064e8371f59..d616950a6f83 100644
--- a/www/forgejo7/Makefile
+++ b/www/forgejo7/Makefile
@@ -1,7 +1,7 @@
PORTNAME= forgejo
DISTVERSIONPREFIX= v
DISTVERSION= 7.0.14
-PORTREVISION= 2
+PORTREVISION= 3
CATEGORIES= www
MASTER_SITES= https://codeberg.org/forgejo/forgejo/releases/download/${DISTVERSIONPREFIX}${DISTVERSION}/
PKGNAMESUFFIX= 7
@@ -14,12 +14,15 @@ WWW= https://forgejo.org/
LICENSE= MIT
LICENSE_FILE= ${WRKSRC}/LICENSE
+DEPRECATED= Obsolete, please switch to www/forgejo-lts
+EXPIRATION_DATE= 2025-12-31
+
RUN_DEPENDS= git:devel/git
USES= cpe gmake go:1.23,no_targets
USE_RC_SUBR= forgejo
-CONFLICTS_INSTALL= forgejo forgejo[0-689]*
+CONFLICTS_INSTALL= forgejo forgejo-lts
EXTRACT_AFTER_ARGS= --strip-components 1
SUB_FILES= app.ini.sample pkg-message
diff --git a/www/freenginx-devel/Makefile b/www/freenginx-devel/Makefile
index f6c640990f29..790ecfd0677a 100644
--- a/www/freenginx-devel/Makefile
+++ b/www/freenginx-devel/Makefile
@@ -1,6 +1,7 @@
PORTNAME= freenginx
PORTVERSION= ${NGINX_VERSION}
.include "version.mk"
+PORTREVISION= 1
CATEGORIES= www
MASTER_SITES= https://freenginx.org/download/ \
LOCAL/osa
diff --git a/www/freenginx-devel/Makefile.extmod b/www/freenginx-devel/Makefile.extmod
index a9ce4011126c..4815582d4ddb 100644
--- a/www/freenginx-devel/Makefile.extmod
+++ b/www/freenginx-devel/Makefile.extmod
@@ -232,7 +232,7 @@ NAXSI_VARS= DSO_EXTMODS+=naxsi NAXSI_SUBDIR=/naxsi_src
NAXSI_EXTRA_PATCHES= ${PATCHDIR}/extra-patch-naxsi-libinjection__sqli_c \
${PATCHDIR}/extra-patch-naxsi_config
-NJS_GH_TUPLE= nginx:njs:0.9.1:njs
+NJS_GH_TUPLE= nginx:njs:0.9.3:njs
NJS_CONFIGURE_ON= --with-cc-opt="-I ${LOCALBASE}/include/quickjs"
NJS_LIB_DEPENDS= libquickjs.so:lang/quickjs \
libxml2.so:textproc/libxml2 \
diff --git a/www/freenginx-devel/distinfo b/www/freenginx-devel/distinfo
index 2b86aa7775b8..a2ebf1d107d6 100644
--- a/www/freenginx-devel/distinfo
+++ b/www/freenginx-devel/distinfo
@@ -1,4 +1,4 @@
-TIMESTAMP = 1760882414
+TIMESTAMP = 1761513083
SHA256 (freenginx-1.29.2.tar.gz) = b2645b829146bf509937423c993d1596214df46c4afdd146543f379151aaed59
SIZE (freenginx-1.29.2.tar.gz) = 1241366
SHA256 (nginx_mogilefs_module-1.0.4.tar.gz) = 7ac230d30907f013dff8d435a118619ea6168aa3714dba62c6962d350c6295ae
@@ -103,8 +103,8 @@ SHA256 (wargio-naxsi-1.7_GH0.tar.gz) = adee817da71913f64a9fb0fca142d9520bb0e5014
SIZE (wargio-naxsi-1.7_GH0.tar.gz) = 1132392
SHA256 (libinjection-libinjection-b9fcaaf_GH0.tar.gz) = 7812e1316b61a7a7d3a65a57a07c6d5235ac40fe35e6edda983f31a44661a38e
SIZE (libinjection-libinjection-b9fcaaf_GH0.tar.gz) = 2218207
-SHA256 (nginx-njs-0.9.1_GH0.tar.gz) = 61365eea69c6862fc8a5b5df531503ae49499f6bcd5af932496b84850a2824a4
-SIZE (nginx-njs-0.9.1_GH0.tar.gz) = 966480
+SHA256 (nginx-njs-0.9.3_GH0.tar.gz) = a1ad089a52ebd295489443faea3089d12df414f5da624446d6c2bf7d99ec36cb
+SIZE (nginx-njs-0.9.3_GH0.tar.gz) = 930867
SHA256 (osokin-nginx-otel-3a655df_GH0.tar.gz) = 71ee1561303c289d4562148f8719b60796c36abe16de1b3c10d10b8e6f03a952
SIZE (osokin-nginx-otel-3a655df_GH0.tar.gz) = 27169
SHA256 (konstruxi-ngx_postgres-8aa7359_GH0.tar.gz) = c69ad4495de7c7883ebc23e1e6c4cc83a4ac6a7fddd4d5c12e49d33b65f7c50b
diff --git a/www/freenginx-devel/files/nginx.in b/www/freenginx-devel/files/nginx.in
index 7da8670ba17e..4ebb8e3886ae 100644
--- a/www/freenginx-devel/files/nginx.in
+++ b/www/freenginx-devel/files/nginx.in
@@ -47,6 +47,8 @@ _tmpprefix="%%NGINX_TMPDIR%%"
required_files=%%PREFIX%%/etc/freenginx/nginx.conf
extra_commands="reload configtest upgrade gracefulstop"
+: ${nginx_svcj_options:="net_basic"}
+
[ -z "$nginx_enable" ] && nginx_enable="NO"
[ -z "$nginxlimits_enable" ] && nginxlimits_enable="NO"
[ -z "$nginxlimits_args" ] && nginxlimits_args="-e -U %%WWWOWN%%"
@@ -67,6 +69,7 @@ if [ -n "$2" ]; then
required_files="${nginx_configfile}"
eval nginx_enable="\${nginx_${profile}_enable:-${nginx_enable}}"
eval nginx_flags="\${nginx_${profile}_flags:-${nginx_flags}}"
+ eval nginx_svcj_options="\${nginx_${profile}_svcj_options:-${nginx_svcj_options}}"
eval nginxlimits_enable="\${nginxlimits_${profile}_enable:-${nginxlimits_enable}}"
eval nginxlimits_args="\${nginxlimits_${profile}_args:-${nginxlimits_args}}"
nginx_flags="-c ${nginx_configfile} -g \"pid ${pidfile};\" ${nginx_flags}"
diff --git a/www/freenginx/Makefile b/www/freenginx/Makefile
index 0099f99cba26..3864fe8624b0 100644
--- a/www/freenginx/Makefile
+++ b/www/freenginx/Makefile
@@ -1,6 +1,6 @@
PORTNAME= freenginx
PORTVERSION= 1.28.0
-PORTREVISION?= 1
+PORTREVISION?= 2
CATEGORIES= www
MASTER_SITES= https://freenginx.org/download/ \
LOCAL/joneum
diff --git a/www/freenginx/Makefile.extmod b/www/freenginx/Makefile.extmod
index 009a84ac09ca..b55a58c8cd14 100644
--- a/www/freenginx/Makefile.extmod
+++ b/www/freenginx/Makefile.extmod
@@ -239,7 +239,7 @@ NAXSI_VARS= DSO_EXTMODS+=naxsi NAXSI_SUBDIR=/naxsi_src
NAXSI_EXTRA_PATCHES= ${PATCHDIR}/extra-patch-naxsi-libinjection__sqli_c \
${PATCHDIR}/extra-patch-naxsi_config
-NJS_GH_TUPLE= nginx:njs:0.8.5:njs
+NJS_GH_TUPLE= nginx:njs:0.9.3:njs
NJS_VARS= DSO_EXTMODS+=njs NJS_SUBDIR=/nginx
NJS_IMPLIES= STREAM
diff --git a/www/freenginx/distinfo b/www/freenginx/distinfo
index a013b6687d7e..dc6eb4ec4203 100644
--- a/www/freenginx/distinfo
+++ b/www/freenginx/distinfo
@@ -1,4 +1,4 @@
-TIMESTAMP = 1759340918
+TIMESTAMP = 1761393411
SHA256 (freenginx-1.28.0.tar.gz) = 28651bf51ff95de027262d7af23000e5862fb3d1b2252ac83d97ce4c9a4a18a2
SIZE (freenginx-1.28.0.tar.gz) = 1228344
SHA256 (nginx_mogilefs_module-1.0.4.tar.gz) = 7ac230d30907f013dff8d435a118619ea6168aa3714dba62c6962d350c6295ae
@@ -105,8 +105,8 @@ SHA256 (wargio-naxsi-1.6_GH0.tar.gz) = e5920fdd09cae155b89eb21a94a21c029ebfdb056
SIZE (wargio-naxsi-1.6_GH0.tar.gz) = 1116227
SHA256 (libinjection-libinjection-4aa3894_GH0.tar.gz) = ededea133e89e238ef2e60d0d62ef7ef9e741449eed8c5d856007132505bcd5b
SIZE (libinjection-libinjection-4aa3894_GH0.tar.gz) = 2218294
-SHA256 (nginx-njs-0.8.5_GH0.tar.gz) = b5e38e1424d84e48c6ca1592a336bf1d110b8f27ff1d5ef492c6d312ea003491
-SIZE (nginx-njs-0.8.5_GH0.tar.gz) = 844437
+SHA256 (nginx-njs-0.9.3_GH0.tar.gz) = a1ad089a52ebd295489443faea3089d12df414f5da624446d6c2bf7d99ec36cb
+SIZE (nginx-njs-0.9.3_GH0.tar.gz) = 930867
SHA256 (osokin-nginx-otel-8f0857d_GH0.tar.gz) = bbf93813928460bdaf78f752f74ecc6c34d13078e97fdffcaa29dbd8689314fc
SIZE (osokin-nginx-otel-8f0857d_GH0.tar.gz) = 30197
SHA256 (konstruxi-ngx_postgres-8aa7359_GH0.tar.gz) = c69ad4495de7c7883ebc23e1e6c4cc83a4ac6a7fddd4d5c12e49d33b65f7c50b
diff --git a/www/garage/Makefile b/www/garage/Makefile
index 93b6b79aeb32..d17eb35f3539 100644
--- a/www/garage/Makefile
+++ b/www/garage/Makefile
@@ -1,6 +1,5 @@
PORTNAME= garage
-DISTVERSION= 1.2.0
-PORTREVISION= 2
+DISTVERSION= 2.1.0
CATEGORIES= www
MASTER_SITES= https://git.deuxfleurs.fr/Deuxfleurs/${PORTNAME}/archive/v${PORTVERSION}.tar.gz?dummy=/
DISTFILES= ${PORTNAME}-${DISTVERSION}${EXTRACT_SUFX}
diff --git a/www/garage/Makefile.crates b/www/garage/Makefile.crates
index 7eb1247daa6a..4e75ad383ac0 100644
--- a/www/garage/Makefile.crates
+++ b/www/garage/Makefile.crates
@@ -58,6 +58,7 @@ CARGO_CRATES= addr2line-0.24.2 \
bytes-1.10.1 \
bytes-utils-0.1.4 \
bytesize-1.3.2 \
+ byteview-0.6.1 \
cc-1.2.16 \
cfg-if-1.0.0 \
cfg_aliases-0.1.1 \
@@ -70,16 +71,20 @@ CARGO_CRATES= addr2line-0.24.2 \
clap_derive-4.5.32 \
clap_lex-0.7.4 \
colorchoice-1.0.3 \
+ compare-0.0.6 \
core-foundation-0.9.4 \
core-foundation-sys-0.8.7 \
cpufeatures-0.2.17 \
crc-3.2.1 \
crc-catalog-2.4.0 \
+ crc-fast-1.2.0 \
crc32c-0.6.8 \
crc32fast-1.4.2 \
crc64fast-nvme-1.2.0 \
- crossbeam-channel-0.5.15 \
+ crossbeam-channel-0.5.14 \
+ crossbeam-epoch-0.9.18 \
crossbeam-queue-0.3.12 \
+ crossbeam-skiplist-0.1.3 \
crossbeam-utils-0.8.21 \
crypto-common-0.1.6 \
ctr-0.9.2 \
@@ -87,13 +92,16 @@ CARGO_CRATES= addr2line-0.24.2 \
darling_core-0.20.10 \
darling_macro-0.20.10 \
dashmap-4.0.2 \
+ dashmap-6.1.0 \
deranged-0.4.0 \
derivative-2.2.0 \
digest-0.10.7 \
displaydoc-0.2.5 \
+ double-ended-peekable-0.1.0 \
dyn-clone-1.0.19 \
either-1.15.0 \
encoding_rs-0.8.35 \
+ enum_dispatch-0.3.13 \
env_logger-0.10.2 \
equivalent-1.0.2 \
err-derive-0.3.1 \
@@ -102,6 +110,7 @@ CARGO_CRATES= addr2line-0.24.2 \
fallible-streaming-iterator-0.1.9 \
fastrand-2.3.0 \
fixedbitset-0.4.2 \
+ fjall-2.11.2 \
fnv-1.0.7 \
foldhash-0.1.5 \
form_urlencoded-1.2.1 \
@@ -122,12 +131,13 @@ CARGO_CRATES= addr2line-0.24.2 \
gimli-0.31.1 \
git-version-0.3.9 \
git-version-macro-0.3.9 \
+ guardian-1.3.0 \
h2-0.3.26 \
h2-0.4.8 \
hashbrown-0.12.3 \
hashbrown-0.14.5 \
hashbrown-0.15.2 \
- hashlink-0.9.1 \
+ hashlink-0.10.0 \
heck-0.3.3 \
heck-0.5.0 \
heed-0.11.0 \
@@ -174,6 +184,7 @@ CARGO_CRATES= addr2line-0.24.2 \
indexmap-2.8.0 \
inout-0.1.4 \
instant-0.1.13 \
+ interval-heap-0.0.5 \
ipnet-2.11.0 \
ipnetwork-0.20.0 \
is-terminal-0.4.16 \
@@ -196,7 +207,7 @@ CARGO_CRATES= addr2line-0.24.2 \
lazy_static-1.5.0 \
libc-0.2.171 \
libsodium-sys-0.2.7 \
- libsqlite3-sys-0.28.0 \
+ libsqlite3-sys-0.35.0 \
linux-raw-sys-0.4.15 \
linux-raw-sys-0.9.3 \
litemap-0.7.5 \
@@ -204,6 +215,8 @@ CARGO_CRATES= addr2line-0.24.2 \
lock_api-0.4.12 \
log-0.4.26 \
lru-0.12.5 \
+ lsm-tree-2.10.3 \
+ lz4_flex-0.11.3 \
matchers-0.1.0 \
md-5-0.10.6 \
memchr-2.7.4 \
@@ -246,6 +259,8 @@ CARGO_CRATES= addr2line-0.24.2 \
parse_duration-2.1.1 \
password-hash-0.5.0 \
paste-1.0.15 \
+ path-absolutize-3.1.1 \
+ path-dedot-3.1.1 \
pem-3.0.5 \
percent-encoding-2.3.1 \
pest-2.7.15 \
@@ -275,13 +290,17 @@ CARGO_CRATES= addr2line-0.24.2 \
prost-types-0.9.0 \
protobuf-2.28.0 \
quick-xml-0.26.0 \
+ quick_cache-0.6.16 \
quote-1.0.40 \
r-efi-5.2.0 \
r2d2-0.8.10 \
- r2d2_sqlite-0.24.0 \
+ r2d2_sqlite-0.31.0 \
rand-0.8.5 \
+ rand-0.9.1 \
rand_chacha-0.3.1 \
+ rand_chacha-0.9.0 \
rand_core-0.6.4 \
+ rand_core-0.9.3 \
redox_syscall-0.2.16 \
redox_syscall-0.5.10 \
regex-1.11.1 \
@@ -295,8 +314,9 @@ CARGO_CRATES= addr2line-0.24.2 \
rmp-0.8.14 \
rmp-serde-1.3.0 \
roxmltree-0.19.0 \
- rusqlite-0.31.0 \
+ rusqlite-0.37.0 \
rustc-demangle-0.1.24 \
+ rustc-hash-2.1.1 \
rustc_version-0.4.1 \
rustix-0.38.44 \
rustix-1.0.3 \
@@ -321,6 +341,7 @@ CARGO_CRATES= addr2line-0.24.2 \
secrecy-0.8.0 \
security-framework-2.11.1 \
security-framework-sys-2.14.0 \
+ self_cell-1.2.0 \
semver-1.0.26 \
serde-1.0.219 \
serde-value-0.7.0 \
@@ -343,6 +364,7 @@ CARGO_CRATES= addr2line-0.24.2 \
stable_deref_trait-1.2.0 \
static_init-1.0.3 \
static_init_macro-1.0.4 \
+ std-semaphore-0.1.0 \
strsim-0.11.1 \
structopt-0.3.26 \
structopt-derive-0.4.18 \
@@ -407,8 +429,12 @@ CARGO_CRATES= addr2line-0.24.2 \
utf16_iter-1.0.5 \
utf8_iter-1.0.4 \
utf8parse-0.2.2 \
+ utoipa-5.3.1 \
+ utoipa-gen-5.3.1 \
uuid-1.4.1 \
valuable-0.1.1 \
+ value-log-1.9.0 \
+ varint-rs-2.2.0 \
vcpkg-0.2.15 \
version_check-0.9.5 \
vsimd-0.8.0 \
diff --git a/www/garage/distinfo b/www/garage/distinfo
index 34f9f76b3813..2e08137bcca7 100644
--- a/www/garage/distinfo
+++ b/www/garage/distinfo
@@ -1,6 +1,6 @@
-TIMESTAMP = 1753186990
-SHA256 (garage-1.2.0.tar.gz) = ebf02859194a88a12f84e78d43c1c2ad5132fae3527e88ad7c86c69e9aadf370
-SIZE (garage-1.2.0.tar.gz) = 42425284
+TIMESTAMP = 1761387699
+SHA256 (garage-2.1.0.tar.gz) = 63b2a0a513464136728bb50a91b40a5911fc25603f3c3e54fe030c01ea5a6084
+SIZE (garage-2.1.0.tar.gz) = 42486174
SHA256 (rust/crates/addr2line-0.24.2.crate) = dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1
SIZE (rust/crates/addr2line-0.24.2.crate) = 39015
SHA256 (rust/crates/adler2-2.0.0.crate) = 512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627
@@ -121,6 +121,8 @@ SHA256 (rust/crates/bytes-utils-0.1.4.crate) = 7dafe3a8757b027e2be6e4e5601ed563c
SIZE (rust/crates/bytes-utils-0.1.4.crate) = 20703
SHA256 (rust/crates/bytesize-1.3.2.crate) = 2d2c12f985c78475a6b8d629afd0c360260ef34cfef52efccdcfd31972f81c2e
SIZE (rust/crates/bytesize-1.3.2.crate) = 11575
+SHA256 (rust/crates/byteview-0.6.1.crate) = 6236364b88b9b6d0bc181ba374cf1ab55ba3ef97a1cb6f8cddad48a273767fb5
+SIZE (rust/crates/byteview-0.6.1.crate) = 20492
SHA256 (rust/crates/cc-1.2.16.crate) = be714c154be609ec7f5dad223a33bf1482fff90472de28f7362806e6d4832b8c
SIZE (rust/crates/cc-1.2.16.crate) = 103847
SHA256 (rust/crates/cfg-if-1.0.0.crate) = baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd
@@ -145,6 +147,8 @@ SHA256 (rust/crates/clap_lex-0.7.4.crate) = f46ad14479a25103f283c0f10005961cf086
SIZE (rust/crates/clap_lex-0.7.4.crate) = 12858
SHA256 (rust/crates/colorchoice-1.0.3.crate) = 5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990
SIZE (rust/crates/colorchoice-1.0.3.crate) = 7923
+SHA256 (rust/crates/compare-0.0.6.crate) = ea0095f6103c2a8b44acd6fd15960c801dafebf02e21940360833e0673f48ba7
+SIZE (rust/crates/compare-0.0.6.crate) = 9293
SHA256 (rust/crates/core-foundation-0.9.4.crate) = 91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f
SIZE (rust/crates/core-foundation-0.9.4.crate) = 27743
SHA256 (rust/crates/core-foundation-sys-0.8.7.crate) = 773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b
@@ -155,16 +159,22 @@ SHA256 (rust/crates/crc-3.2.1.crate) = 69e6e4d7b33a94f0991c26729976b10ebde1d34c3
SIZE (rust/crates/crc-3.2.1.crate) = 15070
SHA256 (rust/crates/crc-catalog-2.4.0.crate) = 19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5
SIZE (rust/crates/crc-catalog-2.4.0.crate) = 10155
+SHA256 (rust/crates/crc-fast-1.2.0.crate) = bf0ab672ed7761a44410115d2e0e5ccd86b987ba186a78a4148fb02bb302a774
+SIZE (rust/crates/crc-fast-1.2.0.crate) = 83227
SHA256 (rust/crates/crc32c-0.6.8.crate) = 3a47af21622d091a8f0fb295b88bc886ac74efcc613efc19f5d0b21de5c89e47
SIZE (rust/crates/crc32c-0.6.8.crate) = 9647
SHA256 (rust/crates/crc32fast-1.4.2.crate) = a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3
SIZE (rust/crates/crc32fast-1.4.2.crate) = 38491
SHA256 (rust/crates/crc64fast-nvme-1.2.0.crate) = 4955638f00a809894c947f85a024020a20815b65a5eea633798ea7924edab2b3
SIZE (rust/crates/crc64fast-nvme-1.2.0.crate) = 76399
-SHA256 (rust/crates/crossbeam-channel-0.5.15.crate) = 82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2
-SIZE (rust/crates/crossbeam-channel-0.5.15.crate) = 92716
+SHA256 (rust/crates/crossbeam-channel-0.5.14.crate) = 06ba6d68e24814cb8de6bb986db8222d3a027d15872cabc0d18817bc3c0e4471
+SIZE (rust/crates/crossbeam-channel-0.5.14.crate) = 92728
+SHA256 (rust/crates/crossbeam-epoch-0.9.18.crate) = 5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e
+SIZE (rust/crates/crossbeam-epoch-0.9.18.crate) = 46875
SHA256 (rust/crates/crossbeam-queue-0.3.12.crate) = 0f58bbc28f91df819d0aa2a2c00cd19754769c2fad90579b3592b1c9ba7a3115
SIZE (rust/crates/crossbeam-queue-0.3.12.crate) = 16270
+SHA256 (rust/crates/crossbeam-skiplist-0.1.3.crate) = df29de440c58ca2cc6e587ec3d22347551a32435fbde9d2bff64e78a9ffa151b
+SIZE (rust/crates/crossbeam-skiplist-0.1.3.crate) = 34930
SHA256 (rust/crates/crossbeam-utils-0.8.21.crate) = d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28
SIZE (rust/crates/crossbeam-utils-0.8.21.crate) = 42691
SHA256 (rust/crates/crypto-common-0.1.6.crate) = 1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3
@@ -179,6 +189,8 @@ SHA256 (rust/crates/darling_macro-0.20.10.crate) = d336a2a514f6ccccaa3e09b02d41d
SIZE (rust/crates/darling_macro-0.20.10.crate) = 1874
SHA256 (rust/crates/dashmap-4.0.2.crate) = e77a43b28d0668df09411cb0bc9a8c2adc40f9a048afe863e05fd43251e8e39c
SIZE (rust/crates/dashmap-4.0.2.crate) = 21066
+SHA256 (rust/crates/dashmap-6.1.0.crate) = 5041cc499144891f3790297212f32a74fb938e5136a14943f338ef9e0ae276cf
+SIZE (rust/crates/dashmap-6.1.0.crate) = 24828
SHA256 (rust/crates/deranged-0.4.0.crate) = 9c9e6a11ca8224451684bc0d7d5a7adbf8f2fd6887261a1cfc3c0432f9d4068e
SIZE (rust/crates/deranged-0.4.0.crate) = 23235
SHA256 (rust/crates/derivative-2.2.0.crate) = fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b
@@ -187,12 +199,16 @@ SHA256 (rust/crates/digest-0.10.7.crate) = 9ed9a281f7bc9b7576e61468ba615a66a5c8c
SIZE (rust/crates/digest-0.10.7.crate) = 19557
SHA256 (rust/crates/displaydoc-0.2.5.crate) = 97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0
SIZE (rust/crates/displaydoc-0.2.5.crate) = 24219
+SHA256 (rust/crates/double-ended-peekable-0.1.0.crate) = c0d05e1c0dbad51b52c38bda7adceef61b9efc2baf04acfe8726a8c4630a6f57
+SIZE (rust/crates/double-ended-peekable-0.1.0.crate) = 7969
SHA256 (rust/crates/dyn-clone-1.0.19.crate) = 1c7a8fb8a9fbf66c1f703fe16184d10ca0ee9d23be5b4436400408ba54a95005
SIZE (rust/crates/dyn-clone-1.0.19.crate) = 12896
SHA256 (rust/crates/either-1.15.0.crate) = 48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719
SIZE (rust/crates/either-1.15.0.crate) = 20114
SHA256 (rust/crates/encoding_rs-0.8.35.crate) = 75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3
SIZE (rust/crates/encoding_rs-0.8.35.crate) = 1381050
+SHA256 (rust/crates/enum_dispatch-0.3.13.crate) = aa18ce2bc66555b3218614519ac839ddb759a7d6720732f979ef8d13be147ecd
+SIZE (rust/crates/enum_dispatch-0.3.13.crate) = 29876
SHA256 (rust/crates/env_logger-0.10.2.crate) = 4cd405aab171cb85d6735e5c8d9db038c17d3ca007a4d2c25f337935c3d90580
SIZE (rust/crates/env_logger-0.10.2.crate) = 36402
SHA256 (rust/crates/equivalent-1.0.2.crate) = 877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f
@@ -209,6 +225,8 @@ SHA256 (rust/crates/fastrand-2.3.0.crate) = 37909eebbb50d72f9059c3b6d82c0463f2ff
SIZE (rust/crates/fastrand-2.3.0.crate) = 15076
SHA256 (rust/crates/fixedbitset-0.4.2.crate) = 0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80
SIZE (rust/crates/fixedbitset-0.4.2.crate) = 15954
+SHA256 (rust/crates/fjall-2.11.2.crate) = 0b25ad44cd4360a0448a9b5a0a6f1c7a621101cca4578706d43c9a821418aebc
+SIZE (rust/crates/fjall-2.11.2.crate) = 79254
SHA256 (rust/crates/fnv-1.0.7.crate) = 3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1
SIZE (rust/crates/fnv-1.0.7.crate) = 11266
SHA256 (rust/crates/foldhash-0.1.5.crate) = d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2
@@ -249,6 +267,8 @@ SHA256 (rust/crates/git-version-0.3.9.crate) = 1ad568aa3db0fcbc81f2f116137f263d7
SIZE (rust/crates/git-version-0.3.9.crate) = 3087
SHA256 (rust/crates/git-version-macro-0.3.9.crate) = 53010ccb100b96a67bc32c0175f0ed1426b31b655d562898e57325f81c023ac0
SIZE (rust/crates/git-version-macro-0.3.9.crate) = 5622
+SHA256 (rust/crates/guardian-1.3.0.crate) = 17e2ac29387b1aa07a1e448f7bb4f35b500787971e965b02842b900afa5c8f6f
+SIZE (rust/crates/guardian-1.3.0.crate) = 14892
SHA256 (rust/crates/h2-0.3.26.crate) = 81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8
SIZE (rust/crates/h2-0.3.26.crate) = 168315
SHA256 (rust/crates/h2-0.4.8.crate) = 5017294ff4bb30944501348f6f8e42e6ad28f42c8bbef7a74029aff064a4e3c2
@@ -259,8 +279,8 @@ SHA256 (rust/crates/hashbrown-0.14.5.crate) = e5274423e17b7c9fc20b6e7e208532f9b1
SIZE (rust/crates/hashbrown-0.14.5.crate) = 141498
SHA256 (rust/crates/hashbrown-0.15.2.crate) = bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289
SIZE (rust/crates/hashbrown-0.15.2.crate) = 138478
-SHA256 (rust/crates/hashlink-0.9.1.crate) = 6ba4ff7128dee98c7dc9794b6a411377e1404dba1c97deb8d1a55297bd25d8af
-SIZE (rust/crates/hashlink-0.9.1.crate) = 28928
+SHA256 (rust/crates/hashlink-0.10.0.crate) = 7382cf6263419f2d8df38c55d7da83da5c18aef87fc7a7fc1fb1e344edfe14c1
+SIZE (rust/crates/hashlink-0.10.0.crate) = 29402
SHA256 (rust/crates/heck-0.3.3.crate) = 6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c
SIZE (rust/crates/heck-0.3.3.crate) = 10260
SHA256 (rust/crates/heck-0.5.0.crate) = 2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea
@@ -353,6 +373,8 @@ SHA256 (rust/crates/inout-0.1.4.crate) = 879f10e63c20629ecabbb64a8010319738c66a5
SIZE (rust/crates/inout-0.1.4.crate) = 11280
SHA256 (rust/crates/instant-0.1.13.crate) = e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222
SIZE (rust/crates/instant-0.1.13.crate) = 6305
+SHA256 (rust/crates/interval-heap-0.0.5.crate) = 11274e5e8e89b8607cfedc2910b6626e998779b48a019151c7604d0adcb86ac6
+SIZE (rust/crates/interval-heap-0.0.5.crate) = 10590
SHA256 (rust/crates/ipnet-2.11.0.crate) = 469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130
SIZE (rust/crates/ipnet-2.11.0.crate) = 29718
SHA256 (rust/crates/ipnetwork-0.20.0.crate) = bf466541e9d546596ee94f9f69590f89473455f88372423e0008fc1a7daf100e
@@ -397,8 +419,8 @@ SHA256 (rust/crates/libc-0.2.171.crate) = c19937216e9d3aa9956d9bb8dfc0b0c8beb605
SIZE (rust/crates/libc-0.2.171.crate) = 785246
SHA256 (rust/crates/libsodium-sys-0.2.7.crate) = 6b779387cd56adfbc02ea4a668e704f729be8d6a6abd2c27ca5ee537849a92fd
SIZE (rust/crates/libsodium-sys-0.2.7.crate) = 4595870
-SHA256 (rust/crates/libsqlite3-sys-0.28.0.crate) = 0c10584274047cb335c23d3e61bcef8e323adae7c5c8c760540f73610177fc3f
-SIZE (rust/crates/libsqlite3-sys-0.28.0.crate) = 4975624
+SHA256 (rust/crates/libsqlite3-sys-0.35.0.crate) = 133c182a6a2c87864fe97778797e46c7e999672690dc9fa3ee8e241aa4a9c13f
+SIZE (rust/crates/libsqlite3-sys-0.35.0.crate) = 5200364
SHA256 (rust/crates/linux-raw-sys-0.4.15.crate) = d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab
SIZE (rust/crates/linux-raw-sys-0.4.15.crate) = 2150898
SHA256 (rust/crates/linux-raw-sys-0.9.3.crate) = fe7db12097d22ec582439daf8618b8fdd1a7bef6270e9af3b1ebcd30893cf413
@@ -413,6 +435,10 @@ SHA256 (rust/crates/log-0.4.26.crate) = 30bde2b3dc3671ae49d8e2e9f044c7c005836e7a
SIZE (rust/crates/log-0.4.26.crate) = 47022
SHA256 (rust/crates/lru-0.12.5.crate) = 234cf4f4a04dc1f57e24b96cc0cd600cf2af460d4161ac5ecdd0af8e1f3b2a38
SIZE (rust/crates/lru-0.12.5.crate) = 16047
+SHA256 (rust/crates/lsm-tree-2.10.3.crate) = ab73c02eadb3dc12c0024e5b61d6284e6d59064e67e74fbad77856caa56f62c7
+SIZE (rust/crates/lsm-tree-2.10.3.crate) = 113811
+SHA256 (rust/crates/lz4_flex-0.11.3.crate) = 75761162ae2b0e580d7e7c390558127e5f01b4194debd6221fd8c207fc80e3f5
+SIZE (rust/crates/lz4_flex-0.11.3.crate) = 40633
SHA256 (rust/crates/matchers-0.1.0.crate) = 8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558
SIZE (rust/crates/matchers-0.1.0.crate) = 6948
SHA256 (rust/crates/md-5-0.10.6.crate) = d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf
@@ -497,6 +523,10 @@ SHA256 (rust/crates/password-hash-0.5.0.crate) = 346f04948ba92c43e8469c1ee6736c7
SIZE (rust/crates/password-hash-0.5.0.crate) = 26884
SHA256 (rust/crates/paste-1.0.15.crate) = 57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a
SIZE (rust/crates/paste-1.0.15.crate) = 18374
+SHA256 (rust/crates/path-absolutize-3.1.1.crate) = e4af381fe79fa195b4909485d99f73a80792331df0625188e707854f0b3383f5
+SIZE (rust/crates/path-absolutize-3.1.1.crate) = 6605
+SHA256 (rust/crates/path-dedot-3.1.1.crate) = 07ba0ad7e047712414213ff67533e6dd477af0a4e1d14fb52343e53d30ea9397
+SIZE (rust/crates/path-dedot-3.1.1.crate) = 6596
SHA256 (rust/crates/pem-3.0.5.crate) = 38af38e8470ac9dee3ce1bae1af9c1671fffc44ddfd8bd1d0a3445bf349a8ef3
SIZE (rust/crates/pem-3.0.5.crate) = 18140
SHA256 (rust/crates/percent-encoding-2.3.1.crate) = e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e
@@ -555,20 +585,28 @@ SHA256 (rust/crates/protobuf-2.28.0.crate) = 106dd99e98437432fed6519dedecfade6a0
SIZE (rust/crates/protobuf-2.28.0.crate) = 167541
SHA256 (rust/crates/quick-xml-0.26.0.crate) = 7f50b1c63b38611e7d4d7f68b82d3ad0cc71a2ad2e7f61fc10f1328d917c93cd
SIZE (rust/crates/quick-xml-0.26.0.crate) = 116260
+SHA256 (rust/crates/quick_cache-0.6.16.crate) = 9ad6644cb07b7f3488b9f3d2fde3b4c0a7fa367cafefb39dff93a659f76eb786
+SIZE (rust/crates/quick_cache-0.6.16.crate) = 47488
SHA256 (rust/crates/quote-1.0.40.crate) = 1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d
SIZE (rust/crates/quote-1.0.40.crate) = 31063
SHA256 (rust/crates/r-efi-5.2.0.crate) = 74765f6d916ee2faa39bc8e68e4f3ed8949b48cccdac59983d287a7cb71ce9c5
SIZE (rust/crates/r-efi-5.2.0.crate) = 64764
SHA256 (rust/crates/r2d2-0.8.10.crate) = 51de85fb3fb6524929c8a2eb85e6b6d363de4e8c48f9e2c2eac4944abc181c93
SIZE (rust/crates/r2d2-0.8.10.crate) = 17888
-SHA256 (rust/crates/r2d2_sqlite-0.24.0.crate) = 6a982edf65c129796dba72f8775b292ef482b40d035e827a9825b3bc07ccc5f2
-SIZE (rust/crates/r2d2_sqlite-0.24.0.crate) = 5522
+SHA256 (rust/crates/r2d2_sqlite-0.31.0.crate) = 63417e83dc891797eea3ad379f52a5986da4bca0d6ef28baf4d14034dd111b0c
+SIZE (rust/crates/r2d2_sqlite-0.31.0.crate) = 9430
SHA256 (rust/crates/rand-0.8.5.crate) = 34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404
SIZE (rust/crates/rand-0.8.5.crate) = 87113
+SHA256 (rust/crates/rand-0.9.1.crate) = 9fbfd9d094a40bf3ae768db9361049ace4c0e04a4fd6b359518bd7b73a73dd97
+SIZE (rust/crates/rand-0.9.1.crate) = 97986
SHA256 (rust/crates/rand_chacha-0.3.1.crate) = e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88
SIZE (rust/crates/rand_chacha-0.3.1.crate) = 15251
+SHA256 (rust/crates/rand_chacha-0.9.0.crate) = d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb
+SIZE (rust/crates/rand_chacha-0.9.0.crate) = 18258
SHA256 (rust/crates/rand_core-0.6.4.crate) = ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c
SIZE (rust/crates/rand_core-0.6.4.crate) = 22666
+SHA256 (rust/crates/rand_core-0.9.3.crate) = 99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38
+SIZE (rust/crates/rand_core-0.9.3.crate) = 24543
SHA256 (rust/crates/redox_syscall-0.2.16.crate) = fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a
SIZE (rust/crates/redox_syscall-0.2.16.crate) = 24012
SHA256 (rust/crates/redox_syscall-0.5.10.crate) = 0b8c0c260b63a8219631167be35e6a988e9554dbd323f8bd08439c8ed1302bd1
@@ -595,10 +633,12 @@ SHA256 (rust/crates/rmp-serde-1.3.0.crate) = 52e599a477cf9840e92f2cde9a7189e67b4
SIZE (rust/crates/rmp-serde-1.3.0.crate) = 33025
SHA256 (rust/crates/roxmltree-0.19.0.crate) = 3cd14fd5e3b777a7422cca79358c57a8f6e3a703d9ac187448d0daf220c2407f
SIZE (rust/crates/roxmltree-0.19.0.crate) = 53547
-SHA256 (rust/crates/rusqlite-0.31.0.crate) = b838eba278d213a8beaf485bd313fd580ca4505a00d5871caeb1457c55322cae
-SIZE (rust/crates/rusqlite-0.31.0.crate) = 152252
+SHA256 (rust/crates/rusqlite-0.37.0.crate) = 165ca6e57b20e1351573e3729b958bc62f0e48025386970b6e4d29e7a7e71f3f
+SIZE (rust/crates/rusqlite-0.37.0.crate) = 169975
SHA256 (rust/crates/rustc-demangle-0.1.24.crate) = 719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f
SIZE (rust/crates/rustc-demangle-0.1.24.crate) = 29047
+SHA256 (rust/crates/rustc-hash-2.1.1.crate) = 357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d
+SIZE (rust/crates/rustc-hash-2.1.1.crate) = 14154
SHA256 (rust/crates/rustc_version-0.4.1.crate) = cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92
SIZE (rust/crates/rustc_version-0.4.1.crate) = 12245
SHA256 (rust/crates/rustix-0.38.44.crate) = fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154
@@ -647,6 +687,8 @@ SHA256 (rust/crates/security-framework-2.11.1.crate) = 897b2245f0b511c87893af39b
SIZE (rust/crates/security-framework-2.11.1.crate) = 80188
SHA256 (rust/crates/security-framework-sys-2.14.0.crate) = 49db231d56a190491cb4aeda9527f1ad45345af50b0851622a7adb8c03b01c32
SIZE (rust/crates/security-framework-sys-2.14.0.crate) = 20537
+SHA256 (rust/crates/self_cell-1.2.0.crate) = 0f7d95a54511e0c7be3f51e8867aa8cf35148d7b9445d44de2f943e2b206e749
+SIZE (rust/crates/self_cell-1.2.0.crate) = 16883
SHA256 (rust/crates/semver-1.0.26.crate) = 56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0
SIZE (rust/crates/semver-1.0.26.crate) = 31303
SHA256 (rust/crates/serde-1.0.219.crate) = 5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6
@@ -691,6 +733,8 @@ SHA256 (rust/crates/static_init-1.0.3.crate) = 8a2a1c578e98c1c16fc3b8ec1328f7659
SIZE (rust/crates/static_init-1.0.3.crate) = 78543
SHA256 (rust/crates/static_init_macro-1.0.4.crate) = 1389c88ddd739ec6d3f8f83343764a0e944cd23cfbf126a9796a714b0b6edd6f
SIZE (rust/crates/static_init_macro-1.0.4.crate) = 7334
+SHA256 (rust/crates/std-semaphore-0.1.0.crate) = 33ae9eec00137a8eed469fb4148acd9fc6ac8c3f9b110f52cd34698c8b5bfa0e
+SIZE (rust/crates/std-semaphore-0.1.0.crate) = 3449
SHA256 (rust/crates/strsim-0.11.1.crate) = 7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f
SIZE (rust/crates/strsim-0.11.1.crate) = 14266
SHA256 (rust/crates/structopt-0.3.26.crate) = 0c6b5c64445ba8094a6ab0c3cd2ad323e07171012d9c98b0b15651daf1787a10
@@ -819,10 +863,18 @@ SHA256 (rust/crates/utf8_iter-1.0.4.crate) = b6c140620e7ffbb22c2dee59cafe6084a59
SIZE (rust/crates/utf8_iter-1.0.4.crate) = 10437
SHA256 (rust/crates/utf8parse-0.2.2.crate) = 06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821
SIZE (rust/crates/utf8parse-0.2.2.crate) = 13499
+SHA256 (rust/crates/utoipa-5.3.1.crate) = 435c6f69ef38c9017b4b4eea965dfb91e71e53d869e896db40d1cf2441dd75c0
+SIZE (rust/crates/utoipa-5.3.1.crate) = 73405
+SHA256 (rust/crates/utoipa-gen-5.3.1.crate) = a77d306bc75294fd52f3e99b13ece67c02c1a2789190a6f31d32f736624326f7
+SIZE (rust/crates/utoipa-gen-5.3.1.crate) = 196460
SHA256 (rust/crates/uuid-1.4.1.crate) = 79daa5ed5740825c40b389c5e50312b9c86df53fccd33f281df655642b43869d
SIZE (rust/crates/uuid-1.4.1.crate) = 55291
SHA256 (rust/crates/valuable-0.1.1.crate) = ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65
SIZE (rust/crates/valuable-0.1.1.crate) = 28679
+SHA256 (rust/crates/value-log-1.9.0.crate) = 62fc7c4ce161f049607ecea654dca3f2d727da5371ae85e2e4f14ce2b98ed67c
+SIZE (rust/crates/value-log-1.9.0.crate) = 38123
+SHA256 (rust/crates/varint-rs-2.2.0.crate) = 8f54a172d0620933a27a4360d3db3e2ae0dd6cceae9730751a036bbf182c4b23
+SIZE (rust/crates/varint-rs-2.2.0.crate) = 8999
SHA256 (rust/crates/vcpkg-0.2.15.crate) = accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426
SIZE (rust/crates/vcpkg-0.2.15.crate) = 228735
SHA256 (rust/crates/version_check-0.9.5.crate) = 0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a
diff --git a/www/gitlab-pages/distinfo b/www/gitlab-pages/distinfo
index 73f31046db7a..444bdef2a0d2 100644
--- a/www/gitlab-pages/distinfo
+++ b/www/gitlab-pages/distinfo
@@ -1,5 +1,5 @@
-TIMESTAMP = 1761126618
-SHA256 (go/www_gitlab-pages/gitlab-pages-v18.3.5/go.mod) = f009bb2f145a5e8bfa40069b413d54c6212f0062253d9de94dc93e61b93b2a96
-SIZE (go/www_gitlab-pages/gitlab-pages-v18.3.5/go.mod) = 3436
-SHA256 (go/www_gitlab-pages/gitlab-pages-v18.3.5/gitlab-pages-v18.3.5.tar.bz2) = 38b55ec6e2a9c0b63522e83ff7480654531d5bc206fb0a4f7fb5916c74081b38
-SIZE (go/www_gitlab-pages/gitlab-pages-v18.3.5/gitlab-pages-v18.3.5.tar.bz2) = 236409
+TIMESTAMP = 1761293558
+SHA256 (go/www_gitlab-pages/gitlab-pages-v18.4.3/go.mod) = 69bfd26ca7532f5c882722ae356c2931b34c2c27098c59b4da272a94dd6e95df
+SIZE (go/www_gitlab-pages/gitlab-pages-v18.4.3/go.mod) = 3416
+SHA256 (go/www_gitlab-pages/gitlab-pages-v18.4.3/gitlab-pages-v18.4.3.tar.bz2) = 8cd115099e4a427ae4525100ac8c5d0878692cad330dba4a3d15d0ca34df03f6
+SIZE (go/www_gitlab-pages/gitlab-pages-v18.4.3/gitlab-pages-v18.4.3.tar.bz2) = 237294
diff --git a/www/gitlab-workhorse/distinfo b/www/gitlab-workhorse/distinfo
index 9ef1833c0df6..7740761377a4 100644
--- a/www/gitlab-workhorse/distinfo
+++ b/www/gitlab-workhorse/distinfo
@@ -1,5 +1,5 @@
-TIMESTAMP = 1761126630
-SHA256 (go/www_gitlab-workhorse/gitlab-foss-v18.3.5/go.mod) = a06961ad67888e3ff8e8fe5485b13d3ba413f783085338f35617899c0ff9df46
-SIZE (go/www_gitlab-workhorse/gitlab-foss-v18.3.5/go.mod) = 9331
-SHA256 (go/www_gitlab-workhorse/gitlab-foss-v18.3.5/gitlab-foss-v18.3.5.tar.bz2) = a3fdaee042b98938b6b0d663d297f50b3f7468741b1def98895f991be5cb7fb2
-SIZE (go/www_gitlab-workhorse/gitlab-foss-v18.3.5/gitlab-foss-v18.3.5.tar.bz2) = 122289928
+TIMESTAMP = 1761293571
+SHA256 (go/www_gitlab-workhorse/gitlab-foss-v18.4.3/go.mod) = 0aad1cb79dda4891ba48069242edac3c8e24752646ade6efe249a3db76b9bd77
+SIZE (go/www_gitlab-workhorse/gitlab-foss-v18.4.3/go.mod) = 9343
+SHA256 (go/www_gitlab-workhorse/gitlab-foss-v18.4.3/gitlab-foss-v18.4.3.tar.bz2) = dd2c1c3261e8ad0547bb612733a5dfa01b186dab409e9b90a15da67617759e5b
+SIZE (go/www_gitlab-workhorse/gitlab-foss-v18.4.3/gitlab-foss-v18.4.3.tar.bz2) = 122558508
diff --git a/www/gitlab/Makefile b/www/gitlab/Makefile
index 5b9d1e9552dd..191c53d788c9 100644
--- a/www/gitlab/Makefile
+++ b/www/gitlab/Makefile
@@ -29,12 +29,12 @@ LICENSE_FILE= ${WRKSRC}/LICENSE
# mail/rubygem-net-pop is required as ruby 3.1 removed it
#gitlab-zoekt-indexer>=0.16.0:textproc/gitlab-zoekt-indexer
MY_DEPENDS= gitaly>=${GITLAB_VERSION}:devel/gitaly \
- gitlab-elasticsearch-indexer>=5.7.0:textproc/gitlab-elasticsearch-indexer \
+ gitlab-elasticsearch-indexer>=5.9.1:textproc/gitlab-elasticsearch-indexer \
gitlab-agent>=${GITLAB_VERSION}:net/gitlab-agent \
gitlab-pages>=${GITLAB_VERSION}:www/gitlab-pages \
gitlab-shell>=14.45.2:devel/gitlab-shell \
gitlab-workhorse>=${GITLAB_VERSION}:www/gitlab-workhorse \
- gitlab-zoekt-indexer>=1.2.0:textproc/gitlab-zoekt-indexer \
+ gitlab-zoekt-indexer>=1.4.4:textproc/gitlab-zoekt-indexer \
redis>=6.2.11:databases/redis \
yarn${NODEJS_SUFFIX}>=1.10.0:www/yarn${NODEJS_SUFFIX} \
gtar>0:archivers/gtar \
@@ -60,14 +60,14 @@ MY_DEPENDS= gitaly>=${GITLAB_VERSION}:devel/gitaly \
rubygem-faraday-retry-gitlab>=2<3:www/rubygem-faraday-retry-gitlab \
rubygem-logger-gitlab>=1.7.0<1.8:devel/rubygem-logger-gitlab \
rubygem-marginalia>=1.11.1<1.12:databases/rubygem-marginalia \
- rubygem-declarative_policy>=1.1.0<1.2:security/rubygem-declarative_policy \
+ rubygem-declarative_policy>=2.0.1<2.1:security/rubygem-declarative_policy \
rubygem-coverband>=6.1.5<6.1.6:www/rubygem-coverband \
rubygem-devise-rails-gitlab>=4.9.3<4.10:devel/rubygem-devise-rails-gitlab \
rubygem-bcrypt>=3.1.20<3.2:security/rubygem-bcrypt \
rubygem-doorkeeper-rails-gitlab>=5.8.1<6:security/rubygem-doorkeeper-rails-gitlab \
rubygem-doorkeeper-openid_connect>=1.8.11<2:security/rubygem-doorkeeper-openid_connect \
rubygem-doorkeeper-device_authorization_grant>=1.0.0<1.1:security/rubygem-doorkeeper-device_authorization_grant \
- rubygem-rexml>=3.4.1<3.5:textproc/rubygem-rexml \
+ rubygem-rexml>=3.4.2<3.5:textproc/rubygem-rexml \
rubygem-ruby-saml-gitlab>=1.18.1<2:security/rubygem-ruby-saml-gitlab \
rubygem-omniauth-saml-gitlab>=2.2.4<3:security/rubygem-omniauth-saml-gitlab \
rubygem-omniauth-gl>=2.1.3<3:security/rubygem-omniauth-gl \
@@ -96,7 +96,7 @@ MY_DEPENDS= gitaly>=${GITLAB_VERSION}:devel/gitaly \
rubygem-browser5>=5.3.1<5.4:www/rubygem-browser5 \
rubygem-ohai>=18.1.18<19:sysutils/rubygem-ohai \
rubygem-gpgme>=2.0.25<2.1.0:security/rubygem-gpgme \
- rubygem-gitlab_omniauth-ldap-gitlab>=2.2.0<2.3.0:net/rubygem-gitlab_omniauth-ldap-gitlab \
+ rubygem-gitlab_omniauth-ldap-gitlab>=2.3.0<2.4.0:net/rubygem-gitlab_omniauth-ldap-gitlab \
rubygem-net-ldap017>=0.17.1<0.18:net/rubygem-net-ldap017 \
rubygem-grape20>=2.0.0<2.1:devel/rubygem-grape20 \
rubygem-grape-entity>=1.0.1<1.1,1:devel/rubygem-grape-entity \
@@ -112,26 +112,27 @@ MY_DEPENDS= gitaly>=${GITLAB_VERSION}:devel/gitaly \
rubygem-hamlit>=3.0.3<3.1:www/rubygem-hamlit \
rubygem-carrierwave-gitlab>=1.3.4<2.0:www/rubygem-carrierwave-gitlab \
rubygem-mini_magick4>=4.12<5:graphics/rubygem-mini_magick4 \
+ rubygem-marcel-gitlab>=1.0.4<1.1:devel/rubygem-marcel-gitlab \
rubygem-prawn>=0:print/rubygem-prawn \
rubygem-prawn-svg>=0:print/rubygem-prawn-svg \
rubygem-fog-aws-gitlab>=3.28.0<4:net/rubygem-fog-aws-gitlab \
- rubygem-fog-core-gitlab>=2.1.0<2.1.1:devel/rubygem-fog-core-gitlab \
- rubygem-fog-google-gitlab>=1.24.1<1.25:net/rubygem-fog-google-gitlab \
+ rubygem-fog-core-gitlab>=2.5<3:devel/rubygem-fog-core-gitlab \
+ rubygem-fog-google-gitlab>=1.25.0<2:net/rubygem-fog-google-gitlab \
rubygem-fog-local-gitlab>=0.8<1.0:net/rubygem-fog-local-gitlab \
rubygem-fog-aliyun-gitlab>=0.4<1.0:net/rubygem-fog-aliyun-gitlab \
rubygem-gitlab-fog-azure-rm>=2.4.0<2.5:net/rubygem-gitlab-fog-azure-rm \
rubygem-google-apis-storage_v1-gitlab>=0.29<1:devel/rubygem-google-apis-storage_v1-gitlab \
- rubygem-google-cloud-storage-gitlab>=1.45.0<1.46:net/rubygem-google-cloud-storage-gitlab \
+ rubygem-google-cloud-storage-gitlab>=1.57.0<1.58:net/rubygem-google-cloud-storage-gitlab \
rubygem-google-apis-core-gitlab>=0.18.0<0.19:devel/rubygem-google-apis-core-gitlab \
- rubygem-google-apis-compute_v1-gitlab>=0.127.0<0.128:devel/rubygem-google-apis-compute_v1-gitlab \
+ rubygem-google-apis-compute_v1-gitlab>=0.129.0<0.130:devel/rubygem-google-apis-compute_v1-gitlab \
rubygem-google-apis-container_v1>=0.100.0<0.101:devel/rubygem-google-apis-container_v1 \
- rubygem-google-apis-container_v1beta1>=0.43.0<0.44:devel/rubygem-google-apis-container_v1beta1 \
+ rubygem-google-apis-container_v1beta1>=0.90.0<0.91:devel/rubygem-google-apis-container_v1beta1 \
rubygem-google-apis-cloudbilling_v1>=0.22.0<0.23:devel/rubygem-google-apis-cloudbilling_v1 \
rubygem-google-apis-cloudresourcemanager_v1-gitlab>=0.31.0<0.32:devel/rubygem-google-apis-cloudresourcemanager_v1-gitlab \
rubygem-google-apis-iam_v1-gitlab>=0.73.0<0.74:devel/rubygem-google-apis-iam_v1-gitlab \
rubygem-google-apis-serviceusage_v1>=0.28.0<0.29:devel/rubygem-google-apis-serviceusage_v1 \
rubygem-google-apis-sqladmin_v1beta4-gitlab>=0.41.0<0.42:devel/rubygem-google-apis-sqladmin_v1beta4-gitlab \
- rubygem-google-apis-androidpublisher_v3-gitlab>=0.84.0<0.85:devel/rubygem-google-apis-androidpublisher_v3-gitlab \
+ rubygem-google-apis-androidpublisher_v3-gitlab>=0.86.0<0.87:devel/rubygem-google-apis-androidpublisher_v3-gitlab \
rubygem-googleauth-gitlab>=1.14<2:security/rubygem-googleauth-gitlab \
rubygem-google-cloud-artifact_registry-v1>=0.11.0<0.12:textproc/rubygem-google-cloud-artifact_registry-v1 \
rubygem-google-cloud-compute-v1>=2.6.0<2.7:net/rubygem-google-cloud-compute-v1 \
@@ -140,11 +141,11 @@ MY_DEPENDS= gitaly>=${GITLAB_VERSION}:devel/gitaly \
rubygem-elasticsearch-rails7>=7.2<8:textproc/rubygem-elasticsearch-rails7 \
rubygem-elasticsearch-api-gitlab>=7.17.11<7.18:textproc/rubygem-elasticsearch-api-gitlab \
rubygem-aws-sdk-core-gitlab>=3.226.3<3.227:devel/rubygem-aws-sdk-core-gitlab \
- rubygem-aws-sdk-cloudformation-gitlab>=1.133<2:devel/rubygem-aws-sdk-cloudformation-gitlab \
+ rubygem-aws-sdk-cloudformation-gitlab>=1.134<2:devel/rubygem-aws-sdk-cloudformation-gitlab \
rubygem-aws-sdk-s3-gitlab>=1.193.0<1.194:devel/rubygem-aws-sdk-s3-gitlab \
rubygem-faraday-typhoeus-gitlab>=1.1<2:www/rubygem-faraday-typhoeus-gitlab \
rubygem-faraday_middleware-aws-sigv4-gitlab>=1.0.1<1.1:devel/rubygem-faraday_middleware-aws-sigv4-gitlab \
- rubygem-typhoeus14>=1.4.0<1.5:www/rubygem-typhoeus14 \
+ rubygem-typhoeus-gitlab>=1.4.0<1.5:www/rubygem-typhoeus-gitlab \
rubygem-html-pipeline-gitlab>=2.14.3<2.15:textproc/rubygem-html-pipeline-gitlab \
rubygem-deckar01-task_list-gitlab>=2.3.4<2.4:www/rubygem-deckar01-task_list-gitlab \
rubygem-gitlab-markup>=2.0.0<2.1:textproc/rubygem-gitlab-markup \
@@ -173,7 +174,7 @@ MY_DEPENDS= gitaly>=${GITLAB_VERSION}:devel/gitaly \
rubygem-state_machines-activerecord-gitlab>=0.8.0<0.9.0:databases/rubygem-state_machines-activerecord-gitlab \
rubygem-sidekiq-gitlab>=7.3.9:devel/rubygem-sidekiq-gitlab \
rubygem-sidekiq-cron-rails-gitlab>=1.12.0<1.13:devel/rubygem-sidekiq-cron-rails-gitlab \
- rubygem-fugit111>=1.11.1<1.12:devel/rubygem-fugit111 \
+ rubygem-fugit-gitlab>=1.11.2<1.12:devel/rubygem-fugit-gitlab \
rubygem-httparty-gitlab>=0.23.0<0.24:www/rubygem-httparty-gitlab \
rubygem-rainbow>=3.1.1<4.0:devel/rubygem-rainbow \
rubygem-ruby-progressbar>=1.11<2:devel/rubygem-ruby-progressbar \
@@ -186,7 +187,7 @@ MY_DEPENDS= gitaly>=${GITLAB_VERSION}:devel/gitaly \
rubygem-redis-client>=0.25.1<1:databases/rubygem-redis-client \
rubygem-redis-cluster-client>=0.13.5<1:databases/rubygem-redis-cluster-client \
rubygem-redis-clustering-gitlab>=5.4.0<5.4.1:databases/rubygem-redis-clustering-gitlab \
- rubygem-connection_pool>=2.5.3<2.6:net/rubygem-connection_pool \
+ rubygem-connection_pool>=2.5.4<2.6:net/rubygem-connection_pool \
rubygem-redis-actionpack-rails-gitlab>=5.5.0<5.6:databases/rubygem-redis-actionpack-rails-gitlab \
rubygem-jira-ruby-gitlab>=2.3.0<2.4:devel/rubygem-jira-ruby-gitlab \
rubygem-atlassian-jwt>=0.2.1<0.3.0:www/rubygem-atlassian-jwt \
@@ -206,9 +207,9 @@ MY_DEPENDS= gitaly>=${GITLAB_VERSION}:devel/gitaly \
rubygem-rack-proxy>=0.7.7<0.8.0:www/rubygem-rack-proxy \
rubygem-cssbundling-rails-rails-gitlab>=1.4.3<1.5:www/rubygem-cssbundling-rails-rails-gitlab \
rubygem-terser>=1.0.2<1.0.3:textproc/rubygem-terser \
- rubygem-click_house-client>=0.3.5<0.3.6:databases/rubygem-click_house-client \
+ rubygem-click_house-client>=0.5.1<0.6:databases/rubygem-click_house-client \
rubygem-addressable>=2.8<3:www/rubygem-addressable \
- rubygem-gon-rails-gitlab>=6.4.0<6.5:www/rubygem-gon-rails-gitlab \
+ rubygem-gon-rails-gitlab>=6.5.0<6.6:www/rubygem-gon-rails-gitlab \
rubygem-request_store>=1.7.0<1.8:devel/rubygem-request_store \
rubygem-base32>=0.3.4<0.4.0:converters/rubygem-base32 \
rubygem-gitlab-license>=2.6<3:devel/rubygem-gitlab-license \
@@ -218,7 +219,7 @@ MY_DEPENDS= gitaly>=${GITLAB_VERSION}:devel/gitaly \
rubygem-sentry-sidekiq>=5.23.0<5.24:devel/rubygem-sentry-sidekiq \
rubygem-pg_query>=6.1.0<6.2:databases/rubygem-pg_query \
rubygem-premailer-rails-rails-gitlab>=1.12.0<1.13:mail/rubygem-premailer-rails-rails-gitlab \
- rubygem-gitlab-labkit>=0.39.0<0.40:devel/rubygem-gitlab-labkit \
+ rubygem-gitlab-labkit>=0.40.0<0.41:devel/rubygem-gitlab-labkit \
rubygem-thrift>=0.22.0,1<0.23,1:devel/rubygem-thrift \
rubygem-rails-i18n-rails-gitlab>=7.0.9<8:devel/rubygem-rails-i18n-rails-gitlab \
rubygem-gettext_i18n_rails>=1.13.0<1.14:devel/rubygem-gettext_i18n_rails \
@@ -229,9 +230,11 @@ MY_DEPENDS= gitaly>=${GITLAB_VERSION}:devel/gitaly \
rubygem-snowplow-tracker>=0.8.0<1:devel/rubygem-snowplow-tracker \
rubygem-webrick>=1.9.0<1.10:www/rubygem-webrick \
rubygem-prometheus-client-mmap>=1.2.10<1.3:devel/rubygem-prometheus-client-mmap \
- rubygem-async-gitlab>=2.24.0<2.25:devel/rubygem-async-gitlab \
+ rubygem-async-gitlab>=2.28.0<2.29:devel/rubygem-async-gitlab \
rubygem-io-event>=1.12.1<2:devel/rubygem-io-event \
rubygem-gitlab-security_report_schemas>=0.1.3.min15.0.0.max15.2.3<0.1.3.min15.0.0.max15.2.4:devel/rubygem-gitlab-security_report_schemas \
+ rubygem-vite_rails-gitlab>=3.0.17<3.1:devel/rubygem-vite_rails-gitlab \
+ rubygem-vite_ruby-gitlab>=3.9.0<3.10:devel/rubygem-vite_ruby-gitlab \
rubygem-opentelemetry-sdk>=1.5.0:devel/rubygem-opentelemetry-sdk \
rubygem-opentelemetry-exporter-otlp>=0.29.1:devel/rubygem-opentelemetry-exporter-otlp \
rubygem-opentelemetry-instrumentation-active_support>=0.6.0:devel/rubygem-opentelemetry-instrumentation-active_support \
@@ -275,7 +278,7 @@ MY_DEPENDS= gitaly>=${GITLAB_VERSION}:devel/gitaly \
rubygem-net-ntp>0:net/rubygem-net-ntp \
rubygem-ssh_data>=1.3<2:security/rubygem-ssh_data \
rubygem-spamcheck>=1.3.3<1.4:net/rubygem-spamcheck \
- rubygem-gitaly>=18.2.1:net/rubygem-gitaly \
+ rubygem-gitaly>=18.4.0:net/rubygem-gitaly \
rubygem-gitlab-kas-grpc>=${GITLAB_KAS_GRPC_VERSION}:net/rubygem-gitlab-kas-grpc \
rubygem-grpc-gitlab>=1.74.0<2:net/rubygem-grpc-gitlab \
rubygem-google-protobuf3>=3.25.8<4:devel/rubygem-google-protobuf3 \
@@ -299,7 +302,7 @@ MY_DEPENDS= gitaly>=${GITLAB_VERSION}:devel/gitaly \
rubygem-json_schemer>=2.3.0<2.4:devel/rubygem-json_schemer \
rubygem-oj>=3.16.11<3.17:devel/rubygem-oj \
rubygem-oj-introspect>=0.8<1:devel/rubygem-oj-introspect \
- rubygem-multi_json114>=1.14.1<1.15:devel/rubygem-multi_json114 \
+ rubygem-multi_json-gitlab>=1.17.0<1.18:devel/rubygem-multi_json-gitlab \
rubygem-yajl-ruby>=1.4.3<1.5:devel/rubygem-yajl-ruby \
rubygem-webauthn>=3.0<4:security/rubygem-webauthn \
rubygem-ipaddress>=0.8.3<0.9:net/rubygem-ipaddress \
@@ -307,11 +310,12 @@ MY_DEPENDS= gitaly>=${GITLAB_VERSION}:devel/gitaly \
rubygem-ed25519>=1.4.0<1.5:security/rubygem-ed25519 \
rubygem-cvss-suite>=3.3.0<3.4:security/rubygem-cvss-suite \
rubygem-arr-pm>=0.0.12<0.1:devel/rubygem-arr-pm \
- rubygem-devfile>=0.4.4<0.5:net/rubygem-devfile \
+ rubygem-devfile>=0.4.8<0.5:net/rubygem-devfile \
rubygem-hashdiff>=1.2.0<1.3:devel/rubygem-hashdiff \
rubygem-CFPropertyList-gitlab>=3.0.7<3.1:devel/rubygem-CFPropertyList-gitlab \
rubygem-app_store_connect>=0:net/rubygem-app_store_connect \
- rubygem-telesignenterprise>=2.2<3:devel/rubygem-telesignenterprise \
+ rubygem-telesignenterprise>=2.6<3:devel/rubygem-telesignenterprise \
+ rubygem-base6402>=0.2.0<0.3:converters/rubygem-base6402 \
rubygem-net-protocol>=0.2.2<0.3:net/rubygem-net-protocol \
rubygem-nkf>=0.2.0<0.3:net/rubygem-nkf \
rubygem-net-http>=0.6.0<0.6.1:www/rubygem-net-http \
diff --git a/www/gitlab/Makefile.common b/www/gitlab/Makefile.common
index f8a74c64788b..6d44b00038e2 100644
--- a/www/gitlab/Makefile.common
+++ b/www/gitlab/Makefile.common
@@ -1,10 +1,11 @@
-GITLAB_VERSION= 18.3.5
-GITLAB_PORTREVISION= 0
+GITLAB_VERSION= 18.4.3
+GITLAB_PORTREVISION= 2
# Git version gitaly should use (from gitlab mirror)
# Find current tag from Makefile and .gitlab-ci.yaml
# and from https://gitlab.com/gitlab-org/git/-/tags
GITLAB_GIT_VERSION= 2.50.0
+GITLAB_GIT_MASTER_VERSION= 23466173824c0a0f835c0d790c2f38156ae6284a
# return something like x.yy
GITLAB_GIT_VERSION_SHORT= ${GITLAB_GIT_VERSION:C/^([0-9]*\.[0-9]*)\..*/\1/}
diff --git a/www/gitlab/distinfo b/www/gitlab/distinfo
index 1ac0e8dc35ce..89ed69ca076a 100644
--- a/www/gitlab/distinfo
+++ b/www/gitlab/distinfo
@@ -1,6 +1,6 @@
-TIMESTAMP = 1761126561
-SHA256 (gitlab-foss-v18.3.5.tar.bz2) = a3fdaee042b98938b6b0d663d297f50b3f7468741b1def98895f991be5cb7fb2
-SIZE (gitlab-foss-v18.3.5.tar.bz2) = 122289928
-TIMESTAMP = 1761126604
-SHA256 (gitlab-v18.3.5-ee.tar.bz2) = 27d8c7de165fe25714305a070707626635f5d9f397837a86279b1ac875576732
-SIZE (gitlab-v18.3.5-ee.tar.bz2) = 138198849
+TIMESTAMP = 1761396302
+SHA256 (gitlab-foss-v18.4.3.tar.bz2) = dd2c1c3261e8ad0547bb612733a5dfa01b186dab409e9b90a15da67617759e5b
+SIZE (gitlab-foss-v18.4.3.tar.bz2) = 122558508
+TIMESTAMP = 1761396303
+SHA256 (gitlab-v18.4.3-ee.tar.bz2) = adc59024b9bd00128bf75b9a6fc3f4178ca41f64fa2043e2a53e4eda5602b72d
+SIZE (gitlab-v18.4.3-ee.tar.bz2) = 138452921
diff --git a/www/gitlab/files/patch-Gemfile b/www/gitlab/files/patch-Gemfile
index 7943be7c3489..c5e64b759360 100644
--- a/www/gitlab/files/patch-Gemfile
+++ b/www/gitlab/files/patch-Gemfile
@@ -1,4 +1,4 @@
---- Gemfile.orig 2025-08-20 06:43:08 UTC
+--- Gemfile.orig 2025-10-21 19:24:47 UTC
+++ Gemfile
@@ -165,7 +165,7 @@ gem 'graphql', '2.5.11', feature_category: :api
@@ -18,13 +18,14 @@
gem 'sidekiq-cron', '~> 1.12.0', feature_category: :scalability
gem 'gitlab-sidekiq-fetcher',
path: 'vendor/gems/sidekiq-reliable-fetch',
-@@ -468,148 +468,15 @@ gem 'warning', '~> 1.5.0', feature_category: :shared
+@@ -473,141 +473,15 @@ gem 'warning', '~> 1.5.0', feature_category: :shared
gem 'warning', '~> 1.5.0', feature_category: :shared
-group :development do
- gem 'lefthook', '~> 1.12.0', require: false, feature_category: :tooling
-- gem 'rubocop', feature_category: :tooling
+- gem 'rubocop', feature_category: :tooling, require: false
+- gem 'debug', '~> 1.11.0', feature_category: :shared
-
- gem 'solargraph', '~> 0.54.0', require: false, feature_category: :shared
- gem 'solargraph-rspec', '~> 0.5.1', require: false, feature_category: :shared
@@ -80,9 +81,6 @@
- gem 'benchmark-ips', '~> 2.14.0', require: false, feature_category: :shared
- gem 'benchmark-memory', '~> 0.1', require: false, feature_category: :shared
-
-- # Profiling data from CI/CD pipelines
-- gem 'influxdb-client', '~> 3.1', require: false, feature_category: :tooling
--
- gem 'knapsack', '~> 4.0.0', feature_category: :tooling
- gem 'gitlab-crystalball', '~> 1.1.0', require: false, feature_category: :tooling
- gem 'test_file_finder', '~> 0.3.1', feature_category: :tooling
@@ -97,11 +95,6 @@
-
- gem 'pact', '~> 1.64', feature_category: :shared
-
-- # For now we only use vite in development / test, and not for production builds
-- # See: https://gitlab.com/gitlab-org/frontend/rfcs/-/issues/106
-- gem 'vite_rails', '~> 3.0.17', feature_category: :shared
-- gem 'vite_ruby', '~> 3.9.0', feature_category: :shared
--
- gem 'gitlab-housekeeper', path: 'gems/gitlab-housekeeper', feature_category: :tooling
-
- gem 'yard', '~> 0.9', require: false, feature_category: :tooling
@@ -161,26 +154,26 @@
- # Moved in `test` because https://gitlab.com/gitlab-org/gitlab/-/issues/217527
- gem 'derailed_benchmarks', require: false, feature_category: :shared
-
-- gem 'gitlab_quality-test_tooling', '~> 2.18.0', require: false, feature_category: :tooling
+- gem 'gitlab_quality-test_tooling', '~> 2.20.0', require: false, feature_category: :tooling
-end
-
gem 'octokit', '~> 9.0', feature_category: :importers
# Needed by octokit: https://github.com/octokit/octokit.rb/pull/1688
gem 'faraday-multipart', '~> 1.0', feature_category: :importers
-@@ -643,10 +510,10 @@ gem 'spamcheck', '~> 1.3.0', feature_category: :inside
+@@ -641,10 +515,10 @@ gem 'spamcheck', '~> 1.3.0', feature_category: :inside
gem 'spamcheck', '~> 1.3.0', feature_category: :insider_threat
# Gitaly GRPC protocol definitions
--gem 'gitaly', '~> 18.2.0', feature_category: :gitaly
-+gem 'gitaly', '~> 18.2', feature_category: :gitaly
+-gem 'gitaly', '~> 18.4.0.pre.rc1', feature_category: :gitaly
++gem 'gitaly', '~> 18.4', feature_category: :gitaly
# KAS GRPC protocol definitions
--gem 'gitlab-kas-grpc', '~> 18.2.0', feature_category: :deployment_management
-+gem 'gitlab-kas-grpc', '~> 18.2', feature_category: :deployment_management
+-gem 'gitlab-kas-grpc', '~> 18.3.0', feature_category: :deployment_management
++gem 'gitlab-kas-grpc', '~> 18.3', feature_category: :deployment_management
gem 'grpc', '~> 1.74.0', feature_category: :shared
-@@ -669,7 +536,7 @@ gem 'gitlab-net-dns', '~> 0.15.0', feature_category: :
+@@ -667,7 +541,7 @@ gem 'gitlab-net-dns', '~> 0.15.0', feature_category: :
gem 'gitlab-net-dns', '~> 0.15.0', feature_category: :shared
# Countries list
@@ -189,7 +182,7 @@
gem 'retriable', '~> 3.1.2', feature_category: :shared
-@@ -750,10 +617,15 @@ gem 'duo_api', '~> 1.3', feature_category: :system_acc
+@@ -752,10 +626,15 @@ gem 'duo_api', '~> 1.3', feature_category: :system_acc
gem 'duo_api', '~> 1.3', feature_category: :system_access
diff --git a/www/gitlab/files/patch-config_gitlab.yml.example b/www/gitlab/files/patch-config_gitlab.yml.example
index 5c05397684c9..d4e98d985eb3 100644
--- a/www/gitlab/files/patch-config_gitlab.yml.example
+++ b/www/gitlab/files/patch-config_gitlab.yml.example
@@ -1,6 +1,6 @@
---- config/gitlab.yml.example.orig 2025-08-20 06:43:08 UTC
+--- config/gitlab.yml.example.orig 2025-10-21 19:24:47 UTC
+++ config/gitlab.yml.example
-@@ -511,7 +511,7 @@ production: &base
+@@ -507,7 +507,7 @@ production: &base
## GitLab Pages
pages:
enabled: false
@@ -9,7 +9,7 @@
# The location where pages are stored (default: shared/pages).
# path: shared/pages
-@@ -1261,13 +1261,13 @@ production: &base
+@@ -1252,13 +1252,13 @@ production: &base
repositories:
storages: # You must have at least a `default` storage path.
default:
@@ -25,7 +25,7 @@
# archive_permissions: 0640 # Permissions for the resulting backup.tar file (default: 0600)
# keep_time: 604800 # default: 0 (forever) (in seconds)
# pg_schema: public # default: nil, it means that all schemas will be backed up
-@@ -1302,12 +1302,12 @@ production: &base
+@@ -1293,12 +1293,12 @@ production: &base
## GitLab Shell settings
gitlab_shell:
@@ -41,15 +41,15 @@
# Git over HTTP
upload_pack: true
-@@ -1322,7 +1322,7 @@ production: &base
+@@ -1313,7 +1313,7 @@ production: &base
workhorse:
# File that contains the secret key for verifying access for gitlab-workhorse.
# Default is '.gitlab_workhorse_secret' relative to Rails.root (i.e. root of the GitLab app).
- # secret_file: /home/git/gitlab/.gitlab_workhorse_secret
+ # secret_file: %%WWWDIR%%/.gitlab_workhorse_secret
- cell:
- # enabled: false
+ database_traffic_capture:
+ config:
@@ -1340,7 +1340,7 @@ production: &base
# enabled: true
# File that contains the secret key for verifying access for gitlab-kas.
diff --git a/www/gitlab/pkg-message b/www/gitlab/pkg-message
index 089734612436..64b201d3412a 100644
--- a/www/gitlab/pkg-message
+++ b/www/gitlab/pkg-message
@@ -6,7 +6,7 @@ Gitlab was installed successfully.
You now need to set up the various components of Gitlab, so please
follow the instructions in the guide at:
-https://gitlab.com/mfechner/freebsd-gitlab-docu/blob/master/install/18.3-freebsd.md
+https://gitlab.com/mfechner/freebsd-gitlab-docu/blob/master/install/18.4-freebsd.md
EOM
type: install
}
@@ -18,9 +18,9 @@ EOM
{
message: <<EOM
If you just installed an major upgrade of GitLab, for example you
-switched from 18.2.x to 18.3.x, please follow the instructions in the guide at:
+switched from 18.3.x to 18.4.x, please follow the instructions in the guide at:
-https://gitlab.com/mfechner/freebsd-gitlab-docu/blob/master/update/18.2-18.3-freebsd.md
+https://gitlab.com/mfechner/freebsd-gitlab-docu/blob/master/update/18.3-18.4-freebsd.md
If you just installed an minor upgrade of GitLab please follow
the instructions in the guide at:
diff --git a/www/gohugo/Makefile b/www/gohugo/Makefile
index 152eed0fb280..b472bc8874b5 100644
--- a/www/gohugo/Makefile
+++ b/www/gohugo/Makefile
@@ -1,6 +1,6 @@
PORTNAME= hugo
DISTVERSIONPREFIX= v
-DISTVERSION= 0.152.1
+DISTVERSION= 0.152.2
PORTEPOCH= 1
CATEGORIES= www
PKGNAMEPREFIX= go
diff --git a/www/gohugo/distinfo b/www/gohugo/distinfo
index 8da90d1c95ff..a2485e8ef8c1 100644
--- a/www/gohugo/distinfo
+++ b/www/gohugo/distinfo
@@ -1,5 +1,5 @@
-TIMESTAMP = 1761229783
-SHA256 (go/www_gohugo/hugo-v0.152.1/v0.152.1.mod) = 8a9c4808fc20967205797834b0159dc146a01dd1c7ba6f7426f025176549fc50
-SIZE (go/www_gohugo/hugo-v0.152.1/v0.152.1.mod) = 9291
-SHA256 (go/www_gohugo/hugo-v0.152.1/v0.152.1.zip) = fabac3a61a160355e13dfee97e3ab8070a5898e81a5bd364d7e3d1786af4fa40
-SIZE (go/www_gohugo/hugo-v0.152.1/v0.152.1.zip) = 5777363
+TIMESTAMP = 1761321118
+SHA256 (go/www_gohugo/hugo-v0.152.2/v0.152.2.mod) = 9fd5c3cb063cae52d4453818b583cedd7c38539a89c826e19603ebd82f28b9a3
+SIZE (go/www_gohugo/hugo-v0.152.2/v0.152.2.mod) = 9321
+SHA256 (go/www_gohugo/hugo-v0.152.2/v0.152.2.zip) = 5e540330b50c9936664c346da038023e37c0060f92d973a1f42e43c30d807322
+SIZE (go/www_gohugo/hugo-v0.152.2/v0.152.2.zip) = 5778064
diff --git a/www/hs-postgrest/Makefile b/www/hs-postgrest/Makefile
index 2ed1e299a35e..24e85df39abe 100644
--- a/www/hs-postgrest/Makefile
+++ b/www/hs-postgrest/Makefile
@@ -1,6 +1,6 @@
PORTNAME= postgrest
DISTVERSIONPREFIX= v
-DISTVERSION= 13.0.7
+DISTVERSION= 14.0
CATEGORIES= www databases haskell
MAINTAINER= haskell@FreeBSD.org
@@ -16,15 +16,15 @@ BUILD_DEPENDS= ghc-9.6.7:lang/ghc96 \
pg_config:databases/postgresql${PGSQL_DEFAULT}-client
USES= cabal pgsql
-
USE_GITHUB= yes
GH_ACCOUNT= PostgREST
-
USE_RC_SUBR= postgrest
CABAL_PROJECT= remove
SKIP_CABAL_PLIST= yes
+# Restrict to stable (even) versions, indicated by the second component.
+PORTSCOUT= limitw:1,even
SUB_FILES= default.conf
SUB_LIST= ETCDIR=${ETCDIR} \
POSTGREST_GROUP=${POSTGREST_GROUP} \
@@ -35,7 +35,6 @@ GROUPS= ${POSTGREST_GROUP}
PLIST_FILES= "@sample ${ETCDIR}/default.conf.sample" \
sbin/postgrest
-
PLIST_SUB= ETCDIR=${ETCDIR} \
POSTGREST_GROUP=${POSTGREST_GROUP} \
POSTGREST_USER=${POSTGREST_USER}
diff --git a/www/hs-postgrest/Makefile.modules b/www/hs-postgrest/Makefile.modules
index 81b31d3fa671..56d5044e390d 100644
--- a/www/hs-postgrest/Makefile.modules
+++ b/www/hs-postgrest/Makefile.modules
@@ -8,8 +8,8 @@ USE_CABAL= HTTP-4000.4.1_6 \
adjunctions-4.4.3 \
aeson-2.2.3.0_4 \
aeson-pretty-0.8.10 \
- ansi-terminal-1.1.2 \
- ansi-terminal-types-1.1 \
+ ansi-terminal-1.1.3 \
+ ansi-terminal-types-1.1.3 \
appar-0.1.8 \
asn1-encoding-0.9.6_2 \
asn1-parse-0.9.5 \
@@ -29,6 +29,7 @@ USE_CABAL= HTTP-4000.4.1_6 \
bifunctors-5.6.2_2 \
binary-parser-0.5.7.7 \
bitvec-1.1.5.0_3 \
+ blaze-builder-0.4.4.1 \
bsb-http-chunked-0.0.0.4_4 \
byteorder-1.0.4 \
bytestring-strict-builder-0.4.5.8 \
@@ -37,7 +38,7 @@ USE_CABAL= HTTP-4000.4.1_6 \
cache-0.1.3.0_1 \
call-stack-0.4.0 \
case-insensitive-1.2.1.0 \
- cassava-0.5.4.0_1 \
+ cassava-0.5.4.1 \
cereal-0.5.8.3 \
character-ps-0.1 \
charset-0.3.12 \
@@ -45,7 +46,7 @@ USE_CABAL= HTTP-4000.4.1_6 \
cmdargs-0.10.22 \
colour-2.3.6 \
comonad-5.0.9_1 \
- configurator-pg-0.2.10_3 \
+ configurator-pg-0.2.11 \
contravariant-1.5.5 \
contravariant-extras-0.3.5.4 \
cookie-0.5.1 \
@@ -71,10 +72,11 @@ USE_CABAL= HTTP-4000.4.1_6 \
distributive-0.6.2.1_1 \
dlist-1.0_2 \
easy-file-0.2.5 \
- either-5.0.3 \
+ either-5.0.3_1 \
entropy-0.4.1.11 \
extra-1.8 \
fast-logger-3.2.6 \
+ focus-1.0.3.2 \
foldl-1.4.18_1 \
free-5.2_7 \
fuzzyset-0.2.4 \
@@ -92,6 +94,7 @@ USE_CABAL= HTTP-4000.4.1_6 \
heredoc-0.2.0.0 \
hourglass-0.2.12_1 \
hsc2hs-0.68.10_4 \
+ http-client-0.7.19 \
http-date-0.0.11 \
http-media-0.8.1.1_2 \
http-semantics-0.3.0 \
@@ -110,15 +113,20 @@ USE_CABAL= HTTP-4000.4.1_6 \
kan-extensions-5.2.7 \
keys-3.12.4_1 \
lawful-conversions-0.1.7 \
- lens-5.3.5 \
+ lens-5.3.5_1 \
lens-aeson-1.2.3_2 \
+ list-t-1.0.5.7 \
+ logict-0.8.2.0 \
math-functions-0.3.4.4 \
megaparsec-9.7.0 \
memory-0.18.0_1 \
+ mime-types-0.1.2.0 \
+ mmorph-1.2.1_1 \
+ monad-control-1.0.3.1 \
mtl-compat-0.2.2 \
mwc-random-0.15.2.0 \
neat-interpolation-0.5.1.4 \
- network-3.2.7.0 \
+ network-3.2.8.0 \
network-byte-order-0.1.7 \
network-control-0.1.7 \
network-info-0.2.1 \
@@ -130,7 +138,7 @@ USE_CABAL= HTTP-4000.4.1_6 \
optics-extra-0.4.2.1_4 \
optics-th-0.4.1_9 \
optparse-applicative-0.18.1.0_1 \
- os-string-2.0.7_1 \
+ os-string-2.0.8 \
parallel-3.2.2.0_10 \
parser-combinators-1.3.0_1 \
parsers-0.12.12_1 \
@@ -142,10 +150,12 @@ USE_CABAL= HTTP-4000.4.1_6 \
prettyprinter-1.7.1 \
prettyprinter-ansi-terminal-1.1.3 \
primitive-0.9.1.0 \
+ primitive-extras-0.10.2.2 \
+ primitive-unlifted-2.2.0.0 \
profunctors-5.6.3 \
prometheus-client-1.1.1 \
protolude-0.3.5 \
- psqueues-0.2.8.1 \
+ psqueues-0.2.8.2 \
ptr-0.16.8.7 \
quickcheck-instances-0.3.33_1 \
random-1.3.1 \
@@ -153,7 +163,7 @@ USE_CABAL= HTTP-4000.4.1_6 \
recv-0.1.1 \
reflection-2.1.9_1 \
regex-base-0.94.0.3 \
- regex-tdfa-1.3.2.4 \
+ regex-tdfa-1.3.2.5 \
rerebase-1.21.2 \
resourcet-1.3.0 \
retry-0.9.3.1 \
@@ -163,9 +173,11 @@ USE_CABAL= HTTP-4000.4.1_6 \
semigroupoids-6.0.1_2 \
semigroups-0.20 \
simple-sendfile-0.2.32 \
+ some-1.0.6_2 \
sop-core-0.5.0.2_5 \
split-0.2.5 \
splitmix-0.1.3.1 \
+ stm-hamt-1.2.1.1 \
streaming-commons-0.2.3.0 \
strict-0.5.1_1 \
strict-list-0.1.7.6 \
@@ -189,10 +201,10 @@ USE_CABAL= HTTP-4000.4.1_6 \
transformers-base-0.4.6 \
transformers-compat-0.7.2 \
type-hint-0.1 \
- unix-compat-0.7.4 \
+ unix-compat-0.7.4.1 \
unix-time-0.4.17 \
unliftio-core-0.2.1.0_4 \
- unordered-containers-0.2.20_4 \
+ unordered-containers-0.2.20.1 \
utf8-string-1.0.2 \
uuid-1.3.16_3 \
uuid-types-1.0.6_3 \
@@ -204,9 +216,9 @@ USE_CABAL= HTTP-4000.4.1_6 \
void-0.7.3 \
wai-3.2.4 \
wai-cors-0.2.7 \
- wai-extra-3.1.17 \
+ wai-extra-3.1.18 \
wai-logger-2.5.0 \
- warp-3.4.8 \
+ warp-3.4.9 \
witherable-0.5_1 \
word8-0.1.3 \
- zlib-0.7.1.0_2
+ zlib-0.7.1.1
diff --git a/www/hs-postgrest/distinfo b/www/hs-postgrest/distinfo
index e5e23438a8d7..b827fede832b 100644
--- a/www/hs-postgrest/distinfo
+++ b/www/hs-postgrest/distinfo
@@ -1,4 +1,4 @@
-TIMESTAMP = 1757922831
+TIMESTAMP = 1761533632
SHA256 (cabal/HTTP-4000.4.1/HTTP-4000.4.1.tar.gz) = df31d8efec775124dab856d7177ddcba31be9f9e0836ebdab03d94392f2dd453
SIZE (cabal/HTTP-4000.4.1/HTTP-4000.4.1.tar.gz) = 74330
SHA256 (cabal/HTTP-4000.4.1/revision/6.cabal) = ad36c6a1b3bc203b02751c8bffae8a684cc755661a2a567362cd4a0da1193c5e
@@ -31,10 +31,10 @@ SHA256 (cabal/aeson-2.2.3.0/revision/4.cabal) = 7d48c2395ef168d2c2070fdb02c79983
SIZE (cabal/aeson-2.2.3.0/revision/4.cabal) = 6368
SHA256 (cabal/aeson-pretty-0.8.10/aeson-pretty-0.8.10.tar.gz) = 2a21f2cd78adcb149ceba770239ed664519552911e7680172b18ff695cfa7ae5
SIZE (cabal/aeson-pretty-0.8.10/aeson-pretty-0.8.10.tar.gz) = 5894
-SHA256 (cabal/ansi-terminal-1.1.2/ansi-terminal-1.1.2.tar.gz) = a8d04a3e0451e22a6499a92311f0df1196dc65b687df7d10e3f30d92420156b0
-SIZE (cabal/ansi-terminal-1.1.2/ansi-terminal-1.1.2.tar.gz) = 36259
-SHA256 (cabal/ansi-terminal-types-1.1/ansi-terminal-types-1.1.tar.gz) = f2e5333eb78da5f4dd330fca0c81a59276cc150c625647cd20f57b7f297a5d25
-SIZE (cabal/ansi-terminal-types-1.1/ansi-terminal-types-1.1.tar.gz) = 4746
+SHA256 (cabal/ansi-terminal-1.1.3/ansi-terminal-1.1.3.tar.gz) = 88d11a165cd709bfd603b4bc36afd5b39d3e9eec69ee466ca4359441d468c092
+SIZE (cabal/ansi-terminal-1.1.3/ansi-terminal-1.1.3.tar.gz) = 32633
+SHA256 (cabal/ansi-terminal-types-1.1.3/ansi-terminal-types-1.1.3.tar.gz) = 9fc9ce2157f1889bd99a4d22c9f1c64589590be0f797c3efe71c8fa17a11a689
+SIZE (cabal/ansi-terminal-types-1.1.3/ansi-terminal-types-1.1.3.tar.gz) = 8791
SHA256 (cabal/appar-0.1.8/appar-0.1.8.tar.gz) = c4ceeddc26525b58d82c41b6d3e32141371a200a6794aae185b6266ccc81631f
SIZE (cabal/appar-0.1.8/appar-0.1.8.tar.gz) = 4037
SHA256 (cabal/asn1-encoding-0.9.6/asn1-encoding-0.9.6.tar.gz) = d9f8deabd3b908e5cf83c0d813c08dc0143b3ec1c0d97f660d2cfa02c1c8da0a
@@ -87,6 +87,8 @@ SHA256 (cabal/bitvec-1.1.5.0/bitvec-1.1.5.0.tar.gz) = 83d27cee5be1d5342ddbf39999
SIZE (cabal/bitvec-1.1.5.0/bitvec-1.1.5.0.tar.gz) = 40076
SHA256 (cabal/bitvec-1.1.5.0/revision/3.cabal) = 434be6dc60e22858a52869c58038c35353f1a778b9679ebc06a2165bcc7f88b3
SIZE (cabal/bitvec-1.1.5.0/revision/3.cabal) = 4921
+SHA256 (cabal/blaze-builder-0.4.4.1/blaze-builder-0.4.4.1.tar.gz) = 971d360428ac97af9a4e55e4f2c23649f6cedc0ce5d6e94d520e663f33ea5113
+SIZE (cabal/blaze-builder-0.4.4.1/blaze-builder-0.4.4.1.tar.gz) = 59452
SHA256 (cabal/bsb-http-chunked-0.0.0.4/bsb-http-chunked-0.0.0.4.tar.gz) = 148309e23eb8b261c1de374712372d62d8c8dc8ee504c392809c7ec33c0a0e7c
SIZE (cabal/bsb-http-chunked-0.0.0.4/bsb-http-chunked-0.0.0.4.tar.gz) = 6630
SHA256 (cabal/bsb-http-chunked-0.0.0.4/revision/4.cabal) = 1cce7371c31b1d3cfa3eb155e2aecffc0ec212d1d8a7e7c8a3b00ef76818a43b
@@ -107,10 +109,8 @@ SHA256 (cabal/call-stack-0.4.0/call-stack-0.4.0.tar.gz) = 430bcf8a3404f7e5531957
SIZE (cabal/call-stack-0.4.0/call-stack-0.4.0.tar.gz) = 2757
SHA256 (cabal/case-insensitive-1.2.1.0/case-insensitive-1.2.1.0.tar.gz) = 296dc17e0c5f3dfb3d82ced83e4c9c44c338ecde749b278b6eae512f1d04e406
SIZE (cabal/case-insensitive-1.2.1.0/case-insensitive-1.2.1.0.tar.gz) = 53609
-SHA256 (cabal/cassava-0.5.4.0/cassava-0.5.4.0.tar.gz) = d9dea5652b7bd2175161c00acb5ca107e8b02662b88517e943e06933d6aeab6d
-SIZE (cabal/cassava-0.5.4.0/cassava-0.5.4.0.tar.gz) = 37885
-SHA256 (cabal/cassava-0.5.4.0/revision/1.cabal) = 7d1cc4bcceca83f1220db147ccbd3a5e58ed1cb8513c26ec02fbadcb058cf5f0
-SIZE (cabal/cassava-0.5.4.0/revision/1.cabal) = 5023
+SHA256 (cabal/cassava-0.5.4.1/cassava-0.5.4.1.tar.gz) = d40636f530737a99c0282084322230d04d6e1b445e779a0d0a5005f6285a495f
+SIZE (cabal/cassava-0.5.4.1/cassava-0.5.4.1.tar.gz) = 38097
SHA256 (cabal/cereal-0.5.8.3/cereal-0.5.8.3.tar.gz) = 99905220661b26e5bd91130bd9772554938608a5b1d717240a6eb331121e0f6a
SIZE (cabal/cereal-0.5.8.3/cereal-0.5.8.3.tar.gz) = 20166
SHA256 (cabal/character-ps-0.1/character-ps-0.1.tar.gz) = 22de71fde38b236d3e9168a832b5e1e75d1fb4f4028667bdf747b3b4c8c1529c
@@ -127,10 +127,8 @@ SHA256 (cabal/comonad-5.0.9/comonad-5.0.9.tar.gz) = 69fb0eb49a80055a9b76d31d0a56
SIZE (cabal/comonad-5.0.9/comonad-5.0.9.tar.gz) = 14455
SHA256 (cabal/comonad-5.0.9/revision/1.cabal) = 75aded79bf583c908e4e4687c0ae067f256e2507536b75f58ffba7748767c353
SIZE (cabal/comonad-5.0.9/revision/1.cabal) = 3587
-SHA256 (cabal/configurator-pg-0.2.10/configurator-pg-0.2.10.tar.gz) = 527b96469442706ce51ab9b41681434fca413945b5ab868bd2778b66fe3d4689
-SIZE (cabal/configurator-pg-0.2.10/configurator-pg-0.2.10.tar.gz) = 12239
-SHA256 (cabal/configurator-pg-0.2.10/revision/3.cabal) = cf1e6172a9c7aa258d86295f2172cdae7ba5f36ff6ed189d16ee3d123204d794
-SIZE (cabal/configurator-pg-0.2.10/revision/3.cabal) = 2862
+SHA256 (cabal/configurator-pg-0.2.11/configurator-pg-0.2.11.tar.gz) = 8159f1cb2bb6a11d23c6608a6991e6b183d681ebe6e338ee8c08620eb8b9335b
+SIZE (cabal/configurator-pg-0.2.11/configurator-pg-0.2.11.tar.gz) = 12575
SHA256 (cabal/contravariant-1.5.5/contravariant-1.5.5.tar.gz) = 062fd66580d7aad0b5ba93e644ffa7feee69276ef50f20d4ed9f1deb7642dffa
SIZE (cabal/contravariant-1.5.5/contravariant-1.5.5.tar.gz) = 13815
SHA256 (cabal/contravariant-extras-0.3.5.4/contravariant-extras-0.3.5.4.tar.gz) = 2f3a16d38cb6778704db7f142e54be169db4362e033b2d568c172d0c6e64298e
@@ -193,12 +191,16 @@ SHA256 (cabal/easy-file-0.2.5/easy-file-0.2.5.tar.gz) = ee0fa0914b3bb3662838a689
SIZE (cabal/easy-file-0.2.5/easy-file-0.2.5.tar.gz) = 13358
SHA256 (cabal/either-5.0.3/either-5.0.3.tar.gz) = 6d66691e84955a90a2d169f71cf51c83d76c141635cb8da2a60ddffca4804801
SIZE (cabal/either-5.0.3/either-5.0.3.tar.gz) = 7934
+SHA256 (cabal/either-5.0.3/revision/1.cabal) = c3c5f462a2d5eb9fa66630252239b372c902e4cf12f128d5507bd2f5b32ebbcf
+SIZE (cabal/either-5.0.3/revision/1.cabal) = 1905
SHA256 (cabal/entropy-0.4.1.11/entropy-0.4.1.11.tar.gz) = f5dd5a01278f8318d9793ed6071b742f13ce36c7456328baae4acc818e2d92ea
SIZE (cabal/entropy-0.4.1.11/entropy-0.4.1.11.tar.gz) = 9112
SHA256 (cabal/extra-1.8/extra-1.8.tar.gz) = 2fa4ce5eae50560bba80f1883913cf2ed52b3d87fd290dae27d838c94f5389a1
SIZE (cabal/extra-1.8/extra-1.8.tar.gz) = 47005
SHA256 (cabal/fast-logger-3.2.6/fast-logger-3.2.6.tar.gz) = bd66c622de84170ef41cd6ca37f507882322a3968e39a89c620613f33e63c5c3
SIZE (cabal/fast-logger-3.2.6/fast-logger-3.2.6.tar.gz) = 14852
+SHA256 (cabal/focus-1.0.3.2/focus-1.0.3.2.tar.gz) = e24b3f0438810302472697ab10280d1ec53bbc98c1ef6812c450301a016cc286
+SIZE (cabal/focus-1.0.3.2/focus-1.0.3.2.tar.gz) = 6242
SHA256 (cabal/foldl-1.4.18/foldl-1.4.18.tar.gz) = cad8f45180f7d375262f72887be5f48f4ec55e34b381b5cb71269f006e91500e
SIZE (cabal/foldl-1.4.18/foldl-1.4.18.tar.gz) = 26703
SHA256 (cabal/foldl-1.4.18/revision/1.cabal) = aa42a0d8db37909c2bf69861447b9f40b4993166f32a981f6eefbac503d151c7
@@ -247,6 +249,8 @@ SHA256 (cabal/hsc2hs-0.68.10/hsc2hs-0.68.10.tar.gz) = 6f4e34d788fe2ca7091ee0a103
SIZE (cabal/hsc2hs-0.68.10/hsc2hs-0.68.10.tar.gz) = 40517
SHA256 (cabal/hsc2hs-0.68.10/revision/4.cabal) = 725ef6da03d3d6e332db4de0a35bee45d72e4d31decc5ec7f153e6837af5f03e
SIZE (cabal/hsc2hs-0.68.10/revision/4.cabal) = 3114
+SHA256 (cabal/http-client-0.7.19/http-client-0.7.19.tar.gz) = a02c1be082e8f48c959ac7150a48a405f8d4383e0942639481e84b220f29ad61
+SIZE (cabal/http-client-0.7.19/http-client-0.7.19.tar.gz) = 96836
SHA256 (cabal/http-date-0.0.11/http-date-0.0.11.tar.gz) = 32f923ac1ad9bdfeadce7c52a03c9ba6225ba60dc14137cb1cdf32ea84ccf4d3
SIZE (cabal/http-date-0.0.11/http-date-0.0.11.tar.gz) = 5351
SHA256 (cabal/http-media-0.8.1.1/http-media-0.8.1.1.tar.gz) = 1920adf31b15d167f60374fbfd0a53a1fbe7820fd7fd459beacf6eb00d03f183
@@ -297,10 +301,16 @@ SHA256 (cabal/lawful-conversions-0.1.7/lawful-conversions-0.1.7.tar.gz) = 230605
SIZE (cabal/lawful-conversions-0.1.7/lawful-conversions-0.1.7.tar.gz) = 14797
SHA256 (cabal/lens-5.3.5/lens-5.3.5.tar.gz) = efebacf3dfb108c96171e564f059778d21ac262a98a956fef8890223ed8f1fe8
SIZE (cabal/lens-5.3.5/lens-5.3.5.tar.gz) = 707043
+SHA256 (cabal/lens-5.3.5/revision/1.cabal) = e0413689b39ea25e12b42b1d79b1afbd2261a1f5a98af66f33383f6393c25a19
+SIZE (cabal/lens-5.3.5/revision/1.cabal) = 15292
SHA256 (cabal/lens-aeson-1.2.3/lens-aeson-1.2.3.tar.gz) = 7bbc6affe248c84dfda13576636ecb52e575ee0e796d8c29a76a28c3ad424c01
SIZE (cabal/lens-aeson-1.2.3/lens-aeson-1.2.3.tar.gz) = 8273
SHA256 (cabal/lens-aeson-1.2.3/revision/2.cabal) = 5a733b4b5ac8e17d1e89704441597e9eb6e01e54ba86e5ecfbeaced9b28c82d7
SIZE (cabal/lens-aeson-1.2.3/revision/2.cabal) = 1691
+SHA256 (cabal/list-t-1.0.5.7/list-t-1.0.5.7.tar.gz) = 40928967728c7c96363309b372f415ca1729de0951c78ea1fa37f839687d6b46
+SIZE (cabal/list-t-1.0.5.7/list-t-1.0.5.7.tar.gz) = 7697
+SHA256 (cabal/logict-0.8.2.0/logict-0.8.2.0.tar.gz) = 189ae6f81c8e68d94ecf8ce6440954e3c7ca3f237973ef6600896ee8fc46abef
+SIZE (cabal/logict-0.8.2.0/logict-0.8.2.0.tar.gz) = 20157
SHA256 (cabal/math-functions-0.3.4.4/math-functions-0.3.4.4.tar.gz) = 2441d8dd50eff445356048b2a0cdf88c4a7ba0f56614293d4975e1b081faf8fa
SIZE (cabal/math-functions-0.3.4.4/math-functions-0.3.4.4.tar.gz) = 429048
SHA256 (cabal/megaparsec-9.7.0/megaparsec-9.7.0.tar.gz) = b9ed423625bf20ae7a72480d40d2dd16018a67e2ec45afb840a3607aa931ec97
@@ -309,14 +319,22 @@ SHA256 (cabal/memory-0.18.0/memory-0.18.0.tar.gz) = fd4eb6f638e24b81b4e6cdd68772
SIZE (cabal/memory-0.18.0/memory-0.18.0.tar.gz) = 41957
SHA256 (cabal/memory-0.18.0/revision/1.cabal) = 9f4de967352f80b6f174c9a166f315393dde80b77d7b67e41268ae7dec0319f9
SIZE (cabal/memory-0.18.0/revision/1.cabal) = 4581
+SHA256 (cabal/mime-types-0.1.2.0/mime-types-0.1.2.0.tar.gz) = 013ae48a4c1726a4f91a64e882f3fe1fb903a7d4b8c14da51286fe5e4b974f61
+SIZE (cabal/mime-types-0.1.2.0/mime-types-0.1.2.0.tar.gz) = 12044
+SHA256 (cabal/mmorph-1.2.1/mmorph-1.2.1.tar.gz) = 0e59d6028463ec832c908edf85b4e7adba02cfb98ad33cebb55295ecbba74ce6
+SIZE (cabal/mmorph-1.2.1/mmorph-1.2.1.tar.gz) = 6951
+SHA256 (cabal/mmorph-1.2.1/revision/1.cabal) = ea4c137f09d377ad071ff266a5f623c67376ff100094b96c44eedd7d3042ee02
+SIZE (cabal/mmorph-1.2.1/revision/1.cabal) = 1083
+SHA256 (cabal/monad-control-1.0.3.1/monad-control-1.0.3.1.tar.gz) = ae0baea04d99375ef788140367179994a7178d400a8ce0d9026846546772713c
+SIZE (cabal/monad-control-1.0.3.1/monad-control-1.0.3.1.tar.gz) = 13985
SHA256 (cabal/mtl-compat-0.2.2/mtl-compat-0.2.2.tar.gz) = 1955398fe2115674f47f553b2caaf928c6aa3424271a5cd13bc191e54bfe3a9e
SIZE (cabal/mtl-compat-0.2.2/mtl-compat-0.2.2.tar.gz) = 5128
SHA256 (cabal/mwc-random-0.15.2.0/mwc-random-0.15.2.0.tar.gz) = 5843ab06e7c9109326aa4eb5e26486400d6e3bce25944f6671ce989499174133
SIZE (cabal/mwc-random-0.15.2.0/mwc-random-0.15.2.0.tar.gz) = 43086
SHA256 (cabal/neat-interpolation-0.5.1.4/neat-interpolation-0.5.1.4.tar.gz) = 8eb733e3b1d90d87e0cff8b648f4b8145e38afd558f2c8343029770c9f023ab7
SIZE (cabal/neat-interpolation-0.5.1.4/neat-interpolation-0.5.1.4.tar.gz) = 5741
-SHA256 (cabal/network-3.2.7.0/network-3.2.7.0.tar.gz) = 68548e660632a3c09b230c33fe08cc880273372b485e65cbe7a717936de9728b
-SIZE (cabal/network-3.2.7.0/network-3.2.7.0.tar.gz) = 145714
+SHA256 (cabal/network-3.2.8.0/network-3.2.8.0.tar.gz) = 51788e5eeb7d77264f260acd48df8055a4dbc2477e8d634a8493677bb15c5fc8
+SIZE (cabal/network-3.2.8.0/network-3.2.8.0.tar.gz) = 146148
SHA256 (cabal/network-byte-order-0.1.7/network-byte-order-0.1.7.tar.gz) = 480ce0ad7f67364ec8d4ce8d815f463d9e4074e3789be22a5722cfdebed08679
SIZE (cabal/network-byte-order-0.1.7/network-byte-order-0.1.7.tar.gz) = 6402
SHA256 (cabal/network-control-0.1.7/network-control-0.1.7.tar.gz) = 05d40d381e5c72beefb209b7e82877b457fbca2880e60ed849bad480b6795b10
@@ -351,10 +369,8 @@ SHA256 (cabal/optparse-applicative-0.18.1.0/optparse-applicative-0.18.1.0.tar.gz
SIZE (cabal/optparse-applicative-0.18.1.0/optparse-applicative-0.18.1.0.tar.gz) = 60682
SHA256 (cabal/optparse-applicative-0.18.1.0/revision/1.cabal) = f30973861ac7e7ebff05ff8c7c3d1e4d283a1f3850e1cc14106b0693ec1b6d82
SIZE (cabal/optparse-applicative-0.18.1.0/revision/1.cabal) = 5289
-SHA256 (cabal/os-string-2.0.7/os-string-2.0.7.tar.gz) = 339c35fd3a290522f23de4e33528423cfd0b0a8f22946b0b9816a817b926cba0
-SIZE (cabal/os-string-2.0.7/os-string-2.0.7.tar.gz) = 44683
-SHA256 (cabal/os-string-2.0.7/revision/1.cabal) = cb5408281cb0e7cea41885611e06ee6208e3dae90c98f6901a9f20c58f930414
-SIZE (cabal/os-string-2.0.7/revision/1.cabal) = 3443
+SHA256 (cabal/os-string-2.0.8/os-string-2.0.8.tar.gz) = 02794279dd30282e7b0d45a860dda50ee26a92b1461f5da4545f62dab4172686
+SIZE (cabal/os-string-2.0.8/os-string-2.0.8.tar.gz) = 44896
SHA256 (cabal/parallel-3.2.2.0/parallel-3.2.2.0.tar.gz) = 170453a71a2a8b31cca63125533f7771d7debeb639700bdabdd779c34d8a6ef6
SIZE (cabal/parallel-3.2.2.0/parallel-3.2.2.0.tar.gz) = 14681
SHA256 (cabal/parallel-3.2.2.0/revision/10.cabal) = 3df46ec247e12b5e406a0adb9577294431b24814b30df420551d176fd112a966
@@ -385,14 +401,18 @@ SHA256 (cabal/prettyprinter-ansi-terminal-1.1.3/prettyprinter-ansi-terminal-1.1.
SIZE (cabal/prettyprinter-ansi-terminal-1.1.3/prettyprinter-ansi-terminal-1.1.3.tar.gz) = 8879
SHA256 (cabal/primitive-0.9.1.0/primitive-0.9.1.0.tar.gz) = 44b4de41813c7bc5db8a57f87c3612a069b65086946268ba165097252ebd3d76
SIZE (cabal/primitive-0.9.1.0/primitive-0.9.1.0.tar.gz) = 61724
+SHA256 (cabal/primitive-extras-0.10.2.2/primitive-extras-0.10.2.2.tar.gz) = c4add825d820bc680dcf2895c181aa0d973daad1e7827fd2b91bc738932d3825
+SIZE (cabal/primitive-extras-0.10.2.2/primitive-extras-0.10.2.2.tar.gz) = 12283
+SHA256 (cabal/primitive-unlifted-2.2.0.0/primitive-unlifted-2.2.0.0.tar.gz) = c9ec46305a1c2ade05c8399e3eeb2b56cb859692d539b4f7fd4485dbca06211b
+SIZE (cabal/primitive-unlifted-2.2.0.0/primitive-unlifted-2.2.0.0.tar.gz) = 30312
SHA256 (cabal/profunctors-5.6.3/profunctors-5.6.3.tar.gz) = b9c6f427368d2e811e4c48b59005218672458fd2f00a02cbefb8be9c751c0ef3
SIZE (cabal/profunctors-5.6.3/profunctors-5.6.3.tar.gz) = 28146
SHA256 (cabal/prometheus-client-1.1.1/prometheus-client-1.1.1.tar.gz) = 6a709ec749651d86e1e3a1189193d3d6a74489eaf8f10297c31cc863fc4644c8
SIZE (cabal/prometheus-client-1.1.1/prometheus-client-1.1.1.tar.gz) = 18636
SHA256 (cabal/protolude-0.3.5/protolude-0.3.5.tar.gz) = c80a59429f5c8dd261b168cd2c55bbacd6ae6f5caa7f3bd2aaae632d77c40487
SIZE (cabal/protolude-0.3.5/protolude-0.3.5.tar.gz) = 19331
-SHA256 (cabal/psqueues-0.2.8.1/psqueues-0.2.8.1.tar.gz) = cb7e102f09e373b4a7be52bfbc9625d265c7216d05fe04c36b7ad684ed213f77
-SIZE (cabal/psqueues-0.2.8.1/psqueues-0.2.8.1.tar.gz) = 27584
+SHA256 (cabal/psqueues-0.2.8.2/psqueues-0.2.8.2.tar.gz) = f63b46f1361956deb679792ef0bcf110a10c4f1d3060180dfae801599407794e
+SIZE (cabal/psqueues-0.2.8.2/psqueues-0.2.8.2.tar.gz) = 28255
SHA256 (cabal/ptr-0.16.8.7/ptr-0.16.8.7.tar.gz) = 060b47508056206a8ce655e1665f131a705b8670970d30feaf37ea1d28b26802
SIZE (cabal/ptr-0.16.8.7/ptr-0.16.8.7.tar.gz) = 17690
SHA256 (cabal/quickcheck-instances-0.3.33/quickcheck-instances-0.3.33.tar.gz) = 6803cd547b027bcab7b029a69ad8428e28af842b7709113eb6a43ab2f2f08866
@@ -411,8 +431,8 @@ SHA256 (cabal/reflection-2.1.9/revision/1.cabal) = eaf28dc9884718a306ed1e0c215a2
SIZE (cabal/reflection-2.1.9/revision/1.cabal) = 4171
SHA256 (cabal/regex-base-0.94.0.3/regex-base-0.94.0.3.tar.gz) = e8ca2dee598c790dd1c1c4359bdd1e495d9b881f5aa1f539c22f0dd5563747bf
SIZE (cabal/regex-base-0.94.0.3/regex-base-0.94.0.3.tar.gz) = 10550
-SHA256 (cabal/regex-tdfa-1.3.2.4/regex-tdfa-1.3.2.4.tar.gz) = 078bc313b7441f173eb487d6f46fea6860a21452eff6e5cf730ac4dd74bca797
-SIZE (cabal/regex-tdfa-1.3.2.4/regex-tdfa-1.3.2.4.tar.gz) = 83099
+SHA256 (cabal/regex-tdfa-1.3.2.5/regex-tdfa-1.3.2.5.tar.gz) = 2e3dfb449a548484f7d3b4e2a1b1040b39be26c4f3182a47004dc5eddf028a78
+SIZE (cabal/regex-tdfa-1.3.2.5/regex-tdfa-1.3.2.5.tar.gz) = 83371
SHA256 (cabal/rerebase-1.21.2/rerebase-1.21.2.tar.gz) = 77cc0d707ee0886b49206065476e77d0600e4c305b37701a38ef55e736a7fc10
SIZE (cabal/rerebase-1.21.2/rerebase-1.21.2.tar.gz) = 17208
SHA256 (cabal/resourcet-1.3.0/resourcet-1.3.0.tar.gz) = ec601785ee42a201f32adb205b8685c983f18757b1bd33d2e806d571e0f9996b
@@ -437,6 +457,10 @@ SHA256 (cabal/semigroups-0.20/semigroups-0.20.tar.gz) = 902d2e33c96b40a89de5957f
SIZE (cabal/semigroups-0.20/semigroups-0.20.tar.gz) = 18788
SHA256 (cabal/simple-sendfile-0.2.32/simple-sendfile-0.2.32.tar.gz) = 9f28d0a67ac3d956d2dd78eb19ea922c0a9192bbbeeeead20d39f561636828a3
SIZE (cabal/simple-sendfile-0.2.32/simple-sendfile-0.2.32.tar.gz) = 343565
+SHA256 (cabal/some-1.0.6/some-1.0.6.tar.gz) = f7a606ad5df4a07459986364f7d739eb653495fbbe1d7158582fb29a4584bfb9
+SIZE (cabal/some-1.0.6/some-1.0.6.tar.gz) = 11394
+SHA256 (cabal/some-1.0.6/revision/2.cabal) = ac5915f3d21f058cc0d15c1d72705edee19db903a58083e1ce5e2e42a6899df0
+SIZE (cabal/some-1.0.6/revision/2.cabal) = 2172
SHA256 (cabal/sop-core-0.5.0.2/sop-core-0.5.0.2.tar.gz) = 87bffd2254b98ded822d449fcd1c33dbd74d2ce96bf35e7a6714abc5a2297265
SIZE (cabal/sop-core-0.5.0.2/sop-core-0.5.0.2.tar.gz) = 28505
SHA256 (cabal/sop-core-0.5.0.2/revision/5.cabal) = 0bb74cafff423180df3909f5b7ce069131078b132da4b4e292ef4d1601499a4e
@@ -445,6 +469,8 @@ SHA256 (cabal/split-0.2.5/split-0.2.5.tar.gz) = 52da404e8397c1ab238354c8d4fd9a7e
SIZE (cabal/split-0.2.5/split-0.2.5.tar.gz) = 16008
SHA256 (cabal/splitmix-0.1.3.1/splitmix-0.1.3.1.tar.gz) = b6bcd0d79bd4fe40975c8ebe803be2f3bfbf6006069a59745a325a0df3f86270
SIZE (cabal/splitmix-0.1.3.1/splitmix-0.1.3.1.tar.gz) = 21955
+SHA256 (cabal/stm-hamt-1.2.1.1/stm-hamt-1.2.1.1.tar.gz) = a7157ef26a1b5871cf3625b2b9c60a0d4405edd8a48567df1be2d9f79d506786
+SIZE (cabal/stm-hamt-1.2.1.1/stm-hamt-1.2.1.1.tar.gz) = 10320
SHA256 (cabal/streaming-commons-0.2.3.0/streaming-commons-0.2.3.0.tar.gz) = 26384af91f5ab9470b0bbdd0ce2172db43fc79730b7c5a3405d89c3663eb1e57
SIZE (cabal/streaming-commons-0.2.3.0/streaming-commons-0.2.3.0.tar.gz) = 37874
SHA256 (cabal/strict-0.5.1/strict-0.5.1.tar.gz) = 77719280c2a86312e748227bfa732eeaae0e7df48d57acc3c2e5b7b07afe2f8b
@@ -505,18 +531,16 @@ SHA256 (cabal/transformers-compat-0.7.2/transformers-compat-0.7.2.tar.gz) = b62c
SIZE (cabal/transformers-compat-0.7.2/transformers-compat-0.7.2.tar.gz) = 46485
SHA256 (cabal/type-hint-0.1/type-hint-0.1.tar.gz) = 1161cdbf4b4b43c2953ee60438e948737604193e1bfe2c880ff178538faa99b9
SIZE (cabal/type-hint-0.1/type-hint-0.1.tar.gz) = 3092
-SHA256 (cabal/unix-compat-0.7.4/unix-compat-0.7.4.tar.gz) = 689b3a960c8fe12910554aa5b739d5c4769c1d180ade20402fde2ed49db7eff4
-SIZE (cabal/unix-compat-0.7.4/unix-compat-0.7.4.tar.gz) = 15586
+SHA256 (cabal/unix-compat-0.7.4.1/unix-compat-0.7.4.1.tar.gz) = 3f9611624a100c75e672d900e63fe7a0e595615a34e6605662edaff151e44054
+SIZE (cabal/unix-compat-0.7.4.1/unix-compat-0.7.4.1.tar.gz) = 15619
SHA256 (cabal/unix-time-0.4.17/unix-time-0.4.17.tar.gz) = f63a05be5dcc5ac8f72c26c9fef8dcc993638ca9b545b9bd69b8a3924c201f8c
SIZE (cabal/unix-time-0.4.17/unix-time-0.4.17.tar.gz) = 53677
SHA256 (cabal/unliftio-core-0.2.1.0/unliftio-core-0.2.1.0.tar.gz) = 99384cba8d56d9d61b85e38a313a93ebcdb78be6566367f0930ef580597fe3e3
SIZE (cabal/unliftio-core-0.2.1.0/unliftio-core-0.2.1.0.tar.gz) = 3865
SHA256 (cabal/unliftio-core-0.2.1.0/revision/4.cabal) = f6a2736f858b5390d9384dca43d3ea4d96e9ca17217791791ca4951ba6e8072a
SIZE (cabal/unliftio-core-0.2.1.0/revision/4.cabal) = 996
-SHA256 (cabal/unordered-containers-0.2.20/unordered-containers-0.2.20.tar.gz) = d9cfb287cf00592d39dc9c3cac8b99627ea08f2c01798e70130fc39f7c90f11d
-SIZE (cabal/unordered-containers-0.2.20/unordered-containers-0.2.20.tar.gz) = 59823
-SHA256 (cabal/unordered-containers-0.2.20/revision/4.cabal) = 233cbcdda6c2698932bb391ce0935fb44f80c115621ee815a21ed33ac8ede422
-SIZE (cabal/unordered-containers-0.2.20/revision/4.cabal) = 3921
+SHA256 (cabal/unordered-containers-0.2.20.1/unordered-containers-0.2.20.1.tar.gz) = 708a60513d6da61e09b60b9a486106af703a889b5b43472a27c3b60bf35246ab
+SIZE (cabal/unordered-containers-0.2.20.1/unordered-containers-0.2.20.1.tar.gz) = 60625
SHA256 (cabal/utf8-string-1.0.2/utf8-string-1.0.2.tar.gz) = ee48deada7600370728c4156cb002441de770d0121ae33a68139a9ed9c19b09a
SIZE (cabal/utf8-string-1.0.2/utf8-string-1.0.2.tar.gz) = 10726
SHA256 (cabal/uuid-1.3.16/uuid-1.3.16.tar.gz) = 1a4679cfb4ec5fcc8dd584bd4fc66f744bfd0433c775e400235058c13f720df6
@@ -549,21 +573,19 @@ SHA256 (cabal/wai-3.2.4/wai-3.2.4.tar.gz) = a6088f847d886d7c767092d170c03c7690d1
SIZE (cabal/wai-3.2.4/wai-3.2.4.tar.gz) = 13302
SHA256 (cabal/wai-cors-0.2.7/wai-cors-0.2.7.tar.gz) = 2597beb56ebd7148f9755ae2661c065a6c532e0a286717061861b149a51cfb81
SIZE (cabal/wai-cors-0.2.7/wai-cors-0.2.7.tar.gz) = 16248
-SHA256 (cabal/wai-extra-3.1.17/wai-extra-3.1.17.tar.gz) = c7d66e48509331e9035ec487f58b4015886b64debf260eac62eb11a647de014b
-SIZE (cabal/wai-extra-3.1.17/wai-extra-3.1.17.tar.gz) = 86677
+SHA256 (cabal/wai-extra-3.1.18/wai-extra-3.1.18.tar.gz) = ee63740b8dd478b01196f8968603b1bc0ee00aa5502d17edae579abfd0f150f7
+SIZE (cabal/wai-extra-3.1.18/wai-extra-3.1.18.tar.gz) = 87221
SHA256 (cabal/wai-logger-2.5.0/wai-logger-2.5.0.tar.gz) = 5cfbd3076b1f94aca3bd2def06b136b36a22d37974f31c7732b8526ebec3e184
SIZE (cabal/wai-logger-2.5.0/wai-logger-2.5.0.tar.gz) = 6615
-SHA256 (cabal/warp-3.4.8/warp-3.4.8.tar.gz) = d4df0ab0eb14bc044672533e40ef9fb30ac740dee5df14ab864b173ac45fc750
-SIZE (cabal/warp-3.4.8/warp-3.4.8.tar.gz) = 68978
+SHA256 (cabal/warp-3.4.9/warp-3.4.9.tar.gz) = 3a19680d4c3e22d5a4da0da31af30e0c9001501ec84df6ace639ecad1b5b55b0
+SIZE (cabal/warp-3.4.9/warp-3.4.9.tar.gz) = 69304
SHA256 (cabal/witherable-0.5/witherable-0.5.tar.gz) = 48434cc1e465b13cbc0133a90c3ec0d827c93b77ce95807fe0a38b65f4918cd1
SIZE (cabal/witherable-0.5/witherable-0.5.tar.gz) = 10819
SHA256 (cabal/witherable-0.5/revision/1.cabal) = 85bab588ebca37996fc3171b9d8b2e065eb0536c9f44224bcf037c0849a881de
SIZE (cabal/witherable-0.5/revision/1.cabal) = 2343
SHA256 (cabal/word8-0.1.3/word8-0.1.3.tar.gz) = 2630934c75728bfbf390c1f0206b225507b354f68d4047b06c018a36823b5d8a
SIZE (cabal/word8-0.1.3/word8-0.1.3.tar.gz) = 6271
-SHA256 (cabal/zlib-0.7.1.0/zlib-0.7.1.0.tar.gz) = 6edd38b6b81df8d274952aa85affa6968ae86b2231e1d429ce8bc9083e6a55bc
-SIZE (cabal/zlib-0.7.1.0/zlib-0.7.1.0.tar.gz) = 29318
-SHA256 (cabal/zlib-0.7.1.0/revision/2.cabal) = 85e64a75c0b490506a7edaa2d54950c668e66b65758bb08bb14cd31faf53a206
-SIZE (cabal/zlib-0.7.1.0/revision/2.cabal) = 5357
-SHA256 (cabal/PostgREST-postgrest-v13.0.7_GH0.tar.gz) = 873e1be528050af36585e00bf40716b3d1f36effebc836e81e2bed6f028912a0
-SIZE (cabal/PostgREST-postgrest-v13.0.7_GH0.tar.gz) = 1842937
+SHA256 (cabal/zlib-0.7.1.1/zlib-0.7.1.1.tar.gz) = bf95ab01ed924be800addea195fba5ca97ec69f378368f6ff466bdc29666c1c1
+SIZE (cabal/zlib-0.7.1.1/zlib-0.7.1.1.tar.gz) = 29324
+SHA256 (cabal/PostgREST-postgrest-v14.0_GH0.tar.gz) = 133a75bb978f2bd41f24cd80d2fa42165f1166bad90260ec8b1188b9d2d948db
+SIZE (cabal/PostgREST-postgrest-v14.0_GH0.tar.gz) = 1857859
diff --git a/www/libnghttp2/Makefile b/www/libnghttp2/Makefile
index d9e1a129388a..1e8df2073b8f 100644
--- a/www/libnghttp2/Makefile
+++ b/www/libnghttp2/Makefile
@@ -1,5 +1,5 @@
PORTNAME= nghttp2
-PORTVERSION= 1.67.1
+PORTVERSION= 1.68.0
CATEGORIES= www net
MASTER_SITES= https://github.com/nghttp2/nghttp2/releases/download/v${PORTVERSION}/
PKGNAMEPREFIX= lib
diff --git a/www/libnghttp2/distinfo b/www/libnghttp2/distinfo
index aa7327f0e62c..8b4634ab91f2 100644
--- a/www/libnghttp2/distinfo
+++ b/www/libnghttp2/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1759816576
-SHA256 (nghttp2-1.67.1.tar.xz) = 153972aad57e7bf9d911666df7613f2390acf37ea7e1a97a0c5567e90f98e830
-SIZE (nghttp2-1.67.1.tar.xz) = 1671408
+TIMESTAMP = 1761446516
+SHA256 (nghttp2-1.68.0.tar.xz) = 5511d3128850e01b5b26ec92bf39df15381c767a63441438b25ad6235def902c
+SIZE (nghttp2-1.68.0.tar.xz) = 1691408
diff --git a/www/libnghttp2/pkg-plist b/www/libnghttp2/pkg-plist
index eda117a6c145..564135384ae8 100644
--- a/www/libnghttp2/pkg-plist
+++ b/www/libnghttp2/pkg-plist
@@ -3,5 +3,5 @@ include/nghttp2/nghttp2ver.h
lib/libnghttp2.a
lib/libnghttp2.so
lib/libnghttp2.so.14
-lib/libnghttp2.so.14.29.1
+lib/libnghttp2.so.14.29.2
libdata/pkgconfig/libnghttp2.pc
diff --git a/www/nextcloud/Makefile b/www/nextcloud/Makefile
index 94ab35fff060..b1ab65f49f68 100644
--- a/www/nextcloud/Makefile
+++ b/www/nextcloud/Makefile
@@ -1,5 +1,5 @@
PORTNAME= nextcloud
-PORTVERSION= 32.0.0
+PORTVERSION= 32.0.1
CATEGORIES= www
MASTER_SITES= https://download.nextcloud.com/server/releases/
PKGNAMESUFFIX= ${PHP_PKGNAMESUFFIX}
diff --git a/www/nextcloud/distinfo b/www/nextcloud/distinfo
index 40b3faa03520..400aaeca068c 100644
--- a/www/nextcloud/distinfo
+++ b/www/nextcloud/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1758965477
-SHA256 (nextcloud/nextcloud-32.0.0.tar.bz2) = 57448d55d9b87102f17c36347320346a1b258f6017c63b958c789efd42e345a3
-SIZE (nextcloud/nextcloud-32.0.0.tar.bz2) = 263604282
+TIMESTAMP = 1761318924
+SHA256 (nextcloud/nextcloud-32.0.1.tar.bz2) = 5810b06e75678384973d8d86387ee39f4c086d79dfa92f15fcb743aaba36eaa9
+SIZE (nextcloud/nextcloud-32.0.1.tar.bz2) = 270005888
diff --git a/www/nextcloud/files/plist.post.in b/www/nextcloud/files/plist.post.in
index 418ea8a1975a..1afc3abe58e5 100644
--- a/www/nextcloud/files/plist.post.in
+++ b/www/nextcloud/files/plist.post.in
@@ -5,4 +5,3 @@
@dir %%WWWDIR%%/config
@dir %%WWWDIR%%/data
@dir /var/log/nextcloud
-@dir %%WWWDIR%%/apps-pkg/suspicious_login/vendor-bin/psalm/vendor/symfony/string/Resources/bin
diff --git a/www/nghttp2/Makefile b/www/nghttp2/Makefile
index 4be6ae95c96a..539ba048aac3 100644
--- a/www/nghttp2/Makefile
+++ b/www/nghttp2/Makefile
@@ -1,5 +1,5 @@
PORTNAME= nghttp2
-PORTVERSION= 1.67.1
+PORTVERSION= 1.68.0
CATEGORIES= www net
MASTER_SITES= https://github.com/nghttp2/nghttp2/releases/download/v${PORTVERSION}/
diff --git a/www/nghttp2/distinfo b/www/nghttp2/distinfo
index 83c367bb71b4..1dd8a1aff986 100644
--- a/www/nghttp2/distinfo
+++ b/www/nghttp2/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1759816578
-SHA256 (nghttp2-1.67.1.tar.xz) = 153972aad57e7bf9d911666df7613f2390acf37ea7e1a97a0c5567e90f98e830
-SIZE (nghttp2-1.67.1.tar.xz) = 1671408
+TIMESTAMP = 1761446518
+SHA256 (nghttp2-1.68.0.tar.xz) = 5511d3128850e01b5b26ec92bf39df15381c767a63441438b25ad6235def902c
+SIZE (nghttp2-1.68.0.tar.xz) = 1691408
diff --git a/www/nginx-acme/Makefile b/www/nginx-acme/Makefile
index 0dd2a4f70197..a22c09245a2a 100644
--- a/www/nginx-acme/Makefile
+++ b/www/nginx-acme/Makefile
@@ -1,6 +1,6 @@
PORTNAME= acme
PORTVERSION= 0.1.1
-PORTREVISION= 2
+PORTREVISION= 3
CATEGORIES= www
MASTER_SITES= https://github.com/nginx/nginx-${PORTNAME}/releases/download/v${PORTVERSION}/:acme \
https://nginx.org/download/:nginx
diff --git a/www/nginx-acme/distinfo b/www/nginx-acme/distinfo
index f5c39e4dc226..8d9aa343d575 100644
--- a/www/nginx-acme/distinfo
+++ b/www/nginx-acme/distinfo
@@ -3,8 +3,8 @@ SHA256 (nginx-acme-0.1.1.tar.gz) = c2158d7f9baa53a9186c406e82c3068832f03b87a1d10
SIZE (nginx-acme-0.1.1.tar.gz) = 77853
SHA256 (nginx-1.28.0.tar.gz) = c6b5c6b086c0df9d3ca3ff5e084c1d0ef909e6038279c71c1c3e985f576ff76a
SIZE (nginx-1.28.0.tar.gz) = 1280111
-SHA256 (nginx-1.29.1.tar.gz) = c589f7e7ed801ddbd904afbf3de26ae24eb0cce27c7717a2e94df7fb12d6ad27
-SIZE (nginx-1.29.1.tar.gz) = 1285529
+SHA256 (nginx-1.29.2.tar.gz) = 5669e3c29d49bf7f6eb577275b86efe4504cf81af885c58a1ed7d2e7b8492437
+SIZE (nginx-1.29.1.tar.gz) = 1287399
SHA256 (rust/crates/addr2line-0.24.2.crate) = dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1
SIZE (rust/crates/addr2line-0.24.2.crate) = 39015
SHA256 (rust/crates/adler2-2.0.1.crate) = 320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa
diff --git a/www/nginx-devel/Makefile b/www/nginx-devel/Makefile
index 52dc99ad6181..74b27d3e09ab 100644
--- a/www/nginx-devel/Makefile
+++ b/www/nginx-devel/Makefile
@@ -1,7 +1,7 @@
PORTNAME?= nginx
PORTVERSION= ${NGINX_VERSION}
.include "version.mk"
-PORTREVISION= 0
+PORTREVISION= 1
CATEGORIES= www
MASTER_SITES= https://nginx.org/download/ \
LOCAL/osa
diff --git a/www/nginx-devel/Makefile.extmod b/www/nginx-devel/Makefile.extmod
index 18273974c667..802a72f2124a 100644
--- a/www/nginx-devel/Makefile.extmod
+++ b/www/nginx-devel/Makefile.extmod
@@ -240,7 +240,7 @@ NAXSI_VARS= DSO_EXTMODS+=naxsi NAXSI_SUBDIR=/naxsi_src
NAXSI_EXTRA_PATCHES= ${PATCHDIR}/extra-patch-naxsi-libinjection__sqli_c \
${PATCHDIR}/extra-patch-naxsi_config
-NJS_GH_TUPLE= nginx:njs:0.9.1:njs
+NJS_GH_TUPLE= nginx:njs:0.9.3:njs
NJS_CONFIGURE_ON= --with-cc-opt="-I ${LOCALBASE}/include/quickjs"
NJS_LIB_DEPENDS= libquickjs.so:lang/quickjs \
libxml2.so:textproc/libxml2 \
diff --git a/www/nginx-devel/distinfo b/www/nginx-devel/distinfo
index 7f43023a5d3d..947525bed3c5 100644
--- a/www/nginx-devel/distinfo
+++ b/www/nginx-devel/distinfo
@@ -1,4 +1,4 @@
-TIMESTAMP = 1760858761
+TIMESTAMP = 1761393319
SHA256 (nginx-1.29.2.tar.gz) = 5669e3c29d49bf7f6eb577275b86efe4504cf81af885c58a1ed7d2e7b8492437
SIZE (nginx-1.29.2.tar.gz) = 1287399
SHA256 (nginx_mogilefs_module-1.0.4.tar.gz) = 7ac230d30907f013dff8d435a118619ea6168aa3714dba62c6962d350c6295ae
@@ -107,8 +107,8 @@ SHA256 (wargio-naxsi-1.7_GH0.tar.gz) = adee817da71913f64a9fb0fca142d9520bb0e5014
SIZE (wargio-naxsi-1.7_GH0.tar.gz) = 1132392
SHA256 (libinjection-libinjection-b9fcaaf_GH0.tar.gz) = 7812e1316b61a7a7d3a65a57a07c6d5235ac40fe35e6edda983f31a44661a38e
SIZE (libinjection-libinjection-b9fcaaf_GH0.tar.gz) = 2218207
-SHA256 (nginx-njs-0.9.1_GH0.tar.gz) = 61365eea69c6862fc8a5b5df531503ae49499f6bcd5af932496b84850a2824a4
-SIZE (nginx-njs-0.9.1_GH0.tar.gz) = 966480
+SHA256 (nginx-njs-0.9.3_GH0.tar.gz) = a1ad089a52ebd295489443faea3089d12df414f5da624446d6c2bf7d99ec36cb
+SIZE (nginx-njs-0.9.3_GH0.tar.gz) = 930867
SHA256 (osokin-nginx-otel-3a655df_GH0.tar.gz) = 71ee1561303c289d4562148f8719b60796c36abe16de1b3c10d10b8e6f03a952
SIZE (osokin-nginx-otel-3a655df_GH0.tar.gz) = 27169
SHA256 (konstruxi-ngx_postgres-8aa7359_GH0.tar.gz) = c69ad4495de7c7883ebc23e1e6c4cc83a4ac6a7fddd4d5c12e49d33b65f7c50b
diff --git a/www/nginx/Makefile b/www/nginx/Makefile
index 4f5d461c4275..cdc024e44229 100644
--- a/www/nginx/Makefile
+++ b/www/nginx/Makefile
@@ -1,6 +1,6 @@
PORTNAME= nginx
PORTVERSION= 1.28.0
-PORTREVISION= 4
+PORTREVISION= 5
PORTEPOCH= 3
CATEGORIES= www
MASTER_SITES= https://nginx.org/download/ \
diff --git a/www/nginx/Makefile.extmod b/www/nginx/Makefile.extmod
index f57fbb3e5b08..04956fd4b39f 100644
--- a/www/nginx/Makefile.extmod
+++ b/www/nginx/Makefile.extmod
@@ -234,7 +234,7 @@ NAXSI_VARS= DSO_EXTMODS+=naxsi NAXSI_SUBDIR=/naxsi_src
NAXSI_EXTRA_PATCHES= ${PATCHDIR}/extra-patch-naxsi-libinjection__sqli_c \
${PATCHDIR}/extra-patch-naxsi_config
-NJS_GH_TUPLE= nginx:njs:0.8.5:njs
+NJS_GH_TUPLE= nginx:njs:0.9.3:njs
NJS_VARS= DSO_EXTMODS+=njs NJS_SUBDIR=/nginx
NJS_IMPLIES= STREAM
diff --git a/www/nginx/distinfo b/www/nginx/distinfo
index b53842396779..1d0b28d6b72f 100644
--- a/www/nginx/distinfo
+++ b/www/nginx/distinfo
@@ -1,4 +1,4 @@
-TIMESTAMP = 1746350853
+TIMESTAMP = 1761392601
SHA256 (nginx-1.28.0.tar.gz) = c6b5c6b086c0df9d3ca3ff5e084c1d0ef909e6038279c71c1c3e985f576ff76a
SIZE (nginx-1.28.0.tar.gz) = 1280111
SHA256 (nginx_mogilefs_module-1.0.4.tar.gz) = 7ac230d30907f013dff8d435a118619ea6168aa3714dba62c6962d350c6295ae
@@ -103,8 +103,8 @@ SHA256 (wargio-naxsi-1.6_GH0.tar.gz) = e5920fdd09cae155b89eb21a94a21c029ebfdb056
SIZE (wargio-naxsi-1.6_GH0.tar.gz) = 1116227
SHA256 (libinjection-libinjection-4aa3894_GH0.tar.gz) = ededea133e89e238ef2e60d0d62ef7ef9e741449eed8c5d856007132505bcd5b
SIZE (libinjection-libinjection-4aa3894_GH0.tar.gz) = 2218294
-SHA256 (nginx-njs-0.8.5_GH0.tar.gz) = b5e38e1424d84e48c6ca1592a336bf1d110b8f27ff1d5ef492c6d312ea003491
-SIZE (nginx-njs-0.8.5_GH0.tar.gz) = 844437
+SHA256 (nginx-njs-0.9.3_GH0.tar.gz) = a1ad089a52ebd295489443faea3089d12df414f5da624446d6c2bf7d99ec36cb
+SIZE (nginx-njs-0.9.3_GH0.tar.gz) = 930867
SHA256 (osokin-nginx-otel-8f0857d_GH0.tar.gz) = bbf93813928460bdaf78f752f74ecc6c34d13078e97fdffcaa29dbd8689314fc
SIZE (osokin-nginx-otel-8f0857d_GH0.tar.gz) = 30197
SHA256 (konstruxi-ngx_postgres-8aa7359_GH0.tar.gz) = c69ad4495de7c7883ebc23e1e6c4cc83a4ac6a7fddd4d5c12e49d33b65f7c50b
diff --git a/www/node20/Makefile b/www/node20/Makefile
index 936f569f6f91..a80e7531f69c 100644
--- a/www/node20/Makefile
+++ b/www/node20/Makefile
@@ -1,6 +1,7 @@
PORTNAME= node
PORTVERSION= ${NODEJS_PORTVERSION}
DISTVERSIONPREFIX= v
+PORTREVISION= 2
CATEGORIES= www
MASTER_SITES= https://nodejs.org/dist/v${PORTVERSION}/
PKGNAMESUFFIX= ${PORTVERSION:R:R}
@@ -21,23 +22,28 @@ BUILD_DEPENDS= objdump:devel/binutils
LIB_DEPENDS= libbrotlidec.so:archivers/brotli \
libcares.so:dns/c-ares \
libicui18n.so:devel/icu \
+ libllhttp.so:www/llhttp \
libnghttp2.so:www/libnghttp2 \
libnghttp3.so:www/libnghttp3 \
libngtcp2.so:net/libngtcp2 \
libsimdjson.so:devel/simdjson \
libuv.so:devel/libuv
+RUN_DEPENDS= corepack>=0:www/corepack
USES= compiler:c++11-lang gmake localbase pkgconfig python:build shebangfix tar:xz
CONFIGURE_ARGS= --prefix=${PREFIX:S|^${DESTDIR}||} \
--shared-brotli \
--shared-cares \
+ --shared-http-parser \
+ --shared-http-parser-libname=llhttp \
--shared-libuv \
--shared-nghttp2 \
--shared-nghttp3 \
--shared-ngtcp2 \
--shared-simdjson \
--shared-zlib \
+ --without-corepack \
--with-intl=system-icu \
--without-npm
CXXFLAGS_powerpc64= -mpower8-vector
@@ -80,6 +86,9 @@ post-patch:
# Clean up bundled libraries
@${RM} -r ${WRKSRC}/deps/brotli/
@${RM} -r ${WRKSRC}/deps/cares/
+ @${RM} -r ${WRKSRC}/deps/corepack/
+ @${RM} -r ${WRKSRC}/deps/icu-small/
+ @${RM} -r ${WRKSRC}/deps/llhttp/
@${RM} -r ${WRKSRC}/deps/nghttp2/
@${RM} -r ${WRKSRC}/deps/ngtcp2/
@${RM} -r ${WRKSRC}/deps/npm/
diff --git a/www/node20/pkg-plist b/www/node20/pkg-plist
index cc8253c32c83..044aeefcbfe5 100644
--- a/www/node20/pkg-plist
+++ b/www/node20/pkg-plist
@@ -1,4 +1,3 @@
-bin/corepack
bin/node
include/node/common.gypi
include/node/config.gypi
@@ -105,60 +104,6 @@ include/node/v8-wasm.h
include/node/v8-weak-callback-info.h
include/node/v8.h
include/node/v8config.h
-lib/node_modules/corepack/CHANGELOG.md
-lib/node_modules/corepack/LICENSE.md
-lib/node_modules/corepack/README.md
-lib/node_modules/corepack/dist/corepack.js
-lib/node_modules/corepack/dist/lib/corepack.cjs
-lib/node_modules/corepack/dist/npm.js
-lib/node_modules/corepack/dist/npx.js
-lib/node_modules/corepack/dist/pnpm.js
-lib/node_modules/corepack/dist/pnpx.js
-lib/node_modules/corepack/dist/yarn.js
-lib/node_modules/corepack/dist/yarnpkg.js
-lib/node_modules/corepack/package.json
-lib/node_modules/corepack/shims/corepack
-lib/node_modules/corepack/shims/corepack.cmd
-lib/node_modules/corepack/shims/corepack.ps1
-lib/node_modules/corepack/shims/nodewin/corepack
-lib/node_modules/corepack/shims/nodewin/corepack.cmd
-lib/node_modules/corepack/shims/nodewin/corepack.ps1
-lib/node_modules/corepack/shims/nodewin/npm
-lib/node_modules/corepack/shims/nodewin/npm.cmd
-lib/node_modules/corepack/shims/nodewin/npm.ps1
-lib/node_modules/corepack/shims/nodewin/npx
-lib/node_modules/corepack/shims/nodewin/npx.cmd
-lib/node_modules/corepack/shims/nodewin/npx.ps1
-lib/node_modules/corepack/shims/nodewin/pnpm
-lib/node_modules/corepack/shims/nodewin/pnpm.cmd
-lib/node_modules/corepack/shims/nodewin/pnpm.ps1
-lib/node_modules/corepack/shims/nodewin/pnpx
-lib/node_modules/corepack/shims/nodewin/pnpx.cmd
-lib/node_modules/corepack/shims/nodewin/pnpx.ps1
-lib/node_modules/corepack/shims/nodewin/yarn
-lib/node_modules/corepack/shims/nodewin/yarn.cmd
-lib/node_modules/corepack/shims/nodewin/yarn.ps1
-lib/node_modules/corepack/shims/nodewin/yarnpkg
-lib/node_modules/corepack/shims/nodewin/yarnpkg.cmd
-lib/node_modules/corepack/shims/nodewin/yarnpkg.ps1
-lib/node_modules/corepack/shims/npm
-lib/node_modules/corepack/shims/npm.cmd
-lib/node_modules/corepack/shims/npm.ps1
-lib/node_modules/corepack/shims/npx
-lib/node_modules/corepack/shims/npx.cmd
-lib/node_modules/corepack/shims/npx.ps1
-lib/node_modules/corepack/shims/pnpm
-lib/node_modules/corepack/shims/pnpm.cmd
-lib/node_modules/corepack/shims/pnpm.ps1
-lib/node_modules/corepack/shims/pnpx
-lib/node_modules/corepack/shims/pnpx.cmd
-lib/node_modules/corepack/shims/pnpx.ps1
-lib/node_modules/corepack/shims/yarn
-lib/node_modules/corepack/shims/yarn.cmd
-lib/node_modules/corepack/shims/yarn.ps1
-lib/node_modules/corepack/shims/yarnpkg
-lib/node_modules/corepack/shims/yarnpkg.cmd
-lib/node_modules/corepack/shims/yarnpkg.ps1
%%PORTDOCS%%%%DOCSDIR%%/gdbinit
%%PORTDOCS%%%%DOCSDIR%%/lldb_commands.py
@(,,444) share/man/man1/node.1.gz
diff --git a/www/node22/Makefile b/www/node22/Makefile
index 4c2ec9be4a7b..a1a307d55551 100644
--- a/www/node22/Makefile
+++ b/www/node22/Makefile
@@ -1,7 +1,7 @@
PORTNAME= node
PORTVERSION= ${NODEJS_PORTVERSION}
DISTVERSIONPREFIX= v
-PORTREVISION= 1
+PORTREVISION= 4
CATEGORIES= www
MASTER_SITES= https://nodejs.org/dist/v${PORTVERSION}/
PKGNAMESUFFIX= ${PORTVERSION:R:R}
@@ -22,18 +22,22 @@ BUILD_DEPENDS= objdump:devel/binutils
LIB_DEPENDS= libbrotlidec.so:archivers/brotli \
libcares.so:dns/c-ares \
libicui18n.so:devel/icu \
+ libllhttp.so:www/llhttp \
libnghttp2.so:www/libnghttp2 \
libnghttp3.so:www/libnghttp3 \
libngtcp2.so:net/libngtcp2 \
libsimdjson.so:devel/simdjson \
libuv.so:devel/libuv \
libzstd.so:archivers/zstd
+RUN_DEPENDS= corepack>=0:www/corepack
USES= compiler:c++11-lang gmake localbase pkgconfig python:build shebangfix tar:xz
CONFIGURE_ARGS= --prefix=${PREFIX:S|^${DESTDIR}||} \
--shared-brotli \
--shared-cares \
+ --shared-http-parser \
+ --shared-http-parser-libname=llhttp \
--shared-libuv \
--shared-nghttp2 \
--shared-nghttp3 \
@@ -41,6 +45,7 @@ CONFIGURE_ARGS= --prefix=${PREFIX:S|^${DESTDIR}||} \
--shared-simdjson \
--shared-zlib \
--shared-zstd \
+ --without-corepack \
--with-intl=system-icu \
--without-npm
CXXFLAGS_powerpc64= -mpower8-vector
@@ -83,6 +88,9 @@ post-patch:
# Clean up bundled libraries
@${RM} -r ${WRKSRC}/deps/brotli/
@${RM} -r ${WRKSRC}/deps/cares/
+ @${RM} -r ${WRKSRC}/deps/corepack/
+ @${RM} -r ${WRKSRC}/deps/icu-small/
+ @${RM} -r ${WRKSRC}/deps/llhttp/
@${RM} -r ${WRKSRC}/deps/nghttp2/
@${RM} -r ${WRKSRC}/deps/ngtcp2/
@${RM} -r ${WRKSRC}/deps/npm/
diff --git a/www/node22/pkg-plist b/www/node22/pkg-plist
index 41c26ed86932..59d9602f4306 100644
--- a/www/node22/pkg-plist
+++ b/www/node22/pkg-plist
@@ -1,4 +1,3 @@
-bin/corepack
bin/node
include/node/common.gypi
include/node/config.gypi
@@ -107,60 +106,6 @@ include/node/v8-wasm.h
include/node/v8-weak-callback-info.h
include/node/v8.h
include/node/v8config.h
-lib/node_modules/corepack/CHANGELOG.md
-lib/node_modules/corepack/LICENSE.md
-lib/node_modules/corepack/README.md
-lib/node_modules/corepack/dist/corepack.js
-lib/node_modules/corepack/dist/lib/corepack.cjs
-lib/node_modules/corepack/dist/npm.js
-lib/node_modules/corepack/dist/npx.js
-lib/node_modules/corepack/dist/pnpm.js
-lib/node_modules/corepack/dist/pnpx.js
-lib/node_modules/corepack/dist/yarn.js
-lib/node_modules/corepack/dist/yarnpkg.js
-lib/node_modules/corepack/package.json
-lib/node_modules/corepack/shims/corepack
-lib/node_modules/corepack/shims/corepack.cmd
-lib/node_modules/corepack/shims/corepack.ps1
-lib/node_modules/corepack/shims/nodewin/corepack
-lib/node_modules/corepack/shims/nodewin/corepack.cmd
-lib/node_modules/corepack/shims/nodewin/corepack.ps1
-lib/node_modules/corepack/shims/nodewin/npm
-lib/node_modules/corepack/shims/nodewin/npm.cmd
-lib/node_modules/corepack/shims/nodewin/npm.ps1
-lib/node_modules/corepack/shims/nodewin/npx
-lib/node_modules/corepack/shims/nodewin/npx.cmd
-lib/node_modules/corepack/shims/nodewin/npx.ps1
-lib/node_modules/corepack/shims/nodewin/pnpm
-lib/node_modules/corepack/shims/nodewin/pnpm.cmd
-lib/node_modules/corepack/shims/nodewin/pnpm.ps1
-lib/node_modules/corepack/shims/nodewin/pnpx
-lib/node_modules/corepack/shims/nodewin/pnpx.cmd
-lib/node_modules/corepack/shims/nodewin/pnpx.ps1
-lib/node_modules/corepack/shims/nodewin/yarn
-lib/node_modules/corepack/shims/nodewin/yarn.cmd
-lib/node_modules/corepack/shims/nodewin/yarn.ps1
-lib/node_modules/corepack/shims/nodewin/yarnpkg
-lib/node_modules/corepack/shims/nodewin/yarnpkg.cmd
-lib/node_modules/corepack/shims/nodewin/yarnpkg.ps1
-lib/node_modules/corepack/shims/npm
-lib/node_modules/corepack/shims/npm.cmd
-lib/node_modules/corepack/shims/npm.ps1
-lib/node_modules/corepack/shims/npx
-lib/node_modules/corepack/shims/npx.cmd
-lib/node_modules/corepack/shims/npx.ps1
-lib/node_modules/corepack/shims/pnpm
-lib/node_modules/corepack/shims/pnpm.cmd
-lib/node_modules/corepack/shims/pnpm.ps1
-lib/node_modules/corepack/shims/pnpx
-lib/node_modules/corepack/shims/pnpx.cmd
-lib/node_modules/corepack/shims/pnpx.ps1
-lib/node_modules/corepack/shims/yarn
-lib/node_modules/corepack/shims/yarn.cmd
-lib/node_modules/corepack/shims/yarn.ps1
-lib/node_modules/corepack/shims/yarnpkg
-lib/node_modules/corepack/shims/yarnpkg.cmd
-lib/node_modules/corepack/shims/yarnpkg.ps1
%%PORTDOCS%%%%DOCSDIR%%/gdbinit
%%PORTDOCS%%%%DOCSDIR%%/lldb_commands.py
@(,,444) share/man/man1/node.1.gz
diff --git a/www/node24/Makefile b/www/node24/Makefile
index 8683c23a18ab..6f4bc01e5ee6 100644
--- a/www/node24/Makefile
+++ b/www/node24/Makefile
@@ -1,6 +1,7 @@
PORTNAME= node
PORTVERSION= ${NODEJS_PORTVERSION}
DISTVERSIONPREFIX= v
+PORTREVISION= 3
CATEGORIES= www
MASTER_SITES= https://nodejs.org/dist/v${PORTVERSION}/
PKGNAMESUFFIX= ${PORTVERSION:R:R}
@@ -21,18 +22,21 @@ BUILD_DEPENDS= objdump:devel/binutils
LIB_DEPENDS= libbrotlidec.so:archivers/brotli \
libcares.so:dns/c-ares \
libicui18n.so:devel/icu \
+ libllhttp.so:www/llhttp \
libnghttp2.so:www/libnghttp2 \
libnghttp3.so:www/libnghttp3 \
libngtcp2.so:net/libngtcp2 \
libsimdjson.so:devel/simdjson \
libuv.so:devel/libuv \
libzstd.so:archivers/zstd
+RUN_DEPENDS= corepack>=0:www/corepack
USES= compiler:c++11-lang gmake localbase pkgconfig python:build shebangfix tar:xz
CONFIGURE_ARGS= --prefix=${PREFIX:S|^${DESTDIR}||} \
--shared-brotli \
--shared-cares \
+ --shared-http-parser \
--shared-libuv \
--shared-nghttp2 \
--shared-nghttp3 \
@@ -40,6 +44,7 @@ CONFIGURE_ARGS= --prefix=${PREFIX:S|^${DESTDIR}||} \
--shared-simdjson \
--shared-zlib \
--shared-zstd \
+ --without-corepack \
--with-intl=system-icu \
--without-npm
CXXFLAGS_powerpc64= -mpower8-vector
@@ -82,6 +87,9 @@ post-patch:
# Clean up bundled libraries
@${RM} -r ${WRKSRC}/deps/brotli/
@${RM} -r ${WRKSRC}/deps/cares/
+ @${RM} -r ${WRKSRC}/deps/corepack/
+ @${RM} -r ${WRKSRC}/deps/icu-small/
+ @${RM} -r ${WRKSRC}/deps/llhttp/
@${RM} -r ${WRKSRC}/deps/nghttp2/
@${RM} -r ${WRKSRC}/deps/ngtcp2/
@${RM} -r ${WRKSRC}/deps/npm/
diff --git a/www/node24/pkg-plist b/www/node24/pkg-plist
index c05b6b9f99d0..cbdee2119fa8 100644
--- a/www/node24/pkg-plist
+++ b/www/node24/pkg-plist
@@ -1,4 +1,3 @@
-bin/corepack
bin/node
include/node/common.gypi
include/node/config.gypi
@@ -108,60 +107,6 @@ include/node/v8-wasm.h
include/node/v8-weak-callback-info.h
include/node/v8.h
include/node/v8config.h
-lib/node_modules/corepack/CHANGELOG.md
-lib/node_modules/corepack/LICENSE.md
-lib/node_modules/corepack/README.md
-lib/node_modules/corepack/dist/corepack.js
-lib/node_modules/corepack/dist/lib/corepack.cjs
-lib/node_modules/corepack/dist/npm.js
-lib/node_modules/corepack/dist/npx.js
-lib/node_modules/corepack/dist/pnpm.js
-lib/node_modules/corepack/dist/pnpx.js
-lib/node_modules/corepack/dist/yarn.js
-lib/node_modules/corepack/dist/yarnpkg.js
-lib/node_modules/corepack/package.json
-lib/node_modules/corepack/shims/corepack
-lib/node_modules/corepack/shims/corepack.cmd
-lib/node_modules/corepack/shims/corepack.ps1
-lib/node_modules/corepack/shims/nodewin/corepack
-lib/node_modules/corepack/shims/nodewin/corepack.cmd
-lib/node_modules/corepack/shims/nodewin/corepack.ps1
-lib/node_modules/corepack/shims/nodewin/npm
-lib/node_modules/corepack/shims/nodewin/npm.cmd
-lib/node_modules/corepack/shims/nodewin/npm.ps1
-lib/node_modules/corepack/shims/nodewin/npx
-lib/node_modules/corepack/shims/nodewin/npx.cmd
-lib/node_modules/corepack/shims/nodewin/npx.ps1
-lib/node_modules/corepack/shims/nodewin/pnpm
-lib/node_modules/corepack/shims/nodewin/pnpm.cmd
-lib/node_modules/corepack/shims/nodewin/pnpm.ps1
-lib/node_modules/corepack/shims/nodewin/pnpx
-lib/node_modules/corepack/shims/nodewin/pnpx.cmd
-lib/node_modules/corepack/shims/nodewin/pnpx.ps1
-lib/node_modules/corepack/shims/nodewin/yarn
-lib/node_modules/corepack/shims/nodewin/yarn.cmd
-lib/node_modules/corepack/shims/nodewin/yarn.ps1
-lib/node_modules/corepack/shims/nodewin/yarnpkg
-lib/node_modules/corepack/shims/nodewin/yarnpkg.cmd
-lib/node_modules/corepack/shims/nodewin/yarnpkg.ps1
-lib/node_modules/corepack/shims/npm
-lib/node_modules/corepack/shims/npm.cmd
-lib/node_modules/corepack/shims/npm.ps1
-lib/node_modules/corepack/shims/npx
-lib/node_modules/corepack/shims/npx.cmd
-lib/node_modules/corepack/shims/npx.ps1
-lib/node_modules/corepack/shims/pnpm
-lib/node_modules/corepack/shims/pnpm.cmd
-lib/node_modules/corepack/shims/pnpm.ps1
-lib/node_modules/corepack/shims/pnpx
-lib/node_modules/corepack/shims/pnpx.cmd
-lib/node_modules/corepack/shims/pnpx.ps1
-lib/node_modules/corepack/shims/yarn
-lib/node_modules/corepack/shims/yarn.cmd
-lib/node_modules/corepack/shims/yarn.ps1
-lib/node_modules/corepack/shims/yarnpkg
-lib/node_modules/corepack/shims/yarnpkg.cmd
-lib/node_modules/corepack/shims/yarnpkg.ps1
%%PORTDOCS%%%%DOCSDIR%%/gdbinit
%%PORTDOCS%%%%DOCSDIR%%/lldb_commands.py
@(,,444) share/man/man1/node.1.gz
diff --git a/www/node25/Makefile b/www/node25/Makefile
new file mode 100644
index 000000000000..8b350a96b435
--- /dev/null
+++ b/www/node25/Makefile
@@ -0,0 +1,113 @@
+PORTNAME= node
+PORTVERSION= ${NODEJS_PORTVERSION}
+DISTVERSIONPREFIX= v
+CATEGORIES= www
+MASTER_SITES= https://nodejs.org/dist/v${PORTVERSION}/
+PKGNAMESUFFIX= ${PORTVERSION:R:R}
+
+MAINTAINER= sunpoet@FreeBSD.org
+COMMENT= V8 JavaScript for client and server
+WWW= https://nodejs.org/ \
+ https://github.com/nodejs/node
+
+LICENSE= MIT
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+BROKEN_SSL= libressl libressl-devel
+BROKEN_SSL_REASON= Node.js ${PORTVERSION:R:R}.x requires OpenSSL or the BUNDLED_SSL option enabled
+ONLY_FOR_ARCHS= aarch64 amd64 armv6 armv7 i386 powerpc64 powerpc64le
+
+BUILD_DEPENDS= objdump:devel/binutils
+LIB_DEPENDS= libbrotlidec.so:archivers/brotli \
+ libcares.so:dns/c-ares \
+ libicui18n.so:devel/icu \
+ libllhttp.so:www/llhttp \
+ libnghttp2.so:www/libnghttp2 \
+ libnghttp3.so:www/libnghttp3 \
+ libngtcp2.so:net/libngtcp2 \
+ libsimdjson.so:devel/simdjson \
+ libuv.so:devel/libuv \
+ libzstd.so:archivers/zstd
+RUN_DEPENDS= corepack>=0:www/corepack
+
+USES= compiler:c++11-lang gmake localbase pkgconfig python:build shebangfix tar:xz
+
+CONFIGURE_ARGS= --prefix=${PREFIX:S|^${DESTDIR}||} \
+ --shared-brotli \
+ --shared-cares \
+ --shared-http-parser \
+ --shared-libuv \
+ --shared-nghttp2 \
+ --shared-nghttp3 \
+ --shared-ngtcp2 \
+ --shared-simdjson \
+ --shared-zlib \
+ --shared-zstd \
+ --with-intl=system-icu \
+ --without-npm
+CXXFLAGS_powerpc64= -mpower8-vector
+HAS_CONFIGURE= yes
+MAKE_ENV= CC.host="${CCACHE_BIN} ${CC}" \
+ CFLAGS.host="${CFLAGS}" \
+ CXX.host="${CCACHE_BIN} ${CXX}" \
+ CXXFLAGS.host="${CXXFLAGS}" \
+ LDFLAGS.host="${LDFLAGS}" \
+ LINK.host="${CXX}"
+REINPLACE_ARGS= -i ''
+
+CONFLICTS_INSTALL= node[0-9][0-9]
+
+SHEBANG_FILES= deps/v8/third_party/inspector_protocol/*.py \
+ deps/v8/tools/*.py \
+ tools/*.py \
+ tools/inspector_protocol/*.py
+
+OPTIONS_DEFINE= BUNDLED_SSL DOCS JIT
+OPTIONS_DEFAULT=JIT
+OPTIONS_SUB= yes
+BUNDLED_SSL_DESC= Use bundled OpenSSL implementation from node.js
+JIT_DESC= Use Just In Time compiler
+
+BUNDLED_SSL_CONFIGURE_OFF= --openssl-use-def-ca-store --shared-openssl
+BUNDLED_SSL_RUN_DEPENDS_OFF= ca_root_nss>=0:security/ca_root_nss
+BUNDLED_SSL_USES_OFF= ssl
+JIT_CONFIGURE_OFF= --v8-lite-mode
+
+.include "Makefile.version"
+.include <bsd.port.options.mk>
+
+.if ${PORT_OPTIONS:MBUNDLED_SSL} && ${ARCH} != amd64
+CONFIGURE_ARGS+=--openssl-no-asm
+.endif
+
+post-patch:
+ @${REINPLACE_CMD} -e 's|/usr/local|${LOCALBASE}|' ${WRKSRC}/tools/v8_gypfiles/v8.gyp
+# Clean up bundled libraries
+ @${RM} -r ${WRKSRC}/deps/brotli/
+ @${RM} -r ${WRKSRC}/deps/cares/
+ @${RM} -r ${WRKSRC}/deps/icu-small/
+ @${RM} -r ${WRKSRC}/deps/llhttp/
+ @${RM} -r ${WRKSRC}/deps/nghttp2/
+ @${RM} -r ${WRKSRC}/deps/ngtcp2/
+ @${RM} -r ${WRKSRC}/deps/npm/
+ @${RM} -r ${WRKSRC}/deps/simdjson/
+ @${RM} -r ${WRKSRC}/deps/uv/
+ @${RM} -r ${WRKSRC}/deps/zlib/
+ @${RM} -r ${WRKSRC}/deps/zstd/
+
+post-configure:
+ # Post-process Makefile and *.mk files created by node-gyp and remove
+ # all occurrences of -I${LOCALBASE}/include. C*FLAGS include this
+ # before all -I../deps/* for bundled code. This can cause build
+ # breakages if the dependency is installed in ${LOCALBASE}. The
+ # USES+=localbase # above will ensure that we pick up includes for real
+ # external dependencies.
+ ${FIND} ${WRKSRC}/out -type f -print0 | ${XARGS} -0 ${REINPLACE_CMD} -e "s|-I${LOCALBASE}/include||g"
+
+post-install:
+ ${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/node
+
+post-install-BUNDLED_SSL-on:
+ cd ${STAGEDIR}${PREFIX} && ${FIND} include/node/openssl/ -type f >> ${TMPPLIST}
+
+.include <bsd.port.mk>
diff --git a/www/node25/Makefile.version b/www/node25/Makefile.version
new file mode 100644
index 000000000000..4dbe8cd0770c
--- /dev/null
+++ b/www/node25/Makefile.version
@@ -0,0 +1 @@
+NODEJS_PORTVERSION= 25.0.0
diff --git a/www/node25/distinfo b/www/node25/distinfo
new file mode 100644
index 000000000000..773fbd2ba111
--- /dev/null
+++ b/www/node25/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1760717241
+SHA256 (node-v25.0.0.tar.xz) = 2822cd7b510c955f8c4d448fa483f01d2839251774220a356a6b9bc2ab2039ae
+SIZE (node-v25.0.0.tar.xz) = 53218272
diff --git a/www/node25/files/patch-armv7 b/www/node25/files/patch-armv7
new file mode 100644
index 000000000000..189f9b3780d8
--- /dev/null
+++ b/www/node25/files/patch-armv7
@@ -0,0 +1,12 @@
+--- tools/v8_gypfiles/v8.gyp.orig 2025-07-17 21:44:08 UTC
++++ tools/v8_gypfiles/v8.gyp
+@@ -1314,9 +1314,6 @@
+ # to implement atomic memory access.
+ # Clang needs it for some atomic operations (https://clang.llvm.org/docs/Toolchain.html#atomics-library).
+ ['(OS=="linux" and clang==1) or (v8_current_cpu in ["mips64", "mips64el", "arm", "riscv64", "loong64"])', {
+- 'link_settings': {
+- 'libraries': ['-latomic', ],
+- },
+ }],
+ ],
+ }, # v8_base_without_compiler
diff --git a/www/node25/files/patch-deps-openssl-openssl-cl_no_asm.gypi b/www/node25/files/patch-deps-openssl-openssl-cl_no_asm.gypi
new file mode 100644
index 000000000000..2670843ea933
--- /dev/null
+++ b/www/node25/files/patch-deps-openssl-openssl-cl_no_asm.gypi
@@ -0,0 +1,17 @@
+--- deps/openssl/openssl-cl_no_asm.gypi.orig 2023-10-24 10:04:40 UTC
++++ deps/openssl/openssl-cl_no_asm.gypi
+@@ -1,4 +1,5 @@
+ {
++ 'defines': ['OPENSSL_NO_ASM'],
+ 'conditions': [
+ ['target_arch=="ppc64" and OS in ("aix", "os400")', {
+ 'includes': ['config/archs/aix64-gcc-as/no-asm/openssl-cl.gypi'],
+@@ -45,7 +46,7 @@
+ 'includes': ['config/archs/linux64-loongarch64/no-asm/openssl-cl.gypi'],
+ }, {
+ # Other architectures don't use assembly
+- 'includes': ['config/archs/linux-x86_64/no-asm/openssl-cl.gypi'],
++ 'includes': ['config/archs/linux-elf/no-asm/openssl-cl.gypi'],
+ }],
+ ],
+ }
diff --git a/www/node25/files/patch-deps-openssl-openssl_no_asm.gypi b/www/node25/files/patch-deps-openssl-openssl_no_asm.gypi
new file mode 100644
index 000000000000..a7f94c9eda31
--- /dev/null
+++ b/www/node25/files/patch-deps-openssl-openssl_no_asm.gypi
@@ -0,0 +1,11 @@
+--- deps/openssl/openssl_no_asm.gypi.orig 2025-05-06 12:36:29 UTC
++++ deps/openssl/openssl_no_asm.gypi
+@@ -46,7 +46,7 @@
+ 'includes': ['config/archs/linux64-loongarch64/no-asm/openssl.gypi'],
+ }, {
+ # Other architectures don't use assembly
+- 'includes': ['config/archs/linux-x86_64/no-asm/openssl.gypi'],
++ 'includes': ['config/archs/linux-elf/no-asm/openssl.gypi'],
+ }],
+ ],
+ }
diff --git a/www/node25/files/patch-deps-v8-src-base-platform-platform-freebsd.cc b/www/node25/files/patch-deps-v8-src-base-platform-platform-freebsd.cc
new file mode 100644
index 000000000000..be89ded1df8d
--- /dev/null
+++ b/www/node25/files/patch-deps-v8-src-base-platform-platform-freebsd.cc
@@ -0,0 +1,13 @@
+--- deps/v8/src/base/platform/platform-freebsd.cc.orig 2023-05-16 06:58:20 UTC
++++ deps/v8/src/base/platform/platform-freebsd.cc
+@@ -82,8 +82,8 @@ std::vector<OS::SharedLibraryAddress> OS::GetSharedLib
+ lib_name = std::string(path);
+ }
+ result.push_back(SharedLibraryAddress(
+- lib_name, reinterpret_cast<uintptr_t>(map->kve_start),
+- reinterpret_cast<uintptr_t>(map->kve_end)));
++ lib_name, static_cast<uintptr_t>(map->kve_start),
++ static_cast<uintptr_t>(map->kve_end)));
+ }
+
+ start += ssize;
diff --git a/www/node25/files/patch-deps-v8-src-codegen-arm-cpu-arm.cc b/www/node25/files/patch-deps-v8-src-codegen-arm-cpu-arm.cc
new file mode 100644
index 000000000000..42fd70bfd7ca
--- /dev/null
+++ b/www/node25/files/patch-deps-v8-src-codegen-arm-cpu-arm.cc
@@ -0,0 +1,18 @@
+--- deps/v8/src/codegen/arm/cpu-arm.cc.orig 2023-05-16 06:58:20 UTC
++++ deps/v8/src/codegen/arm/cpu-arm.cc
+@@ -2,12 +2,15 @@
+ // Use of this source code is governed by a BSD-style license that can be
+ // found in the LICENSE file.
+
++#include "include/v8config.h"
++
+ // CPU specific code for arm independent of OS goes here.
+ #ifdef __arm__
+ #ifdef __QNXNTO__
+ #include <sys/mman.h> // for cache flushing.
+ #undef MAP_TYPE
+ #elif V8_OS_FREEBSD
++#include <sys/cdefs.h>
+ #include <machine/sysarch.h> // for cache flushing
+ #include <sys/types.h>
+ #elif V8_OS_STARBOARD
diff --git a/www/node25/files/patch-deps-v8-src-codegen-ppc-constants-ppc.h b/www/node25/files/patch-deps-v8-src-codegen-ppc-constants-ppc.h
new file mode 100644
index 000000000000..436f9a7c82be
--- /dev/null
+++ b/www/node25/files/patch-deps-v8-src-codegen-ppc-constants-ppc.h
@@ -0,0 +1,20 @@
+--- deps/v8/src/codegen/ppc/constants-ppc.h.orig 2025-05-06 12:36:30 UTC
++++ deps/v8/src/codegen/ppc/constants-ppc.h
+@@ -35,7 +35,7 @@
+ #define ABI_PASSES_HANDLES_IN_REGS 0
+ #endif
+
+-#if !V8_HOST_ARCH_PPC64 || !V8_TARGET_ARCH_PPC64 || V8_TARGET_LITTLE_ENDIAN || \
++#if !V8_HOST_ARCH_PPC64 || !V8_TARGET_ARCH_PPC64 || \
+ (defined(_CALL_ELF) && _CALL_ELF == 2)
+ #define ABI_RETURNS_OBJECT_PAIRS_IN_REGS 1
+ #else
+@@ -44,7 +44,7 @@
+
+ #if !V8_HOST_ARCH_PPC64 || \
+ (V8_TARGET_ARCH_PPC64 && \
+- (V8_TARGET_LITTLE_ENDIAN || (defined(_CALL_ELF) && _CALL_ELF == 2)))
++ (defined(_CALL_ELF) && _CALL_ELF == 2))
+ #define ABI_CALL_VIA_IP 1
+ #else
+ #define ABI_CALL_VIA_IP 0
diff --git a/www/node25/files/patch-deps-v8-src-libsampler-sampler.cc b/www/node25/files/patch-deps-v8-src-libsampler-sampler.cc
new file mode 100644
index 000000000000..463370ea8d6a
--- /dev/null
+++ b/www/node25/files/patch-deps-v8-src-libsampler-sampler.cc
@@ -0,0 +1,13 @@
+--- deps/v8/src/libsampler/sampler.cc.orig 2025-05-06 12:36:30 UTC
++++ deps/v8/src/libsampler/sampler.cc
+@@ -520,6 +520,10 @@ void SignalHandler::FillRegisterState(void* context, R
+ state->pc = reinterpret_cast<void*>(mcontext.__gregs[_REG_PC]);
+ state->sp = reinterpret_cast<void*>(mcontext.__gregs[_REG_SP]);
+ state->fp = reinterpret_cast<void*>(mcontext.__gregs[_REG_FP]);
++#elif V8_TARGET_ARCH_PPC64
++ state->pc = reinterpret_cast<void*>(mcontext.mc_srr0);
++ state->sp = reinterpret_cast<void*>(mcontext.mc_frame[1]);
++ state->fp = reinterpret_cast<void*>(mcontext.mc_frame[31]);
+ #endif // V8_HOST_ARCH_*
+ #elif V8_OS_NETBSD
+ #if V8_HOST_ARCH_IA32
diff --git a/www/node25/files/patch-deps_v8_include_v8config.h b/www/node25/files/patch-deps_v8_include_v8config.h
new file mode 100644
index 000000000000..2fe13159fc15
--- /dev/null
+++ b/www/node25/files/patch-deps_v8_include_v8config.h
@@ -0,0 +1,11 @@
+--- deps/v8/include/v8config.h.orig 2025-07-15 17:11:17 UTC
++++ deps/v8/include/v8config.h
+@@ -976,7 +976,7 @@ V8 shared library set USING_V8_SHARED.
+ #define V8_TARGET_LITTLE_ENDIAN 1
+ #endif
+ #elif V8_TARGET_ARCH_PPC64
+-#if V8_OS_AIX
++#if defined(__BIG_ENDIAN__) || defined(V8_OS_AIX)
+ #define V8_TARGET_BIG_ENDIAN 1
+ #else
+ #define V8_TARGET_LITTLE_ENDIAN 1
diff --git a/www/node25/files/patch-deps_v8_src_base_platform_platform-posix.cc b/www/node25/files/patch-deps_v8_src_base_platform_platform-posix.cc
new file mode 100644
index 000000000000..3a6bc2e94249
--- /dev/null
+++ b/www/node25/files/patch-deps_v8_src_base_platform_platform-posix.cc
@@ -0,0 +1,12 @@
+--- deps/v8/src/base/platform/platform-posix.cc.orig 2025-07-15 17:11:17 UTC
++++ deps/v8/src/base/platform/platform-posix.cc
+@@ -360,6 +360,9 @@ void* OS::GetRandomMmapAddr() {
+ raw_addr &= uint64_t{0x3FFFF000};
+ // Use extra address space to isolate the mmap regions.
+ raw_addr += uint64_t{0x400000000000};
++#elif V8_TARGET_BIG_ENDIAN
++ // Big-endian Linux: 42 bits of virtual addressing.
++ raw_addr &= uint64_t{0x03FFFFFFF000};
+ #else
+ // Little-endian Linux: 46 bits of virtual addressing.
+ raw_addr &= uint64_t{0x3FFFFFFF0000};
diff --git a/www/node25/files/patch-node.gypi b/www/node25/files/patch-node.gypi
new file mode 100644
index 000000000000..bd2f3dec9ffa
--- /dev/null
+++ b/www/node25/files/patch-node.gypi
@@ -0,0 +1,12 @@
+--- node.gypi.orig 2025-05-06 12:36:33 UTC
++++ node.gypi
+@@ -376,6 +376,9 @@
+ [ 'node_use_openssl=="true"', {
+ 'defines': [ 'HAVE_OPENSSL=1' ],
+ 'conditions': [
++ ['openssl_no_asm==1', {
++ 'defines': [ 'OPENSSL_NO_ASM' ],
++ }],
+ [ 'node_shared_openssl=="false"', {
+ 'defines': [ 'OPENSSL_API_COMPAT=0x10100000L', ],
+ 'dependencies': [
diff --git a/www/node25/files/patch-src-cares_wrap.h b/www/node25/files/patch-src-cares_wrap.h
new file mode 100644
index 000000000000..7bac6f049408
--- /dev/null
+++ b/www/node25/files/patch-src-cares_wrap.h
@@ -0,0 +1,11 @@
+--- src/cares_wrap.h.orig 2023-05-16 06:58:21 UTC
++++ src/cares_wrap.h
+@@ -23,7 +23,7 @@
+ # include <netdb.h>
+ #endif // __POSIX__
+
+-# include <ares_nameser.h>
++# include <arpa/nameser.h>
+
+ namespace node {
+ namespace cares_wrap {
diff --git a/www/node25/pkg-descr b/www/node25/pkg-descr
new file mode 100644
index 000000000000..aed88d828d57
--- /dev/null
+++ b/www/node25/pkg-descr
@@ -0,0 +1,2 @@
+Node.js is a free, open-source, cross-platform JavaScript runtime environment
+that lets developers create servers, web apps, command line tools and scripts.
diff --git a/www/node25/pkg-message b/www/node25/pkg-message
new file mode 100644
index 000000000000..4594af9a47a6
--- /dev/null
+++ b/www/node25/pkg-message
@@ -0,0 +1,7 @@
+[
+{ type: install
+ message: <<EOM
+Note: If you need npm (Node Package Manager), please install www/npm-node24.
+EOM
+}
+]
diff --git a/www/node25/pkg-plist b/www/node25/pkg-plist
new file mode 100644
index 000000000000..cbdee2119fa8
--- /dev/null
+++ b/www/node25/pkg-plist
@@ -0,0 +1,112 @@
+bin/node
+include/node/common.gypi
+include/node/config.gypi
+include/node/cppgc/allocation.h
+include/node/cppgc/common.h
+include/node/cppgc/cross-thread-persistent.h
+include/node/cppgc/custom-space.h
+include/node/cppgc/default-platform.h
+include/node/cppgc/explicit-management.h
+include/node/cppgc/garbage-collected.h
+include/node/cppgc/heap-consistency.h
+include/node/cppgc/heap-handle.h
+include/node/cppgc/heap-state.h
+include/node/cppgc/heap-statistics.h
+include/node/cppgc/heap.h
+include/node/cppgc/internal/api-constants.h
+include/node/cppgc/internal/atomic-entry-flag.h
+include/node/cppgc/internal/base-page-handle.h
+include/node/cppgc/internal/caged-heap-local-data.h
+include/node/cppgc/internal/caged-heap.h
+include/node/cppgc/internal/compiler-specific.h
+include/node/cppgc/internal/conditional-stack-allocated.h
+include/node/cppgc/internal/finalizer-trait.h
+include/node/cppgc/internal/gc-info.h
+include/node/cppgc/internal/logging.h
+include/node/cppgc/internal/member-storage.h
+include/node/cppgc/internal/name-trait.h
+include/node/cppgc/internal/persistent-node.h
+include/node/cppgc/internal/pointer-policies.h
+include/node/cppgc/internal/write-barrier.h
+include/node/cppgc/liveness-broker.h
+include/node/cppgc/macros.h
+include/node/cppgc/member.h
+include/node/cppgc/name-provider.h
+include/node/cppgc/object-size-trait.h
+include/node/cppgc/persistent.h
+include/node/cppgc/platform.h
+include/node/cppgc/prefinalizer.h
+include/node/cppgc/process-heap-statistics.h
+include/node/cppgc/sentinel-pointer.h
+include/node/cppgc/source-location.h
+include/node/cppgc/testing.h
+include/node/cppgc/trace-trait.h
+include/node/cppgc/type-traits.h
+include/node/cppgc/visitor.h
+include/node/js_native_api.h
+include/node/js_native_api_types.h
+include/node/libplatform/libplatform-export.h
+include/node/libplatform/libplatform.h
+include/node/libplatform/v8-tracing.h
+include/node/node.h
+include/node/node_api.h
+include/node/node_api_types.h
+include/node/node_buffer.h
+include/node/node_object_wrap.h
+include/node/node_version.h
+include/node/v8-array-buffer.h
+include/node/v8-callbacks.h
+include/node/v8-container.h
+include/node/v8-context.h
+include/node/v8-cppgc.h
+include/node/v8-data.h
+include/node/v8-date.h
+include/node/v8-debug.h
+include/node/v8-embedder-heap.h
+include/node/v8-embedder-state-scope.h
+include/node/v8-exception.h
+include/node/v8-extension.h
+include/node/v8-external.h
+include/node/v8-forward.h
+include/node/v8-function-callback.h
+include/node/v8-function.h
+include/node/v8-handle-base.h
+include/node/v8-initialization.h
+include/node/v8-internal.h
+include/node/v8-isolate.h
+include/node/v8-json.h
+include/node/v8-local-handle.h
+include/node/v8-locker.h
+include/node/v8-maybe.h
+include/node/v8-memory-span.h
+include/node/v8-message.h
+include/node/v8-microtask-queue.h
+include/node/v8-microtask.h
+include/node/v8-object.h
+include/node/v8-persistent-handle.h
+include/node/v8-platform.h
+include/node/v8-primitive-object.h
+include/node/v8-primitive.h
+include/node/v8-profiler.h
+include/node/v8-promise.h
+include/node/v8-proxy.h
+include/node/v8-regexp.h
+include/node/v8-sandbox.h
+include/node/v8-script.h
+include/node/v8-snapshot.h
+include/node/v8-source-location.h
+include/node/v8-statistics.h
+include/node/v8-template.h
+include/node/v8-traced-handle.h
+include/node/v8-typed-array.h
+include/node/v8-unwinder.h
+include/node/v8-value-serializer.h
+include/node/v8-value.h
+include/node/v8-version.h
+include/node/v8-wasm.h
+include/node/v8-weak-callback-info.h
+include/node/v8.h
+include/node/v8config.h
+%%PORTDOCS%%%%DOCSDIR%%/gdbinit
+%%PORTDOCS%%%%DOCSDIR%%/lldb_commands.py
+@(,,444) share/man/man1/node.1.gz
diff --git a/www/npm-node25/Makefile b/www/npm-node25/Makefile
new file mode 100644
index 000000000000..22066b65d811
--- /dev/null
+++ b/www/npm-node25/Makefile
@@ -0,0 +1,5 @@
+USES= nodejs:25,run
+
+MASTERDIR= ${.CURDIR}/../npm-node22
+
+.include "${MASTERDIR}/Makefile"
diff --git a/www/owncloud/Makefile b/www/owncloud/Makefile
index 649e228d46d5..36b4bb2a5acf 100644
--- a/www/owncloud/Makefile
+++ b/www/owncloud/Makefile
@@ -1,5 +1,5 @@
PORTNAME= owncloud
-PORTVERSION= 10.15.3
+PORTVERSION= 10.16.0
CATEGORIES= www
MASTER_SITES= https://download.owncloud.com/server/stable/ \
LOCAL/sunpoet
diff --git a/www/owncloud/distinfo b/www/owncloud/distinfo
index be9cb3ca2135..fe2cbe2744ff 100644
--- a/www/owncloud/distinfo
+++ b/www/owncloud/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1752266026
-SHA256 (owncloud-10.15.3.tar.bz2) = e2f9809bf9badf4675f9ee2d3ea347ecf299b2887c175285965c9910e5981de4
-SIZE (owncloud-10.15.3.tar.bz2) = 57734714
+TIMESTAMP = 1761446520
+SHA256 (owncloud-10.16.0.tar.bz2) = b0a259a089eb1152a6a61ac9c7186c52c47f9ce494938d1293c30465d0b6afb7
+SIZE (owncloud-10.16.0.tar.bz2) = 57829139
diff --git a/www/owncloud/pkg-plist b/www/owncloud/pkg-plist
index ee30bbb15c1a..e2ed3f547818 100644
--- a/www/owncloud/pkg-plist
+++ b/www/owncloud/pkg-plist
@@ -27,6 +27,8 @@
%%WWWDIR%%/apps/comments/l10n/ast.json
%%WWWDIR%%/apps/comments/l10n/az.js
%%WWWDIR%%/apps/comments/l10n/az.json
+%%WWWDIR%%/apps/comments/l10n/be.js
+%%WWWDIR%%/apps/comments/l10n/be.json
%%WWWDIR%%/apps/comments/l10n/bg_BG.js
%%WWWDIR%%/apps/comments/l10n/bg_BG.json
%%WWWDIR%%/apps/comments/l10n/bn_BD.js
@@ -55,6 +57,8 @@
%%WWWDIR%%/apps/comments/l10n/el.json
%%WWWDIR%%/apps/comments/l10n/en_GB.js
%%WWWDIR%%/apps/comments/l10n/en_GB.json
+%%WWWDIR%%/apps/comments/l10n/en_US.js
+%%WWWDIR%%/apps/comments/l10n/en_US.json
%%WWWDIR%%/apps/comments/l10n/eo.js
%%WWWDIR%%/apps/comments/l10n/eo.json
%%WWWDIR%%/apps/comments/l10n/es.js
@@ -451,6 +455,8 @@
%%WWWDIR%%/apps/dav/l10n/ast.json
%%WWWDIR%%/apps/dav/l10n/az.js
%%WWWDIR%%/apps/dav/l10n/az.json
+%%WWWDIR%%/apps/dav/l10n/be.js
+%%WWWDIR%%/apps/dav/l10n/be.json
%%WWWDIR%%/apps/dav/l10n/bg_BG.js
%%WWWDIR%%/apps/dav/l10n/bg_BG.json
%%WWWDIR%%/apps/dav/l10n/bn_BD.js
@@ -477,6 +483,8 @@
%%WWWDIR%%/apps/dav/l10n/el.json
%%WWWDIR%%/apps/dav/l10n/en_GB.js
%%WWWDIR%%/apps/dav/l10n/en_GB.json
+%%WWWDIR%%/apps/dav/l10n/en_US.js
+%%WWWDIR%%/apps/dav/l10n/en_US.json
%%WWWDIR%%/apps/dav/l10n/eo.js
%%WWWDIR%%/apps/dav/l10n/eo.json
%%WWWDIR%%/apps/dav/l10n/es.js
@@ -1152,6 +1160,8 @@
%%WWWDIR%%/apps/federatedfilesharing/l10n/ast.json
%%WWWDIR%%/apps/federatedfilesharing/l10n/az.js
%%WWWDIR%%/apps/federatedfilesharing/l10n/az.json
+%%WWWDIR%%/apps/federatedfilesharing/l10n/be.js
+%%WWWDIR%%/apps/federatedfilesharing/l10n/be.json
%%WWWDIR%%/apps/federatedfilesharing/l10n/bg_BG.js
%%WWWDIR%%/apps/federatedfilesharing/l10n/bg_BG.json
%%WWWDIR%%/apps/federatedfilesharing/l10n/bn_BD.js
@@ -1316,6 +1326,8 @@
%%WWWDIR%%/apps/federation/l10n/ast.json
%%WWWDIR%%/apps/federation/l10n/az.js
%%WWWDIR%%/apps/federation/l10n/az.json
+%%WWWDIR%%/apps/federation/l10n/be.js
+%%WWWDIR%%/apps/federation/l10n/be.json
%%WWWDIR%%/apps/federation/l10n/bg_BG.js
%%WWWDIR%%/apps/federation/l10n/bg_BG.json
%%WWWDIR%%/apps/federation/l10n/bn_BD.js
@@ -1567,6 +1579,8 @@
%%WWWDIR%%/apps/files/l10n/cy_GB.json
%%WWWDIR%%/apps/files/l10n/da.js
%%WWWDIR%%/apps/files/l10n/da.json
+%%WWWDIR%%/apps/files/l10n/da_DK.js
+%%WWWDIR%%/apps/files/l10n/da_DK.json
%%WWWDIR%%/apps/files/l10n/de.js
%%WWWDIR%%/apps/files/l10n/de.json
%%WWWDIR%%/apps/files/l10n/de_AT.js
@@ -1579,6 +1593,8 @@
%%WWWDIR%%/apps/files/l10n/el.json
%%WWWDIR%%/apps/files/l10n/en_GB.js
%%WWWDIR%%/apps/files/l10n/en_GB.json
+%%WWWDIR%%/apps/files/l10n/en_US.js
+%%WWWDIR%%/apps/files/l10n/en_US.json
%%WWWDIR%%/apps/files/l10n/eo.js
%%WWWDIR%%/apps/files/l10n/eo.json
%%WWWDIR%%/apps/files/l10n/es.js
@@ -1760,6 +1776,8 @@
%%WWWDIR%%/apps/files/l10n/xgettextfiles
%%WWWDIR%%/apps/files/l10n/zh-Hans.js
%%WWWDIR%%/apps/files/l10n/zh-Hans.json
+%%WWWDIR%%/apps/files/l10n/zh.js
+%%WWWDIR%%/apps/files/l10n/zh.json
%%WWWDIR%%/apps/files/l10n/zh_CN.GB2312.js
%%WWWDIR%%/apps/files/l10n/zh_CN.GB2312.json
%%WWWDIR%%/apps/files/l10n/zh_CN.js
@@ -1825,6 +1843,8 @@
%%WWWDIR%%/apps/files_external/l10n/ast.json
%%WWWDIR%%/apps/files_external/l10n/az.js
%%WWWDIR%%/apps/files_external/l10n/az.json
+%%WWWDIR%%/apps/files_external/l10n/be.js
+%%WWWDIR%%/apps/files_external/l10n/be.json
%%WWWDIR%%/apps/files_external/l10n/bg_BG.js
%%WWWDIR%%/apps/files_external/l10n/bg_BG.json
%%WWWDIR%%/apps/files_external/l10n/bn_BD.js
@@ -1853,6 +1873,8 @@
%%WWWDIR%%/apps/files_external/l10n/el.json
%%WWWDIR%%/apps/files_external/l10n/en_GB.js
%%WWWDIR%%/apps/files_external/l10n/en_GB.json
+%%WWWDIR%%/apps/files_external/l10n/en_US.js
+%%WWWDIR%%/apps/files_external/l10n/en_US.json
%%WWWDIR%%/apps/files_external/l10n/eo.js
%%WWWDIR%%/apps/files_external/l10n/eo.json
%%WWWDIR%%/apps/files_external/l10n/es.js
@@ -2165,6 +2187,8 @@
%%WWWDIR%%/apps/files_sharing/l10n/ast.json
%%WWWDIR%%/apps/files_sharing/l10n/az.js
%%WWWDIR%%/apps/files_sharing/l10n/az.json
+%%WWWDIR%%/apps/files_sharing/l10n/be.js
+%%WWWDIR%%/apps/files_sharing/l10n/be.json
%%WWWDIR%%/apps/files_sharing/l10n/bg_BG.js
%%WWWDIR%%/apps/files_sharing/l10n/bg_BG.json
%%WWWDIR%%/apps/files_sharing/l10n/bn_BD.js
@@ -2193,6 +2217,8 @@
%%WWWDIR%%/apps/files_sharing/l10n/el.json
%%WWWDIR%%/apps/files_sharing/l10n/en_GB.js
%%WWWDIR%%/apps/files_sharing/l10n/en_GB.json
+%%WWWDIR%%/apps/files_sharing/l10n/en_US.js
+%%WWWDIR%%/apps/files_sharing/l10n/en_US.json
%%WWWDIR%%/apps/files_sharing/l10n/eo.js
%%WWWDIR%%/apps/files_sharing/l10n/eo.json
%%WWWDIR%%/apps/files_sharing/l10n/es.js
@@ -2457,6 +2483,8 @@
%%WWWDIR%%/apps/files_trashbin/l10n/el.json
%%WWWDIR%%/apps/files_trashbin/l10n/en_GB.js
%%WWWDIR%%/apps/files_trashbin/l10n/en_GB.json
+%%WWWDIR%%/apps/files_trashbin/l10n/en_US.js
+%%WWWDIR%%/apps/files_trashbin/l10n/en_US.json
%%WWWDIR%%/apps/files_trashbin/l10n/eo.js
%%WWWDIR%%/apps/files_trashbin/l10n/eo.json
%%WWWDIR%%/apps/files_trashbin/l10n/es.js
@@ -3116,6 +3144,8 @@
%%WWWDIR%%/apps/systemtags/l10n/ast.json
%%WWWDIR%%/apps/systemtags/l10n/az.js
%%WWWDIR%%/apps/systemtags/l10n/az.json
+%%WWWDIR%%/apps/systemtags/l10n/be.js
+%%WWWDIR%%/apps/systemtags/l10n/be.json
%%WWWDIR%%/apps/systemtags/l10n/bg_BG.js
%%WWWDIR%%/apps/systemtags/l10n/bg_BG.json
%%WWWDIR%%/apps/systemtags/l10n/bn_BD.js
@@ -3144,6 +3174,8 @@
%%WWWDIR%%/apps/systemtags/l10n/el.json
%%WWWDIR%%/apps/systemtags/l10n/en_GB.js
%%WWWDIR%%/apps/systemtags/l10n/en_GB.json
+%%WWWDIR%%/apps/systemtags/l10n/en_US.js
+%%WWWDIR%%/apps/systemtags/l10n/en_US.json
%%WWWDIR%%/apps/systemtags/l10n/eo.js
%%WWWDIR%%/apps/systemtags/l10n/eo.json
%%WWWDIR%%/apps/systemtags/l10n/es.js
@@ -3398,6 +3430,8 @@
%%WWWDIR%%/apps/updatenotification/l10n/th_TH.json
%%WWWDIR%%/apps/updatenotification/l10n/tr.js
%%WWWDIR%%/apps/updatenotification/l10n/tr.json
+%%WWWDIR%%/apps/updatenotification/l10n/ug.js
+%%WWWDIR%%/apps/updatenotification/l10n/ug.json
%%WWWDIR%%/apps/updatenotification/l10n/uk.js
%%WWWDIR%%/apps/updatenotification/l10n/uk.json
%%WWWDIR%%/apps/updatenotification/l10n/zh_CN.js
@@ -3885,6 +3919,8 @@
%%WWWDIR%%/core/l10n/el.json
%%WWWDIR%%/core/l10n/en_GB.js
%%WWWDIR%%/core/l10n/en_GB.json
+%%WWWDIR%%/core/l10n/en_US.js
+%%WWWDIR%%/core/l10n/en_US.json
%%WWWDIR%%/core/l10n/eo.js
%%WWWDIR%%/core/l10n/eo.json
%%WWWDIR%%/core/l10n/es.js
@@ -6324,8 +6360,8 @@
%%WWWDIR%%/lib/composer/doctrine/dbal/lib/Doctrine/DBAL/VersionAwarePlatformDriver.php
%%WWWDIR%%/lib/composer/doctrine/deprecations/LICENSE
%%WWWDIR%%/lib/composer/doctrine/deprecations/composer.json
-%%WWWDIR%%/lib/composer/doctrine/deprecations/lib/Doctrine/Deprecations/Deprecation.php
-%%WWWDIR%%/lib/composer/doctrine/deprecations/lib/Doctrine/Deprecations/PHPUnit/VerifyDeprecations.php
+%%WWWDIR%%/lib/composer/doctrine/deprecations/src/Deprecation.php
+%%WWWDIR%%/lib/composer/doctrine/deprecations/src/PHPUnit/VerifyDeprecations.php
%%WWWDIR%%/lib/composer/doctrine/event-manager/LICENSE
%%WWWDIR%%/lib/composer/doctrine/event-manager/composer.json
%%WWWDIR%%/lib/composer/doctrine/event-manager/src/EventArgs.php
@@ -6666,6 +6702,9 @@
%%WWWDIR%%/lib/composer/guzzlehttp/psr7/src/UriResolver.php
%%WWWDIR%%/lib/composer/guzzlehttp/psr7/src/Utils.php
%%WWWDIR%%/lib/composer/icewind/smb/LICENSE.txt
+%%WWWDIR%%/lib/composer/icewind/smb/LICENSES/AGPL-3.0-or-later.txt
+%%WWWDIR%%/lib/composer/icewind/smb/LICENSES/CC0-1.0.txt
+%%WWWDIR%%/lib/composer/icewind/smb/LICENSES/MIT.txt
%%WWWDIR%%/lib/composer/icewind/smb/composer.json
%%WWWDIR%%/lib/composer/icewind/smb/src/ACL.php
%%WWWDIR%%/lib/composer/icewind/smb/src/AbstractServer.php
@@ -6732,6 +6771,10 @@
%%WWWDIR%%/lib/composer/icewind/smb/src/Wrapped/RawConnection.php
%%WWWDIR%%/lib/composer/icewind/smb/src/Wrapped/Server.php
%%WWWDIR%%/lib/composer/icewind/smb/src/Wrapped/Share.php
+%%WWWDIR%%/lib/composer/icewind/streams/LICENSE.txt
+%%WWWDIR%%/lib/composer/icewind/streams/LICENSES/AGPL-3.0-or-later.txt
+%%WWWDIR%%/lib/composer/icewind/streams/LICENSES/CC0-1.0.txt
+%%WWWDIR%%/lib/composer/icewind/streams/LICENSES/MIT.txt
%%WWWDIR%%/lib/composer/icewind/streams/composer.json
%%WWWDIR%%/lib/composer/icewind/streams/src/CallbackWrapper.php
%%WWWDIR%%/lib/composer/icewind/streams/src/CountWrapper.php
@@ -7302,16 +7345,20 @@
%%WWWDIR%%/lib/composer/nikic/php-parser/lib/PhpParser/JsonDecoder.php
%%WWWDIR%%/lib/composer/nikic/php-parser/lib/PhpParser/Lexer.php
%%WWWDIR%%/lib/composer/nikic/php-parser/lib/PhpParser/Lexer/Emulative.php
+%%WWWDIR%%/lib/composer/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/AsymmetricVisibilityTokenEmulator.php
%%WWWDIR%%/lib/composer/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/AttributeEmulator.php
%%WWWDIR%%/lib/composer/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/EnumTokenEmulator.php
%%WWWDIR%%/lib/composer/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/ExplicitOctalEmulator.php
%%WWWDIR%%/lib/composer/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/KeywordEmulator.php
%%WWWDIR%%/lib/composer/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/MatchTokenEmulator.php
%%WWWDIR%%/lib/composer/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/NullsafeTokenEmulator.php
+%%WWWDIR%%/lib/composer/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/PipeOperatorEmulator.php
+%%WWWDIR%%/lib/composer/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/PropertyTokenEmulator.php
%%WWWDIR%%/lib/composer/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/ReadonlyFunctionTokenEmulator.php
%%WWWDIR%%/lib/composer/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/ReadonlyTokenEmulator.php
%%WWWDIR%%/lib/composer/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/ReverseEmulator.php
%%WWWDIR%%/lib/composer/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/TokenEmulator.php
+%%WWWDIR%%/lib/composer/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/VoidCastEmulator.php
%%WWWDIR%%/lib/composer/nikic/php-parser/lib/PhpParser/Modifiers.php
%%WWWDIR%%/lib/composer/nikic/php-parser/lib/PhpParser/NameContext.php
%%WWWDIR%%/lib/composer/nikic/php-parser/lib/PhpParser/Node.php
@@ -7365,6 +7412,7 @@
%%WWWDIR%%/lib/composer/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Mul.php
%%WWWDIR%%/lib/composer/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/NotEqual.php
%%WWWDIR%%/lib/composer/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/NotIdentical.php
+%%WWWDIR%%/lib/composer/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Pipe.php
%%WWWDIR%%/lib/composer/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Plus.php
%%WWWDIR%%/lib/composer/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Pow.php
%%WWWDIR%%/lib/composer/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/ShiftLeft.php
@@ -7383,6 +7431,7 @@
%%WWWDIR%%/lib/composer/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Object_.php
%%WWWDIR%%/lib/composer/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/String_.php
%%WWWDIR%%/lib/composer/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Unset_.php
+%%WWWDIR%%/lib/composer/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Void_.php
%%WWWDIR%%/lib/composer/nikic/php-parser/lib/PhpParser/Node/Expr/ClassConstFetch.php
%%WWWDIR%%/lib/composer/nikic/php-parser/lib/PhpParser/Node/Expr/Clone_.php
%%WWWDIR%%/lib/composer/nikic/php-parser/lib/PhpParser/Node/Expr/Closure.php
@@ -7429,6 +7478,7 @@
%%WWWDIR%%/lib/composer/nikic/php-parser/lib/PhpParser/Node/Name/Relative.php
%%WWWDIR%%/lib/composer/nikic/php-parser/lib/PhpParser/Node/NullableType.php
%%WWWDIR%%/lib/composer/nikic/php-parser/lib/PhpParser/Node/Param.php
+%%WWWDIR%%/lib/composer/nikic/php-parser/lib/PhpParser/Node/PropertyHook.php
%%WWWDIR%%/lib/composer/nikic/php-parser/lib/PhpParser/Node/PropertyItem.php
%%WWWDIR%%/lib/composer/nikic/php-parser/lib/PhpParser/Node/Scalar.php
%%WWWDIR%%/lib/composer/nikic/php-parser/lib/PhpParser/Node/Scalar/DNumber.php
@@ -7446,6 +7496,7 @@
%%WWWDIR%%/lib/composer/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Line.php
%%WWWDIR%%/lib/composer/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Method.php
%%WWWDIR%%/lib/composer/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Namespace_.php
+%%WWWDIR%%/lib/composer/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Property.php
%%WWWDIR%%/lib/composer/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Trait_.php
%%WWWDIR%%/lib/composer/nikic/php-parser/lib/PhpParser/Node/Scalar/String_.php
%%WWWDIR%%/lib/composer/nikic/php-parser/lib/PhpParser/Node/StaticVar.php
@@ -7732,6 +7783,7 @@
%%WWWDIR%%/lib/composer/phpseclib/phpseclib/phpseclib/Exception/InvalidPacketLengthException.php
%%WWWDIR%%/lib/composer/phpseclib/phpseclib/phpseclib/Exception/NoKeyLoadedException.php
%%WWWDIR%%/lib/composer/phpseclib/phpseclib/phpseclib/Exception/NoSupportedAlgorithmsException.php
+%%WWWDIR%%/lib/composer/phpseclib/phpseclib/phpseclib/Exception/TimeoutException.php
%%WWWDIR%%/lib/composer/phpseclib/phpseclib/phpseclib/Exception/UnableToConnectException.php
%%WWWDIR%%/lib/composer/phpseclib/phpseclib/phpseclib/Exception/UnsupportedAlgorithmException.php
%%WWWDIR%%/lib/composer/phpseclib/phpseclib/phpseclib/Exception/UnsupportedCurveException.php
@@ -9613,6 +9665,8 @@
%%WWWDIR%%/lib/l10n/el.json
%%WWWDIR%%/lib/l10n/en_GB.js
%%WWWDIR%%/lib/l10n/en_GB.json
+%%WWWDIR%%/lib/l10n/en_US.js
+%%WWWDIR%%/lib/l10n/en_US.json
%%WWWDIR%%/lib/l10n/eo.js
%%WWWDIR%%/lib/l10n/eo.json
%%WWWDIR%%/lib/l10n/es.js
@@ -10731,6 +10785,8 @@
%%WWWDIR%%/settings/l10n/bs.json
%%WWWDIR%%/settings/l10n/ca.js
%%WWWDIR%%/settings/l10n/ca.json
+%%WWWDIR%%/settings/l10n/cs.js
+%%WWWDIR%%/settings/l10n/cs.json
%%WWWDIR%%/settings/l10n/cs_CZ.js
%%WWWDIR%%/settings/l10n/cs_CZ.json
%%WWWDIR%%/settings/l10n/cy_GB.js
@@ -10749,6 +10805,8 @@
%%WWWDIR%%/settings/l10n/el.json
%%WWWDIR%%/settings/l10n/en_GB.js
%%WWWDIR%%/settings/l10n/en_GB.json
+%%WWWDIR%%/settings/l10n/en_US.js
+%%WWWDIR%%/settings/l10n/en_US.json
%%WWWDIR%%/settings/l10n/eo.js
%%WWWDIR%%/settings/l10n/eo.json
%%WWWDIR%%/settings/l10n/es.js
diff --git a/www/p5-Firefox-Marionette/Makefile b/www/p5-Firefox-Marionette/Makefile
index 6e6c7191731c..4db6767979cc 100644
--- a/www/p5-Firefox-Marionette/Makefile
+++ b/www/p5-Firefox-Marionette/Makefile
@@ -1,5 +1,5 @@
PORTNAME= Firefox-Marionette
-DISTVERSION= 1.64
+DISTVERSION= 1.68
CATEGORIES= www perl5
MASTER_SITES= CPAN
MASTER_SITE_SUBDIR= CPAN:DDICK
diff --git a/www/p5-Firefox-Marionette/distinfo b/www/p5-Firefox-Marionette/distinfo
index 0c75b39f5b2d..f00c70f0c258 100644
--- a/www/p5-Firefox-Marionette/distinfo
+++ b/www/p5-Firefox-Marionette/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1742543526
-SHA256 (Firefox-Marionette-1.64.tar.gz) = 8e0754b3285cc6ebd8d8f52d8586cd5aa988d4ce0b2fdb06b30c4367ae7011da
-SIZE (Firefox-Marionette-1.64.tar.gz) = 427195
+TIMESTAMP = 1761471175
+SHA256 (Firefox-Marionette-1.68.tar.gz) = cfc3ace7c0a4fe4199babd7b6b71dadc93ced18616a3a4c40010d408306fdd6e
+SIZE (Firefox-Marionette-1.68.tar.gz) = 430422
diff --git a/www/p5-HTTP-Message/Makefile b/www/p5-HTTP-Message/Makefile
index 7f4159a0bd09..f5241942b078 100644
--- a/www/p5-HTTP-Message/Makefile
+++ b/www/p5-HTTP-Message/Makefile
@@ -1,5 +1,5 @@
PORTNAME= HTTP-Message
-PORTVERSION= 7.00
+PORTVERSION= 7.01
CATEGORIES= www perl5
MASTER_SITES= CPAN
PKGNAMEPREFIX= p5-
diff --git a/www/p5-HTTP-Message/distinfo b/www/p5-HTTP-Message/distinfo
index 62420fc4c202..903a272f15c6 100644
--- a/www/p5-HTTP-Message/distinfo
+++ b/www/p5-HTTP-Message/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1728632302
-SHA256 (HTTP-Message-7.00.tar.gz) = 5afa95eb6ed1c632e81656201a2738e2c1bc6cbfae2f6d82728e2bb0b519c1dc
-SIZE (HTTP-Message-7.00.tar.gz) = 95242
+TIMESTAMP = 1761446558
+SHA256 (HTTP-Message-7.01.tar.gz) = 82b79ce680251045c244ee059626fecbf98270bed1467f0175ff5ea91071437e
+SIZE (HTTP-Message-7.01.tar.gz) = 95699
diff --git a/www/p5-libwww/Makefile b/www/p5-libwww/Makefile
index cef1415f19e3..1bddb0f3a679 100644
--- a/www/p5-libwww/Makefile
+++ b/www/p5-libwww/Makefile
@@ -1,5 +1,5 @@
PORTNAME= libwww
-PORTVERSION= 6.80
+PORTVERSION= 6.81
DISTVERSIONPREFIX= perl-
CATEGORIES= www devel perl5
MASTER_SITES= CPAN
@@ -21,7 +21,7 @@ RUN_DEPENDS= p5-Authen-NTLM>=1.02:security/p5-Authen-NTLM \
p5-HTML-Parser>=3.71:www/p5-HTML-Parser \
p5-HTTP-Cookies>=6:www/p5-HTTP-Cookies \
p5-HTTP-Date>=6:www/p5-HTTP-Date \
- p5-HTTP-Message>=6.18:www/p5-HTTP-Message \
+ p5-HTTP-Message>=7.01:www/p5-HTTP-Message \
p5-HTTP-Negotiate>=6:www/p5-HTTP-Negotiate \
p5-LWP-MediaTypes>=6:www/p5-LWP-MediaTypes \
p5-Net-HTTP>=6.18:net/p5-Net-HTTP \
diff --git a/www/p5-libwww/distinfo b/www/p5-libwww/distinfo
index c48cee7f22e1..c248e520ceb1 100644
--- a/www/p5-libwww/distinfo
+++ b/www/p5-libwww/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1759324060
-SHA256 (libwww-perl-6.80.tar.gz) = 5ba3fc5a00836e61cb428bcd91bf69d8d74eaee6d78e44c3a414f78076af0a98
-SIZE (libwww-perl-6.80.tar.gz) = 184924
+TIMESTAMP = 1761446560
+SHA256 (libwww-perl-6.81.tar.gz) = ab30552f194e8b5ae3ac0885132fd1d4ea04c4c7fe6555765b98f01af70c1736
+SIZE (libwww-perl-6.81.tar.gz) = 187283
diff --git a/www/privatebin/Makefile b/www/privatebin/Makefile
index 5defd2f0e62c..2dedfc19254b 100644
--- a/www/privatebin/Makefile
+++ b/www/privatebin/Makefile
@@ -1,5 +1,5 @@
PORTNAME= privatebin
-PORTVERSION= 2.0.1
+PORTVERSION= 2.0.2
CATEGORIES= www security
MAINTAINER= dvl@FreeBSD.org
diff --git a/www/privatebin/distinfo b/www/privatebin/distinfo
index c4c1c635e0c4..e75d62fc027b 100644
--- a/www/privatebin/distinfo
+++ b/www/privatebin/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1760271734
-SHA256 (privatebin-PrivateBin-2.0.1_GH0.tar.gz) = 23c0272bd4fba982cdf2a008a43deb23b2efe7d54112ad592e6d12a1bf767b66
-SIZE (privatebin-PrivateBin-2.0.1_GH0.tar.gz) = 785982
+TIMESTAMP = 1761666922
+SHA256 (privatebin-PrivateBin-2.0.2_GH0.tar.gz) = 1aac50214ae526d3e91fcc9e31227b914fb5e0740f93b80c0c5fd7fdd22dbb13
+SIZE (privatebin-PrivateBin-2.0.2_GH0.tar.gz) = 786321
diff --git a/www/privatebin/pkg-plist b/www/privatebin/pkg-plist
index 56fa3ad63400..be8f13e8f066 100644
--- a/www/privatebin/pkg-plist
+++ b/www/privatebin/pkg-plist
@@ -109,7 +109,7 @@
%%WWWDIR%%/js/pastemeta.jsonld
%%WWWDIR%%/js/prettify.js
%%WWWDIR%%/js/privatebin.js
-%%WWWDIR%%/js/purify-3.2.7.js
+%%WWWDIR%%/js/purify-3.3.0.js
%%WWWDIR%%/js/showdown-2.1.0.js
%%WWWDIR%%/js/types.jsonld
%%WWWDIR%%/js/zlib-1.3.1-1.js
diff --git a/www/py-adblock/Makefile b/www/py-adblock/Makefile
index a9b34b4ac460..05de7dd0541d 100644
--- a/www/py-adblock/Makefile
+++ b/www/py-adblock/Makefile
@@ -1,6 +1,6 @@
PORTNAME= adblock
DISTVERSION= 0.6.0
-PORTREVISION= 41
+PORTREVISION= 42
CATEGORIES= www python
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
diff --git a/www/py-aiostream/Makefile b/www/py-aiostream/Makefile
index 66e33583f211..2cb50762bbc6 100644
--- a/www/py-aiostream/Makefile
+++ b/www/py-aiostream/Makefile
@@ -1,5 +1,5 @@
PORTNAME= aiostream
-PORTVERSION= 0.7.0
+PORTVERSION= 0.7.1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -16,7 +16,7 @@ BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools>=61:devel/py-setuptools@${PY_FL
${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR}
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}typing-extensions>=0:devel/py-typing-extensions@${PY_FLAVOR}
-USES= python:3.9+
+USES= python
USE_PYTHON= autoplist concurrent pep517
NO_ARCH= yes
diff --git a/www/py-aiostream/distinfo b/www/py-aiostream/distinfo
index 379dad3f3997..cdd967af5b1d 100644
--- a/www/py-aiostream/distinfo
+++ b/www/py-aiostream/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1750954250
-SHA256 (aiostream-0.7.0.tar.gz) = 5ab4acd44ef5f583b6488c32ade465f43c3d7b0df039f1ee49dfb1fd1e255e02
-SIZE (aiostream-0.7.0.tar.gz) = 68267
+TIMESTAMP = 1761446766
+SHA256 (aiostream-0.7.1.tar.gz) = 272aaa0d8f83beb906f5aa9022bb59046bb7a103fa3770f807c31f918595acf6
+SIZE (aiostream-0.7.1.tar.gz) = 44059
diff --git a/www/py-aiostream/files/patch-pyproject.toml b/www/py-aiostream/files/patch-pyproject.toml
index ba657f88242b..176de3c81a02 100644
--- a/www/py-aiostream/files/patch-pyproject.toml
+++ b/www/py-aiostream/files/patch-pyproject.toml
@@ -1,4 +1,4 @@
---- pyproject.toml.orig 2024-05-10 11:10:14 UTC
+--- pyproject.toml.orig 2025-10-13 20:01:35 UTC
+++ pyproject.toml
@@ -1,5 +1,5 @@
[build-system]
@@ -7,3 +7,12 @@
build-backend = "setuptools.build_meta"
[project]
+@@ -7,7 +7,7 @@ readme = {file = "README.rst", content-type = "text/x-
+ dynamic = ["version"]
+ description = "Generator-based operators for asynchronous iteration"
+ readme = {file = "README.rst", content-type = "text/x-rst"}
+-license = "GPL-3.0-or-later"
++license = {text = "GPL-3.0-or-later"}
+ requires-python = ">=3.9"
+ authors = [
+ { name = "Vincent Michel", email = "vxgmichel@gmail.com" },
diff --git a/www/py-azure-common/Makefile b/www/py-azure-common/Makefile
index 7d5ad0df8847..31f7748931d4 100644
--- a/www/py-azure-common/Makefile
+++ b/www/py-azure-common/Makefile
@@ -5,7 +5,7 @@ CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
-MAINTAINER= ports@FreeBSD.org
+MAINTAINER= sunpoet@FreeBSD.org
COMMENT= Microsoft Azure common code
WWW= https://pypi.org/project/azure-common/
diff --git a/www/py-bootstrap-flask/Makefile b/www/py-bootstrap-flask/Makefile
index b2d59822eca1..1de774b58c13 100644
--- a/www/py-bootstrap-flask/Makefile
+++ b/www/py-bootstrap-flask/Makefile
@@ -1,5 +1,5 @@
PORTNAME= Bootstrap-Flask
-DISTVERSION= 2.4.1
+DISTVERSION= 2.5.0
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -15,6 +15,7 @@ LICENSE_FILE= ${WRKSRC}/LICENSE
BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools>=0:devel/py-setuptools@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR}
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}flask>=0:www/py-flask@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}markupsafe>0:textproc/py-markupsafe@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}wtforms>0:textproc/py-wtforms@${PY_FLAVOR}
USES= python
diff --git a/www/py-bootstrap-flask/distinfo b/www/py-bootstrap-flask/distinfo
index 6a405de71123..331d312133ec 100644
--- a/www/py-bootstrap-flask/distinfo
+++ b/www/py-bootstrap-flask/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1728255299
-SHA256 (bootstrap_flask-2.4.1.tar.gz) = cc25c59495f150550ea41d0e8079689de4250fe45445e158abdc111f8fe883e2
-SIZE (bootstrap_flask-2.4.1.tar.gz) = 3841144
+TIMESTAMP = 1761305824
+SHA256 (bootstrap_flask-2.5.0.tar.gz) = b6e5ea1ce40616fb289c9e85d4beedd43fea2048b4032f4abc83a582db494978
+SIZE (bootstrap_flask-2.5.0.tar.gz) = 4534974
diff --git a/www/py-boto3/Makefile b/www/py-boto3/Makefile
index ab4e13a8152d..d2a1e3ec6711 100644
--- a/www/py-boto3/Makefile
+++ b/www/py-boto3/Makefile
@@ -1,5 +1,5 @@
PORTNAME= boto3
-PORTVERSION= 1.40.50
+PORTVERSION= 1.40.59
CATEGORIES= www python devel
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
diff --git a/www/py-boto3/distinfo b/www/py-boto3/distinfo
index 9569890ecef3..a5fb58f81fd6 100644
--- a/www/py-boto3/distinfo
+++ b/www/py-boto3/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1759774731
-SHA256 (boto3-1.40.50.tar.gz) = ae34363e8f34a49ab130d10c507a611926c1101d5d14d70be5598ca308e13266
-SIZE (boto3-1.40.50.tar.gz) = 111605
+TIMESTAMP = 1761446768
+SHA256 (boto3-1.40.59.tar.gz) = b1a5a203511e594872b39a129365f02eb5846eea990629e8daf47a3c01e7fd49
+SIZE (boto3-1.40.59.tar.gz) = 111577
diff --git a/www/py-calibreweb/Makefile b/www/py-calibreweb/Makefile
index 95f17bffc366..74616cdf836b 100644
--- a/www/py-calibreweb/Makefile
+++ b/www/py-calibreweb/Makefile
@@ -1,6 +1,6 @@
PORTNAME= calibreweb
PORTVERSION= 0.6.25
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -21,7 +21,7 @@ RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}APScheduler>=0:devel/py-apscheduler@${PY_FLA
${PYTHON_PKGNAMEPREFIX}flask-babel>=0:devel/py-flask-babel@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}Flask-HTTPAuth>=0:security/py-flask-httpauth@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}Flask-Principal>=0:www/py-flask-principal@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}flask_limiter>=0:www/py-flask-limiter@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}Flask_Limiter3<3.13:www/py-flask-limiter3@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}flask_wtf>=0:www/py-flask-wtf@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}iso-639>=0:textproc/py-iso-639@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}lxml>=0:devel/py-lxml@${PY_FLAVOR} \
diff --git a/www/py-dj51-django-choices-field/Makefile b/www/py-dj51-django-choices-field/Makefile
index b39eebdb8959..858470d66257 100644
--- a/www/py-dj51-django-choices-field/Makefile
+++ b/www/py-dj51-django-choices-field/Makefile
@@ -1,5 +1,5 @@
PORTNAME= django-choices-field
-DISTVERSION= 3.1.0
+DISTVERSION= 3.1.1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}dj51-
diff --git a/www/py-dj51-django-choices-field/distinfo b/www/py-dj51-django-choices-field/distinfo
index 2d6e07e8b764..6a85e361fbc5 100644
--- a/www/py-dj51-django-choices-field/distinfo
+++ b/www/py-dj51-django-choices-field/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1759571941
-SHA256 (django_choices_field-3.1.0.tar.gz) = 865c81f3e494771f98fdc6bae3f1b5537212d08a26a3da9ecc8113010e73c8e7
-SIZE (django_choices_field-3.1.0.tar.gz) = 5738
+TIMESTAMP = 1761382052
+SHA256 (django_choices_field-3.1.1.tar.gz) = 93d851766ebcd87095d19e56f78164c1015935bfb8fce4f3be27ef689c10efc5
+SIZE (django_choices_field-3.1.1.tar.gz) = 5938
diff --git a/www/py-dj51-django-cors-headers/Makefile b/www/py-dj51-django-cors-headers/Makefile
index 67bc512cb892..923782a90719 100644
--- a/www/py-dj51-django-cors-headers/Makefile
+++ b/www/py-dj51-django-cors-headers/Makefile
@@ -1,5 +1,5 @@
PORTNAME= django-cors-headers
-PORTVERSION= 4.7.0
+PORTVERSION= 4.9.0
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}dj51-
diff --git a/www/py-dj51-django-cors-headers/distinfo b/www/py-dj51-django-cors-headers/distinfo
index ea513ae6604c..12c0cabe9960 100644
--- a/www/py-dj51-django-cors-headers/distinfo
+++ b/www/py-dj51-django-cors-headers/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1739187247
-SHA256 (django_cors_headers-4.7.0.tar.gz) = 6fdf31bf9c6d6448ba09ef57157db2268d515d94fc5c89a0a1028e1fc03ee52b
-SIZE (django_cors_headers-4.7.0.tar.gz) = 21037
+TIMESTAMP = 1759317248
+SHA256 (django_cors_headers-4.9.0.tar.gz) = fe5d7cb59fdc2c8c646ce84b727ac2bca8912a247e6e68e1fb507372178e59e8
+SIZE (django_cors_headers-4.9.0.tar.gz) = 21458
diff --git a/www/py-dj51-django-cors-headers/files/patch-pyproject.toml b/www/py-dj51-django-cors-headers/files/patch-pyproject.toml
new file mode 100644
index 000000000000..b7e07d6bac3c
--- /dev/null
+++ b/www/py-dj51-django-cors-headers/files/patch-pyproject.toml
@@ -0,0 +1,24 @@
+* Relax version requirements of py-setuptools and enable build for
+ older versions of it
+
+--- pyproject.toml.orig 2025-09-18 12:15:44 UTC
++++ pyproject.toml
+@@ -1,7 +1,7 @@ requires = [
+ [build-system]
+ build-backend = "setuptools.build_meta"
+ requires = [
+- "setuptools>=77",
++ "setuptools",
+ ]
+
+ [project]
+@@ -16,8 +16,7 @@ keywords = [
+ "middleware",
+ "rest",
+ ]
+-license = "MIT"
+-license-files = [ "LICENSE" ]
++license = { text="MIT" }
+ maintainers = [
+ { name = "Adam Johnson", email = "me@adamj.eu" },
+ ]
diff --git a/www/py-dj51-django-filter/Makefile b/www/py-dj51-django-filter/Makefile
index 1319263f1f1d..8438c0bbad0b 100644
--- a/www/py-dj51-django-filter/Makefile
+++ b/www/py-dj51-django-filter/Makefile
@@ -25,4 +25,7 @@ CONFLICTS_INSTALL= ${PYTHON_PKGNAMEPREFIX}*${PORTNAME}
NO_ARCH= yes
+# Release 25.2 dropped support for Django < 5.2
+PORTSCOUT= ignore:1
+
.include <bsd.port.mk>
diff --git a/www/py-dj51-django-htmx/Makefile b/www/py-dj51-django-htmx/Makefile
index 5ac3d9006eb9..38ea31e064f9 100644
--- a/www/py-dj51-django-htmx/Makefile
+++ b/www/py-dj51-django-htmx/Makefile
@@ -1,5 +1,5 @@
PORTNAME= django-htmx
-DISTVERSION= 1.23.2
+DISTVERSION= 1.26.0
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}dj51-
diff --git a/www/py-dj51-django-htmx/distinfo b/www/py-dj51-django-htmx/distinfo
index a7bbc8609725..05980aa9033f 100644
--- a/www/py-dj51-django-htmx/distinfo
+++ b/www/py-dj51-django-htmx/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1751179083
-SHA256 (django_htmx-1.23.2.tar.gz) = 65a8c8825fcae983b94aedce26af96a70717ab185d55cdb8a7a4bb68863ab079
-SIZE (django_htmx-1.23.2.tar.gz) = 64415
+TIMESTAMP = 1759317357
+SHA256 (django_htmx-1.26.0.tar.gz) = 88ecc2f8a3f13ad5a50e6b16be127f04fba369124cc40a09b21ce33babb04aa6
+SIZE (django_htmx-1.26.0.tar.gz) = 65345
diff --git a/www/py-dj51-django-rich/Makefile b/www/py-dj51-django-rich/Makefile
index 20fb22b464f4..d71dfb6ba7c7 100644
--- a/www/py-dj51-django-rich/Makefile
+++ b/www/py-dj51-django-rich/Makefile
@@ -1,5 +1,5 @@
PORTNAME= django-rich
-DISTVERSION= 2.0.0
+DISTVERSION= 2.2.0
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}dj51-
diff --git a/www/py-dj51-django-rich/distinfo b/www/py-dj51-django-rich/distinfo
index ff93b43f1403..f0159f8997fe 100644
--- a/www/py-dj51-django-rich/distinfo
+++ b/www/py-dj51-django-rich/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1747327116
-SHA256 (django_rich-2.0.0.tar.gz) = 3646edf7223f05b9775ec9a38ab5a33be93042fc3de3d5e31eacf84da6091913
-SIZE (django_rich-2.0.0.tar.gz) = 61448
+TIMESTAMP = 1759317430
+SHA256 (django_rich-2.2.0.tar.gz) = ecec7842d040024ed8a225699388535e46b87277550c33f46193b52cece2f780
+SIZE (django_rich-2.2.0.tar.gz) = 62427
diff --git a/www/py-dj51-django-rich/files/patch-pyproject.toml b/www/py-dj51-django-rich/files/patch-pyproject.toml
new file mode 100644
index 000000000000..461d3be58401
--- /dev/null
+++ b/www/py-dj51-django-rich/files/patch-pyproject.toml
@@ -0,0 +1,24 @@
+* Relax version requirements of py-setuptools and enable build for
+ older versions of it
+
+--- pyproject.toml.orig 2025-09-18 12:19:48 UTC
++++ pyproject.toml
+@@ -1,7 +1,7 @@ requires = [
+ [build-system]
+ build-backend = "setuptools.build_meta"
+ requires = [
+- "setuptools>=77",
++ "setuptools",
+ ]
+
+ [project]
+@@ -12,8 +12,7 @@ keywords = [
+ keywords = [
+ "Django",
+ ]
+-license = "MIT"
+-license-files = [ "LICENSE" ]
++license = { text="MIT" }
+ authors = [
+ { name = "Adam Johnson", email = "me@adamj.eu" },
+ ]
diff --git a/www/py-dj51-drf-spectacular-sidecar/Makefile b/www/py-dj51-drf-spectacular-sidecar/Makefile
index 7626895d2e23..1009c6a1cc6f 100644
--- a/www/py-dj51-drf-spectacular-sidecar/Makefile
+++ b/www/py-dj51-drf-spectacular-sidecar/Makefile
@@ -1,5 +1,5 @@
PORTNAME= drf-spectacular-sidecar
-DISTVERSION= 2025.8.1
+DISTVERSION= 2025.10.1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}dj51-
diff --git a/www/py-dj51-drf-spectacular-sidecar/distinfo b/www/py-dj51-drf-spectacular-sidecar/distinfo
index 624d528d29c8..38e671306354 100644
--- a/www/py-dj51-drf-spectacular-sidecar/distinfo
+++ b/www/py-dj51-drf-spectacular-sidecar/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1755334079
-SHA256 (drf_spectacular_sidecar-2025.8.1.tar.gz) = 1944ae0eb5136cff5aa135211bec31084cef1af03a04de9b7f2f912b3c59c251
-SIZE (drf_spectacular_sidecar-2025.8.1.tar.gz) = 2407787
+TIMESTAMP = 1761216097
+SHA256 (drf_spectacular_sidecar-2025.10.1.tar.gz) = 506a5a21ce1ad7211c28acb4e2112e213f6dc095a2052ee6ed6db1ffe8eb5a7b
+SIZE (drf_spectacular_sidecar-2025.10.1.tar.gz) = 2420998
diff --git a/www/py-dj51-strawberry-graphql-django/Makefile b/www/py-dj51-strawberry-graphql-django/Makefile
index 848ca0fea326..c048b061c02b 100644
--- a/www/py-dj51-strawberry-graphql-django/Makefile
+++ b/www/py-dj51-strawberry-graphql-django/Makefile
@@ -1,5 +1,5 @@
PORTNAME= strawberry-graphql-django
-DISTVERSION= 0.65.1
+DISTVERSION= 0.66.2
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}dj51-
@@ -19,7 +19,7 @@ BUILD_DEPENDS= ${PY_SETUPTOOLS} \
${PYTHON_PKGNAMEPREFIX}poetry-core>=1.0.0:devel/py-poetry-core@${PY_FLAVOR}
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django51>=4.2:www/py-django51@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}asgiref>=3.8:www/py-asgiref@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}dj51-strawberry-graphql>=0.276.2:devel/py-dj51-strawberry-graphql@${PY_FLAVOR}
+ ${PYTHON_PKGNAMEPREFIX}dj51-strawberry-graphql>=0.283.3:devel/py-dj51-strawberry-graphql@${PY_FLAVOR}
USES= python:3.10+
USE_PYTHON= autoplist pep517
@@ -34,7 +34,7 @@ OPTIONS_DEFAULT= DEBUG-TOOLBAR ENUM
DEBUG-TOOLBAR_DESC= Debug support
ENUM_DESC= Integration for Django's TextChoices/IntegerChoices enumerations
-DEBUG-TOOLBAR_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}dj51-django-debug-toolbar>=3.4:www/py-dj51-django-debug-toolbar@${PY_FLAVOR}
+DEBUG-TOOLBAR_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}dj51-django-debug-toolbar>=6.0.0:www/py-dj51-django-debug-toolbar@${PY_FLAVOR}
ENUM_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}dj51-django-choices-field>=2.2.2:www/py-dj51-django-choices-field@${PY_FLAVOR}
.include <bsd.port.mk>
diff --git a/www/py-dj51-strawberry-graphql-django/distinfo b/www/py-dj51-strawberry-graphql-django/distinfo
index 8361a3c27c9e..ff51bd679583 100644
--- a/www/py-dj51-strawberry-graphql-django/distinfo
+++ b/www/py-dj51-strawberry-graphql-django/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1753852395
-SHA256 (strawberry_graphql_django-0.65.1.tar.gz) = de312b77d83ab475b875f76f44161e8c5d9d284f349df61cebc83b4362b57a17
-SIZE (strawberry_graphql_django-0.65.1.tar.gz) = 86593
+TIMESTAMP = 1760606147
+SHA256 (strawberry_graphql_django-0.66.2.tar.gz) = 97f92d706a3532963cf681c725e6014f957dc8b1daeab45a5b67dd68690fbe2c
+SIZE (strawberry_graphql_django-0.66.2.tar.gz) = 85368
diff --git a/www/py-dj52-django-choices-field/Makefile b/www/py-dj52-django-choices-field/Makefile
index 2370ef4d356b..9427adda97f6 100644
--- a/www/py-dj52-django-choices-field/Makefile
+++ b/www/py-dj52-django-choices-field/Makefile
@@ -1,5 +1,5 @@
PORTNAME= django-choices-field
-DISTVERSION= 3.1.0
+DISTVERSION= 3.1.1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}dj52-
diff --git a/www/py-dj52-django-choices-field/distinfo b/www/py-dj52-django-choices-field/distinfo
index 2d6e07e8b764..6a85e361fbc5 100644
--- a/www/py-dj52-django-choices-field/distinfo
+++ b/www/py-dj52-django-choices-field/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1759571941
-SHA256 (django_choices_field-3.1.0.tar.gz) = 865c81f3e494771f98fdc6bae3f1b5537212d08a26a3da9ecc8113010e73c8e7
-SIZE (django_choices_field-3.1.0.tar.gz) = 5738
+TIMESTAMP = 1761382052
+SHA256 (django_choices_field-3.1.1.tar.gz) = 93d851766ebcd87095d19e56f78164c1015935bfb8fce4f3be27ef689c10efc5
+SIZE (django_choices_field-3.1.1.tar.gz) = 5938
diff --git a/www/py-django-allauth/Makefile b/www/py-django-allauth/Makefile
index e55813b863c8..628603ac8979 100644
--- a/www/py-django-allauth/Makefile
+++ b/www/py-django-allauth/Makefile
@@ -1,5 +1,5 @@
PORTNAME= django-allauth
-PORTVERSION= 65.12.0
+PORTVERSION= 65.12.1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
diff --git a/www/py-django-allauth/distinfo b/www/py-django-allauth/distinfo
index 3b9cee851aed..efa90b70f281 100644
--- a/www/py-django-allauth/distinfo
+++ b/www/py-django-allauth/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1759774735
-SHA256 (django_allauth-65.12.0.tar.gz) = a76ec55935354a1455753601a0a814a4ded368242e8969323480a2810b349183
-SIZE (django_allauth-65.12.0.tar.gz) = 1967199
+TIMESTAMP = 1761446770
+SHA256 (django_allauth-65.12.1.tar.gz) = 662666ff2d5c71766f66b1629ac7345c30796813221184e13e11ed7460940c6a
+SIZE (django_allauth-65.12.1.tar.gz) = 1967971
diff --git a/www/py-django-choices-field/Makefile b/www/py-django-choices-field/Makefile
index a7584dfaa8b7..791722ba8997 100644
--- a/www/py-django-choices-field/Makefile
+++ b/www/py-django-choices-field/Makefile
@@ -1,5 +1,5 @@
PORTNAME= django-choices-field
-DISTVERSION= 3.1.0
+DISTVERSION= 3.1.1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
diff --git a/www/py-django-choices-field/distinfo b/www/py-django-choices-field/distinfo
index 2d6e07e8b764..6a85e361fbc5 100644
--- a/www/py-django-choices-field/distinfo
+++ b/www/py-django-choices-field/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1759571941
-SHA256 (django_choices_field-3.1.0.tar.gz) = 865c81f3e494771f98fdc6bae3f1b5537212d08a26a3da9ecc8113010e73c8e7
-SIZE (django_choices_field-3.1.0.tar.gz) = 5738
+TIMESTAMP = 1761382052
+SHA256 (django_choices_field-3.1.1.tar.gz) = 93d851766ebcd87095d19e56f78164c1015935bfb8fce4f3be27ef689c10efc5
+SIZE (django_choices_field-3.1.1.tar.gz) = 5938
diff --git a/www/py-django-cors-headers/Makefile b/www/py-django-cors-headers/Makefile
index 6483a16bf9c4..2ea1f7c1ad4f 100644
--- a/www/py-django-cors-headers/Makefile
+++ b/www/py-django-cors-headers/Makefile
@@ -1,9 +1,9 @@
PORTNAME= django-cors-headers
-PORTVERSION= 4.7.0
+DISTVERSION= 4.9.0
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
-DISTNAME= django_cors_headers-${PORTVERSION}
+DISTNAME= django_cors_headers-${DISTVERSION}
MAINTAINER= kai@FreeBSD.org
COMMENT= Handles server headers required for Cross-Origin Resource Sharing
diff --git a/www/py-django-cors-headers/distinfo b/www/py-django-cors-headers/distinfo
index ea513ae6604c..12c0cabe9960 100644
--- a/www/py-django-cors-headers/distinfo
+++ b/www/py-django-cors-headers/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1739187247
-SHA256 (django_cors_headers-4.7.0.tar.gz) = 6fdf31bf9c6d6448ba09ef57157db2268d515d94fc5c89a0a1028e1fc03ee52b
-SIZE (django_cors_headers-4.7.0.tar.gz) = 21037
+TIMESTAMP = 1759317248
+SHA256 (django_cors_headers-4.9.0.tar.gz) = fe5d7cb59fdc2c8c646ce84b727ac2bca8912a247e6e68e1fb507372178e59e8
+SIZE (django_cors_headers-4.9.0.tar.gz) = 21458
diff --git a/www/py-django-cors-headers/files/patch-pyproject.toml b/www/py-django-cors-headers/files/patch-pyproject.toml
new file mode 100644
index 000000000000..b7e07d6bac3c
--- /dev/null
+++ b/www/py-django-cors-headers/files/patch-pyproject.toml
@@ -0,0 +1,24 @@
+* Relax version requirements of py-setuptools and enable build for
+ older versions of it
+
+--- pyproject.toml.orig 2025-09-18 12:15:44 UTC
++++ pyproject.toml
+@@ -1,7 +1,7 @@ requires = [
+ [build-system]
+ build-backend = "setuptools.build_meta"
+ requires = [
+- "setuptools>=77",
++ "setuptools",
+ ]
+
+ [project]
+@@ -16,8 +16,7 @@ keywords = [
+ "middleware",
+ "rest",
+ ]
+-license = "MIT"
+-license-files = [ "LICENSE" ]
++license = { text="MIT" }
+ maintainers = [
+ { name = "Adam Johnson", email = "me@adamj.eu" },
+ ]
diff --git a/www/py-django-filter/Makefile b/www/py-django-filter/Makefile
index 92ba55548674..e94395463af1 100644
--- a/www/py-django-filter/Makefile
+++ b/www/py-django-filter/Makefile
@@ -22,4 +22,6 @@ CONFLICTS_INSTALL= ${PYTHON_PKGNAMEPREFIX}*${PORTNAME}
NO_ARCH= yes
+PORTSCOUT= ignore:1
+
.include <bsd.port.mk>
diff --git a/www/py-django-htmx/Makefile b/www/py-django-htmx/Makefile
index fa402aa82020..d6228462edb3 100644
--- a/www/py-django-htmx/Makefile
+++ b/www/py-django-htmx/Makefile
@@ -1,5 +1,5 @@
PORTNAME= django-htmx
-DISTVERSION= 1.23.2
+DISTVERSION= 1.26.0
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -17,7 +17,7 @@ BUILD_DEPENDS= ${PY_SETUPTOOLS} \
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django42>=4.2:www/py-django42@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}asgiref>=3.6:www/py-asgiref@${PY_FLAVOR}
-USES= python:3.9+
+USES= python
USE_PYTHON= autoplist pep517
CONFLICTS_INSTALL= ${PYTHON_PKGNAMEPREFIX}*${PORTNAME}
diff --git a/www/py-django-htmx/distinfo b/www/py-django-htmx/distinfo
index a7bbc8609725..05980aa9033f 100644
--- a/www/py-django-htmx/distinfo
+++ b/www/py-django-htmx/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1751179083
-SHA256 (django_htmx-1.23.2.tar.gz) = 65a8c8825fcae983b94aedce26af96a70717ab185d55cdb8a7a4bb68863ab079
-SIZE (django_htmx-1.23.2.tar.gz) = 64415
+TIMESTAMP = 1759317357
+SHA256 (django_htmx-1.26.0.tar.gz) = 88ecc2f8a3f13ad5a50e6b16be127f04fba369124cc40a09b21ce33babb04aa6
+SIZE (django_htmx-1.26.0.tar.gz) = 65345
diff --git a/www/py-django-otp/Makefile b/www/py-django-otp/Makefile
index 03eae5dc9b18..157d3fc4ac3e 100644
--- a/www/py-django-otp/Makefile
+++ b/www/py-django-otp/Makefile
@@ -1,5 +1,5 @@
PORTNAME= django-otp
-PORTVERSION= 1.6.1
+PORTVERSION= 1.6.2
CATEGORIES= www python
MASTER_SITES= PYPI
DISTNAME= django_otp-${PORTVERSION}
diff --git a/www/py-django-otp/distinfo b/www/py-django-otp/distinfo
index fd22f0819003..e3b855a3c32c 100644
--- a/www/py-django-otp/distinfo
+++ b/www/py-django-otp/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1752266174
-SHA256 (django_otp-1.6.1.tar.gz) = 68dafa008921fd418382492d81b717636d8cc1364e24e8f9222b72264adf3c5d
-SIZE (django_otp-1.6.1.tar.gz) = 74134
+TIMESTAMP = 1761446772
+SHA256 (django_otp-1.6.2.tar.gz) = 885d7ea02b23150650130bf1ba697a20d31aca740f234dbc8f8104e517fd5744
+SIZE (django_otp-1.6.2.tar.gz) = 74228
diff --git a/www/py-django-rich/Makefile b/www/py-django-rich/Makefile
index 26ce48c28111..fae0ffca8de8 100644
--- a/www/py-django-rich/Makefile
+++ b/www/py-django-rich/Makefile
@@ -1,5 +1,5 @@
PORTNAME= django-rich
-DISTVERSION= 2.0.0
+DISTVERSION= 2.2.0
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
diff --git a/www/py-django-rich/distinfo b/www/py-django-rich/distinfo
index ff93b43f1403..f0159f8997fe 100644
--- a/www/py-django-rich/distinfo
+++ b/www/py-django-rich/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1747327116
-SHA256 (django_rich-2.0.0.tar.gz) = 3646edf7223f05b9775ec9a38ab5a33be93042fc3de3d5e31eacf84da6091913
-SIZE (django_rich-2.0.0.tar.gz) = 61448
+TIMESTAMP = 1759317430
+SHA256 (django_rich-2.2.0.tar.gz) = ecec7842d040024ed8a225699388535e46b87277550c33f46193b52cece2f780
+SIZE (django_rich-2.2.0.tar.gz) = 62427
diff --git a/www/py-django-rich/files/patch-pyproject.toml b/www/py-django-rich/files/patch-pyproject.toml
new file mode 100644
index 000000000000..461d3be58401
--- /dev/null
+++ b/www/py-django-rich/files/patch-pyproject.toml
@@ -0,0 +1,24 @@
+* Relax version requirements of py-setuptools and enable build for
+ older versions of it
+
+--- pyproject.toml.orig 2025-09-18 12:19:48 UTC
++++ pyproject.toml
+@@ -1,7 +1,7 @@ requires = [
+ [build-system]
+ build-backend = "setuptools.build_meta"
+ requires = [
+- "setuptools>=77",
++ "setuptools",
+ ]
+
+ [project]
+@@ -12,8 +12,7 @@ keywords = [
+ keywords = [
+ "Django",
+ ]
+-license = "MIT"
+-license-files = [ "LICENSE" ]
++license = { text="MIT" }
+ authors = [
+ { name = "Adam Johnson", email = "me@adamj.eu" },
+ ]
diff --git a/www/py-django-tasks/Makefile b/www/py-django-tasks/Makefile
index 02b319e56a2d..c5015900717b 100644
--- a/www/py-django-tasks/Makefile
+++ b/www/py-django-tasks/Makefile
@@ -1,5 +1,5 @@
PORTNAME= django-tasks
-PORTVERSION= 0.8.1
+PORTVERSION= 0.9.0
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -18,7 +18,7 @@ RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django-stubs-ext>=0:www/py-django-stubs-ext@
${PYTHON_PKGNAMEPREFIX}django42>=4.2:www/py-django42@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}typing-extensions>=0:devel/py-typing-extensions@${PY_FLAVOR}
-USES= python
+USES= python:3.10+
USE_PYTHON= autoplist concurrent pep517
NO_ARCH= yes
@@ -30,6 +30,7 @@ RQ_DESC= RQ (Redis Queue) support
MYSQL_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}mysqlclient>=0:databases/py-mysqlclient@${PY_FLAVOR}
POSTGRES_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}psycopg>=0:databases/py-psycopg@${PY_FLAVOR}
RQ_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django-rq>=0:devel/py-django-rq@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}rq>=2.5:devel/py-rq@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}rq-scheduler>=0:devel/py-rq-scheduler@${PY_FLAVOR}
.include <bsd.port.mk>
diff --git a/www/py-django-tasks/distinfo b/www/py-django-tasks/distinfo
index c34abad51956..a96690e752a3 100644
--- a/www/py-django-tasks/distinfo
+++ b/www/py-django-tasks/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1752266176
-SHA256 (django_tasks-0.8.1.tar.gz) = 32673a9f56108ac1ea4664dc62580e5fc3536dd40858b38fd3b6a099913244b7
-SIZE (django_tasks-0.8.1.tar.gz) = 31407
+TIMESTAMP = 1761446774
+SHA256 (django_tasks-0.9.0.tar.gz) = 971b3829efeee68147f7deced8d21b907131b11ec7953af83eb94b11f128a24d
+SIZE (django_tasks-0.9.0.tar.gz) = 32343
diff --git a/www/py-django-tinymce/Makefile b/www/py-django-tinymce/Makefile
index bc62f5f3ad1d..7dbf335c1842 100644
--- a/www/py-django-tinymce/Makefile
+++ b/www/py-django-tinymce/Makefile
@@ -1,9 +1,9 @@
PORTNAME= django-tinymce
-PORTVERSION= 4.1.0
+DISTVERSION= 5.0.0
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
-DISTNAME= django_tinymce-${PORTVERSION}
+DISTNAME= django_tinymce-${DISTVERSION}
MAINTAINER= kai@FreeBSD.org
COMMENT= Django application to use TinyMCE editor
@@ -14,7 +14,7 @@ LICENSE_FILE= ${WRKSRC}/LICENSE.txt
BUILD_DEPENDS= ${PY_SETUPTOOLS} \
${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR}
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django42>=3.2:www/py-django42@${PY_FLAVOR}
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django42>=4.2:www/py-django42@${PY_FLAVOR}
USES= python
USE_PYTHON= autoplist concurrent pep517
diff --git a/www/py-django-tinymce/distinfo b/www/py-django-tinymce/distinfo
index 0829626f374d..f269c0fdad23 100644
--- a/www/py-django-tinymce/distinfo
+++ b/www/py-django-tinymce/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1721480786
-SHA256 (django_tinymce-4.1.0.tar.gz) = 02e3b70e940fd299f0fbef4315aee5c185664e1eb8cd396b176963954e4357c9
-SIZE (django_tinymce-4.1.0.tar.gz) = 1087250
+TIMESTAMP = 1761381934
+SHA256 (django_tinymce-5.0.0.tar.gz) = 6257669ed596accf5fa967ff3061276b2c5352baac1bbc658fcd8252b12ca38a
+SIZE (django_tinymce-5.0.0.tar.gz) = 1161002
diff --git a/www/py-django-tinymce/files/patch-pyproject.toml b/www/py-django-tinymce/files/patch-pyproject.toml
new file mode 100644
index 000000000000..2abbfecb6f99
--- /dev/null
+++ b/www/py-django-tinymce/files/patch-pyproject.toml
@@ -0,0 +1,17 @@
+* Enable build for older versions of py-setuptools
+
+--- pyproject.toml.orig 2025-10-25 09:36:33 UTC
++++ pyproject.toml
+@@ -16,11 +16,7 @@ maintainers = [
+ {name = "Rémy Hubscher", email = "hubscher.remy@gmail.com"},
+ {name = "Claude Paroz", email = "claude@2xlibre.net"},
+ ]
+-license = "MIT AND GPL-2.0-or-later"
+-license-files = [
+- "LICENSE.txt",
+- "tinymce/static/tinymce/license.md",
+-]
++license = { text = "MIT License" }
+ requires-python = ">=3.9"
+ dependencies = [
+ "django>=4.2",
diff --git a/www/py-django-unfold/Makefile b/www/py-django-unfold/Makefile
index 65b9c6e3748c..ccb75dd22d1a 100644
--- a/www/py-django-unfold/Makefile
+++ b/www/py-django-unfold/Makefile
@@ -1,5 +1,5 @@
PORTNAME= django-unfold
-PORTVERSION= 0.67.0
+PORTVERSION= 0.68.0
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -16,7 +16,7 @@ LICENSE_FILE= ${WRKSRC}/LICENSE.md
BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}poetry-core>=1.0.0:devel/py-poetry-core@${PY_FLAVOR}
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django42>=4.2:www/py-django42@${PY_FLAVOR}
-USES= python
+USES= python:3.10+
USE_PYTHON= autoplist concurrent pep517
NO_ARCH= yes
diff --git a/www/py-django-unfold/distinfo b/www/py-django-unfold/distinfo
index be7f94902382..808dd9a9ec47 100644
--- a/www/py-django-unfold/distinfo
+++ b/www/py-django-unfold/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1759774739
-SHA256 (django_unfold-0.67.0.tar.gz) = 94a918a2108b62419f6b8dcaef8351af13e75111b7139125f36985fabe68547a
-SIZE (django_unfold-0.67.0.tar.gz) = 1078405
+TIMESTAMP = 1761446776
+SHA256 (django_unfold-0.68.0.tar.gz) = 2a7bb063feb031a5bfc7c2e6570f9dc44ed90a7eb49ccea8eb10f261f4e37fb0
+SIZE (django_unfold-0.68.0.tar.gz) = 1080554
diff --git a/www/py-drf-spectacular-sidecar/Makefile b/www/py-drf-spectacular-sidecar/Makefile
index 2670d81d7730..212d8c64f6ca 100644
--- a/www/py-drf-spectacular-sidecar/Makefile
+++ b/www/py-drf-spectacular-sidecar/Makefile
@@ -1,5 +1,5 @@
PORTNAME= drf-spectacular-sidecar
-DISTVERSION= 2025.8.1
+DISTVERSION= 2025.10.1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
diff --git a/www/py-drf-spectacular-sidecar/distinfo b/www/py-drf-spectacular-sidecar/distinfo
index 624d528d29c8..38e671306354 100644
--- a/www/py-drf-spectacular-sidecar/distinfo
+++ b/www/py-drf-spectacular-sidecar/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1755334079
-SHA256 (drf_spectacular_sidecar-2025.8.1.tar.gz) = 1944ae0eb5136cff5aa135211bec31084cef1af03a04de9b7f2f912b3c59c251
-SIZE (drf_spectacular_sidecar-2025.8.1.tar.gz) = 2407787
+TIMESTAMP = 1761216097
+SHA256 (drf_spectacular_sidecar-2025.10.1.tar.gz) = 506a5a21ce1ad7211c28acb4e2112e213f6dc095a2052ee6ed6db1ffe8eb5a7b
+SIZE (drf_spectacular_sidecar-2025.10.1.tar.gz) = 2420998
diff --git a/www/py-drf-yasg/Makefile b/www/py-drf-yasg/Makefile
index 0e363bb41d6a..8a6187dcfcd7 100644
--- a/www/py-drf-yasg/Makefile
+++ b/www/py-drf-yasg/Makefile
@@ -1,9 +1,9 @@
PORTNAME= drf-yasg
-DISTVERSION= 1.21.10
-PORTREVISION= 1
+DISTVERSION= 1.21.11
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
+DISTNAME= drf_yasg-${DISTVERSION}
MAINTAINER= kai@FreeBSD.org
COMMENT= Yet Another Swagger Generator
@@ -13,10 +13,10 @@ LICENSE= BSD3CLAUSE
LICENSE_FILE= ${WRKSRC}/LICENSE.rst
BUILD_DEPENDS= ${PY_SETUPTOOLS} \
- ${PYTHON_PKGNAMEPREFIX}setuptools-scm>=3.0.6:devel/py-setuptools-scm@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}setuptools-scm>=7.0:devel/py-setuptools-scm@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}wheel>0:devel/py-wheel@${PY_FLAVOR}
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django42>=2.2.16:www/py-django42@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}djangorestframework>=3.10.3:www/py-djangorestframework@${PY_FLAVOR} \
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django42>=4.0:www/py-django42@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}djangorestframework>=3.13.0:www/py-djangorestframework@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}inflection>=0.3.1:devel/py-inflection@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}pytz>=2021.1:devel/py-pytz@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}uritemplate>=3.0.0:net/py-uritemplate@${PY_FLAVOR} \
diff --git a/www/py-drf-yasg/distinfo b/www/py-drf-yasg/distinfo
index 0befe53f7380..05c4cd4b672e 100644
--- a/www/py-drf-yasg/distinfo
+++ b/www/py-drf-yasg/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1743677357
-SHA256 (drf-yasg-1.21.10.tar.gz) = f86d50faee3c31fcec4545985a871f832366c7fb5b77b62c48089d56ecf4f8d4
-SIZE (drf-yasg-1.21.10.tar.gz) = 4596566
+TIMESTAMP = 1761586881
+SHA256 (drf_yasg-1.21.11.tar.gz) = 0190b3de884aa593a39c75e6daba2ae69f285f0691de1eb0e3f4c6307faa1817
+SIZE (drf_yasg-1.21.11.tar.gz) = 4599786
diff --git a/www/py-drf-yasg/files/patch-pyproject.toml b/www/py-drf-yasg/files/patch-pyproject.toml
index c60b2ad1b63d..19f4d497a4cc 100644
--- a/www/py-drf-yasg/files/patch-pyproject.toml
+++ b/www/py-drf-yasg/files/patch-pyproject.toml
@@ -1,9 +1,21 @@
-Relax version requirements for py-setuptools.
+Relax version requirements and enable build for older versions of py-setuptools.
---- pyproject.toml.orig 2025-06-23 15:36:27 UTC
+--- pyproject.toml.orig 2025-09-26 22:17:55 UTC
+++ pyproject.toml
-@@ -1,3 +1,3 @@
+@@ -1,5 +1,5 @@
[build-system]
--requires = ["setuptools >= 68.0.0", "wheel", "setuptools-scm >= 3.0.3"]
-+requires = ["setuptools", "wheel", "setuptools-scm >= 3.0.3"]
+-requires = ["setuptools >= 77.0.3", "setuptools-scm ~= 7.0"]
++requires = ["setuptools", "setuptools-scm"]
build-backend = "setuptools.build_meta"
+
+ [project]
+@@ -9,8 +9,7 @@ dynamic = ["version"]
+ requires-python = ">= 3.9"
+ dynamic = ["version"]
+
+-license = "BSD-3-Clause"
+-license-files = ["LICENSE.rst"]
++license = { text="BSD-3-Clause" }
+ readme = "README.rst"
+
+ dependencies = [
diff --git a/www/py-flask-limiter3/Makefile b/www/py-flask-limiter3/Makefile
new file mode 100644
index 000000000000..35d2dad1bca6
--- /dev/null
+++ b/www/py-flask-limiter3/Makefile
@@ -0,0 +1,29 @@
+PORTNAME= Flask_Limiter
+PORTVERSION= 3.12
+CATEGORIES= www python
+MASTER_SITES= PYPI
+PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
+PKGNAMESUFFIX= 3
+DISTNAME= flask_limiter-${PORTVERSION}
+
+MAINTAINER= matthew@wener.org
+COMMENT= Flask-Limiter adds rate limiting to Flask applications
+WWW= https://github.com/alisaifee/flask-limiter
+
+LICENSE= MIT
+
+BUILD_DEPENDS= ${PY_SETUPTOOLS} \
+ ${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR}
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}flask>=2:www/py-flask@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}limits>=3.13:www/py-limits@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}ordered-set>4,<5:devel/py-ordered-set@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}rich>=12:textproc/py-rich@${PY_FLAVOR} \
+
+USES= python
+USE_PYTHON= autoplist concurrent pep517
+
+CONFLICTS_INSTALL= ${PYTHON_PKGNAMEPREFIX}flask_limiter
+
+NO_ARCH= yes
+
+.include <bsd.port.mk>
diff --git a/www/py-flask-limiter3/distinfo b/www/py-flask-limiter3/distinfo
new file mode 100644
index 000000000000..4533b661099e
--- /dev/null
+++ b/www/py-flask-limiter3/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1761423656
+SHA256 (flask_limiter-3.12.tar.gz) = f9e3e3d0c4acd0d1ffbfa729e17198dd1042f4d23c130ae160044fc930e21300
+SIZE (flask_limiter-3.12.tar.gz) = 303162
diff --git a/www/py-flask-limiter3/pkg-descr b/www/py-flask-limiter3/pkg-descr
new file mode 100644
index 000000000000..f1739f43d86b
--- /dev/null
+++ b/www/py-flask-limiter3/pkg-descr
@@ -0,0 +1,4 @@
+Flask-Limiter adds rate limiting to Flask applications. You can
+configure rate limits at different levels such as: application
+wide global limits per user, default limits per route, by
+blueprints, class based views and individual routes.
diff --git a/www/py-google-api-core/Makefile b/www/py-google-api-core/Makefile
index 9ea8889b61b5..8d0142135967 100644
--- a/www/py-google-api-core/Makefile
+++ b/www/py-google-api-core/Makefile
@@ -1,5 +1,5 @@
PORTNAME= google-api-core
-PORTVERSION= 2.26.0
+PORTVERSION= 2.27.0
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
diff --git a/www/py-google-api-core/distinfo b/www/py-google-api-core/distinfo
index b6be69a14dcf..48799be73601 100644
--- a/www/py-google-api-core/distinfo
+++ b/www/py-google-api-core/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1759774741
-SHA256 (google_api_core-2.26.0.tar.gz) = e6e6d78bd6cf757f4aee41dcc85b07f485fbb069d5daa3afb126defba1e91a62
-SIZE (google_api_core-2.26.0.tar.gz) = 166369
+TIMESTAMP = 1761446778
+SHA256 (google_api_core-2.27.0.tar.gz) = d32e2f5dd0517e91037169e75bf0a9783b255aff1d11730517c0b2b29e9db06a
+SIZE (google_api_core-2.27.0.tar.gz) = 168851
diff --git a/www/py-google-cloud-appengine-logging/Makefile b/www/py-google-cloud-appengine-logging/Makefile
index ad3e7d0c2822..a52040c11843 100644
--- a/www/py-google-cloud-appengine-logging/Makefile
+++ b/www/py-google-cloud-appengine-logging/Makefile
@@ -1,5 +1,5 @@
PORTNAME= google-cloud-appengine-logging
-PORTVERSION= 1.6.2
+PORTVERSION= 1.7.0
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -18,6 +18,7 @@ BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools>=0:devel/py-setuptools@${PY_FLA
${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR}
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}google-api-core>=2.11.0<3.0.0:www/py-google-api-core@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}google-auth>=2.14.1<3.0.0:security/py-google-auth@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}grpcio>=1.75.1<2.0.0:devel/py-grpcio@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}proto-plus>=1.25.0<2.0.0:devel/py-proto-plus@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}protobuf>=4.21.6,1<7.0.0,1:devel/py-protobuf@${PY_FLAVOR}
diff --git a/www/py-google-cloud-appengine-logging/distinfo b/www/py-google-cloud-appengine-logging/distinfo
index 95f63e9f8dd6..fbd1df2c78f6 100644
--- a/www/py-google-cloud-appengine-logging/distinfo
+++ b/www/py-google-cloud-appengine-logging/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1753796110
-SHA256 (google_cloud_appengine_logging-1.6.2.tar.gz) = 4890928464c98da9eecc7bf4e0542eba2551512c0265462c10f3a3d2a6424b90
-SIZE (google_cloud_appengine_logging-1.6.2.tar.gz) = 16587
+TIMESTAMP = 1761446780
+SHA256 (google_cloud_appengine_logging-1.7.0.tar.gz) = ea9ce73430cfc99f8957fd7df97733f9a759d4caab65e19d63a7474f012ffd94
+SIZE (google_cloud_appengine_logging-1.7.0.tar.gz) = 16729
diff --git a/www/py-google-cloud-audit-log/Makefile b/www/py-google-cloud-audit-log/Makefile
index b27a06d47da4..0214992bba0f 100644
--- a/www/py-google-cloud-audit-log/Makefile
+++ b/www/py-google-cloud-audit-log/Makefile
@@ -1,5 +1,5 @@
PORTNAME= google-cloud-audit-log
-PORTVERSION= 0.3.3
+PORTVERSION= 0.4.0
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
diff --git a/www/py-google-cloud-audit-log/distinfo b/www/py-google-cloud-audit-log/distinfo
index e19bb1b790fc..7e72c7858416 100644
--- a/www/py-google-cloud-audit-log/distinfo
+++ b/www/py-google-cloud-audit-log/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1759774743
-SHA256 (google_cloud_audit_log-0.3.3.tar.gz) = cca781e1f1b5498df1832a0b683a99e86c00b31015bbbeef3002381f7a96a63f
-SIZE (google_cloud_audit_log-0.3.3.tar.gz) = 44662
+TIMESTAMP = 1761446782
+SHA256 (google_cloud_audit_log-0.4.0.tar.gz) = 8467d4dcca9f3e6160520c24d71592e49e874838f174762272ec10e7950b6feb
+SIZE (google_cloud_audit_log-0.4.0.tar.gz) = 44682
diff --git a/www/py-google-cloud-bigtable/Makefile b/www/py-google-cloud-bigtable/Makefile
index 9e04761eb349..d56820528c1e 100644
--- a/www/py-google-cloud-bigtable/Makefile
+++ b/www/py-google-cloud-bigtable/Makefile
@@ -1,5 +1,5 @@
PORTNAME= google-cloud-bigtable
-PORTVERSION= 2.33.0
+PORTVERSION= 2.34.0
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
diff --git a/www/py-google-cloud-bigtable/distinfo b/www/py-google-cloud-bigtable/distinfo
index 30521aaf62a9..311aa21ff89e 100644
--- a/www/py-google-cloud-bigtable/distinfo
+++ b/www/py-google-cloud-bigtable/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1759774745
-SHA256 (google_cloud_bigtable-2.33.0.tar.gz) = 8d25c73dd41cea9436d14c9f03b91f94b05ff4afd47ce9a575bf18f8e6985747
-SIZE (google_cloud_bigtable-2.33.0.tar.gz) = 766259
+TIMESTAMP = 1761446784
+SHA256 (google_cloud_bigtable-2.34.0.tar.gz) = 773258b00cd3f9a3a35639cc38bd711f4f1418aaa0c8d70cb028978ed98dc2c2
+SIZE (google_cloud_bigtable-2.34.0.tar.gz) = 766606
diff --git a/www/py-google-cloud-compute/Makefile b/www/py-google-cloud-compute/Makefile
index 9ef5a96ffdfe..298272cee11f 100644
--- a/www/py-google-cloud-compute/Makefile
+++ b/www/py-google-cloud-compute/Makefile
@@ -1,5 +1,5 @@
PORTNAME= google-cloud-compute
-PORTVERSION= 1.39.0
+PORTVERSION= 1.40.0
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -18,6 +18,7 @@ BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools>=0:devel/py-setuptools@${PY_FLA
${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR}
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}google-api-core>=2.11.0:www/py-google-api-core@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}google-auth>=2.26.0:security/py-google-auth@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}grpcio>=1.75.1<2.0.0:devel/py-grpcio@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}proto-plus>=1.25.0<2.0.0:devel/py-proto-plus@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}protobuf>=3.20.2,1<7.0.0,1:devel/py-protobuf@${PY_FLAVOR}
diff --git a/www/py-google-cloud-compute/distinfo b/www/py-google-cloud-compute/distinfo
index dbb8d9e67391..036d1dc3c97f 100644
--- a/www/py-google-cloud-compute/distinfo
+++ b/www/py-google-cloud-compute/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1759774747
-SHA256 (google_cloud_compute-1.39.0.tar.gz) = e91f88d054d3eced8449c331c72f0b595d8529631eae1800e953eaa1080eac0f
-SIZE (google_cloud_compute-1.39.0.tar.gz) = 4449745
+TIMESTAMP = 1761446786
+SHA256 (google_cloud_compute-1.40.0.tar.gz) = 6a5ca519ac82caafc0a8600b1aa724d22fc00255501e1f99ff7a5907db73e011
+SIZE (google_cloud_compute-1.40.0.tar.gz) = 4550048
diff --git a/www/py-google-cloud-dlp/Makefile b/www/py-google-cloud-dlp/Makefile
index fdf6eb47d70b..06ea07a53d47 100644
--- a/www/py-google-cloud-dlp/Makefile
+++ b/www/py-google-cloud-dlp/Makefile
@@ -1,5 +1,5 @@
PORTNAME= google-cloud-dlp
-PORTVERSION= 3.32.0
+PORTVERSION= 3.33.0
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -18,6 +18,7 @@ BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools>=0:devel/py-setuptools@${PY_FLA
${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR}
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}google-api-core>=2.11.0<3.0.0:www/py-google-api-core@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}google-auth>=2.14.1<3.0.0:security/py-google-auth@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}grpcio>=1.75.1<2.0.0:devel/py-grpcio@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}proto-plus>=1.25.0<2.0.0:devel/py-proto-plus@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}protobuf>=4.21.6,1<7.0.0,1:devel/py-protobuf@${PY_FLAVOR}
diff --git a/www/py-google-cloud-dlp/distinfo b/www/py-google-cloud-dlp/distinfo
index 73888a3bdf81..d615e0ef065e 100644
--- a/www/py-google-cloud-dlp/distinfo
+++ b/www/py-google-cloud-dlp/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1759816736
-SHA256 (google_cloud_dlp-3.32.0.tar.gz) = 957b0f4efc1377d7b4fbab4d470c720f808f4f0edd5579263f00eba11f555539
-SIZE (google_cloud_dlp-3.32.0.tar.gz) = 271736
+TIMESTAMP = 1761446788
+SHA256 (google_cloud_dlp-3.33.0.tar.gz) = a910be118ec3c8898c38521610d62f4a16f333a4deb2abeb773e720f6e5f67e3
+SIZE (google_cloud_dlp-3.33.0.tar.gz) = 273468
diff --git a/www/py-google-cloud-speech/Makefile b/www/py-google-cloud-speech/Makefile
index 3d9f280475b3..b3157dca4f83 100644
--- a/www/py-google-cloud-speech/Makefile
+++ b/www/py-google-cloud-speech/Makefile
@@ -1,5 +1,5 @@
PORTNAME= google-cloud-speech
-PORTVERSION= 2.33.0
+PORTVERSION= 2.34.0
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -18,6 +18,7 @@ BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools>=0:devel/py-setuptools@${PY_FLA
${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR}
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}google-api-core>=2.11.0<3.0.0:www/py-google-api-core@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}google-auth>=2.14.1<3.0.0:security/py-google-auth@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}grpcio>=1.75.1<2.0.0:devel/py-grpcio@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}proto-plus>=1.25.0<2.0.0:devel/py-proto-plus@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}protobuf>=4.21.6,1<7.0.0,1:devel/py-protobuf@${PY_FLAVOR}
diff --git a/www/py-google-cloud-speech/distinfo b/www/py-google-cloud-speech/distinfo
index d070a73bd826..af5e4eac8940 100644
--- a/www/py-google-cloud-speech/distinfo
+++ b/www/py-google-cloud-speech/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1753796124
-SHA256 (google_cloud_speech-2.33.0.tar.gz) = fd08511b5124fdaa768d71a4054e84a5d8eb02531cb6f84f311c0387ea1314ed
-SIZE (google_cloud_speech-2.33.0.tar.gz) = 389072
+TIMESTAMP = 1761446790
+SHA256 (google_cloud_speech-2.34.0.tar.gz) = 2a7bffd84f134b9b70c9f11cbb5088c534f92be149d71d9073d0b9dd3a431acf
+SIZE (google_cloud_speech-2.34.0.tar.gz) = 391496
diff --git a/www/py-google-cloud-vision/Makefile b/www/py-google-cloud-vision/Makefile
index 9879f8c7eed0..1444b0113191 100644
--- a/www/py-google-cloud-vision/Makefile
+++ b/www/py-google-cloud-vision/Makefile
@@ -1,5 +1,5 @@
PORTNAME= google-cloud-vision
-PORTVERSION= 3.10.2
+PORTVERSION= 3.11.0
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -18,6 +18,7 @@ BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools>=0:devel/py-setuptools@${PY_FLA
${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR}
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}google-api-core>=2.11.0<3.0.0:www/py-google-api-core@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}google-auth>=2.14.1<3.0.0:security/py-google-auth@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}grpcio>=1.75.1<2.0.0:devel/py-grpcio@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}proto-plus>=1.25.0<2.0.0:devel/py-proto-plus@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}protobuf>=4.21.6,1<7.0.0,1:devel/py-protobuf@${PY_FLAVOR}
diff --git a/www/py-google-cloud-vision/distinfo b/www/py-google-cloud-vision/distinfo
index 6e57550da049..8f53edd3da20 100644
--- a/www/py-google-cloud-vision/distinfo
+++ b/www/py-google-cloud-vision/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1753796128
-SHA256 (google_cloud_vision-3.10.2.tar.gz) = 649380faab8933440b632bf88072c0c382a08d49ab02bc0b4fba821882ae1765
-SIZE (google_cloud_vision-3.10.2.tar.gz) = 570339
+TIMESTAMP = 1761446792
+SHA256 (google_cloud_vision-3.11.0.tar.gz) = c3cb57df2cf152ebe62ebaae9b1d5deff5a26aec5bd6e1c7f67e44bf6f4518f4
+SIZE (google_cloud_vision-3.11.0.tar.gz) = 570943
diff --git a/www/py-planet-auth/Makefile b/www/py-planet-auth/Makefile
index ddbc547cc34b..7091e62d1335 100644
--- a/www/py-planet-auth/Makefile
+++ b/www/py-planet-auth/Makefile
@@ -1,5 +1,5 @@
PORTNAME= planet-auth
-PORTVERSION= 2.2.0
+PORTVERSION= 2.3.0
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
diff --git a/www/py-planet-auth/distinfo b/www/py-planet-auth/distinfo
index 3bd2ba7c874b..0d8c94b9fecc 100644
--- a/www/py-planet-auth/distinfo
+++ b/www/py-planet-auth/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1759774755
-SHA256 (planet_auth-2.2.0.tar.gz) = 0f1d118b99c9117afcf94157cfd7d87665b1f685eab7bfe02ed7b0fda49bfa89
-SIZE (planet_auth-2.2.0.tar.gz) = 238440
+TIMESTAMP = 1761446794
+SHA256 (planet_auth-2.3.0.tar.gz) = 6d82ce93a8011beb13eb65a6bb38b32891208e82523177282644dec12b95126e
+SIZE (planet_auth-2.3.0.tar.gz) = 247228
diff --git a/www/py-strawberry-graphql-django/Makefile b/www/py-strawberry-graphql-django/Makefile
index fc9225845a6f..f08b1b412dd8 100644
--- a/www/py-strawberry-graphql-django/Makefile
+++ b/www/py-strawberry-graphql-django/Makefile
@@ -1,5 +1,5 @@
PORTNAME= strawberry-graphql-django
-DISTVERSION= 0.65.1
+DISTVERSION= 0.66.2
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -16,7 +16,7 @@ BUILD_DEPENDS= ${PY_SETUPTOOLS} \
${PYTHON_PKGNAMEPREFIX}poetry-core>=1.0.0:devel/py-poetry-core@${PY_FLAVOR}
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}asgiref>=3.8:www/py-asgiref@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}django42>=4.2:www/py-django42@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}strawberry-graphql>=0.276.2:devel/py-strawberry-graphql@${PY_FLAVOR}
+ ${PYTHON_PKGNAMEPREFIX}strawberry-graphql>=0.283.3:devel/py-strawberry-graphql@${PY_FLAVOR}
USES= python
USE_PYTHON= autoplist pep517
@@ -31,7 +31,7 @@ OPTIONS_DEFAULT= DEBUG-TOOLBAR ENUM
DEBUG-TOOLBAR_DESC= Debug support
ENUM_DESC= Integration for Django's TextChoices/IntegerChoices enumerations
-DEBUG-TOOLBAR_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django-debug-toolbar>=3.4:www/py-django-debug-toolbar@${PY_FLAVOR}
+DEBUG-TOOLBAR_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django-debug-toolbar>=6.0.0:www/py-django-debug-toolbar@${PY_FLAVOR}
ENUM_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django-choices-field>=2.2.2:www/py-django-choices-field@${PY_FLAVOR}
.include <bsd.port.mk>
diff --git a/www/py-strawberry-graphql-django/distinfo b/www/py-strawberry-graphql-django/distinfo
index 8361a3c27c9e..ff51bd679583 100644
--- a/www/py-strawberry-graphql-django/distinfo
+++ b/www/py-strawberry-graphql-django/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1753852395
-SHA256 (strawberry_graphql_django-0.65.1.tar.gz) = de312b77d83ab475b875f76f44161e8c5d9d284f349df61cebc83b4362b57a17
-SIZE (strawberry_graphql_django-0.65.1.tar.gz) = 86593
+TIMESTAMP = 1760606147
+SHA256 (strawberry_graphql_django-0.66.2.tar.gz) = 97f92d706a3532963cf681c725e6014f957dc8b1daeab45a5b67dd68690fbe2c
+SIZE (strawberry_graphql_django-0.66.2.tar.gz) = 85368
diff --git a/www/py-uvicorn/Makefile b/www/py-uvicorn/Makefile
index 557998bb0354..e075a2b5a31b 100644
--- a/www/py-uvicorn/Makefile
+++ b/www/py-uvicorn/Makefile
@@ -1,5 +1,5 @@
PORTNAME= uvicorn
-PORTVERSION= 0.37.0
+PORTVERSION= 0.38.0
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
diff --git a/www/py-uvicorn/distinfo b/www/py-uvicorn/distinfo
index 53db673c6164..7d97fb031186 100644
--- a/www/py-uvicorn/distinfo
+++ b/www/py-uvicorn/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1759816746
-SHA256 (uvicorn-0.37.0.tar.gz) = 4115c8add6d3fd536c8ee77f0e14a7fd2ebba939fed9b02583a97f80648f9e13
-SIZE (uvicorn-0.37.0.tar.gz) = 80367
+TIMESTAMP = 1761446796
+SHA256 (uvicorn-0.38.0.tar.gz) = fd97093bdd120a2609fc0d3afe931d4d4ad688b6e75f0f929fde1bc36fe0e91d
+SIZE (uvicorn-0.38.0.tar.gz) = 80605
diff --git a/www/py-wagtail-transfer/Makefile b/www/py-wagtail-transfer/Makefile
index 930bd53f0062..de69c7cdf7d8 100644
--- a/www/py-wagtail-transfer/Makefile
+++ b/www/py-wagtail-transfer/Makefile
@@ -1,9 +1,9 @@
PORTNAME= wagtail-transfer
PORTVERSION= 0.10
-DISTVERSIONPREFIX= v
CATEGORIES= www python
-#MASTER_SITES= PYPI
+MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
+DISTNAME= wagtail_transfer-${PORTVERSION}
MAINTAINER= sunpoet@FreeBSD.org
COMMENT= Content transfer for Wagtail
@@ -21,7 +21,4 @@ USE_PYTHON= autoplist concurrent pep517
NO_ARCH= yes
-USE_GITHUB= yes
-GH_ACCOUNT= wagtail
-
.include <bsd.port.mk>
diff --git a/www/py-wagtail-transfer/distinfo b/www/py-wagtail-transfer/distinfo
index d53b3321d2a2..98ee56501b9c 100644
--- a/www/py-wagtail-transfer/distinfo
+++ b/www/py-wagtail-transfer/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1757120882
-SHA256 (wagtail-wagtail-transfer-v0.10_GH0.tar.gz) = 94ced9677f74ee7c936c94d649d255582a493154a7fac01409e1c9cdb0106179
-SIZE (wagtail-wagtail-transfer-v0.10_GH0.tar.gz) = 321194
+TIMESTAMP = 1761332268
+SHA256 (wagtail_transfer-0.10.tar.gz) = 1baed64b78470c6ab0ef5beda6ef7b82c0b8943846a78add23422a3ce054e64e
+SIZE (wagtail_transfer-0.10.tar.gz) = 227656
diff --git a/www/py-wagtail/Makefile b/www/py-wagtail/Makefile
index b89963a4233a..30db61bfe3ee 100644
--- a/www/py-wagtail/Makefile
+++ b/www/py-wagtail/Makefile
@@ -1,5 +1,5 @@
PORTNAME= wagtail
-PORTVERSION= 7.1.1
+PORTVERSION= 7.1.2
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -22,7 +22,7 @@ RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}anyascii>=0.1.5:textproc/py-anyascii@${PY_FL
${PYTHON_PKGNAMEPREFIX}django-modelcluster>=6.2.1<7.0:www/py-django-modelcluster@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}django-permissionedforms>=0.1<1.0:www/py-django-permissionedforms@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}django-taggit>=5.0<7:www/py-django-taggit@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}django-tasks>=0.8<0.9:www/py-django-tasks@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}django-tasks>=0.8<0.10:www/py-django-tasks@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}django-treebeard>=4.5.1<5.0:www/py-django-treebeard@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}djangorestframework>=3.15.1,1<4.0,1:www/py-djangorestframework@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}draftjs-exporter>=2.1.5<6.0:www/py-draftjs-exporter@${PY_FLAVOR} \
diff --git a/www/py-wagtail/distinfo b/www/py-wagtail/distinfo
index 41785e126fb0..99fc6ec8f878 100644
--- a/www/py-wagtail/distinfo
+++ b/www/py-wagtail/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1757120880
-SHA256 (wagtail-7.1.1.tar.gz) = 7bdd1e5b0c345437985c01f0a7f60a617e75d788f37c7d839558f4e6a1251af9
-SIZE (wagtail-7.1.1.tar.gz) = 6822343
+TIMESTAMP = 1761446798
+SHA256 (wagtail-7.1.2.tar.gz) = 00c6641c9e6d6ce797503fee3aa32b1fad830af75fb7f22268fdf50e1f69baca
+SIZE (wagtail-7.1.2.tar.gz) = 6823881
diff --git a/www/py-wagtail/files/patch-pyproject.toml b/www/py-wagtail/files/patch-pyproject.toml
index a9dceaec1cf2..db163f7c46fd 100644
--- a/www/py-wagtail/files/patch-pyproject.toml
+++ b/www/py-wagtail/files/patch-pyproject.toml
@@ -1,4 +1,4 @@
---- pyproject.toml.orig 2025-08-04 15:00:13 UTC
+--- pyproject.toml.orig 2025-10-23 15:58:48 UTC
+++ pyproject.toml
@@ -1,5 +1,5 @@
[build-system]
@@ -17,3 +17,12 @@
authors = [
{ name = "Wagtail core team + contributors", email = "hello@wagtail.org" },
]
+@@ -50,7 +49,7 @@ dependencies = [
+ "anyascii>=0.1.5",
+ "telepath>=0.3.1,<1",
+ "laces>=0.1,<0.2",
+- "django-tasks>=0.8,<0.9",
++ "django-tasks>=0.8,<0.10",
+ ]
+
+ [project.urls]
diff --git a/www/qutebrowser/Makefile b/www/qutebrowser/Makefile
index a36160c3fc1c..9b14a6c880a3 100644
--- a/www/qutebrowser/Makefile
+++ b/www/qutebrowser/Makefile
@@ -1,5 +1,5 @@
PORTNAME= qutebrowser
-DISTVERSION= 3.5.1
+DISTVERSION= 3.6.0
CATEGORIES= www
MASTER_SITES= PYPI
diff --git a/www/qutebrowser/distinfo b/www/qutebrowser/distinfo
index fa7ed1282346..6747ee263f15 100644
--- a/www/qutebrowser/distinfo
+++ b/www/qutebrowser/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1749220016
-SHA256 (qutebrowser-3.5.1.tar.gz) = 826bba328a08357248d5e5a86faab0a73655497439ad54d269e212055926b38e
-SIZE (qutebrowser-3.5.1.tar.gz) = 6074312
+TIMESTAMP = 1761366456
+SHA256 (qutebrowser-3.6.0.tar.gz) = 08d45ead605721b66c1c7e739fce4597821c6dcae5eea6b152ab0bfb9d5a9ef7
+SIZE (qutebrowser-3.6.0.tar.gz) = 6090718
diff --git a/www/rubygem-async-http/Makefile b/www/rubygem-async-http/Makefile
index 702ac6fb89e2..de779171dfa5 100644
--- a/www/rubygem-async-http/Makefile
+++ b/www/rubygem-async-http/Makefile
@@ -1,5 +1,5 @@
PORTNAME= async-http
-PORTVERSION= 0.91.0
+PORTVERSION= 0.92.0
CATEGORIES= www rubygems
MASTER_SITES= RG
@@ -19,6 +19,7 @@ RUN_DEPENDS= rubygem-async>=2.10.2:devel/rubygem-async \
rubygem-protocol-http>=0.49<1:www/rubygem-protocol-http \
rubygem-protocol-http1>=0.30<1:www/rubygem-protocol-http1 \
rubygem-protocol-http2>=0.22<1:www/rubygem-protocol-http2 \
+ rubygem-protocol-url>=0.2<1:www/rubygem-protocol-url \
rubygem-traces>=0.10<1:devel/rubygem-traces
USES= gem
diff --git a/www/rubygem-async-http/distinfo b/www/rubygem-async-http/distinfo
index 63722af079d0..e77a059d1302 100644
--- a/www/rubygem-async-http/distinfo
+++ b/www/rubygem-async-http/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1757121886
-SHA256 (rubygem/async-http-0.91.0.gem) = 6b1326ef328d5c2f21e106b1dfee5146f1cddca9b72b71ba39539bc202dbf55f
-SIZE (rubygem/async-http-0.91.0.gem) = 37376
+TIMESTAMP = 1761447722
+SHA256 (rubygem/async-http-0.92.0.gem) = 9433ab19903c7a80b4a68ecfe12ea26b1364cbe75801cce011c23df72364bbfb
+SIZE (rubygem/async-http-0.92.0.gem) = 39936
diff --git a/www/rubygem-async-rest/Makefile b/www/rubygem-async-rest/Makefile
index 5c0e0e8cfc3a..0416b05562a3 100644
--- a/www/rubygem-async-rest/Makefile
+++ b/www/rubygem-async-rest/Makefile
@@ -1,5 +1,5 @@
PORTNAME= async-rest
-PORTVERSION= 0.19.1
+PORTVERSION= 0.20.0
CATEGORIES= www rubygems
MASTER_SITES= RG
@@ -12,7 +12,7 @@ LICENSE= MIT
LICENSE_FILE= ${WRKSRC}/license.md
RUN_DEPENDS= rubygem-async-http>=0.42<1:www/rubygem-async-http \
- rubygem-protocol-http>=0.45<1:www/rubygem-protocol-http
+ rubygem-protocol-url>=0.2<1:www/rubygem-protocol-url
USES= gem
diff --git a/www/rubygem-async-rest/distinfo b/www/rubygem-async-rest/distinfo
index 4223c5feac57..aeda5bea2e28 100644
--- a/www/rubygem-async-rest/distinfo
+++ b/www/rubygem-async-rest/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1734888754
-SHA256 (rubygem/async-rest-0.19.1.gem) = 0f3545f5c43992604c83ffc8273f8e8ace3b055bfec23c5d4cc638b8e974c87f
-SIZE (rubygem/async-rest-0.19.1.gem) = 14336
+TIMESTAMP = 1761447724
+SHA256 (rubygem/async-rest-0.20.0.gem) = 72b0d467f65269a53a64fc12b828f3d81b4afa201b4eea0b98cddb990e7e95eb
+SIZE (rubygem/async-rest-0.20.0.gem) = 16896
diff --git a/www/rubygem-faraday-gitlab/Makefile b/www/rubygem-faraday-gitlab/Makefile
index 058297542ed7..eba0207da681 100644
--- a/www/rubygem-faraday-gitlab/Makefile
+++ b/www/rubygem-faraday-gitlab/Makefile
@@ -1,5 +1,6 @@
PORTNAME= faraday
PORTVERSION= 2.13.4
+PORTREVISION= 1
CATEGORIES= www rubygems
MASTER_SITES= RG
PKGNAMESUFFIX= -gitlab
@@ -12,7 +13,7 @@ LICENSE= MIT
LICENSE_FILE= ${WRKSRC}/LICENSE.md
RUN_DEPENDS= rubygem-faraday-net_http-gitlab>=2.0<3.5:www/rubygem-faraday-net_http-gitlab \
- rubygem-json>=0:devel/rubygem-json \
+ rubygem-json-gitlab>=0:devel/rubygem-json-gitlab \
rubygem-logger-gitlab>=0:devel/rubygem-logger-gitlab
USES= cpe gem
diff --git a/www/rubygem-faraday-typhoeus-gitlab/Makefile b/www/rubygem-faraday-typhoeus-gitlab/Makefile
index 2559b38d853c..41342f2151f0 100644
--- a/www/rubygem-faraday-typhoeus-gitlab/Makefile
+++ b/www/rubygem-faraday-typhoeus-gitlab/Makefile
@@ -1,5 +1,6 @@
PORTNAME= faraday-typhoeus
PORTVERSION= 1.1.0
+PORTREVISION= 1
CATEGORIES= www rubygems
MASTER_SITES= RG
PKGNAMESUFFIX= -gitlab
@@ -12,7 +13,7 @@ LICENSE= MIT
LICENSE_FILE= ${WRKSRC}/LICENSE.md
RUN_DEPENDS= rubygem-faraday-gitlab>=2.0<3:www/rubygem-faraday-gitlab \
- rubygem-typhoeus>=1.4<2:www/rubygem-typhoeus
+ rubygem-typhoeus-gitlab>=1.4<2:www/rubygem-typhoeus-gitlab
USES= gem
diff --git a/www/rubygem-gon-rails-gitlab/Makefile b/www/rubygem-gon-rails-gitlab/Makefile
index d233ce4c6716..16fb68845e15 100644
--- a/www/rubygem-gon-rails-gitlab/Makefile
+++ b/www/rubygem-gon-rails-gitlab/Makefile
@@ -1,5 +1,5 @@
PORTNAME= gon
-PORTVERSION= 6.4.0
+PORTVERSION= 6.5.0
CATEGORIES= www rubygems
MASTER_SITES= RG
PKGNAMESUFFIX= -rails-gitlab
@@ -13,7 +13,7 @@ LICENSE_FILE= ${WRKSRC}/LICENSE
RUN_DEPENDS= rubygem-actionpack-gitlab>=3.0.20:www/rubygem-actionpack-gitlab \
rubygem-i18n>=0.7:devel/rubygem-i18n \
- rubygem-multi_json>=0:devel/rubygem-multi_json \
+ rubygem-multi_json-gitlab>=0:devel/rubygem-multi_json-gitlab \
rubygem-request_store>=1.0:devel/rubygem-request_store
USES= cpe gem
diff --git a/www/rubygem-gon-rails-gitlab/distinfo b/www/rubygem-gon-rails-gitlab/distinfo
index 70a568978163..86f68f219f61 100644
--- a/www/rubygem-gon-rails-gitlab/distinfo
+++ b/www/rubygem-gon-rails-gitlab/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1619177531
-SHA256 (rubygem/gon-6.4.0.gem) = e3a618d659392890f1aa7db420f17c75fd7d35aeb5f8fe003697d02c4b88d2f0
-SIZE (rubygem/gon-6.4.0.gem) = 158720
+TIMESTAMP = 1761393597
+SHA256 (rubygem/gon-6.5.0.gem) = 2226e3c921f26bde69b4586660bb67e3252b3a8a3caaa955a77212188a5d81ab
+SIZE (rubygem/gon-6.5.0.gem) = 17408
diff --git a/www/rubygem-jquery-rails/Makefile b/www/rubygem-jquery-rails/Makefile
index 49032b3d106c..0ecc32f27100 100644
--- a/www/rubygem-jquery-rails/Makefile
+++ b/www/rubygem-jquery-rails/Makefile
@@ -1,5 +1,5 @@
PORTNAME= jquery-rails
-PORTVERSION= 4.6.0
+PORTVERSION= 4.6.1
CATEGORIES= www rubygems
MASTER_SITES= RG
diff --git a/www/rubygem-jquery-rails/distinfo b/www/rubygem-jquery-rails/distinfo
index 65dedd7766b1..fcfd4f0db9f2 100644
--- a/www/rubygem-jquery-rails/distinfo
+++ b/www/rubygem-jquery-rails/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1688167160
-SHA256 (rubygem/jquery-rails-4.6.0.gem) = 3c4e6bf47274340b44d836b8aa1b5472c6d451e2739af5ec094421f39025a7e2
-SIZE (rubygem/jquery-rails-4.6.0.gem) = 523776
+TIMESTAMP = 1761447726
+SHA256 (rubygem/jquery-rails-4.6.1.gem) = 619f3496cdcdeaae1fd6dafa52dbac3fc45b745d4e09712da4184a16b3a8d9c0
+SIZE (rubygem/jquery-rails-4.6.1.gem) = 523776
diff --git a/www/rubygem-kamal/Makefile b/www/rubygem-kamal/Makefile
index 578cde235aa4..7707b1edd1a7 100644
--- a/www/rubygem-kamal/Makefile
+++ b/www/rubygem-kamal/Makefile
@@ -1,5 +1,5 @@
PORTNAME= kamal
-PORTVERSION= 2.7.0
+PORTVERSION= 2.8.1
CATEGORIES= www rubygems
MASTER_SITES= RG
diff --git a/www/rubygem-kamal/distinfo b/www/rubygem-kamal/distinfo
index 6f89fd0f3595..059523436516 100644
--- a/www/rubygem-kamal/distinfo
+++ b/www/rubygem-kamal/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1750954456
-SHA256 (rubygem/kamal-2.7.0.gem) = 66b863d967a740886a1817f7e181849c100dfcd4bdf1d8695d9c20828313b4f8
-SIZE (rubygem/kamal-2.7.0.gem) = 70656
+TIMESTAMP = 1761447728
+SHA256 (rubygem/kamal-2.8.1.gem) = abf03b048b2e89a5e379a4b86eaa12567e4f06333be981ce5d8ba9a926c15f5b
+SIZE (rubygem/kamal-2.8.1.gem) = 72192
diff --git a/www/rubygem-protocol-http/Makefile b/www/rubygem-protocol-http/Makefile
index e2e3e758659f..3e2fc8db4c4d 100644
--- a/www/rubygem-protocol-http/Makefile
+++ b/www/rubygem-protocol-http/Makefile
@@ -1,5 +1,5 @@
PORTNAME= protocol-http
-PORTVERSION= 0.54.0
+PORTVERSION= 0.55.0
CATEGORIES= www rubygems
MASTER_SITES= RG
diff --git a/www/rubygem-protocol-http/distinfo b/www/rubygem-protocol-http/distinfo
index a47ea2bc94b2..3402b2c633cc 100644
--- a/www/rubygem-protocol-http/distinfo
+++ b/www/rubygem-protocol-http/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1759816956
-SHA256 (rubygem/protocol-http-0.54.0.gem) = e4813c973397b7f5a21797ddc1d5ad054475b414e941f52a3ba9cf7944d12d33
-SIZE (rubygem/protocol-http-0.54.0.gem) = 60416
+TIMESTAMP = 1761447730
+SHA256 (rubygem/protocol-http-0.55.0.gem) = ab3f97386e0d6311f60e437c853c58e7b0ba4e1b16aff351f5ea2f75520126cb
+SIZE (rubygem/protocol-http-0.55.0.gem) = 59392
diff --git a/www/rubygem-protocol-url/Makefile b/www/rubygem-protocol-url/Makefile
new file mode 100644
index 000000000000..c44a91841b7d
--- /dev/null
+++ b/www/rubygem-protocol-url/Makefile
@@ -0,0 +1,18 @@
+PORTNAME= protocol-url
+PORTVERSION= 0.4.0
+CATEGORIES= www rubygems
+MASTER_SITES= RG
+
+MAINTAINER= sunpoet@FreeBSD.org
+COMMENT= Provide abstractions for working with URLs
+WWW= https://socketry.github.io/protocol-url/ \
+ https://github.com/socketry/protocol-url
+
+LICENSE= MIT
+LICENSE_FILE= ${WRKSRC}/license.md
+
+USES= gem
+
+NO_ARCH= yes
+
+.include <bsd.port.mk>
diff --git a/www/rubygem-protocol-url/distinfo b/www/rubygem-protocol-url/distinfo
new file mode 100644
index 000000000000..f11dfe5bcfd8
--- /dev/null
+++ b/www/rubygem-protocol-url/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1761446468
+SHA256 (rubygem/protocol-url-0.4.0.gem) = 64d4c03b6b51ad815ac6fdaf77a1d91e5baf9220d26becb846c5459dacdea9e1
+SIZE (rubygem/protocol-url-0.4.0.gem) = 19456
diff --git a/www/rubygem-protocol-url/pkg-descr b/www/rubygem-protocol-url/pkg-descr
new file mode 100644
index 000000000000..8b44771d4f91
--- /dev/null
+++ b/www/rubygem-protocol-url/pkg-descr
@@ -0,0 +1 @@
+Protocol::URL provides abstractions for working with URLs.
diff --git a/www/rubygem-selenium-webdriver/Makefile b/www/rubygem-selenium-webdriver/Makefile
index 875fc3d01f52..26273b8e3fe4 100644
--- a/www/rubygem-selenium-webdriver/Makefile
+++ b/www/rubygem-selenium-webdriver/Makefile
@@ -1,5 +1,5 @@
PORTNAME= selenium-webdriver
-PORTVERSION= 4.36.0
+PORTVERSION= 4.37.0
CATEGORIES= www rubygems
MASTER_SITES= RG
@@ -12,9 +12,7 @@ LICENSE= APACHE20
LICENSE_FILE= ${WRKSRC}/LICENSE
RUN_DEPENDS= rubygem-base64>=0.2<1:converters/rubygem-base64 \
- rubygem-json>=2.15.0<2.16:devel/rubygem-json \
rubygem-logger>=1.4<2:devel/rubygem-logger \
- rubygem-prism>=1.0<2:textproc/rubygem-prism \
rubygem-rexml>=3.2.5<4:textproc/rubygem-rexml \
rubygem-rubyzip>=1.2.2<4.0:archivers/rubygem-rubyzip \
rubygem-websocket>=1.0<2:www/rubygem-websocket
diff --git a/www/rubygem-selenium-webdriver/distinfo b/www/rubygem-selenium-webdriver/distinfo
index 273f7bb82146..21c69f99ba1d 100644
--- a/www/rubygem-selenium-webdriver/distinfo
+++ b/www/rubygem-selenium-webdriver/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1759774945
-SHA256 (rubygem/selenium-webdriver-4.36.0.gem) = da222898011772280908d511750f387d45b5323f6f9c7c19cb77ec4dcbe71c9f
-SIZE (rubygem/selenium-webdriver-4.36.0.gem) = 8669696
+TIMESTAMP = 1761447732
+SHA256 (rubygem/selenium-webdriver-4.37.0.gem) = 50873c16ad6c8720048a410f65ecac4bfef26abc7b31e8562477b504b2b976a6
+SIZE (rubygem/selenium-webdriver-4.37.0.gem) = 8768000
diff --git a/www/rubygem-selenium-webdriver/files/patch-gemspec b/www/rubygem-selenium-webdriver/files/patch-gemspec
deleted file mode 100644
index d1f14e116b51..000000000000
--- a/www/rubygem-selenium-webdriver/files/patch-gemspec
+++ /dev/null
@@ -1,14 +0,0 @@
---- selenium-webdriver.gemspec.orig 2025-10-15 04:52:25 UTC
-+++ selenium-webdriver.gemspec
-@@ -22,9 +22,9 @@ Gem::Specification.new do |s|
- s.specification_version = 4
-
- s.add_runtime_dependency(%q<base64>.freeze, ["~> 0.2".freeze])
-- s.add_runtime_dependency(%q<json>.freeze, ["<= 2.13.2".freeze])
-+ s.add_runtime_dependency(%q<json>.freeze, ["~> 2.15.0".freeze])
- s.add_runtime_dependency(%q<logger>.freeze, ["~> 1.4".freeze])
-- s.add_runtime_dependency(%q<prism>.freeze, ["~> 1.0".freeze, "< 1.5".freeze])
-+ s.add_runtime_dependency(%q<prism>.freeze, ["~> 1.0".freeze])
- s.add_runtime_dependency(%q<rexml>.freeze, ["~> 3.2".freeze, ">= 3.2.5".freeze])
- s.add_runtime_dependency(%q<rubyzip>.freeze, [">= 1.2.2".freeze, "< 4.0".freeze])
- s.add_runtime_dependency(%q<websocket>.freeze, ["~> 1.0".freeze])
diff --git a/www/rubygem-thruster/Makefile b/www/rubygem-thruster/Makefile
index b674589cd401..70afb21e2d4f 100644
--- a/www/rubygem-thruster/Makefile
+++ b/www/rubygem-thruster/Makefile
@@ -1,5 +1,5 @@
PORTNAME= thruster
-PORTVERSION= 0.1.15
+PORTVERSION= 0.1.16
CATEGORIES= www rubygems
MASTER_SITES= RG
diff --git a/www/rubygem-thruster/distinfo b/www/rubygem-thruster/distinfo
index 99d4c8aee332..38b3473c1dd5 100644
--- a/www/rubygem-thruster/distinfo
+++ b/www/rubygem-thruster/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1757121904
-SHA256 (rubygem/thruster-0.1.15.gem) = fe3396aa7158c32f499d8b7df07aefc0070050666a171788aec412705b438eab
-SIZE (rubygem/thruster-0.1.15.gem) = 7168
+TIMESTAMP = 1761447734
+SHA256 (rubygem/thruster-0.1.16.gem) = daa74b5b88e75df5a8f82559d9cd242391c5941735bdfe33a66fb266120168ad
+SIZE (rubygem/thruster-0.1.16.gem) = 7168
diff --git a/www/rubygem-typhoeus-gitlab/Makefile b/www/rubygem-typhoeus-gitlab/Makefile
new file mode 100644
index 000000000000..39a564f53441
--- /dev/null
+++ b/www/rubygem-typhoeus-gitlab/Makefile
@@ -0,0 +1,20 @@
+PORTNAME= typhoeus
+PORTVERSION= 1.4.1
+CATEGORIES= www rubygems
+MASTER_SITES= RG
+PKGNAMESUFFIX= -gitlab
+
+MAINTAINER= mfechner@FreeBSD.org
+COMMENT= Parallel HTTP request library
+WWW= https://github.com/typhoeus/typhoeus
+
+LICENSE= MIT
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+RUN_DEPENDS= rubygem-ethon>=0.9.0:www/rubygem-ethon
+
+USES= gem
+
+NO_ARCH= yes
+
+.include <bsd.port.mk>
diff --git a/www/rubygem-typhoeus-gitlab/distinfo b/www/rubygem-typhoeus-gitlab/distinfo
new file mode 100644
index 000000000000..32bc6f482eed
--- /dev/null
+++ b/www/rubygem-typhoeus-gitlab/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1700760710
+SHA256 (rubygem/typhoeus-1.4.1.gem) = 1c17db8364bd45ab302dc61e460173c3e69835896be88a3df07c206d5c55ef7c
+SIZE (rubygem/typhoeus-1.4.1.gem) = 57856
diff --git a/www/rubygem-typhoeus-gitlab/pkg-descr b/www/rubygem-typhoeus-gitlab/pkg-descr
new file mode 100644
index 000000000000..086ea1d8e6f3
--- /dev/null
+++ b/www/rubygem-typhoeus-gitlab/pkg-descr
@@ -0,0 +1,8 @@
+Typhoeus runs HTTP requests in parallel while
+cleanly encapsulating handling logic.
+
+It's a library for accessing web services in Ruby,
+specifically designed for building RESTful service
+oriented architectures in Ruby that need to be fast
+enough to process calls to multiple services within
+the client's HTTP request/response life cycle.
diff --git a/www/tinymce/Makefile b/www/tinymce/Makefile
index 4824ce07929b..33e52857a3ad 100644
--- a/www/tinymce/Makefile
+++ b/www/tinymce/Makefile
@@ -1,5 +1,5 @@
PORTNAME= tinymce
-PORTVERSION= 8.1.2
+PORTVERSION= 8.2.0
CATEGORIES= www
MASTER_SITES= http://download.tiny.cloud/tinymce/community/ \
LOCAL/sunpoet
diff --git a/www/tinymce/distinfo b/www/tinymce/distinfo
index 47c1d6c3d451..2cdbb167328e 100644
--- a/www/tinymce/distinfo
+++ b/www/tinymce/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1759816582
-SHA256 (tinymce_8.1.2.zip) = 3d01a23edecc8fbfd6f38a21bcfe318b3d039b23a90785d94dc9ac816215212d
-SIZE (tinymce_8.1.2.zip) = 1076076
+TIMESTAMP = 1761446522
+SHA256 (tinymce_8.2.0.zip) = 125d83938fd53bd86fd014a295b3cb89078aa10b54c6d3a5e01dc1336639461c
+SIZE (tinymce_8.2.0.zip) = 1079002
diff --git a/www/ungoogled-chromium/Makefile b/www/ungoogled-chromium/Makefile
index 7e15fa1f1f9c..229e99c559eb 100644
--- a/www/ungoogled-chromium/Makefile
+++ b/www/ungoogled-chromium/Makefile
@@ -1,5 +1,5 @@
PORTNAME= ungoogled-chromium
-PORTVERSION= 141.0.7390.107
+PORTVERSION= 141.0.7390.122
PULSEMV= 16
PULSEV= ${PULSEMV}.1
UGVERSION= ${DISTVERSION}-1
diff --git a/www/ungoogled-chromium/distinfo b/www/ungoogled-chromium/distinfo
index 2c617f992dec..700713cb287c 100644
--- a/www/ungoogled-chromium/distinfo
+++ b/www/ungoogled-chromium/distinfo
@@ -1,9 +1,9 @@
-TIMESTAMP = 1761065959
-SHA256 (chromium-141.0.7390.107.tar.xz) = f2b0a5d6e40ab4a26536b5026a2d3196ac4753fc143e3c237a54763fe16a265b
-SIZE (chromium-141.0.7390.107.tar.xz) = 7516836980
+TIMESTAMP = 1761574997
+SHA256 (chromium-141.0.7390.122.tar.xz) = 2abd5f1175328a15bea8363d6105c584fe499d513c88e26cae64de27fe0eae49
+SIZE (chromium-141.0.7390.122.tar.xz) = 7522322892
SHA256 (pulseaudio-16.1.tar.gz) = 027266c62f2a84422ac45fa721a649508f0f1628fb1fd9242315ac54ce2d7c92
SIZE (pulseaudio-16.1.tar.gz) = 2763111
-SHA256 (chromium-141.0.7390.107-testdata.tar.xz) = b41080dd68a15e1513d46284b29e33b913af6723e2c92026ab8ec2dc9cb90fb5
-SIZE (chromium-141.0.7390.107-testdata.tar.xz) = 925395556
-SHA256 (ungoogled-software-ungoogled-chromium-141.0.7390.107-141.0.7390.107-1_GH0.tar.gz) = 338bebdad1766880d1ea0fcab344f1c64eb7bc78d73ae41f70da222d24793afb
-SIZE (ungoogled-software-ungoogled-chromium-141.0.7390.107-141.0.7390.107-1_GH0.tar.gz) = 644757
+SHA256 (chromium-141.0.7390.122-testdata.tar.xz) = 17b55dfc98c00126e09e82dbfa4732e5780edd175c715550192edf11aebeb865
+SIZE (chromium-141.0.7390.122-testdata.tar.xz) = 925396512
+SHA256 (ungoogled-software-ungoogled-chromium-141.0.7390.122-141.0.7390.122-1_GH0.tar.gz) = d8b02cce3f1852f1caa543b0e9704440e8591eb20ff64e8fb9e9eec147428699
+SIZE (ungoogled-software-ungoogled-chromium-141.0.7390.122-141.0.7390.122-1_GH0.tar.gz) = 644763
diff --git a/www/vigil/Makefile b/www/vigil/Makefile
index ced8c5be177f..628107901266 100644
--- a/www/vigil/Makefile
+++ b/www/vigil/Makefile
@@ -1,7 +1,6 @@
PORTNAME= vigil
DISTVERSIONPREFIX= v
-DISTVERSION= 1.27.0
-PORTREVISION= 7
+DISTVERSION= 1.28.4
CATEGORIES= www
MAINTAINER= yuri@FreeBSD.org
@@ -23,238 +22,282 @@ USE_GITHUB= yes
GH_ACCOUNT= valeriansaliou
CARGO_CRATES= actix-codec-0.5.2 \
- actix-files-0.6.6 \
- actix-http-3.9.0 \
+ actix-files-0.6.8 \
+ actix-http-3.11.1 \
actix-macros-0.2.4 \
actix-router-0.5.3 \
- actix-rt-2.10.0 \
- actix-server-2.5.0 \
- actix-service-2.0.2 \
+ actix-rt-2.11.0 \
+ actix-server-2.6.0 \
+ actix-service-2.0.3 \
actix-utils-3.0.1 \
- actix-web-4.9.0 \
+ actix-web-4.11.0 \
actix-web-codegen-4.3.0 \
actix-web-httpauth-0.8.2 \
- addr2line-0.24.2 \
- adler2-2.0.0 \
- ahash-0.8.11 \
+ addr2line-0.25.1 \
+ adler2-2.0.1 \
+ ahash-0.8.12 \
aho-corasick-1.1.3 \
alloc-no-stdlib-2.0.4 \
alloc-stdlib-0.2.2 \
- anstream-0.6.18 \
- anstyle-1.0.10 \
- anstyle-parse-0.2.6 \
- anstyle-query-1.1.2 \
- anstyle-wincon-3.0.6 \
- async-compression-0.4.18 \
- autocfg-1.4.0 \
- backtrace-0.3.74 \
- base64-0.21.7 \
+ allocator-api2-0.2.21 \
+ android_system_properties-0.1.5 \
+ anstream-0.6.20 \
+ anstyle-1.0.11 \
+ anstyle-parse-0.2.7 \
+ anstyle-query-1.1.4 \
+ anstyle-wincon-3.0.10 \
+ async-compression-0.4.32 \
+ async-stream-0.3.6 \
+ async-stream-impl-0.3.6 \
+ atomic-waker-1.1.2 \
+ autocfg-1.5.0 \
+ backtrace-0.3.76 \
base64-0.22.1 \
- bitflags-1.3.2 \
- bitflags-2.6.0 \
+ bitflags-2.9.4 \
block-buffer-0.10.4 \
- brotli-6.0.0 \
- brotli-decompressor-4.0.1 \
- bstr-1.11.3 \
- bumpalo-3.16.0 \
- byteorder-1.5.0 \
- bytes-1.9.0 \
- bytestring-1.4.0 \
- cc-1.2.7 \
- cfg-if-1.0.0 \
- clap-4.5.23 \
- clap_builder-4.5.23 \
- clap_lex-0.7.4 \
- colorchoice-1.0.3 \
- convert_case-0.4.0 \
+ bon-3.7.2 \
+ bon-macros-3.7.2 \
+ brotli-8.0.2 \
+ brotli-decompressor-5.0.0 \
+ bstr-1.12.0 \
+ bumpalo-3.19.0 \
+ bytes-1.10.1 \
+ bytestring-1.5.0 \
+ cc-1.2.39 \
+ cfg-if-1.0.3 \
+ chrono-0.4.42 \
+ chumsky-0.9.3 \
+ clap-4.5.48 \
+ clap_builder-4.5.48 \
+ clap_lex-0.7.5 \
+ colorchoice-1.0.4 \
+ compression-codecs-0.4.31 \
+ compression-core-0.4.29 \
cookie-0.16.2 \
core-foundation-0.9.4 \
core-foundation-sys-0.8.7 \
- cpufeatures-0.2.16 \
- crc32fast-1.4.2 \
+ cpufeatures-0.2.17 \
+ crc32fast-1.5.0 \
crossbeam-deque-0.8.6 \
crossbeam-epoch-0.9.18 \
crossbeam-utils-0.8.21 \
crypto-common-0.1.6 \
- deranged-0.3.11 \
- derive_more-0.99.18 \
+ darling-0.21.3 \
+ darling_core-0.21.3 \
+ darling_macro-0.21.3 \
+ deranged-0.5.4 \
+ derive_more-2.0.1 \
+ derive_more-impl-2.0.1 \
digest-0.10.7 \
displaydoc-0.2.5 \
dunce-1.0.5 \
- email-encoding-0.2.1 \
+ dyn-clone-1.0.20 \
+ email-encoding-0.4.1 \
email_address-0.2.9 \
encoding_rs-0.8.35 \
envsubst-0.2.1 \
- equivalent-1.0.1 \
- errno-0.3.10 \
- fastrand-1.9.0 \
+ equivalent-1.0.2 \
+ errno-0.3.14 \
fastrand-2.3.0 \
- flate2-1.0.35 \
+ find-msvc-tools-0.1.2 \
+ flate2-1.1.2 \
fnv-1.0.7 \
+ foldhash-0.1.5 \
foreign-types-0.3.2 \
foreign-types-shared-0.1.1 \
- form_urlencoded-1.2.1 \
- fsio-0.4.0 \
+ form_urlencoded-1.2.2 \
+ fsio-0.4.1 \
+ futures-0.3.31 \
futures-channel-0.3.31 \
futures-core-0.3.31 \
+ futures-executor-0.3.31 \
futures-io-0.3.31 \
+ futures-macro-0.3.31 \
futures-sink-0.3.31 \
futures-task-0.3.31 \
futures-util-0.3.31 \
generic-array-0.14.7 \
- getrandom-0.2.15 \
- gimli-0.31.1 \
- globset-0.4.15 \
+ getrandom-0.2.16 \
+ getrandom-0.3.3 \
+ gimli-0.32.3 \
+ globset-0.4.16 \
globwalk-0.9.1 \
- h2-0.3.26 \
- hashbrown-0.12.3 \
- hashbrown-0.15.2 \
- hostname-0.3.1 \
+ h2-0.3.27 \
+ hashbrown-0.14.5 \
+ hashbrown-0.16.0 \
+ hostname-0.4.1 \
http-0.2.12 \
- http-body-0.4.6 \
+ http-1.3.1 \
+ http-body-1.0.1 \
+ http-body-util-0.1.3 \
http-range-0.1.5 \
- http-serde-1.1.3 \
- httparse-1.9.5 \
+ http-serde-2.1.1 \
+ httparse-1.10.1 \
httpdate-1.0.3 \
- hyper-0.14.32 \
- hyper-tls-0.5.0 \
- icu_collections-1.5.0 \
- icu_locid-1.5.0 \
- icu_locid_transform-1.5.0 \
- icu_locid_transform_data-1.5.0 \
- icu_normalizer-1.5.0 \
- icu_normalizer_data-1.5.0 \
- icu_properties-1.5.1 \
- icu_properties_data-1.5.0 \
- icu_provider-1.5.0 \
- icu_provider_macros-1.5.0 \
+ hyper-1.7.0 \
+ hyper-tls-0.6.0 \
+ hyper-util-0.1.17 \
+ iana-time-zone-0.1.64 \
+ iana-time-zone-haiku-0.1.2 \
+ icu_collections-2.0.0 \
+ icu_locale_core-2.0.0 \
+ icu_normalizer-2.0.0 \
+ icu_normalizer_data-2.0.0 \
+ icu_properties-2.0.1 \
+ icu_properties_data-2.0.1 \
+ icu_provider-2.0.0 \
+ ident_case-1.0.1 \
idna-0.1.5 \
- idna-0.3.0 \
- idna-1.0.3 \
- idna_adapter-1.2.0 \
+ idna-1.1.0 \
+ idna_adapter-1.2.1 \
ignore-0.4.23 \
impl-more-0.1.9 \
- indexmap-1.9.3 \
- indexmap-2.7.0 \
- instant-0.1.13 \
- ipnet-2.10.1 \
+ indexmap-2.11.4 \
+ io-uring-0.7.10 \
+ ipnet-2.11.0 \
+ iri-string-0.7.8 \
is_terminal_polyfill-1.70.1 \
- itoa-1.0.14 \
- jobserver-0.1.32 \
- js-sys-0.3.76 \
+ itoa-1.0.15 \
+ jobserver-0.1.34 \
+ js-sys-0.3.81 \
language-tags-0.3.2 \
lazy_static-1.5.0 \
- lettre-0.10.4 \
- libc-0.2.169 \
- libstrophe-0.17.0 \
- libstrophe-sys-bindgen-5.0.0 \
- linux-raw-sys-0.4.14 \
- litemap-0.7.4 \
+ lettre-0.11.18 \
+ libc-0.2.176 \
+ libssh2-sys-0.3.1 \
+ libstrophe-0.20.2 \
+ libstrophe-sys-bindgen-8.0.2 \
+ libz-sys-1.1.22 \
+ linux-raw-sys-0.11.0 \
+ litemap-0.8.0 \
local-channel-0.1.5 \
local-waker-0.1.4 \
- lock_api-0.4.12 \
- log-0.4.22 \
- match_cfg-0.1.0 \
+ lock_api-0.4.13 \
+ log-0.4.28 \
matches-0.1.10 \
- memchr-2.7.4 \
+ memchr-2.7.6 \
mime-0.3.17 \
mime_guess-2.0.5 \
- minimal-lexical-0.2.1 \
- miniz_oxide-0.8.2 \
- mio-1.0.3 \
- native-tls-0.2.12 \
- nom-7.1.3 \
+ miniz_oxide-0.8.9 \
+ mio-1.0.4 \
+ native-tls-0.2.14 \
+ nom-8.0.0 \
num-conv-0.1.0 \
num-traits-0.2.19 \
- object-0.36.7 \
- once_cell-1.20.2 \
- openssl-0.10.68 \
+ object-0.37.3 \
+ once_cell-1.21.3 \
+ once_cell_polyfill-1.70.1 \
+ openssl-0.10.73 \
openssl-macros-0.1.1 \
- openssl-probe-0.1.5 \
- openssl-src-300.4.1+3.4.0 \
- openssl-sys-0.9.104 \
- parking_lot-0.12.3 \
- parking_lot_core-0.9.10 \
+ openssl-probe-0.1.6 \
+ openssl-src-300.5.2+3.5.2 \
+ openssl-sys-0.9.109 \
+ parking_lot-0.12.4 \
+ parking_lot_core-0.9.11 \
paste-1.0.15 \
percent-encoding-1.0.1 \
- percent-encoding-2.3.1 \
- pest-2.7.15 \
- pest_derive-2.7.15 \
- pest_generator-2.7.15 \
- pest_meta-2.7.15 \
+ percent-encoding-2.3.2 \
+ pest-2.8.2 \
+ pest_derive-2.8.2 \
+ pest_generator-2.8.2 \
+ pest_meta-2.8.2 \
pin-project-lite-0.2.16 \
pin-utils-0.1.0 \
- ping-0.4.1 \
- pkg-config-0.3.31 \
+ ping-0.6.1 \
+ pkg-config-0.3.32 \
+ potential_utf-0.1.3 \
powerfmt-0.2.0 \
- ppv-lite86-0.2.20 \
- proc-macro2-1.0.92 \
- quote-1.0.38 \
- quoted_printable-0.4.8 \
+ ppv-lite86-0.2.21 \
+ prettyplease-0.2.37 \
+ proc-macro2-1.0.101 \
+ psm-0.1.26 \
+ quote-1.0.40 \
+ quoted_printable-0.5.1 \
+ r-efi-5.3.0 \
rand-0.8.5 \
+ rand-0.9.2 \
rand_chacha-0.3.1 \
+ rand_chacha-0.9.0 \
rand_core-0.6.4 \
- redox_syscall-0.5.8 \
- regex-1.11.1 \
- regex-automata-0.4.9 \
- regex-lite-0.1.6 \
- regex-syntax-0.8.5 \
- reqwest-0.11.27 \
- run_script-0.10.1 \
- rustc-demangle-0.1.24 \
- rustc_version-0.4.1 \
- rustix-0.38.42 \
- rustls-pemfile-1.0.4 \
- ryu-1.0.18 \
+ rand_core-0.9.3 \
+ redox_syscall-0.5.17 \
+ ref-cast-1.0.24 \
+ ref-cast-impl-1.0.24 \
+ regex-1.11.3 \
+ regex-automata-0.4.11 \
+ regex-lite-0.1.7 \
+ regex-syntax-0.8.6 \
+ reqwest-0.12.23 \
+ rmcp-0.7.0 \
+ rmcp-actix-web-0.8.4 \
+ rmcp-macros-0.7.0 \
+ run_script-0.11.0 \
+ rustc-demangle-0.1.26 \
+ rustix-1.1.2 \
+ rustls-pki-types-1.12.0 \
+ rustversion-1.0.22 \
+ ryu-1.0.20 \
same-file-1.0.6 \
- schannel-0.1.27 \
+ schannel-0.1.28 \
+ schemars-1.0.4 \
+ schemars_derive-1.0.4 \
scopeguard-1.2.0 \
security-framework-2.11.1 \
- security-framework-sys-2.13.0 \
- semver-1.0.24 \
- serde-1.0.217 \
- serde_derive-1.0.217 \
- serde_json-1.0.134 \
- serde_spanned-0.6.8 \
+ security-framework-sys-2.15.0 \
+ serde-1.0.227 \
+ serde_core-1.0.227 \
+ serde_derive-1.0.227 \
+ serde_derive_internals-0.29.1 \
+ serde_json-1.0.145 \
+ serde_spanned-1.0.2 \
serde_urlencoded-0.7.1 \
sha1-0.10.6 \
- sha2-0.10.8 \
+ sha2-0.10.9 \
shlex-1.3.0 \
- signal-hook-registry-1.4.2 \
- slab-0.4.9 \
- smallvec-1.13.2 \
+ signal-hook-registry-1.4.6 \
+ slab-0.4.11 \
+ smallvec-1.15.1 \
socket2-0.4.10 \
- socket2-0.5.8 \
+ socket2-0.5.10 \
+ socket2-0.6.0 \
+ sse-stream-0.2.1 \
+ ssh2-0.9.5 \
stable_deref_trait-1.2.0 \
+ stacker-0.1.21 \
strsim-0.11.1 \
- syn-2.0.95 \
- sync_wrapper-0.1.2 \
- synstructure-0.13.1 \
- system-configuration-0.5.1 \
- system-configuration-sys-0.5.0 \
- tempfile-3.15.0 \
+ syn-2.0.106 \
+ sync_wrapper-1.0.2 \
+ synstructure-0.13.2 \
+ tempfile-3.23.0 \
tera-1.20.0 \
thiserror-1.0.69 \
- thiserror-2.0.9 \
+ thiserror-2.0.16 \
thiserror-impl-1.0.69 \
- thiserror-impl-2.0.9 \
- time-0.3.37 \
- time-core-0.1.2 \
- time-macros-0.2.19 \
- tinystr-0.7.6 \
- tinyvec-1.8.1 \
+ thiserror-impl-2.0.16 \
+ time-0.3.44 \
+ time-core-0.1.6 \
+ time-macros-0.2.24 \
+ tinystr-0.8.1 \
+ tinyvec-1.10.0 \
tinyvec_macros-0.1.1 \
- tokio-1.42.0 \
+ tokio-1.47.1 \
+ tokio-macros-2.5.0 \
tokio-native-tls-0.3.1 \
- tokio-util-0.7.13 \
- toml-0.7.8 \
- toml_datetime-0.6.8 \
- toml_edit-0.19.15 \
+ tokio-stream-0.1.17 \
+ tokio-util-0.7.16 \
+ toml-0.9.7 \
+ toml_datetime-0.7.2 \
+ toml_parser-1.0.3 \
+ toml_writer-1.0.3 \
+ tower-0.5.2 \
+ tower-http-0.6.6 \
+ tower-layer-0.3.3 \
tower-service-0.3.3 \
tracing-0.1.41 \
- tracing-core-0.1.33 \
+ tracing-attributes-0.1.30 \
+ tracing-core-0.1.34 \
try-lock-0.2.5 \
- typenum-1.17.0 \
+ typenum-1.18.0 \
ucd-trie-0.1.7 \
unic-char-property-0.9.0 \
unic-char-range-0.9.0 \
@@ -264,67 +307,79 @@ CARGO_CRATES= actix-codec-0.5.2 \
unic-ucd-version-0.9.0 \
unicase-2.8.1 \
unicode-bidi-0.3.18 \
- unicode-ident-1.0.14 \
+ unicode-ident-1.0.19 \
unicode-normalization-0.1.24 \
+ unicode-xid-0.2.6 \
url-1.7.2 \
- url-2.5.4 \
+ url-2.5.7 \
url_serde-0.2.0 \
- utf16_iter-1.0.5 \
utf8_iter-1.0.4 \
utf8parse-0.2.2 \
- uuid-1.11.0 \
+ uuid-1.18.1 \
v_htmlescape-0.15.8 \
vcpkg-0.2.15 \
version_check-0.9.5 \
walkdir-2.5.0 \
want-0.3.1 \
- wasi-0.11.0+wasi-snapshot-preview1 \
- wasm-bindgen-0.2.99 \
- wasm-bindgen-backend-0.2.99 \
- wasm-bindgen-futures-0.4.49 \
- wasm-bindgen-macro-0.2.99 \
- wasm-bindgen-macro-support-0.2.99 \
- wasm-bindgen-shared-0.2.99 \
- web-sys-0.3.76 \
+ wasi-0.11.1+wasi-snapshot-preview1 \
+ wasi-0.14.7+wasi-0.2.4 \
+ wasip2-1.0.1+wasi-0.2.4 \
+ wasm-bindgen-0.2.104 \
+ wasm-bindgen-backend-0.2.104 \
+ wasm-bindgen-futures-0.4.54 \
+ wasm-bindgen-macro-0.2.104 \
+ wasm-bindgen-macro-support-0.2.104 \
+ wasm-bindgen-shared-0.2.104 \
+ web-sys-0.3.81 \
winapi-0.3.9 \
winapi-i686-pc-windows-gnu-0.4.0 \
- winapi-util-0.1.9 \
+ winapi-util-0.1.11 \
winapi-x86_64-pc-windows-gnu-0.4.0 \
- windows-sys-0.48.0 \
+ windows-core-0.62.1 \
+ windows-implement-0.60.1 \
+ windows-interface-0.59.2 \
+ windows-link-0.1.3 \
+ windows-link-0.2.0 \
+ windows-result-0.4.0 \
+ windows-strings-0.5.0 \
windows-sys-0.52.0 \
windows-sys-0.59.0 \
- windows-targets-0.48.5 \
+ windows-sys-0.60.2 \
+ windows-sys-0.61.1 \
windows-targets-0.52.6 \
- windows_aarch64_gnullvm-0.48.5 \
+ windows-targets-0.53.4 \
windows_aarch64_gnullvm-0.52.6 \
- windows_aarch64_msvc-0.48.5 \
+ windows_aarch64_gnullvm-0.53.0 \
windows_aarch64_msvc-0.52.6 \
- windows_i686_gnu-0.48.5 \
+ windows_aarch64_msvc-0.53.0 \
windows_i686_gnu-0.52.6 \
+ windows_i686_gnu-0.53.0 \
windows_i686_gnullvm-0.52.6 \
- windows_i686_msvc-0.48.5 \
+ windows_i686_gnullvm-0.53.0 \
windows_i686_msvc-0.52.6 \
- windows_x86_64_gnu-0.48.5 \
+ windows_i686_msvc-0.53.0 \
windows_x86_64_gnu-0.52.6 \
- windows_x86_64_gnullvm-0.48.5 \
+ windows_x86_64_gnu-0.53.0 \
windows_x86_64_gnullvm-0.52.6 \
- windows_x86_64_msvc-0.48.5 \
+ windows_x86_64_gnullvm-0.53.0 \
windows_x86_64_msvc-0.52.6 \
- winnow-0.5.40 \
- winreg-0.50.0 \
- write16-1.0.0 \
- writeable-0.5.5 \
- yoke-0.7.5 \
- yoke-derive-0.7.5 \
- zerocopy-0.7.35 \
- zerocopy-derive-0.7.35 \
- zerofrom-0.1.5 \
- zerofrom-derive-0.1.5 \
- zerovec-0.10.4 \
- zerovec-derive-0.10.3 \
- zstd-0.13.2 \
- zstd-safe-7.2.1 \
- zstd-sys-2.0.13+zstd.1.5.6
+ windows_x86_64_msvc-0.53.0 \
+ winnow-0.7.13 \
+ wit-bindgen-0.46.0 \
+ writeable-0.6.1 \
+ yoke-0.8.0 \
+ yoke-derive-0.8.0 \
+ zerocopy-0.8.27 \
+ zerocopy-derive-0.8.27 \
+ zerofrom-0.1.6 \
+ zerofrom-derive-0.1.6 \
+ zeroize-1.8.1 \
+ zerotrie-0.2.2 \
+ zerovec-0.11.4 \
+ zerovec-derive-0.11.1 \
+ zstd-0.13.3 \
+ zstd-safe-7.2.4 \
+ zstd-sys-2.0.16+zstd.1.5.7
OPENSSLINC= /usr/include
OPENSSLLIB= /usr/lib
diff --git a/www/vigil/distinfo b/www/vigil/distinfo
index 1e17c14e2c82..ed147ca6443c 100644
--- a/www/vigil/distinfo
+++ b/www/vigil/distinfo
@@ -1,104 +1,118 @@
-TIMESTAMP = 1736757197
+TIMESTAMP = 1761529003
SHA256 (rust/crates/actix-codec-0.5.2.crate) = 5f7b0a21988c1bf877cf4759ef5ddaac04c1c9fe808c9142ecb78ba97d97a28a
SIZE (rust/crates/actix-codec-0.5.2.crate) = 14085
-SHA256 (rust/crates/actix-files-0.6.6.crate) = 0773d59061dedb49a8aed04c67291b9d8cf2fe0b60130a381aab53c6dd86e9be
-SIZE (rust/crates/actix-files-0.6.6.crate) = 42722
-SHA256 (rust/crates/actix-http-3.9.0.crate) = d48f96fc3003717aeb9856ca3d02a8c7de502667ad76eeacd830b48d2e91fac4
-SIZE (rust/crates/actix-http-3.9.0.crate) = 162122
+SHA256 (rust/crates/actix-files-0.6.8.crate) = 6c0d87f10d70e2948ad40e8edea79c8e77c6c66e0250a4c1f09b690465199576
+SIZE (rust/crates/actix-files-0.6.8.crate) = 46633
+SHA256 (rust/crates/actix-http-3.11.1.crate) = 44cceded2fb55f3c4b67068fa64962e2ca59614edc5b03167de9ff82ae803da0
+SIZE (rust/crates/actix-http-3.11.1.crate) = 165649
SHA256 (rust/crates/actix-macros-0.2.4.crate) = e01ed3140b2f8d422c68afa1ed2e85d996ea619c988ac834d255db32138655cb
SIZE (rust/crates/actix-macros-0.2.4.crate) = 8380
SHA256 (rust/crates/actix-router-0.5.3.crate) = 13d324164c51f63867b57e73ba5936ea151b8a41a1d23d1031eeb9f70d0236f8
SIZE (rust/crates/actix-router-0.5.3.crate) = 33145
-SHA256 (rust/crates/actix-rt-2.10.0.crate) = 24eda4e2a6e042aa4e55ac438a2ae052d3b5da0ecf83d7411e1a368946925208
-SIZE (rust/crates/actix-rt-2.10.0.crate) = 22608
-SHA256 (rust/crates/actix-server-2.5.0.crate) = 7ca2549781d8dd6d75c40cf6b6051260a2cc2f3c62343d761a969a0640646894
-SIZE (rust/crates/actix-server-2.5.0.crate) = 40938
-SHA256 (rust/crates/actix-service-2.0.2.crate) = 3b894941f818cfdc7ccc4b9e60fa7e53b5042a2e8567270f9147d5591893373a
-SIZE (rust/crates/actix-service-2.0.2.crate) = 25293
+SHA256 (rust/crates/actix-rt-2.11.0.crate) = 92589714878ca59a7626ea19734f0e07a6a875197eec751bb5d3f99e64998c63
+SIZE (rust/crates/actix-rt-2.11.0.crate) = 22288
+SHA256 (rust/crates/actix-server-2.6.0.crate) = a65064ea4a457eaf07f2fba30b4c695bf43b721790e9530d26cb6f9019ff7502
+SIZE (rust/crates/actix-server-2.6.0.crate) = 42816
+SHA256 (rust/crates/actix-service-2.0.3.crate) = 9e46f36bf0e5af44bdc4bdb36fbbd421aa98c79a9bce724e1edeb3894e10dc7f
+SIZE (rust/crates/actix-service-2.0.3.crate) = 28409
SHA256 (rust/crates/actix-utils-3.0.1.crate) = 88a1dcdff1466e3c2488e1cb5c36a71822750ad43839937f85d2f4d9f8b705d8
SIZE (rust/crates/actix-utils-3.0.1.crate) = 10096
-SHA256 (rust/crates/actix-web-4.9.0.crate) = 9180d76e5cc7ccbc4d60a506f2c727730b154010262df5b910eb17dbe4b8cb38
-SIZE (rust/crates/actix-web-4.9.0.crate) = 244518
+SHA256 (rust/crates/actix-web-4.11.0.crate) = a597b77b5c6d6a1e1097fddde329a83665e25c5437c696a3a9a4aa514a614dea
+SIZE (rust/crates/actix-web-4.11.0.crate) = 248344
SHA256 (rust/crates/actix-web-codegen-4.3.0.crate) = f591380e2e68490b5dfaf1dd1aa0ebe78d84ba7067078512b4ea6e4492d622b8
SIZE (rust/crates/actix-web-codegen-4.3.0.crate) = 20382
SHA256 (rust/crates/actix-web-httpauth-0.8.2.crate) = 456348ed9dcd72a13a1f4a660449fafdecee9ac8205552e286809eb5b0b29bd3
SIZE (rust/crates/actix-web-httpauth-0.8.2.crate) = 31612
-SHA256 (rust/crates/addr2line-0.24.2.crate) = dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1
-SIZE (rust/crates/addr2line-0.24.2.crate) = 39015
-SHA256 (rust/crates/adler2-2.0.0.crate) = 512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627
-SIZE (rust/crates/adler2-2.0.0.crate) = 13529
-SHA256 (rust/crates/ahash-0.8.11.crate) = e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011
-SIZE (rust/crates/ahash-0.8.11.crate) = 43607
+SHA256 (rust/crates/addr2line-0.25.1.crate) = 1b5d307320b3181d6d7954e663bd7c774a838b8220fe0593c86d9fb09f498b4b
+SIZE (rust/crates/addr2line-0.25.1.crate) = 43134
+SHA256 (rust/crates/adler2-2.0.1.crate) = 320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa
+SIZE (rust/crates/adler2-2.0.1.crate) = 13366
+SHA256 (rust/crates/ahash-0.8.12.crate) = 5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75
+SIZE (rust/crates/ahash-0.8.12.crate) = 43413
SHA256 (rust/crates/aho-corasick-1.1.3.crate) = 8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916
SIZE (rust/crates/aho-corasick-1.1.3.crate) = 183311
SHA256 (rust/crates/alloc-no-stdlib-2.0.4.crate) = cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3
SIZE (rust/crates/alloc-no-stdlib-2.0.4.crate) = 10105
SHA256 (rust/crates/alloc-stdlib-0.2.2.crate) = 94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece
SIZE (rust/crates/alloc-stdlib-0.2.2.crate) = 6693
-SHA256 (rust/crates/anstream-0.6.18.crate) = 8acc5369981196006228e28809f761875c0327210a891e941f4c683b3a99529b
-SIZE (rust/crates/anstream-0.6.18.crate) = 29681
-SHA256 (rust/crates/anstyle-1.0.10.crate) = 55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9
-SIZE (rust/crates/anstyle-1.0.10.crate) = 15725
-SHA256 (rust/crates/anstyle-parse-0.2.6.crate) = 3b2d16507662817a6a20a9ea92df6652ee4f94f914589377d69f3b21bc5798a9
-SIZE (rust/crates/anstyle-parse-0.2.6.crate) = 22343
-SHA256 (rust/crates/anstyle-query-1.1.2.crate) = 79947af37f4177cfead1110013d678905c37501914fba0efea834c3fe9a8d60c
-SIZE (rust/crates/anstyle-query-1.1.2.crate) = 9969
-SHA256 (rust/crates/anstyle-wincon-3.0.6.crate) = 2109dbce0e72be3ec00bed26e6a7479ca384ad226efdd66db8fa2e3a38c83125
-SIZE (rust/crates/anstyle-wincon-3.0.6.crate) = 12271
-SHA256 (rust/crates/async-compression-0.4.18.crate) = df895a515f70646414f4b45c0b79082783b80552b373a68283012928df56f522
-SIZE (rust/crates/async-compression-0.4.18.crate) = 111919
-SHA256 (rust/crates/autocfg-1.4.0.crate) = ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26
-SIZE (rust/crates/autocfg-1.4.0.crate) = 17712
-SHA256 (rust/crates/backtrace-0.3.74.crate) = 8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a
-SIZE (rust/crates/backtrace-0.3.74.crate) = 88516
-SHA256 (rust/crates/base64-0.21.7.crate) = 9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567
-SIZE (rust/crates/base64-0.21.7.crate) = 82576
+SHA256 (rust/crates/allocator-api2-0.2.21.crate) = 683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923
+SIZE (rust/crates/allocator-api2-0.2.21.crate) = 63622
+SHA256 (rust/crates/android_system_properties-0.1.5.crate) = 819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311
+SIZE (rust/crates/android_system_properties-0.1.5.crate) = 5243
+SHA256 (rust/crates/anstream-0.6.20.crate) = 3ae563653d1938f79b1ab1b5e668c87c76a9930414574a6583a7b7e11a8e6192
+SIZE (rust/crates/anstream-0.6.20.crate) = 28797
+SHA256 (rust/crates/anstyle-1.0.11.crate) = 862ed96ca487e809f1c8e5a8447f6ee2cf102f846893800b20cebdf541fc6bbd
+SIZE (rust/crates/anstyle-1.0.11.crate) = 15880
+SHA256 (rust/crates/anstyle-parse-0.2.7.crate) = 4e7644824f0aa2c7b9384579234ef10eb7efb6a0deb83f9630a49594dd9c15c2
+SIZE (rust/crates/anstyle-parse-0.2.7.crate) = 21707
+SHA256 (rust/crates/anstyle-query-1.1.4.crate) = 9e231f6134f61b71076a3eab506c379d4f36122f2af15a9ff04415ea4c3339e2
+SIZE (rust/crates/anstyle-query-1.1.4.crate) = 10192
+SHA256 (rust/crates/anstyle-wincon-3.0.10.crate) = 3e0633414522a32ffaac8ac6cc8f748e090c5717661fddeea04219e2344f5f2a
+SIZE (rust/crates/anstyle-wincon-3.0.10.crate) = 12558
+SHA256 (rust/crates/async-compression-0.4.32.crate) = 5a89bce6054c720275ac2432fbba080a66a2106a44a1b804553930ca6909f4e0
+SIZE (rust/crates/async-compression-0.4.32.crate) = 98949
+SHA256 (rust/crates/async-stream-0.3.6.crate) = 0b5a71a6f37880a80d1d7f19efd781e4b5de42c88f0722cc13bcb6cc2cfe8476
+SIZE (rust/crates/async-stream-0.3.6.crate) = 13823
+SHA256 (rust/crates/async-stream-impl-0.3.6.crate) = c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d
+SIZE (rust/crates/async-stream-impl-0.3.6.crate) = 4312
+SHA256 (rust/crates/atomic-waker-1.1.2.crate) = 1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0
+SIZE (rust/crates/atomic-waker-1.1.2.crate) = 12422
+SHA256 (rust/crates/autocfg-1.5.0.crate) = c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8
+SIZE (rust/crates/autocfg-1.5.0.crate) = 18729
+SHA256 (rust/crates/backtrace-0.3.76.crate) = bb531853791a215d7c62a30daf0dde835f381ab5de4589cfe7c649d2cbe92bd6
+SIZE (rust/crates/backtrace-0.3.76.crate) = 89458
SHA256 (rust/crates/base64-0.22.1.crate) = 72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6
SIZE (rust/crates/base64-0.22.1.crate) = 81597
-SHA256 (rust/crates/bitflags-1.3.2.crate) = bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a
-SIZE (rust/crates/bitflags-1.3.2.crate) = 23021
-SHA256 (rust/crates/bitflags-2.6.0.crate) = b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de
-SIZE (rust/crates/bitflags-2.6.0.crate) = 45357
+SHA256 (rust/crates/bitflags-2.9.4.crate) = 2261d10cca569e4643e526d8dc2e62e433cc8aba21ab764233731f8d369bf394
+SIZE (rust/crates/bitflags-2.9.4.crate) = 47950
SHA256 (rust/crates/block-buffer-0.10.4.crate) = 3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71
SIZE (rust/crates/block-buffer-0.10.4.crate) = 10538
-SHA256 (rust/crates/brotli-6.0.0.crate) = 74f7971dbd9326d58187408ab83117d8ac1bb9c17b085fdacd1cf2f598719b6b
-SIZE (rust/crates/brotli-6.0.0.crate) = 1359183
-SHA256 (rust/crates/brotli-decompressor-4.0.1.crate) = 9a45bd2e4095a8b518033b128020dd4a55aab1c0a381ba4404a472630f4bc362
-SIZE (rust/crates/brotli-decompressor-4.0.1.crate) = 193357
-SHA256 (rust/crates/bstr-1.11.3.crate) = 531a9155a481e2ee699d4f98f43c0ca4ff8ee1bfd55c31e9e98fb29d2b176fe0
-SIZE (rust/crates/bstr-1.11.3.crate) = 351536
-SHA256 (rust/crates/bumpalo-3.16.0.crate) = 79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c
-SIZE (rust/crates/bumpalo-3.16.0.crate) = 85677
-SHA256 (rust/crates/byteorder-1.5.0.crate) = 1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b
-SIZE (rust/crates/byteorder-1.5.0.crate) = 23288
-SHA256 (rust/crates/bytes-1.9.0.crate) = 325918d6fe32f23b19878fe4b34794ae41fc19ddbe53b10571a4874d44ffd39b
-SIZE (rust/crates/bytes-1.9.0.crate) = 67320
-SHA256 (rust/crates/bytestring-1.4.0.crate) = e465647ae23b2823b0753f50decb2d5a86d2bb2cac04788fafd1f80e45378e5f
-SIZE (rust/crates/bytestring-1.4.0.crate) = 9747
-SHA256 (rust/crates/cc-1.2.7.crate) = a012a0df96dd6d06ba9a1b29d6402d1a5d77c6befd2566afdc26e10603dc93d7
-SIZE (rust/crates/cc-1.2.7.crate) = 100283
-SHA256 (rust/crates/cfg-if-1.0.0.crate) = baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd
-SIZE (rust/crates/cfg-if-1.0.0.crate) = 7934
-SHA256 (rust/crates/clap-4.5.23.crate) = 3135e7ec2ef7b10c6ed8950f0f792ed96ee093fa088608f1c76e569722700c84
-SIZE (rust/crates/clap-4.5.23.crate) = 56460
-SHA256 (rust/crates/clap_builder-4.5.23.crate) = 30582fc632330df2bd26877bde0c1f4470d57c582bbc070376afcd04d8cb4838
-SIZE (rust/crates/clap_builder-4.5.23.crate) = 164180
-SHA256 (rust/crates/clap_lex-0.7.4.crate) = f46ad14479a25103f283c0f10005961cf086d8dc42205bb44c46ac563475dca6
-SIZE (rust/crates/clap_lex-0.7.4.crate) = 12858
-SHA256 (rust/crates/colorchoice-1.0.3.crate) = 5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990
-SIZE (rust/crates/colorchoice-1.0.3.crate) = 7923
-SHA256 (rust/crates/convert_case-0.4.0.crate) = 6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e
-SIZE (rust/crates/convert_case-0.4.0.crate) = 8098
+SHA256 (rust/crates/bon-3.7.2.crate) = c2529c31017402be841eb45892278a6c21a000c0a17643af326c73a73f83f0fb
+SIZE (rust/crates/bon-3.7.2.crate) = 61725
+SHA256 (rust/crates/bon-macros-3.7.2.crate) = d82020dadcb845a345591863adb65d74fa8dc5c18a0b6d408470e13b7adc7005
+SIZE (rust/crates/bon-macros-3.7.2.crate) = 88545
+SHA256 (rust/crates/brotli-8.0.2.crate) = 4bd8b9603c7aa97359dbd97ecf258968c95f3adddd6db2f7e7a5bef101c84560
+SIZE (rust/crates/brotli-8.0.2.crate) = 741739
+SHA256 (rust/crates/brotli-decompressor-5.0.0.crate) = 874bb8112abecc98cbd6d81ea4fa7e94fb9449648c93cc89aa40c81c24d7de03
+SIZE (rust/crates/brotli-decompressor-5.0.0.crate) = 195282
+SHA256 (rust/crates/bstr-1.12.0.crate) = 234113d19d0d7d613b40e86fb654acf958910802bcceab913a4f9e7cda03b1a4
+SIZE (rust/crates/bstr-1.12.0.crate) = 351557
+SHA256 (rust/crates/bumpalo-3.19.0.crate) = 46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43
+SIZE (rust/crates/bumpalo-3.19.0.crate) = 96414
+SHA256 (rust/crates/bytes-1.10.1.crate) = d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a
+SIZE (rust/crates/bytes-1.10.1.crate) = 76779
+SHA256 (rust/crates/bytestring-1.5.0.crate) = 113b4343b5f6617e7ad401ced8de3cc8b012e73a594347c307b90db3e9271289
+SIZE (rust/crates/bytestring-1.5.0.crate) = 11353
+SHA256 (rust/crates/cc-1.2.39.crate) = e1354349954c6fc9cb0deab020f27f783cf0b604e8bb754dc4658ecf0d29c35f
+SIZE (rust/crates/cc-1.2.39.crate) = 90774
+SHA256 (rust/crates/cfg-if-1.0.3.crate) = 2fd1289c04a9ea8cb22300a459a72a385d7c73d3259e2ed7dcb2af674838cfa9
+SIZE (rust/crates/cfg-if-1.0.3.crate) = 8719
+SHA256 (rust/crates/chrono-0.4.42.crate) = 145052bdd345b87320e369255277e3fb5152762ad123a901ef5c262dd38fe8d2
+SIZE (rust/crates/chrono-0.4.42.crate) = 238174
+SHA256 (rust/crates/chumsky-0.9.3.crate) = 8eebd66744a15ded14960ab4ccdbfb51ad3b81f51f3f04a80adac98c985396c9
+SIZE (rust/crates/chumsky-0.9.3.crate) = 75112
+SHA256 (rust/crates/clap-4.5.48.crate) = e2134bb3ea021b78629caa971416385309e0131b351b25e01dc16fb54e1b5fae
+SIZE (rust/crates/clap-4.5.48.crate) = 61935
+SHA256 (rust/crates/clap_builder-4.5.48.crate) = c2ba64afa3c0a6df7fa517765e31314e983f51dda798ffba27b988194fb65dc9
+SIZE (rust/crates/clap_builder-4.5.48.crate) = 170133
+SHA256 (rust/crates/clap_lex-0.7.5.crate) = b94f61472cee1439c0b966b47e3aca9ae07e45d070759512cd390ea2bebc6675
+SIZE (rust/crates/clap_lex-0.7.5.crate) = 13469
+SHA256 (rust/crates/colorchoice-1.0.4.crate) = b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75
+SIZE (rust/crates/colorchoice-1.0.4.crate) = 8196
+SHA256 (rust/crates/compression-codecs-0.4.31.crate) = ef8a506ec4b81c460798f572caead636d57d3d7e940f998160f52bd254bf2d23
+SIZE (rust/crates/compression-codecs-0.4.31.crate) = 22694
+SHA256 (rust/crates/compression-core-0.4.29.crate) = e47641d3deaf41fb1538ac1f54735925e275eaf3bf4d55c81b137fba797e5cbb
+SIZE (rust/crates/compression-core-0.4.29.crate) = 4321
SHA256 (rust/crates/cookie-0.16.2.crate) = e859cd57d0710d9e06c381b550c06e76992472a8c6d527aecd2fc673dcc231fb
SIZE (rust/crates/cookie-0.16.2.crate) = 34632
SHA256 (rust/crates/core-foundation-0.9.4.crate) = 91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f
SIZE (rust/crates/core-foundation-0.9.4.crate) = 27743
SHA256 (rust/crates/core-foundation-sys-0.8.7.crate) = 773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b
SIZE (rust/crates/core-foundation-sys-0.8.7.crate) = 37712
-SHA256 (rust/crates/cpufeatures-0.2.16.crate) = 16b80225097f2e5ae4e7179dd2266824648f3e2f49d9134d584b76389d31c4c3
-SIZE (rust/crates/cpufeatures-0.2.16.crate) = 13405
-SHA256 (rust/crates/crc32fast-1.4.2.crate) = a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3
-SIZE (rust/crates/crc32fast-1.4.2.crate) = 38491
+SHA256 (rust/crates/cpufeatures-0.2.17.crate) = 59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280
+SIZE (rust/crates/cpufeatures-0.2.17.crate) = 13466
+SHA256 (rust/crates/crc32fast-1.5.0.crate) = 9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511
+SIZE (rust/crates/crc32fast-1.5.0.crate) = 40723
SHA256 (rust/crates/crossbeam-deque-0.8.6.crate) = 9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51
SIZE (rust/crates/crossbeam-deque-0.8.6.crate) = 22471
SHA256 (rust/crates/crossbeam-epoch-0.9.18.crate) = 5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e
@@ -107,50 +121,68 @@ SHA256 (rust/crates/crossbeam-utils-0.8.21.crate) = d0a5c400df2834b80a4c3327b3aa
SIZE (rust/crates/crossbeam-utils-0.8.21.crate) = 42691
SHA256 (rust/crates/crypto-common-0.1.6.crate) = 1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3
SIZE (rust/crates/crypto-common-0.1.6.crate) = 8760
-SHA256 (rust/crates/deranged-0.3.11.crate) = b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4
-SIZE (rust/crates/deranged-0.3.11.crate) = 18043
-SHA256 (rust/crates/derive_more-0.99.18.crate) = 5f33878137e4dafd7fa914ad4e259e18a4e8e532b9617a2d0150262bf53abfce
-SIZE (rust/crates/derive_more-0.99.18.crate) = 55013
+SHA256 (rust/crates/darling-0.21.3.crate) = 9cdf337090841a411e2a7f3deb9187445851f91b309c0c0a29e05f74a00a48c0
+SIZE (rust/crates/darling-0.21.3.crate) = 41398
+SHA256 (rust/crates/darling_core-0.21.3.crate) = 1247195ecd7e3c85f83c8d2a366e4210d588e802133e1e355180a9870b517ea4
+SIZE (rust/crates/darling_core-0.21.3.crate) = 74471
+SHA256 (rust/crates/darling_macro-0.21.3.crate) = d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81
+SIZE (rust/crates/darling_macro-0.21.3.crate) = 2535
+SHA256 (rust/crates/deranged-0.5.4.crate) = a41953f86f8a05768a6cda24def994fd2f424b04ec5c719cf89989779f199071
+SIZE (rust/crates/deranged-0.5.4.crate) = 24461
+SHA256 (rust/crates/derive_more-2.0.1.crate) = 093242cf7570c207c83073cf82f79706fe7b8317e98620a47d5be7c3d8497678
+SIZE (rust/crates/derive_more-2.0.1.crate) = 70127
+SHA256 (rust/crates/derive_more-impl-2.0.1.crate) = bda628edc44c4bb645fbe0f758797143e4e07926f7ebf4e9bdfbd3d2ce621df3
+SIZE (rust/crates/derive_more-impl-2.0.1.crate) = 78233
SHA256 (rust/crates/digest-0.10.7.crate) = 9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292
SIZE (rust/crates/digest-0.10.7.crate) = 19557
SHA256 (rust/crates/displaydoc-0.2.5.crate) = 97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0
SIZE (rust/crates/displaydoc-0.2.5.crate) = 24219
SHA256 (rust/crates/dunce-1.0.5.crate) = 92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813
SIZE (rust/crates/dunce-1.0.5.crate) = 8244
-SHA256 (rust/crates/email-encoding-0.2.1.crate) = a87260449b06739ee78d6281c68d2a0ff3e3af64a78df63d3a1aeb3c06997c8a
-SIZE (rust/crates/email-encoding-0.2.1.crate) = 15587
+SHA256 (rust/crates/dyn-clone-1.0.20.crate) = d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555
+SIZE (rust/crates/dyn-clone-1.0.20.crate) = 13134
+SHA256 (rust/crates/email-encoding-0.4.1.crate) = 9298e6504d9b9e780ed3f7dfd43a61be8cd0e09eb07f7706a945b0072b6670b6
+SIZE (rust/crates/email-encoding-0.4.1.crate) = 16824
SHA256 (rust/crates/email_address-0.2.9.crate) = e079f19b08ca6239f47f8ba8509c11cf3ea30095831f7fed61441475edd8c449
SIZE (rust/crates/email_address-0.2.9.crate) = 21579
SHA256 (rust/crates/encoding_rs-0.8.35.crate) = 75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3
SIZE (rust/crates/encoding_rs-0.8.35.crate) = 1381050
SHA256 (rust/crates/envsubst-0.2.1.crate) = cf2f29f6ee674d1229e5715dfc7e24f14395a20d66949e36032de68b31542643
SIZE (rust/crates/envsubst-0.2.1.crate) = 7219
-SHA256 (rust/crates/equivalent-1.0.1.crate) = 5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5
-SIZE (rust/crates/equivalent-1.0.1.crate) = 6615
-SHA256 (rust/crates/errno-0.3.10.crate) = 33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d
-SIZE (rust/crates/errno-0.3.10.crate) = 11824
-SHA256 (rust/crates/fastrand-1.9.0.crate) = e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be
-SIZE (rust/crates/fastrand-1.9.0.crate) = 11910
+SHA256 (rust/crates/equivalent-1.0.2.crate) = 877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f
+SIZE (rust/crates/equivalent-1.0.2.crate) = 7419
+SHA256 (rust/crates/errno-0.3.14.crate) = 39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb
+SIZE (rust/crates/errno-0.3.14.crate) = 12002
SHA256 (rust/crates/fastrand-2.3.0.crate) = 37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be
SIZE (rust/crates/fastrand-2.3.0.crate) = 15076
-SHA256 (rust/crates/flate2-1.0.35.crate) = c936bfdafb507ebbf50b8074c54fa31c5be9a1e7e5f467dd659697041407d07c
-SIZE (rust/crates/flate2-1.0.35.crate) = 109188
+SHA256 (rust/crates/find-msvc-tools-0.1.2.crate) = 1ced73b1dacfc750a6db6c0a0c3a3853c8b41997e2e2c563dc90804ae6867959
+SIZE (rust/crates/find-msvc-tools-0.1.2.crate) = 30461
+SHA256 (rust/crates/flate2-1.1.2.crate) = 4a3d7db9596fecd151c5f638c0ee5d5bd487b6e0ea232e5dc96d5250f6f94b1d
+SIZE (rust/crates/flate2-1.1.2.crate) = 76495
SHA256 (rust/crates/fnv-1.0.7.crate) = 3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1
SIZE (rust/crates/fnv-1.0.7.crate) = 11266
+SHA256 (rust/crates/foldhash-0.1.5.crate) = d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2
+SIZE (rust/crates/foldhash-0.1.5.crate) = 21901
SHA256 (rust/crates/foreign-types-0.3.2.crate) = f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1
SIZE (rust/crates/foreign-types-0.3.2.crate) = 7504
SHA256 (rust/crates/foreign-types-shared-0.1.1.crate) = 00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b
SIZE (rust/crates/foreign-types-shared-0.1.1.crate) = 5672
-SHA256 (rust/crates/form_urlencoded-1.2.1.crate) = e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456
-SIZE (rust/crates/form_urlencoded-1.2.1.crate) = 8969
-SHA256 (rust/crates/fsio-0.4.0.crate) = dad0ce30be0cc441b325c5d705c8b613a0ca0d92b6a8953d41bd236dc09a36d0
-SIZE (rust/crates/fsio-0.4.0.crate) = 1139854
+SHA256 (rust/crates/form_urlencoded-1.2.2.crate) = cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf
+SIZE (rust/crates/form_urlencoded-1.2.2.crate) = 9347
+SHA256 (rust/crates/fsio-0.4.1.crate) = f4944f16eb6a05b4b2b79986b4786867bb275f52882adea798f17cc2588f25b2
+SIZE (rust/crates/fsio-0.4.1.crate) = 16499
+SHA256 (rust/crates/futures-0.3.31.crate) = 65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876
+SIZE (rust/crates/futures-0.3.31.crate) = 54953
SHA256 (rust/crates/futures-channel-0.3.31.crate) = 2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10
SIZE (rust/crates/futures-channel-0.3.31.crate) = 31971
SHA256 (rust/crates/futures-core-0.3.31.crate) = 05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e
SIZE (rust/crates/futures-core-0.3.31.crate) = 14318
+SHA256 (rust/crates/futures-executor-0.3.31.crate) = 1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f
+SIZE (rust/crates/futures-executor-0.3.31.crate) = 17965
SHA256 (rust/crates/futures-io-0.3.31.crate) = 9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6
SIZE (rust/crates/futures-io-0.3.31.crate) = 9047
+SHA256 (rust/crates/futures-macro-0.3.31.crate) = 162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650
+SIZE (rust/crates/futures-macro-0.3.31.crate) = 11341
SHA256 (rust/crates/futures-sink-0.3.31.crate) = e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7
SIZE (rust/crates/futures-sink-0.3.31.crate) = 7958
SHA256 (rust/crates/futures-task-0.3.31.crate) = f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988
@@ -159,312 +191,368 @@ SHA256 (rust/crates/futures-util-0.3.31.crate) = 9fa08315bb612088cc391249efdc3bc
SIZE (rust/crates/futures-util-0.3.31.crate) = 162124
SHA256 (rust/crates/generic-array-0.14.7.crate) = 85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a
SIZE (rust/crates/generic-array-0.14.7.crate) = 15950
-SHA256 (rust/crates/getrandom-0.2.15.crate) = c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7
-SIZE (rust/crates/getrandom-0.2.15.crate) = 37163
-SHA256 (rust/crates/gimli-0.31.1.crate) = 07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f
-SIZE (rust/crates/gimli-0.31.1.crate) = 279515
-SHA256 (rust/crates/globset-0.4.15.crate) = 15f1ce686646e7f1e19bf7d5533fe443a45dbfb990e00629110797578b42fb19
-SIZE (rust/crates/globset-0.4.15.crate) = 25177
+SHA256 (rust/crates/getrandom-0.2.16.crate) = 335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592
+SIZE (rust/crates/getrandom-0.2.16.crate) = 40163
+SHA256 (rust/crates/getrandom-0.3.3.crate) = 26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4
+SIZE (rust/crates/getrandom-0.3.3.crate) = 49493
+SHA256 (rust/crates/gimli-0.32.3.crate) = e629b9b98ef3dd8afe6ca2bd0f89306cec16d43d907889945bc5d6687f2f13c7
+SIZE (rust/crates/gimli-0.32.3.crate) = 289789
+SHA256 (rust/crates/globset-0.4.16.crate) = 54a1028dfc5f5df5da8a56a73e6c153c9a9708ec57232470703592a3f18e49f5
+SIZE (rust/crates/globset-0.4.16.crate) = 26533
SHA256 (rust/crates/globwalk-0.9.1.crate) = 0bf760ebf69878d9fd8f110c89703d90ce35095324d1f1edcb595c63945ee757
SIZE (rust/crates/globwalk-0.9.1.crate) = 12572
-SHA256 (rust/crates/h2-0.3.26.crate) = 81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8
-SIZE (rust/crates/h2-0.3.26.crate) = 168315
-SHA256 (rust/crates/hashbrown-0.12.3.crate) = 8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888
-SIZE (rust/crates/hashbrown-0.12.3.crate) = 102968
-SHA256 (rust/crates/hashbrown-0.15.2.crate) = bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289
-SIZE (rust/crates/hashbrown-0.15.2.crate) = 138478
-SHA256 (rust/crates/hostname-0.3.1.crate) = 3c731c3e10504cc8ed35cfe2f1db4c9274c3d35fa486e3b31df46f068ef3e867
-SIZE (rust/crates/hostname-0.3.1.crate) = 9272
+SHA256 (rust/crates/h2-0.3.27.crate) = 0beca50380b1fc32983fc1cb4587bfa4bb9e78fc259aad4a0032d2080309222d
+SIZE (rust/crates/h2-0.3.27.crate) = 169180
+SHA256 (rust/crates/hashbrown-0.14.5.crate) = e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1
+SIZE (rust/crates/hashbrown-0.14.5.crate) = 141498
+SHA256 (rust/crates/hashbrown-0.16.0.crate) = 5419bdc4f6a9207fbeba6d11b604d481addf78ecd10c11ad51e76c2f6482748d
+SIZE (rust/crates/hashbrown-0.16.0.crate) = 141708
+SHA256 (rust/crates/hostname-0.4.1.crate) = a56f203cd1c76362b69e3863fd987520ac36cf70a8c92627449b2f64a8cf7d65
+SIZE (rust/crates/hostname-0.4.1.crate) = 13819
SHA256 (rust/crates/http-0.2.12.crate) = 601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1
SIZE (rust/crates/http-0.2.12.crate) = 101964
-SHA256 (rust/crates/http-body-0.4.6.crate) = 7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2
-SIZE (rust/crates/http-body-0.4.6.crate) = 10773
+SHA256 (rust/crates/http-1.3.1.crate) = f4a85d31aea989eead29a3aaf9e1115a180df8282431156e533de47660892565
+SIZE (rust/crates/http-1.3.1.crate) = 106063
+SHA256 (rust/crates/http-body-1.0.1.crate) = 1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184
+SIZE (rust/crates/http-body-1.0.1.crate) = 6125
+SHA256 (rust/crates/http-body-util-0.1.3.crate) = b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a
+SIZE (rust/crates/http-body-util-0.1.3.crate) = 16975
SHA256 (rust/crates/http-range-0.1.5.crate) = 21dec9db110f5f872ed9699c3ecf50cf16f423502706ba5c72462e28d3157573
SIZE (rust/crates/http-range-0.1.5.crate) = 4871
-SHA256 (rust/crates/http-serde-1.1.3.crate) = 6f560b665ad9f1572cfcaf034f7fb84338a7ce945216d64a90fd81f046a3caee
-SIZE (rust/crates/http-serde-1.1.3.crate) = 4314
-SHA256 (rust/crates/httparse-1.9.5.crate) = 7d71d3574edd2771538b901e6549113b4006ece66150fb69c0fb6d9a2adae946
-SIZE (rust/crates/httparse-1.9.5.crate) = 39029
+SHA256 (rust/crates/http-serde-2.1.1.crate) = 0f056c8559e3757392c8d091e796416e4649d8e49e88b8d76df6c002f05027fd
+SIZE (rust/crates/http-serde-2.1.1.crate) = 6359
+SHA256 (rust/crates/httparse-1.10.1.crate) = 6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87
+SIZE (rust/crates/httparse-1.10.1.crate) = 45190
SHA256 (rust/crates/httpdate-1.0.3.crate) = df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9
SIZE (rust/crates/httpdate-1.0.3.crate) = 10639
-SHA256 (rust/crates/hyper-0.14.32.crate) = 41dfc780fdec9373c01bae43289ea34c972e40ee3c9f6b3c8801a35f35586ce7
-SIZE (rust/crates/hyper-0.14.32.crate) = 199622
-SHA256 (rust/crates/hyper-tls-0.5.0.crate) = d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905
-SIZE (rust/crates/hyper-tls-0.5.0.crate) = 13257
-SHA256 (rust/crates/icu_collections-1.5.0.crate) = db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526
-SIZE (rust/crates/icu_collections-1.5.0.crate) = 82762
-SHA256 (rust/crates/icu_locid-1.5.0.crate) = 13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637
-SIZE (rust/crates/icu_locid-1.5.0.crate) = 55131
-SHA256 (rust/crates/icu_locid_transform-1.5.0.crate) = 01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e
-SIZE (rust/crates/icu_locid_transform-1.5.0.crate) = 29094
-SHA256 (rust/crates/icu_locid_transform_data-1.5.0.crate) = fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e
-SIZE (rust/crates/icu_locid_transform_data-1.5.0.crate) = 44727
-SHA256 (rust/crates/icu_normalizer-1.5.0.crate) = 19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f
-SIZE (rust/crates/icu_normalizer-1.5.0.crate) = 53113
-SHA256 (rust/crates/icu_normalizer_data-1.5.0.crate) = f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516
-SIZE (rust/crates/icu_normalizer_data-1.5.0.crate) = 50561
-SHA256 (rust/crates/icu_properties-1.5.1.crate) = 93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5
-SIZE (rust/crates/icu_properties-1.5.1.crate) = 64479
-SHA256 (rust/crates/icu_properties_data-1.5.0.crate) = 67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569
-SIZE (rust/crates/icu_properties_data-1.5.0.crate) = 227993
-SHA256 (rust/crates/icu_provider-1.5.0.crate) = 6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9
-SIZE (rust/crates/icu_provider-1.5.0.crate) = 52722
-SHA256 (rust/crates/icu_provider_macros-1.5.0.crate) = 1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6
-SIZE (rust/crates/icu_provider_macros-1.5.0.crate) = 6436
+SHA256 (rust/crates/hyper-1.7.0.crate) = eb3aa54a13a0dfe7fbe3a59e0c76093041720fdc77b110cc0fc260fafb4dc51e
+SIZE (rust/crates/hyper-1.7.0.crate) = 157006
+SHA256 (rust/crates/hyper-tls-0.6.0.crate) = 70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0
+SIZE (rust/crates/hyper-tls-0.6.0.crate) = 15052
+SHA256 (rust/crates/hyper-util-0.1.17.crate) = 3c6995591a8f1380fcb4ba966a252a4b29188d51d2b89e3a252f5305be65aea8
+SIZE (rust/crates/hyper-util-0.1.17.crate) = 100999
+SHA256 (rust/crates/iana-time-zone-0.1.64.crate) = 33e57f83510bb73707521ebaffa789ec8caf86f9657cad665b092b581d40e9fb
+SIZE (rust/crates/iana-time-zone-0.1.64.crate) = 33152
+SHA256 (rust/crates/iana-time-zone-haiku-0.1.2.crate) = f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f
+SIZE (rust/crates/iana-time-zone-haiku-0.1.2.crate) = 7185
+SHA256 (rust/crates/icu_collections-2.0.0.crate) = 200072f5d0e3614556f94a9930d5dc3e0662a652823904c3a75dc3b0af7fee47
+SIZE (rust/crates/icu_collections-2.0.0.crate) = 83033
+SHA256 (rust/crates/icu_locale_core-2.0.0.crate) = 0cde2700ccaed3872079a65fb1a78f6c0a36c91570f28755dda67bc8f7d9f00a
+SIZE (rust/crates/icu_locale_core-2.0.0.crate) = 74430
+SHA256 (rust/crates/icu_normalizer-2.0.0.crate) = 436880e8e18df4d7bbc06d58432329d6458cc84531f7ac5f024e93deadb37979
+SIZE (rust/crates/icu_normalizer-2.0.0.crate) = 61543
+SHA256 (rust/crates/icu_normalizer_data-2.0.0.crate) = 00210d6893afc98edb752b664b8890f0ef174c8adbb8d0be9710fa66fbbf72d3
+SIZE (rust/crates/icu_normalizer_data-2.0.0.crate) = 68101
+SHA256 (rust/crates/icu_properties-2.0.1.crate) = 016c619c1eeb94efb86809b015c58f479963de65bdb6253345c1a1276f22e32b
+SIZE (rust/crates/icu_properties-2.0.1.crate) = 58165
+SHA256 (rust/crates/icu_properties_data-2.0.1.crate) = 298459143998310acd25ffe6810ed544932242d3f07083eee1084d83a71bd632
+SIZE (rust/crates/icu_properties_data-2.0.1.crate) = 159735
+SHA256 (rust/crates/icu_provider-2.0.0.crate) = 03c80da27b5f4187909049ee2d72f276f0d9f99a42c306bd0131ecfe04d8e5af
+SIZE (rust/crates/icu_provider-2.0.0.crate) = 50966
+SHA256 (rust/crates/ident_case-1.0.1.crate) = b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39
+SIZE (rust/crates/ident_case-1.0.1.crate) = 3492
SHA256 (rust/crates/idna-0.1.5.crate) = 38f09e0f0b1fb55fdee1f17470ad800da77af5186a1a76c026b679358b7e844e
SIZE (rust/crates/idna-0.1.5.crate) = 258735
-SHA256 (rust/crates/idna-0.3.0.crate) = e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6
-SIZE (rust/crates/idna-0.3.0.crate) = 271128
-SHA256 (rust/crates/idna-1.0.3.crate) = 686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e
-SIZE (rust/crates/idna-1.0.3.crate) = 142515
-SHA256 (rust/crates/idna_adapter-1.2.0.crate) = daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71
-SIZE (rust/crates/idna_adapter-1.2.0.crate) = 8206
+SHA256 (rust/crates/idna-1.1.0.crate) = 3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de
+SIZE (rust/crates/idna-1.1.0.crate) = 148747
+SHA256 (rust/crates/idna_adapter-1.2.1.crate) = 3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344
+SIZE (rust/crates/idna_adapter-1.2.1.crate) = 10389
SHA256 (rust/crates/ignore-0.4.23.crate) = 6d89fd380afde86567dfba715db065673989d6253f42b88179abd3eae47bda4b
SIZE (rust/crates/ignore-0.4.23.crate) = 55901
SHA256 (rust/crates/impl-more-0.1.9.crate) = e8a5a9a0ff0086c7a148acb942baaabeadf9504d10400b5a05645853729b9cd2
SIZE (rust/crates/impl-more-0.1.9.crate) = 15583
-SHA256 (rust/crates/indexmap-1.9.3.crate) = bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99
-SIZE (rust/crates/indexmap-1.9.3.crate) = 54653
-SHA256 (rust/crates/indexmap-2.7.0.crate) = 62f822373a4fe84d4bb149bf54e584a7f4abec90e072ed49cda0edea5b95471f
-SIZE (rust/crates/indexmap-2.7.0.crate) = 85335
-SHA256 (rust/crates/instant-0.1.13.crate) = e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222
-SIZE (rust/crates/instant-0.1.13.crate) = 6305
-SHA256 (rust/crates/ipnet-2.10.1.crate) = ddc24109865250148c2e0f3d25d4f0f479571723792d3802153c60922a4fb708
-SIZE (rust/crates/ipnet-2.10.1.crate) = 28407
+SHA256 (rust/crates/indexmap-2.11.4.crate) = 4b0f83760fb341a774ed326568e19f5a863af4a952def8c39f9ab92fd95b88e5
+SIZE (rust/crates/indexmap-2.11.4.crate) = 100302
+SHA256 (rust/crates/io-uring-0.7.10.crate) = 046fa2d4d00aea763528b4950358d0ead425372445dc8ff86312b3c69ff7727b
+SIZE (rust/crates/io-uring-0.7.10.crate) = 103070
+SHA256 (rust/crates/ipnet-2.11.0.crate) = 469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130
+SIZE (rust/crates/ipnet-2.11.0.crate) = 29718
+SHA256 (rust/crates/iri-string-0.7.8.crate) = dbc5ebe9c3a1a7a5127f920a418f7585e9e758e911d0466ed004f393b0e380b2
+SIZE (rust/crates/iri-string-0.7.8.crate) = 141493
SHA256 (rust/crates/is_terminal_polyfill-1.70.1.crate) = 7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf
SIZE (rust/crates/is_terminal_polyfill-1.70.1.crate) = 7492
-SHA256 (rust/crates/itoa-1.0.14.crate) = d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674
-SIZE (rust/crates/itoa-1.0.14.crate) = 11210
-SHA256 (rust/crates/jobserver-0.1.32.crate) = 48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0
-SIZE (rust/crates/jobserver-0.1.32.crate) = 27549
-SHA256 (rust/crates/js-sys-0.3.76.crate) = 6717b6b5b077764fb5966237269cb3c64edddde4b14ce42647430a78ced9e7b7
-SIZE (rust/crates/js-sys-0.3.76.crate) = 54420
+SHA256 (rust/crates/itoa-1.0.15.crate) = 4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c
+SIZE (rust/crates/itoa-1.0.15.crate) = 11231
+SHA256 (rust/crates/jobserver-0.1.34.crate) = 9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33
+SIZE (rust/crates/jobserver-0.1.34.crate) = 29013
+SHA256 (rust/crates/js-sys-0.3.81.crate) = ec48937a97411dcb524a265206ccd4c90bb711fca92b2792c407f268825b9305
+SIZE (rust/crates/js-sys-0.3.81.crate) = 56399
SHA256 (rust/crates/language-tags-0.3.2.crate) = d4345964bb142484797b161f473a503a434de77149dd8c7427788c6e13379388
SIZE (rust/crates/language-tags-0.3.2.crate) = 53420
SHA256 (rust/crates/lazy_static-1.5.0.crate) = bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe
SIZE (rust/crates/lazy_static-1.5.0.crate) = 14025
-SHA256 (rust/crates/lettre-0.10.4.crate) = 76bd09637ae3ec7bd605b8e135e757980b3968430ff2b1a4a94fb7769e50166d
-SIZE (rust/crates/lettre-0.10.4.crate) = 135635
-SHA256 (rust/crates/libc-0.2.169.crate) = b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a
-SIZE (rust/crates/libc-0.2.169.crate) = 757901
-SHA256 (rust/crates/libstrophe-0.17.0.crate) = 2402afba5aee331514acdac4d70d8cca90278a0ec38eb0a4907ca57c78f78857
-SIZE (rust/crates/libstrophe-0.17.0.crate) = 36712
-SHA256 (rust/crates/libstrophe-sys-bindgen-5.0.0.crate) = 120583eae8b25bc86538344771e2391c92e062b5268a4511440bb94b3ae43360
-SIZE (rust/crates/libstrophe-sys-bindgen-5.0.0.crate) = 7279
-SHA256 (rust/crates/linux-raw-sys-0.4.14.crate) = 78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89
-SIZE (rust/crates/linux-raw-sys-0.4.14.crate) = 1826665
-SHA256 (rust/crates/litemap-0.7.4.crate) = 4ee93343901ab17bd981295f2cf0026d4ad018c7c31ba84549a4ddbb47a45104
-SIZE (rust/crates/litemap-0.7.4.crate) = 28257
+SHA256 (rust/crates/lettre-0.11.18.crate) = 5cb54db6ff7a89efac87dba5baeac57bb9ccd726b49a9b6f21fb92b3966aaf56
+SIZE (rust/crates/lettre-0.11.18.crate) = 158938
+SHA256 (rust/crates/libc-0.2.176.crate) = 58f929b4d672ea937a23a1ab494143d968337a5f47e56d0815df1e0890ddf174
+SIZE (rust/crates/libc-0.2.176.crate) = 790040
+SHA256 (rust/crates/libssh2-sys-0.3.1.crate) = 220e4f05ad4a218192533b300327f5150e809b54c4ec83b5a1d91833601811b9
+SIZE (rust/crates/libssh2-sys-0.3.1.crate) = 582851
+SHA256 (rust/crates/libstrophe-0.20.2.crate) = fb35e85fbd66493ccd1a0ce1791e71fb607b6fdefd95bce35704b5a144a73443
+SIZE (rust/crates/libstrophe-0.20.2.crate) = 49135
+SHA256 (rust/crates/libstrophe-sys-bindgen-8.0.2.crate) = fbd8ec6a1e655debe0a535546653e697c01867a4e01ba3b0a5bd730b7096e0be
+SIZE (rust/crates/libstrophe-sys-bindgen-8.0.2.crate) = 10199
+SHA256 (rust/crates/libz-sys-1.1.22.crate) = 8b70e7a7df205e92a1a4cd9aaae7898dac0aa555503cc0a649494d0d60e7651d
+SIZE (rust/crates/libz-sys-1.1.22.crate) = 841053
+SHA256 (rust/crates/linux-raw-sys-0.11.0.crate) = df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039
+SIZE (rust/crates/linux-raw-sys-0.11.0.crate) = 2659624
+SHA256 (rust/crates/litemap-0.8.0.crate) = 241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956
+SIZE (rust/crates/litemap-0.8.0.crate) = 34344
SHA256 (rust/crates/local-channel-0.1.5.crate) = b6cbc85e69b8df4b8bb8b89ec634e7189099cea8927a276b7384ce5488e53ec8
SIZE (rust/crates/local-channel-0.1.5.crate) = 7881
SHA256 (rust/crates/local-waker-0.1.4.crate) = 4d873d7c67ce09b42110d801813efbc9364414e356be9935700d368351657487
SIZE (rust/crates/local-waker-0.1.4.crate) = 6730
-SHA256 (rust/crates/lock_api-0.4.12.crate) = 07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17
-SIZE (rust/crates/lock_api-0.4.12.crate) = 27591
-SHA256 (rust/crates/log-0.4.22.crate) = a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24
-SIZE (rust/crates/log-0.4.22.crate) = 44027
-SHA256 (rust/crates/match_cfg-0.1.0.crate) = ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4
-SIZE (rust/crates/match_cfg-0.1.0.crate) = 7153
+SHA256 (rust/crates/lock_api-0.4.13.crate) = 96936507f153605bddfcda068dd804796c84324ed2510809e5b2a624c81da765
+SIZE (rust/crates/lock_api-0.4.13.crate) = 28565
+SHA256 (rust/crates/log-0.4.28.crate) = 34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432
+SIZE (rust/crates/log-0.4.28.crate) = 51131
SHA256 (rust/crates/matches-0.1.10.crate) = 2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5
SIZE (rust/crates/matches-0.1.10.crate) = 2592
-SHA256 (rust/crates/memchr-2.7.4.crate) = 78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3
-SIZE (rust/crates/memchr-2.7.4.crate) = 96670
+SHA256 (rust/crates/memchr-2.7.6.crate) = f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273
+SIZE (rust/crates/memchr-2.7.6.crate) = 97616
SHA256 (rust/crates/mime-0.3.17.crate) = 6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a
SIZE (rust/crates/mime-0.3.17.crate) = 15712
SHA256 (rust/crates/mime_guess-2.0.5.crate) = f7c44f8e672c00fe5308fa235f821cb4198414e1c77935c1ab6948d3fd78550e
SIZE (rust/crates/mime_guess-2.0.5.crate) = 27166
-SHA256 (rust/crates/minimal-lexical-0.2.1.crate) = 68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a
-SIZE (rust/crates/minimal-lexical-0.2.1.crate) = 94841
-SHA256 (rust/crates/miniz_oxide-0.8.2.crate) = 4ffbe83022cedc1d264172192511ae958937694cd57ce297164951b8b3568394
-SIZE (rust/crates/miniz_oxide-0.8.2.crate) = 59068
-SHA256 (rust/crates/mio-1.0.3.crate) = 2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd
-SIZE (rust/crates/mio-1.0.3.crate) = 103703
-SHA256 (rust/crates/native-tls-0.2.12.crate) = a8614eb2c83d59d1c8cc974dd3f920198647674a0a035e1af1fa58707e317466
-SIZE (rust/crates/native-tls-0.2.12.crate) = 29517
-SHA256 (rust/crates/nom-7.1.3.crate) = d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a
-SIZE (rust/crates/nom-7.1.3.crate) = 117570
+SHA256 (rust/crates/miniz_oxide-0.8.9.crate) = 1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316
+SIZE (rust/crates/miniz_oxide-0.8.9.crate) = 67132
+SHA256 (rust/crates/mio-1.0.4.crate) = 78bed444cc8a2160f01cbcf811ef18cac863ad68ae8ca62092e8db51d51c761c
+SIZE (rust/crates/mio-1.0.4.crate) = 104212
+SHA256 (rust/crates/native-tls-0.2.14.crate) = 87de3442987e9dbec73158d5c715e7ad9072fda936bb03d19d7fa10e00520f0e
+SIZE (rust/crates/native-tls-0.2.14.crate) = 29385
+SHA256 (rust/crates/nom-8.0.0.crate) = df9761775871bdef83bee530e60050f7e54b1105350d6884eb0fb4f46c2f9405
+SIZE (rust/crates/nom-8.0.0.crate) = 135590
SHA256 (rust/crates/num-conv-0.1.0.crate) = 51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9
SIZE (rust/crates/num-conv-0.1.0.crate) = 7444
SHA256 (rust/crates/num-traits-0.2.19.crate) = 071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841
SIZE (rust/crates/num-traits-0.2.19.crate) = 51631
-SHA256 (rust/crates/object-0.36.7.crate) = 62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87
-SIZE (rust/crates/object-0.36.7.crate) = 329938
-SHA256 (rust/crates/once_cell-1.20.2.crate) = 1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775
-SIZE (rust/crates/once_cell-1.20.2.crate) = 33394
-SHA256 (rust/crates/openssl-0.10.68.crate) = 6174bc48f102d208783c2c84bf931bb75927a617866870de8a4ea85597f871f5
-SIZE (rust/crates/openssl-0.10.68.crate) = 276578
+SHA256 (rust/crates/object-0.37.3.crate) = ff76201f031d8863c38aa7f905eca4f53abbfa15f609db4277d44cd8938f33fe
+SIZE (rust/crates/object-0.37.3.crate) = 344032
+SHA256 (rust/crates/once_cell-1.21.3.crate) = 42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d
+SIZE (rust/crates/once_cell-1.21.3.crate) = 34534
+SHA256 (rust/crates/once_cell_polyfill-1.70.1.crate) = a4895175b425cb1f87721b59f0f286c2092bd4af812243672510e1ac53e2e0ad
+SIZE (rust/crates/once_cell_polyfill-1.70.1.crate) = 7510
+SHA256 (rust/crates/openssl-0.10.73.crate) = 8505734d46c8ab1e19a1dce3aef597ad87dcb4c37e7188231769bd6bd51cebf8
+SIZE (rust/crates/openssl-0.10.73.crate) = 283994
SHA256 (rust/crates/openssl-macros-0.1.1.crate) = a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c
SIZE (rust/crates/openssl-macros-0.1.1.crate) = 5601
-SHA256 (rust/crates/openssl-probe-0.1.5.crate) = ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf
-SIZE (rust/crates/openssl-probe-0.1.5.crate) = 7227
-SHA256 (rust/crates/openssl-src-300.4.1+3.4.0.crate) = faa4eac4138c62414b5622d1b31c5c304f34b406b013c079c2bbc652fdd6678c
-SIZE (rust/crates/openssl-src-300.4.1+3.4.0.crate) = 9945831
-SHA256 (rust/crates/openssl-sys-0.9.104.crate) = 45abf306cbf99debc8195b66b7346498d7b10c210de50418b5ccd7ceba08c741
-SIZE (rust/crates/openssl-sys-0.9.104.crate) = 72287
-SHA256 (rust/crates/parking_lot-0.12.3.crate) = f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27
-SIZE (rust/crates/parking_lot-0.12.3.crate) = 41860
-SHA256 (rust/crates/parking_lot_core-0.9.10.crate) = 1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8
-SIZE (rust/crates/parking_lot_core-0.9.10.crate) = 32406
+SHA256 (rust/crates/openssl-probe-0.1.6.crate) = d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e
+SIZE (rust/crates/openssl-probe-0.1.6.crate) = 8128
+SHA256 (rust/crates/openssl-src-300.5.2+3.5.2.crate) = d270b79e2926f5150189d475bc7e9d2c69f9c4697b185fa917d5a32b792d21b4
+SIZE (rust/crates/openssl-src-300.5.2+3.5.2.crate) = 10557986
+SHA256 (rust/crates/openssl-sys-0.9.109.crate) = 90096e2e47630d78b7d1c20952dc621f957103f8bc2c8359ec81290d75238571
+SIZE (rust/crates/openssl-sys-0.9.109.crate) = 78247
+SHA256 (rust/crates/parking_lot-0.12.4.crate) = 70d58bf43669b5795d1576d0641cfb6fbb2057bf629506267a92807158584a13
+SIZE (rust/crates/parking_lot-0.12.4.crate) = 46779
+SHA256 (rust/crates/parking_lot_core-0.9.11.crate) = bc838d2a56b5b1a6c25f55575dfc605fabb63bb2365f6c2353ef9159aa69e4a5
+SIZE (rust/crates/parking_lot_core-0.9.11.crate) = 34773
SHA256 (rust/crates/paste-1.0.15.crate) = 57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a
SIZE (rust/crates/paste-1.0.15.crate) = 18374
SHA256 (rust/crates/percent-encoding-1.0.1.crate) = 31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831
SIZE (rust/crates/percent-encoding-1.0.1.crate) = 10057
-SHA256 (rust/crates/percent-encoding-2.3.1.crate) = e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e
-SIZE (rust/crates/percent-encoding-2.3.1.crate) = 10235
-SHA256 (rust/crates/pest-2.7.15.crate) = 8b7cafe60d6cf8e62e1b9b2ea516a089c008945bb5a275416789e7db0bc199dc
-SIZE (rust/crates/pest-2.7.15.crate) = 127895
-SHA256 (rust/crates/pest_derive-2.7.15.crate) = 816518421cfc6887a0d62bf441b6ffb4536fcc926395a69e1a85852d4363f57e
-SIZE (rust/crates/pest_derive-2.7.15.crate) = 40745
-SHA256 (rust/crates/pest_generator-2.7.15.crate) = 7d1396fd3a870fc7838768d171b4616d5c91f6cc25e377b673d714567d99377b
-SIZE (rust/crates/pest_generator-2.7.15.crate) = 18417
-SHA256 (rust/crates/pest_meta-2.7.15.crate) = e1e58089ea25d717bfd31fb534e4f3afcc2cc569c70de3e239778991ea3b7dea
-SIZE (rust/crates/pest_meta-2.7.15.crate) = 42121
+SHA256 (rust/crates/percent-encoding-2.3.2.crate) = 9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220
+SIZE (rust/crates/percent-encoding-2.3.2.crate) = 11583
+SHA256 (rust/crates/pest-2.8.2.crate) = 21e0a3a33733faeaf8651dfee72dd0f388f0c8e5ad496a3478fa5a922f49cfa8
+SIZE (rust/crates/pest-2.8.2.crate) = 130430
+SHA256 (rust/crates/pest_derive-2.8.2.crate) = bc58706f770acb1dbd0973e6530a3cff4746fb721207feb3a8a6064cd0b6c663
+SIZE (rust/crates/pest_derive-2.8.2.crate) = 42335
+SHA256 (rust/crates/pest_generator-2.8.2.crate) = 6d4f36811dfe07f7b8573462465d5cb8965fffc2e71ae377a33aecf14c2c9a2f
+SIZE (rust/crates/pest_generator-2.8.2.crate) = 18669
+SHA256 (rust/crates/pest_meta-2.8.2.crate) = 42919b05089acbd0a5dcd5405fb304d17d1053847b81163d09c4ad18ce8e8420
+SIZE (rust/crates/pest_meta-2.8.2.crate) = 42952
SHA256 (rust/crates/pin-project-lite-0.2.16.crate) = 3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b
SIZE (rust/crates/pin-project-lite-0.2.16.crate) = 30504
SHA256 (rust/crates/pin-utils-0.1.0.crate) = 8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184
SIZE (rust/crates/pin-utils-0.1.0.crate) = 7580
-SHA256 (rust/crates/ping-0.4.1.crate) = 6370a87a1a5bacec2eb80fa24ff3b7f47a1d47404a96611230d3b0d2e0f51141
-SIZE (rust/crates/ping-0.4.1.crate) = 7891
-SHA256 (rust/crates/pkg-config-0.3.31.crate) = 953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2
-SIZE (rust/crates/pkg-config-0.3.31.crate) = 20880
+SHA256 (rust/crates/ping-0.6.1.crate) = 2e6a3edd965f05ef07cbeb254129e3fdd97c0ea4110bef39cf2c1fa3307ce605
+SIZE (rust/crates/ping-0.6.1.crate) = 11086
+SHA256 (rust/crates/pkg-config-0.3.32.crate) = 7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c
+SIZE (rust/crates/pkg-config-0.3.32.crate) = 21370
+SHA256 (rust/crates/potential_utf-0.1.3.crate) = 84df19adbe5b5a0782edcab45899906947ab039ccf4573713735ee7de1e6b08a
+SIZE (rust/crates/potential_utf-0.1.3.crate) = 9698
SHA256 (rust/crates/powerfmt-0.2.0.crate) = 439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391
SIZE (rust/crates/powerfmt-0.2.0.crate) = 15165
-SHA256 (rust/crates/ppv-lite86-0.2.20.crate) = 77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04
-SIZE (rust/crates/ppv-lite86-0.2.20.crate) = 22478
-SHA256 (rust/crates/proc-macro2-1.0.92.crate) = 37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0
-SIZE (rust/crates/proc-macro2-1.0.92.crate) = 52353
-SHA256 (rust/crates/quote-1.0.38.crate) = 0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc
-SIZE (rust/crates/quote-1.0.38.crate) = 31252
-SHA256 (rust/crates/quoted_printable-0.4.8.crate) = 5a3866219251662ec3b26fc217e3e05bf9c4f84325234dfb96bf0bf840889e49
-SIZE (rust/crates/quoted_printable-0.4.8.crate) = 7132
+SHA256 (rust/crates/ppv-lite86-0.2.21.crate) = 85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9
+SIZE (rust/crates/ppv-lite86-0.2.21.crate) = 22522
+SHA256 (rust/crates/prettyplease-0.2.37.crate) = 479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b
+SIZE (rust/crates/prettyplease-0.2.37.crate) = 72033
+SHA256 (rust/crates/proc-macro2-1.0.101.crate) = 89ae43fd86e4158d6db51ad8e2b80f313af9cc74f5c0e03ccb87de09998732de
+SIZE (rust/crates/proc-macro2-1.0.101.crate) = 53886
+SHA256 (rust/crates/psm-0.1.26.crate) = 6e944464ec8536cd1beb0bbfd96987eb5e3b72f2ecdafdc5c769a37f1fa2ae1f
+SIZE (rust/crates/psm-0.1.26.crate) = 23541
+SHA256 (rust/crates/quote-1.0.40.crate) = 1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d
+SIZE (rust/crates/quote-1.0.40.crate) = 31063
+SHA256 (rust/crates/quoted_printable-0.5.1.crate) = 640c9bd8497b02465aeef5375144c26062e0dcd5939dfcbb0f5db76cb8c17c73
+SIZE (rust/crates/quoted_printable-0.5.1.crate) = 8322
+SHA256 (rust/crates/r-efi-5.3.0.crate) = 69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f
+SIZE (rust/crates/r-efi-5.3.0.crate) = 64532
SHA256 (rust/crates/rand-0.8.5.crate) = 34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404
SIZE (rust/crates/rand-0.8.5.crate) = 87113
+SHA256 (rust/crates/rand-0.9.2.crate) = 6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1
+SIZE (rust/crates/rand-0.9.2.crate) = 99930
SHA256 (rust/crates/rand_chacha-0.3.1.crate) = e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88
SIZE (rust/crates/rand_chacha-0.3.1.crate) = 15251
+SHA256 (rust/crates/rand_chacha-0.9.0.crate) = d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb
+SIZE (rust/crates/rand_chacha-0.9.0.crate) = 18258
SHA256 (rust/crates/rand_core-0.6.4.crate) = ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c
SIZE (rust/crates/rand_core-0.6.4.crate) = 22666
-SHA256 (rust/crates/redox_syscall-0.5.8.crate) = 03a862b389f93e68874fbf580b9de08dd02facb9a788ebadaf4a3fd33cf58834
-SIZE (rust/crates/redox_syscall-0.5.8.crate) = 26319
-SHA256 (rust/crates/regex-1.11.1.crate) = b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191
-SIZE (rust/crates/regex-1.11.1.crate) = 254170
-SHA256 (rust/crates/regex-automata-0.4.9.crate) = 809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908
-SIZE (rust/crates/regex-automata-0.4.9.crate) = 618525
-SHA256 (rust/crates/regex-lite-0.1.6.crate) = 53a49587ad06b26609c52e423de037e7f57f20d53535d66e08c695f347df952a
-SIZE (rust/crates/regex-lite-0.1.6.crate) = 95278
-SHA256 (rust/crates/regex-syntax-0.8.5.crate) = 2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c
-SIZE (rust/crates/regex-syntax-0.8.5.crate) = 357541
-SHA256 (rust/crates/reqwest-0.11.27.crate) = dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62
-SIZE (rust/crates/reqwest-0.11.27.crate) = 163155
-SHA256 (rust/crates/run_script-0.10.1.crate) = 829f98fdc58d78989dd9af83be28bc15c94a7d77f9ecdb54abbbc0b1829ba9c7
-SIZE (rust/crates/run_script-0.10.1.crate) = 1135566
-SHA256 (rust/crates/rustc-demangle-0.1.24.crate) = 719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f
-SIZE (rust/crates/rustc-demangle-0.1.24.crate) = 29047
-SHA256 (rust/crates/rustc_version-0.4.1.crate) = cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92
-SIZE (rust/crates/rustc_version-0.4.1.crate) = 12245
-SHA256 (rust/crates/rustix-0.38.42.crate) = f93dc38ecbab2eb790ff964bb77fa94faf256fd3e73285fd7ba0903b76bedb85
-SIZE (rust/crates/rustix-0.38.42.crate) = 378683
-SHA256 (rust/crates/rustls-pemfile-1.0.4.crate) = 1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c
-SIZE (rust/crates/rustls-pemfile-1.0.4.crate) = 22092
-SHA256 (rust/crates/ryu-1.0.18.crate) = f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f
-SIZE (rust/crates/ryu-1.0.18.crate) = 47713
+SHA256 (rust/crates/rand_core-0.9.3.crate) = 99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38
+SIZE (rust/crates/rand_core-0.9.3.crate) = 24543
+SHA256 (rust/crates/redox_syscall-0.5.17.crate) = 5407465600fb0548f1442edf71dd20683c6ed326200ace4b1ef0763521bb3b77
+SIZE (rust/crates/redox_syscall-0.5.17.crate) = 30002
+SHA256 (rust/crates/ref-cast-1.0.24.crate) = 4a0ae411dbe946a674d89546582cea4ba2bb8defac896622d6496f14c23ba5cf
+SIZE (rust/crates/ref-cast-1.0.24.crate) = 15252
+SHA256 (rust/crates/ref-cast-impl-1.0.24.crate) = 1165225c21bff1f3bbce98f5a1f889949bc902d3575308cc7b0de30b4f6d27c7
+SIZE (rust/crates/ref-cast-impl-1.0.24.crate) = 9968
+SHA256 (rust/crates/regex-1.11.3.crate) = 8b5288124840bee7b386bc413c487869b360b2b4ec421ea56425128692f2a82c
+SIZE (rust/crates/regex-1.11.3.crate) = 163275
+SHA256 (rust/crates/regex-automata-0.4.11.crate) = 833eb9ce86d40ef33cb1306d8accf7bc8ec2bfea4355cbdebb3df68b40925cad
+SIZE (rust/crates/regex-automata-0.4.11.crate) = 622880
+SHA256 (rust/crates/regex-lite-0.1.7.crate) = 943f41321c63ef1c92fd763bfe054d2668f7f225a5c29f0105903dc2fc04ba30
+SIZE (rust/crates/regex-lite-0.1.7.crate) = 96903
+SHA256 (rust/crates/regex-syntax-0.8.6.crate) = caf4aa5b0f434c91fe5c7f1ecb6a5ece2130b02ad2a590589dda5146df959001
+SIZE (rust/crates/regex-syntax-0.8.6.crate) = 358808
+SHA256 (rust/crates/reqwest-0.12.23.crate) = d429f34c8092b2d42c7c93cec323bb4adeb7c67698f70839adec842ec10c7ceb
+SIZE (rust/crates/reqwest-0.12.23.crate) = 161307
+SHA256 (rust/crates/rmcp-0.7.0.crate) = 534fd1cd0601e798ac30545ff2b7f4a62c6f14edd4aaed1cc5eb1e85f69f09af
+SIZE (rust/crates/rmcp-0.7.0.crate) = 180670
+SHA256 (rust/crates/rmcp-actix-web-0.8.4.crate) = 6618de2af19d5910a667b2b87758c80313b5c5a566c1f22d5329f94910121b06
+SIZE (rust/crates/rmcp-actix-web-0.8.4.crate) = 77580
+SHA256 (rust/crates/rmcp-macros-0.7.0.crate) = 9ba777eb0e5f53a757e36f0e287441da0ab766564ba7201600eeb92a4753022e
+SIZE (rust/crates/rmcp-macros-0.7.0.crate) = 13213
+SHA256 (rust/crates/run_script-0.11.0.crate) = f20d7c40e6d6fc2ff69ad8e8bac4d39a5fc1874402647ac92b620954d56d5c3e
+SIZE (rust/crates/run_script-0.11.0.crate) = 14052
+SHA256 (rust/crates/rustc-demangle-0.1.26.crate) = 56f7d92ca342cea22a06f2121d944b4fd82af56988c270852495420f961d4ace
+SIZE (rust/crates/rustc-demangle-0.1.26.crate) = 30340
+SHA256 (rust/crates/rustix-1.1.2.crate) = cd15f8a2c5551a84d56efdc1cd049089e409ac19a3072d5037a17fd70719ff3e
+SIZE (rust/crates/rustix-1.1.2.crate) = 422717
+SHA256 (rust/crates/rustls-pki-types-1.12.0.crate) = 229a4a4c221013e7e1f1a043678c5cc39fe5171437c88fb47151a21e6f5b5c79
+SIZE (rust/crates/rustls-pki-types-1.12.0.crate) = 64740
+SHA256 (rust/crates/rustversion-1.0.22.crate) = b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d
+SIZE (rust/crates/rustversion-1.0.22.crate) = 21096
+SHA256 (rust/crates/ryu-1.0.20.crate) = 28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f
+SIZE (rust/crates/ryu-1.0.20.crate) = 48738
SHA256 (rust/crates/same-file-1.0.6.crate) = 93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502
SIZE (rust/crates/same-file-1.0.6.crate) = 10183
-SHA256 (rust/crates/schannel-0.1.27.crate) = 1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d
-SIZE (rust/crates/schannel-0.1.27.crate) = 42772
+SHA256 (rust/crates/schannel-0.1.28.crate) = 891d81b926048e76efe18581bf793546b4c0eaf8448d72be8de2bbee5fd166e1
+SIZE (rust/crates/schannel-0.1.28.crate) = 42312
+SHA256 (rust/crates/schemars-1.0.4.crate) = 82d20c4491bc164fa2f6c5d44565947a52ad80b9505d8e36f8d54c27c739fcd0
+SIZE (rust/crates/schemars-1.0.4.crate) = 88282
+SHA256 (rust/crates/schemars_derive-1.0.4.crate) = 33d020396d1d138dc19f1165df7545479dcd58d93810dc5d646a16e55abefa80
+SIZE (rust/crates/schemars_derive-1.0.4.crate) = 31126
SHA256 (rust/crates/scopeguard-1.2.0.crate) = 94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49
SIZE (rust/crates/scopeguard-1.2.0.crate) = 11619
SHA256 (rust/crates/security-framework-2.11.1.crate) = 897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02
SIZE (rust/crates/security-framework-2.11.1.crate) = 80188
-SHA256 (rust/crates/security-framework-sys-2.13.0.crate) = 1863fd3768cd83c56a7f60faa4dc0d403f1b6df0a38c3c25f44b7894e45370d5
-SIZE (rust/crates/security-framework-sys-2.13.0.crate) = 20496
-SHA256 (rust/crates/semver-1.0.24.crate) = 3cb6eb87a131f756572d7fb904f6e7b68633f09cca868c5df1c4b8d1a694bbba
-SIZE (rust/crates/semver-1.0.24.crate) = 31267
-SHA256 (rust/crates/serde-1.0.217.crate) = 02fc4265df13d6fa1d00ecff087228cc0a2b5f3c0e87e258d8b94a156e984c70
-SIZE (rust/crates/serde-1.0.217.crate) = 79019
-SHA256 (rust/crates/serde_derive-1.0.217.crate) = 5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0
-SIZE (rust/crates/serde_derive-1.0.217.crate) = 57749
-SHA256 (rust/crates/serde_json-1.0.134.crate) = d00f4175c42ee48b15416f6193a959ba3a0d67fc699a0db9ad12df9f83991c7d
-SIZE (rust/crates/serde_json-1.0.134.crate) = 154351
-SHA256 (rust/crates/serde_spanned-0.6.8.crate) = 87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1
-SIZE (rust/crates/serde_spanned-0.6.8.crate) = 9330
+SHA256 (rust/crates/security-framework-sys-2.15.0.crate) = cc1f0cbffaac4852523ce30d8bd3c5cdc873501d96ff467ca09b6767bb8cd5c0
+SIZE (rust/crates/security-framework-sys-2.15.0.crate) = 20718
+SHA256 (rust/crates/serde-1.0.227.crate) = 80ece43fc6fbed4eb5392ab50c07334d3e577cbf40997ee896fe7af40bba4245
+SIZE (rust/crates/serde-1.0.227.crate) = 83643
+SHA256 (rust/crates/serde_core-1.0.227.crate) = 7a576275b607a2c86ea29e410193df32bc680303c82f31e275bbfcafe8b33be5
+SIZE (rust/crates/serde_core-1.0.227.crate) = 63077
+SHA256 (rust/crates/serde_derive-1.0.227.crate) = 51e694923b8824cf0e9b382adf0f60d4e05f348f357b38833a3fa5ed7c2ede04
+SIZE (rust/crates/serde_derive-1.0.227.crate) = 59617
+SHA256 (rust/crates/serde_derive_internals-0.29.1.crate) = 18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711
+SIZE (rust/crates/serde_derive_internals-0.29.1.crate) = 26189
+SHA256 (rust/crates/serde_json-1.0.145.crate) = 402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c
+SIZE (rust/crates/serde_json-1.0.145.crate) = 155748
+SHA256 (rust/crates/serde_spanned-1.0.2.crate) = 5417783452c2be558477e104686f7de5dae53dba813c28435e0e70f82d9b04ee
+SIZE (rust/crates/serde_spanned-1.0.2.crate) = 11032
SHA256 (rust/crates/serde_urlencoded-0.7.1.crate) = d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd
SIZE (rust/crates/serde_urlencoded-0.7.1.crate) = 12822
SHA256 (rust/crates/sha1-0.10.6.crate) = e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba
SIZE (rust/crates/sha1-0.10.6.crate) = 13517
-SHA256 (rust/crates/sha2-0.10.8.crate) = 793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8
-SIZE (rust/crates/sha2-0.10.8.crate) = 26357
+SHA256 (rust/crates/sha2-0.10.9.crate) = a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283
+SIZE (rust/crates/sha2-0.10.9.crate) = 29271
SHA256 (rust/crates/shlex-1.3.0.crate) = 0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64
SIZE (rust/crates/shlex-1.3.0.crate) = 18713
-SHA256 (rust/crates/signal-hook-registry-1.4.2.crate) = a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1
-SIZE (rust/crates/signal-hook-registry-1.4.2.crate) = 18064
-SHA256 (rust/crates/slab-0.4.9.crate) = 8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67
-SIZE (rust/crates/slab-0.4.9.crate) = 17108
-SHA256 (rust/crates/smallvec-1.13.2.crate) = 3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67
-SIZE (rust/crates/smallvec-1.13.2.crate) = 35216
+SHA256 (rust/crates/signal-hook-registry-1.4.6.crate) = b2a4719bff48cee6b39d12c020eeb490953ad2443b7055bd0b21fca26bd8c28b
+SIZE (rust/crates/signal-hook-registry-1.4.6.crate) = 19277
+SHA256 (rust/crates/slab-0.4.11.crate) = 7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589
+SIZE (rust/crates/slab-0.4.11.crate) = 18549
+SHA256 (rust/crates/smallvec-1.15.1.crate) = 67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03
+SIZE (rust/crates/smallvec-1.15.1.crate) = 38116
SHA256 (rust/crates/socket2-0.4.10.crate) = 9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d
SIZE (rust/crates/socket2-0.4.10.crate) = 45697
-SHA256 (rust/crates/socket2-0.5.8.crate) = c970269d99b64e60ec3bd6ad27270092a5394c4e309314b18ae3fe575695fbe8
-SIZE (rust/crates/socket2-0.5.8.crate) = 56309
+SHA256 (rust/crates/socket2-0.5.10.crate) = e22376abed350d73dd1cd119b57ffccad95b4e585a7cda43e286245ce23c0678
+SIZE (rust/crates/socket2-0.5.10.crate) = 58169
+SHA256 (rust/crates/socket2-0.6.0.crate) = 233504af464074f9d066d7b5416c5f9b894a5862a6506e306f7b816cdd6f1807
+SIZE (rust/crates/socket2-0.6.0.crate) = 57974
+SHA256 (rust/crates/sse-stream-0.2.1.crate) = eb4dc4d33c68ec1f27d386b5610a351922656e1fdf5c05bbaad930cd1519479a
+SIZE (rust/crates/sse-stream-0.2.1.crate) = 20239
+SHA256 (rust/crates/ssh2-0.9.5.crate) = 2f84d13b3b8a0d4e91a2629911e951db1bb8671512f5c09d7d4ba34500ba68c8
+SIZE (rust/crates/ssh2-0.9.5.crate) = 51725
SHA256 (rust/crates/stable_deref_trait-1.2.0.crate) = a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3
SIZE (rust/crates/stable_deref_trait-1.2.0.crate) = 8054
+SHA256 (rust/crates/stacker-0.1.21.crate) = cddb07e32ddb770749da91081d8d0ac3a16f1a569a18b20348cd371f5dead06b
+SIZE (rust/crates/stacker-0.1.21.crate) = 17009
SHA256 (rust/crates/strsim-0.11.1.crate) = 7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f
SIZE (rust/crates/strsim-0.11.1.crate) = 14266
-SHA256 (rust/crates/syn-2.0.95.crate) = 46f71c0377baf4ef1cc3e3402ded576dccc315800fbc62dfc7fe04b009773b4a
-SIZE (rust/crates/syn-2.0.95.crate) = 297136
-SHA256 (rust/crates/sync_wrapper-0.1.2.crate) = 2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160
-SIZE (rust/crates/sync_wrapper-0.1.2.crate) = 6933
-SHA256 (rust/crates/synstructure-0.13.1.crate) = c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971
-SIZE (rust/crates/synstructure-0.13.1.crate) = 18327
-SHA256 (rust/crates/system-configuration-0.5.1.crate) = ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7
-SIZE (rust/crates/system-configuration-0.5.1.crate) = 12618
-SHA256 (rust/crates/system-configuration-sys-0.5.0.crate) = a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9
-SIZE (rust/crates/system-configuration-sys-0.5.0.crate) = 6730
-SHA256 (rust/crates/tempfile-3.15.0.crate) = 9a8a559c81686f576e8cd0290cd2a24a2a9ad80c98b3478856500fcbd7acd704
-SIZE (rust/crates/tempfile-3.15.0.crate) = 35693
+SHA256 (rust/crates/syn-2.0.106.crate) = ede7c438028d4436d71104916910f5bb611972c5cfd7f89b8300a8186e6fada6
+SIZE (rust/crates/syn-2.0.106.crate) = 301514
+SHA256 (rust/crates/sync_wrapper-1.0.2.crate) = 0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263
+SIZE (rust/crates/sync_wrapper-1.0.2.crate) = 6958
+SHA256 (rust/crates/synstructure-0.13.2.crate) = 728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2
+SIZE (rust/crates/synstructure-0.13.2.crate) = 18950
+SHA256 (rust/crates/tempfile-3.23.0.crate) = 2d31c77bdf42a745371d260a26ca7163f1e0924b64afa0b688e61b5a9fa02f16
+SIZE (rust/crates/tempfile-3.23.0.crate) = 43063
SHA256 (rust/crates/tera-1.20.0.crate) = ab9d851b45e865f178319da0abdbfe6acbc4328759ff18dafc3a41c16b4cd2ee
SIZE (rust/crates/tera-1.20.0.crate) = 104452
SHA256 (rust/crates/thiserror-1.0.69.crate) = b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52
SIZE (rust/crates/thiserror-1.0.69.crate) = 22198
-SHA256 (rust/crates/thiserror-2.0.9.crate) = f072643fd0190df67a8bab670c20ef5d8737177d6ac6b2e9a236cb096206b2cc
-SIZE (rust/crates/thiserror-2.0.9.crate) = 28531
+SHA256 (rust/crates/thiserror-2.0.16.crate) = 3467d614147380f2e4e374161426ff399c91084acd2363eaf549172b3d5e60c0
+SIZE (rust/crates/thiserror-2.0.16.crate) = 29095
SHA256 (rust/crates/thiserror-impl-1.0.69.crate) = 4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1
SIZE (rust/crates/thiserror-impl-1.0.69.crate) = 18365
-SHA256 (rust/crates/thiserror-impl-2.0.9.crate) = 7b50fa271071aae2e6ee85f842e2e28ba8cd2c5fb67f11fcb1fd70b276f9e7d4
-SIZE (rust/crates/thiserror-impl-2.0.9.crate) = 21023
-SHA256 (rust/crates/time-0.3.37.crate) = 35e7868883861bd0e56d9ac6efcaaca0d6d5d82a2a7ec8209ff492c07cf37b21
-SIZE (rust/crates/time-0.3.37.crate) = 123257
-SHA256 (rust/crates/time-core-0.1.2.crate) = ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3
-SIZE (rust/crates/time-core-0.1.2.crate) = 7191
-SHA256 (rust/crates/time-macros-0.2.19.crate) = 2834e6017e3e5e4b9834939793b282bc03b37a3336245fa820e35e233e2a85de
-SIZE (rust/crates/time-macros-0.2.19.crate) = 24268
-SHA256 (rust/crates/tinystr-0.7.6.crate) = 9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f
-SIZE (rust/crates/tinystr-0.7.6.crate) = 16971
-SHA256 (rust/crates/tinyvec-1.8.1.crate) = 022db8904dfa342efe721985167e9fcd16c29b226db4397ed752a761cfce81e8
-SIZE (rust/crates/tinyvec-1.8.1.crate) = 47269
+SHA256 (rust/crates/thiserror-impl-2.0.16.crate) = 6c5e1be1c48b9172ee610da68fd9cd2770e7a4056cb3fc98710ee6906f0c7960
+SIZE (rust/crates/thiserror-impl-2.0.16.crate) = 21214
+SHA256 (rust/crates/time-0.3.44.crate) = 91e7d9e3bb61134e77bde20dd4825b97c010155709965fedf0f49bb138e52a9d
+SIZE (rust/crates/time-0.3.44.crate) = 143200
+SHA256 (rust/crates/time-core-0.1.6.crate) = 40868e7c1d2f0b8d73e4a8c7f0ff63af4f6d19be117e90bd73eb1d62cf831c6b
+SIZE (rust/crates/time-core-0.1.6.crate) = 9105
+SHA256 (rust/crates/time-macros-0.2.24.crate) = 30cfb0125f12d9c277f35663a0a33f8c30190f4e4574868a330595412d34ebf3
+SIZE (rust/crates/time-macros-0.2.24.crate) = 24715
+SHA256 (rust/crates/tinystr-0.8.1.crate) = 5d4f6d1145dcb577acf783d4e601bc1d76a13337bb54e6233add580b07344c8b
+SIZE (rust/crates/tinystr-0.8.1.crate) = 23333
+SHA256 (rust/crates/tinyvec-1.10.0.crate) = bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa
+SIZE (rust/crates/tinyvec-1.10.0.crate) = 51996
SHA256 (rust/crates/tinyvec_macros-0.1.1.crate) = 1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20
SIZE (rust/crates/tinyvec_macros-0.1.1.crate) = 5865
-SHA256 (rust/crates/tokio-1.42.0.crate) = 5cec9b21b0450273377fc97bd4c33a8acffc8c996c987a7c5b319a0083707551
-SIZE (rust/crates/tokio-1.42.0.crate) = 806998
+SHA256 (rust/crates/tokio-1.47.1.crate) = 89e49afdadebb872d3145a5638b59eb0691ea23e46ca484037cfab3b76b95038
+SIZE (rust/crates/tokio-1.47.1.crate) = 829790
+SHA256 (rust/crates/tokio-macros-2.5.0.crate) = 6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8
+SIZE (rust/crates/tokio-macros-2.5.0.crate) = 12617
SHA256 (rust/crates/tokio-native-tls-0.3.1.crate) = bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2
SIZE (rust/crates/tokio-native-tls-0.3.1.crate) = 20676
-SHA256 (rust/crates/tokio-util-0.7.13.crate) = d7fcaa8d55a2bdd6b83ace262b016eca0d79ee02818c5c1bcdf0305114081078
-SIZE (rust/crates/tokio-util-0.7.13.crate) = 115191
-SHA256 (rust/crates/toml-0.7.8.crate) = dd79e69d3b627db300ff956027cc6c3798cef26d22526befdfcd12feeb6d2257
-SIZE (rust/crates/toml-0.7.8.crate) = 49671
-SHA256 (rust/crates/toml_datetime-0.6.8.crate) = 0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41
-SIZE (rust/crates/toml_datetime-0.6.8.crate) = 12028
-SHA256 (rust/crates/toml_edit-0.19.15.crate) = 1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421
-SIZE (rust/crates/toml_edit-0.19.15.crate) = 95324
+SHA256 (rust/crates/tokio-stream-0.1.17.crate) = eca58d7bba4a75707817a2c44174253f9236b2d5fbd055602e9d5c07c139a047
+SIZE (rust/crates/tokio-stream-0.1.17.crate) = 38477
+SHA256 (rust/crates/tokio-util-0.7.16.crate) = 14307c986784f72ef81c89db7d9e28d6ac26d16213b109ea501696195e6e3ce5
+SIZE (rust/crates/tokio-util-0.7.16.crate) = 127775
+SHA256 (rust/crates/toml-0.9.7.crate) = 00e5e5d9bf2475ac9d4f0d9edab68cc573dc2fd644b0dba36b0c30a92dd9eaa0
+SIZE (rust/crates/toml-0.9.7.crate) = 55852
+SHA256 (rust/crates/toml_datetime-0.7.2.crate) = 32f1085dec27c2b6632b04c80b3bb1b4300d6495d1e129693bdda7d91e72eec1
+SIZE (rust/crates/toml_datetime-0.7.2.crate) = 17859
+SHA256 (rust/crates/toml_parser-1.0.3.crate) = 4cf893c33be71572e0e9aa6dd15e6677937abd686b066eac3f8cd3531688a627
+SIZE (rust/crates/toml_parser-1.0.3.crate) = 34982
+SHA256 (rust/crates/toml_writer-1.0.3.crate) = d163a63c116ce562a22cda521fcc4d79152e7aba014456fb5eb442f6d6a10109
+SIZE (rust/crates/toml_writer-1.0.3.crate) = 17173
+SHA256 (rust/crates/tower-0.5.2.crate) = d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9
+SIZE (rust/crates/tower-0.5.2.crate) = 109417
+SHA256 (rust/crates/tower-http-0.6.6.crate) = adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2
+SIZE (rust/crates/tower-http-0.6.6.crate) = 133515
+SHA256 (rust/crates/tower-layer-0.3.3.crate) = 121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e
+SIZE (rust/crates/tower-layer-0.3.3.crate) = 6180
SHA256 (rust/crates/tower-service-0.3.3.crate) = 8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3
SIZE (rust/crates/tower-service-0.3.3.crate) = 6950
SHA256 (rust/crates/tracing-0.1.41.crate) = 784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0
SIZE (rust/crates/tracing-0.1.41.crate) = 82448
-SHA256 (rust/crates/tracing-core-0.1.33.crate) = e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c
-SIZE (rust/crates/tracing-core-0.1.33.crate) = 63434
+SHA256 (rust/crates/tracing-attributes-0.1.30.crate) = 81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903
+SIZE (rust/crates/tracing-attributes-0.1.30.crate) = 39142
+SHA256 (rust/crates/tracing-core-0.1.34.crate) = b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678
+SIZE (rust/crates/tracing-core-0.1.34.crate) = 63760
SHA256 (rust/crates/try-lock-0.2.5.crate) = e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b
SIZE (rust/crates/try-lock-0.2.5.crate) = 4314
-SHA256 (rust/crates/typenum-1.17.0.crate) = 42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825
-SIZE (rust/crates/typenum-1.17.0.crate) = 42849
+SHA256 (rust/crates/typenum-1.18.0.crate) = 1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f
+SIZE (rust/crates/typenum-1.18.0.crate) = 74871
SHA256 (rust/crates/ucd-trie-0.1.7.crate) = 2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971
SIZE (rust/crates/ucd-trie-0.1.7.crate) = 46795
SHA256 (rust/crates/unic-char-property-0.9.0.crate) = a8c57a407d9b6fa02b4795eb81c5b6652060a15a7903ea981f3d723e6c0be221
@@ -483,24 +571,24 @@ SHA256 (rust/crates/unicase-2.8.1.crate) = 75b844d17643ee918803943289730bec8aac4
SIZE (rust/crates/unicase-2.8.1.crate) = 24088
SHA256 (rust/crates/unicode-bidi-0.3.18.crate) = 5c1cb5db39152898a79168971543b1cb5020dff7fe43c8dc468b0885f5e29df5
SIZE (rust/crates/unicode-bidi-0.3.18.crate) = 58300
-SHA256 (rust/crates/unicode-ident-1.0.14.crate) = adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83
-SIZE (rust/crates/unicode-ident-1.0.14.crate) = 47547
+SHA256 (rust/crates/unicode-ident-1.0.19.crate) = f63a545481291138910575129486daeaf8ac54aee4387fe7906919f7830c7d9d
+SIZE (rust/crates/unicode-ident-1.0.19.crate) = 47480
SHA256 (rust/crates/unicode-normalization-0.1.24.crate) = 5033c97c4262335cded6d6fc3e5c18ab755e1a3dc96376350f3d8e9f009ad956
SIZE (rust/crates/unicode-normalization-0.1.24.crate) = 126536
+SHA256 (rust/crates/unicode-xid-0.2.6.crate) = ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853
+SIZE (rust/crates/unicode-xid-0.2.6.crate) = 15744
SHA256 (rust/crates/url-1.7.2.crate) = dd4e7c0d531266369519a4aa4f399d748bd37043b00bde1e4ff1f60a120b355a
SIZE (rust/crates/url-1.7.2.crate) = 68597
-SHA256 (rust/crates/url-2.5.4.crate) = 32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60
-SIZE (rust/crates/url-2.5.4.crate) = 81097
+SHA256 (rust/crates/url-2.5.7.crate) = 08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b
+SIZE (rust/crates/url-2.5.7.crate) = 87907
SHA256 (rust/crates/url_serde-0.2.0.crate) = 74e7d099f1ee52f823d4bdd60c93c3602043c728f5db3b97bdb548467f7bddea
SIZE (rust/crates/url_serde-0.2.0.crate) = 3525
-SHA256 (rust/crates/utf16_iter-1.0.5.crate) = c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246
-SIZE (rust/crates/utf16_iter-1.0.5.crate) = 9736
SHA256 (rust/crates/utf8_iter-1.0.4.crate) = b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be
SIZE (rust/crates/utf8_iter-1.0.4.crate) = 10437
SHA256 (rust/crates/utf8parse-0.2.2.crate) = 06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821
SIZE (rust/crates/utf8parse-0.2.2.crate) = 13499
-SHA256 (rust/crates/uuid-1.11.0.crate) = f8c5f0a0af699448548ad1a2fbf920fb4bee257eae39953ba95cb84891a0446a
-SIZE (rust/crates/uuid-1.11.0.crate) = 47683
+SHA256 (rust/crates/uuid-1.18.1.crate) = 2f87b8aa10b915a06587d0dec516c282ff295b475d94abf425d62b57710070a2
+SIZE (rust/crates/uuid-1.18.1.crate) = 60468
SHA256 (rust/crates/v_htmlescape-0.15.8.crate) = 4e8257fbc510f0a46eb602c10215901938b5c2a7d5e70fc11483b1d3c9b5b18c
SIZE (rust/crates/v_htmlescape-0.15.8.crate) = 10878
SHA256 (rust/crates/vcpkg-0.2.15.crate) = accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426
@@ -511,99 +599,123 @@ SHA256 (rust/crates/walkdir-2.5.0.crate) = 29790946404f91d9c5d06f9874efddea1dc06
SIZE (rust/crates/walkdir-2.5.0.crate) = 23951
SHA256 (rust/crates/want-0.3.1.crate) = bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e
SIZE (rust/crates/want-0.3.1.crate) = 6398
-SHA256 (rust/crates/wasi-0.11.0+wasi-snapshot-preview1.crate) = 9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423
-SIZE (rust/crates/wasi-0.11.0+wasi-snapshot-preview1.crate) = 28131
-SHA256 (rust/crates/wasm-bindgen-0.2.99.crate) = a474f6281d1d70c17ae7aa6a613c87fce69a127e2624002df63dcb39d6cf6396
-SIZE (rust/crates/wasm-bindgen-0.2.99.crate) = 46136
-SHA256 (rust/crates/wasm-bindgen-backend-0.2.99.crate) = 5f89bb38646b4f81674e8f5c3fb81b562be1fd936d84320f3264486418519c79
-SIZE (rust/crates/wasm-bindgen-backend-0.2.99.crate) = 30928
-SHA256 (rust/crates/wasm-bindgen-futures-0.4.49.crate) = 38176d9b44ea84e9184eff0bc34cc167ed044f816accfe5922e54d84cf48eca2
-SIZE (rust/crates/wasm-bindgen-futures-0.4.49.crate) = 14838
-SHA256 (rust/crates/wasm-bindgen-macro-0.2.99.crate) = 2cc6181fd9a7492eef6fef1f33961e3695e4579b9872a6f7c83aee556666d4fe
-SIZE (rust/crates/wasm-bindgen-macro-0.2.99.crate) = 7011
-SHA256 (rust/crates/wasm-bindgen-macro-support-0.2.99.crate) = 30d7a95b763d3c45903ed6c81f156801839e5ee968bb07e534c44df0fcd330c2
-SIZE (rust/crates/wasm-bindgen-macro-support-0.2.99.crate) = 22800
-SHA256 (rust/crates/wasm-bindgen-shared-0.2.99.crate) = 943aab3fdaaa029a6e0271b35ea10b72b943135afe9bffca82384098ad0e06a6
-SIZE (rust/crates/wasm-bindgen-shared-0.2.99.crate) = 7773
-SHA256 (rust/crates/web-sys-0.3.76.crate) = 04dd7223427d52553d3702c004d3b2fe07c148165faa56313cb00211e31c12bc
-SIZE (rust/crates/web-sys-0.3.76.crate) = 635842
+SHA256 (rust/crates/wasi-0.11.1+wasi-snapshot-preview1.crate) = ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b
+SIZE (rust/crates/wasi-0.11.1+wasi-snapshot-preview1.crate) = 28477
+SHA256 (rust/crates/wasi-0.14.7+wasi-0.2.4.crate) = 883478de20367e224c0090af9cf5f9fa85bed63a95c1abf3afc5c083ebc06e8c
+SIZE (rust/crates/wasi-0.14.7+wasi-0.2.4.crate) = 18219
+SHA256 (rust/crates/wasip2-1.0.1+wasi-0.2.4.crate) = 0562428422c63773dad2c345a1882263bbf4d65cf3f42e90921f787ef5ad58e7
+SIZE (rust/crates/wasip2-1.0.1+wasi-0.2.4.crate) = 132087
+SHA256 (rust/crates/wasm-bindgen-0.2.104.crate) = c1da10c01ae9f1ae40cbfac0bac3b1e724b320abfcf52229f80b547c0d250e2d
+SIZE (rust/crates/wasm-bindgen-0.2.104.crate) = 47345
+SHA256 (rust/crates/wasm-bindgen-backend-0.2.104.crate) = 671c9a5a66f49d8a47345ab942e2cb93c7d1d0339065d4f8139c486121b43b19
+SIZE (rust/crates/wasm-bindgen-backend-0.2.104.crate) = 32230
+SHA256 (rust/crates/wasm-bindgen-futures-0.4.54.crate) = 7e038d41e478cc73bae0ff9b36c60cff1c98b8f38f8d7e8061e79ee63608ac5c
+SIZE (rust/crates/wasm-bindgen-futures-0.4.54.crate) = 16381
+SHA256 (rust/crates/wasm-bindgen-macro-0.2.104.crate) = 7ca60477e4c59f5f2986c50191cd972e3a50d8a95603bc9434501cf156a9a119
+SIZE (rust/crates/wasm-bindgen-macro-0.2.104.crate) = 9390
+SHA256 (rust/crates/wasm-bindgen-macro-support-0.2.104.crate) = 9f07d2f20d4da7b26400c9f4a0511e6e0345b040694e8a75bd41d578fa4421d7
+SIZE (rust/crates/wasm-bindgen-macro-support-0.2.104.crate) = 26411
+SHA256 (rust/crates/wasm-bindgen-shared-0.2.104.crate) = bad67dc8b2a1a6e5448428adec4c3e84c43e561d8c9ee8a9e5aabeb193ec41d1
+SIZE (rust/crates/wasm-bindgen-shared-0.2.104.crate) = 9057
+SHA256 (rust/crates/web-sys-0.3.81.crate) = 9367c417a924a74cae129e6a2ae3b47fabb1f8995595ab474029da749a8be120
+SIZE (rust/crates/web-sys-0.3.81.crate) = 641812
SHA256 (rust/crates/winapi-0.3.9.crate) = 5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419
SIZE (rust/crates/winapi-0.3.9.crate) = 1200382
SHA256 (rust/crates/winapi-i686-pc-windows-gnu-0.4.0.crate) = ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6
SIZE (rust/crates/winapi-i686-pc-windows-gnu-0.4.0.crate) = 2918815
-SHA256 (rust/crates/winapi-util-0.1.9.crate) = cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb
-SIZE (rust/crates/winapi-util-0.1.9.crate) = 12464
+SHA256 (rust/crates/winapi-util-0.1.11.crate) = c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22
+SIZE (rust/crates/winapi-util-0.1.11.crate) = 13368
SHA256 (rust/crates/winapi-x86_64-pc-windows-gnu-0.4.0.crate) = 712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f
SIZE (rust/crates/winapi-x86_64-pc-windows-gnu-0.4.0.crate) = 2947998
-SHA256 (rust/crates/windows-sys-0.48.0.crate) = 677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9
-SIZE (rust/crates/windows-sys-0.48.0.crate) = 2628884
+SHA256 (rust/crates/windows-core-0.62.1.crate) = 6844ee5416b285084d3d3fffd743b925a6c9385455f64f6d4fa3031c4c2749a9
+SIZE (rust/crates/windows-core-0.62.1.crate) = 36948
+SHA256 (rust/crates/windows-implement-0.60.1.crate) = edb307e42a74fb6de9bf3a02d9712678b22399c87e6fa869d6dfcd8c1b7754e0
+SIZE (rust/crates/windows-implement-0.60.1.crate) = 15257
+SHA256 (rust/crates/windows-interface-0.59.2.crate) = c0abd1ddbc6964ac14db11c7213d6532ef34bd9aa042c2e5935f59d7908b46a5
+SIZE (rust/crates/windows-interface-0.59.2.crate) = 11735
+SHA256 (rust/crates/windows-link-0.1.3.crate) = 5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a
+SIZE (rust/crates/windows-link-0.1.3.crate) = 6154
+SHA256 (rust/crates/windows-link-0.2.0.crate) = 45e46c0661abb7180e7b9c281db115305d49ca1709ab8242adf09666d2173c65
+SIZE (rust/crates/windows-link-0.2.0.crate) = 6170
+SHA256 (rust/crates/windows-result-0.4.0.crate) = 7084dcc306f89883455a206237404d3eaf961e5bd7e0f312f7c91f57eb44167f
+SIZE (rust/crates/windows-result-0.4.0.crate) = 13420
+SHA256 (rust/crates/windows-strings-0.5.0.crate) = 7218c655a553b0bed4426cf54b20d7ba363ef543b52d515b3e48d7fd55318dda
+SIZE (rust/crates/windows-strings-0.5.0.crate) = 13992
SHA256 (rust/crates/windows-sys-0.52.0.crate) = 282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d
SIZE (rust/crates/windows-sys-0.52.0.crate) = 2576877
SHA256 (rust/crates/windows-sys-0.59.0.crate) = 1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b
SIZE (rust/crates/windows-sys-0.59.0.crate) = 2387323
-SHA256 (rust/crates/windows-targets-0.48.5.crate) = 9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c
-SIZE (rust/crates/windows-targets-0.48.5.crate) = 6904
+SHA256 (rust/crates/windows-sys-0.60.2.crate) = f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb
+SIZE (rust/crates/windows-sys-0.60.2.crate) = 2518479
+SHA256 (rust/crates/windows-sys-0.61.1.crate) = 6f109e41dd4a3c848907eb83d5a42ea98b3769495597450cf6d153507b166f0f
+SIZE (rust/crates/windows-sys-0.61.1.crate) = 2517255
SHA256 (rust/crates/windows-targets-0.52.6.crate) = 9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973
SIZE (rust/crates/windows-targets-0.52.6.crate) = 6403
-SHA256 (rust/crates/windows_aarch64_gnullvm-0.48.5.crate) = 2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8
-SIZE (rust/crates/windows_aarch64_gnullvm-0.48.5.crate) = 418492
+SHA256 (rust/crates/windows-targets-0.53.4.crate) = 2d42b7b7f66d2a06854650af09cfdf8713e427a439c97ad65a6375318033ac4b
+SIZE (rust/crates/windows-targets-0.53.4.crate) = 7161
SHA256 (rust/crates/windows_aarch64_gnullvm-0.52.6.crate) = 32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3
SIZE (rust/crates/windows_aarch64_gnullvm-0.52.6.crate) = 435718
-SHA256 (rust/crates/windows_aarch64_msvc-0.48.5.crate) = dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc
-SIZE (rust/crates/windows_aarch64_msvc-0.48.5.crate) = 798483
+SHA256 (rust/crates/windows_aarch64_gnullvm-0.53.0.crate) = 86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764
+SIZE (rust/crates/windows_aarch64_gnullvm-0.53.0.crate) = 782443
SHA256 (rust/crates/windows_aarch64_msvc-0.52.6.crate) = 09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469
SIZE (rust/crates/windows_aarch64_msvc-0.52.6.crate) = 832615
-SHA256 (rust/crates/windows_i686_gnu-0.48.5.crate) = a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e
-SIZE (rust/crates/windows_i686_gnu-0.48.5.crate) = 844891
+SHA256 (rust/crates/windows_aarch64_msvc-0.53.0.crate) = c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c
+SIZE (rust/crates/windows_aarch64_msvc-0.53.0.crate) = 834446
SHA256 (rust/crates/windows_i686_gnu-0.52.6.crate) = 8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b
SIZE (rust/crates/windows_i686_gnu-0.52.6.crate) = 880402
+SHA256 (rust/crates/windows_i686_gnu-0.53.0.crate) = c1dc67659d35f387f5f6c479dc4e28f1d4bb90ddd1a5d3da2e5d97b42d6272c3
+SIZE (rust/crates/windows_i686_gnu-0.53.0.crate) = 936973
SHA256 (rust/crates/windows_i686_gnullvm-0.52.6.crate) = 0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66
SIZE (rust/crates/windows_i686_gnullvm-0.52.6.crate) = 475940
-SHA256 (rust/crates/windows_i686_msvc-0.48.5.crate) = 8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406
-SIZE (rust/crates/windows_i686_msvc-0.48.5.crate) = 864300
+SHA256 (rust/crates/windows_i686_gnullvm-0.53.0.crate) = 9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11
+SIZE (rust/crates/windows_i686_gnullvm-0.53.0.crate) = 854056
SHA256 (rust/crates/windows_i686_msvc-0.52.6.crate) = 240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66
SIZE (rust/crates/windows_i686_msvc-0.52.6.crate) = 901163
-SHA256 (rust/crates/windows_x86_64_gnu-0.48.5.crate) = 53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e
-SIZE (rust/crates/windows_x86_64_gnu-0.48.5.crate) = 801619
+SHA256 (rust/crates/windows_i686_msvc-0.53.0.crate) = 581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d
+SIZE (rust/crates/windows_i686_msvc-0.53.0.crate) = 903450
SHA256 (rust/crates/windows_x86_64_gnu-0.52.6.crate) = 147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78
SIZE (rust/crates/windows_x86_64_gnu-0.52.6.crate) = 836363
-SHA256 (rust/crates/windows_x86_64_gnullvm-0.48.5.crate) = 0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc
-SIZE (rust/crates/windows_x86_64_gnullvm-0.48.5.crate) = 418486
+SHA256 (rust/crates/windows_x86_64_gnu-0.53.0.crate) = 2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba
+SIZE (rust/crates/windows_x86_64_gnu-0.53.0.crate) = 902585
SHA256 (rust/crates/windows_x86_64_gnullvm-0.52.6.crate) = 24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d
SIZE (rust/crates/windows_x86_64_gnullvm-0.52.6.crate) = 435707
-SHA256 (rust/crates/windows_x86_64_msvc-0.48.5.crate) = ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538
-SIZE (rust/crates/windows_x86_64_msvc-0.48.5.crate) = 798412
+SHA256 (rust/crates/windows_x86_64_gnullvm-0.53.0.crate) = 0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57
+SIZE (rust/crates/windows_x86_64_gnullvm-0.53.0.crate) = 782434
SHA256 (rust/crates/windows_x86_64_msvc-0.52.6.crate) = 589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec
SIZE (rust/crates/windows_x86_64_msvc-0.52.6.crate) = 832564
-SHA256 (rust/crates/winnow-0.5.40.crate) = f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876
-SIZE (rust/crates/winnow-0.5.40.crate) = 159316
-SHA256 (rust/crates/winreg-0.50.0.crate) = 524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1
-SIZE (rust/crates/winreg-0.50.0.crate) = 29703
-SHA256 (rust/crates/write16-1.0.0.crate) = d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936
-SIZE (rust/crates/write16-1.0.0.crate) = 7218
-SHA256 (rust/crates/writeable-0.5.5.crate) = 1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51
-SIZE (rust/crates/writeable-0.5.5.crate) = 22354
-SHA256 (rust/crates/yoke-0.7.5.crate) = 120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40
-SIZE (rust/crates/yoke-0.7.5.crate) = 29673
-SHA256 (rust/crates/yoke-derive-0.7.5.crate) = 2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154
-SIZE (rust/crates/yoke-derive-0.7.5.crate) = 7525
-SHA256 (rust/crates/zerocopy-0.7.35.crate) = 1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0
-SIZE (rust/crates/zerocopy-0.7.35.crate) = 152645
-SHA256 (rust/crates/zerocopy-derive-0.7.35.crate) = fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e
-SIZE (rust/crates/zerocopy-derive-0.7.35.crate) = 37829
-SHA256 (rust/crates/zerofrom-0.1.5.crate) = cff3ee08c995dee1859d998dea82f7374f2826091dd9cd47def953cae446cd2e
-SIZE (rust/crates/zerofrom-0.1.5.crate) = 5091
-SHA256 (rust/crates/zerofrom-derive-0.1.5.crate) = 595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808
-SIZE (rust/crates/zerofrom-derive-0.1.5.crate) = 8285
-SHA256 (rust/crates/zerovec-0.10.4.crate) = aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079
-SIZE (rust/crates/zerovec-0.10.4.crate) = 126398
-SHA256 (rust/crates/zerovec-derive-0.10.3.crate) = 6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6
-SIZE (rust/crates/zerovec-derive-0.10.3.crate) = 19438
-SHA256 (rust/crates/zstd-0.13.2.crate) = fcf2b778a664581e31e389454a7072dab1647606d44f7feea22cd5abb9c9f3f9
-SIZE (rust/crates/zstd-0.13.2.crate) = 30251
-SHA256 (rust/crates/zstd-safe-7.2.1.crate) = 54a3ab4db68cea366acc5c897c7b4d4d1b8994a9cd6e6f841f8964566a419059
-SIZE (rust/crates/zstd-safe-7.2.1.crate) = 21122
-SHA256 (rust/crates/zstd-sys-2.0.13+zstd.1.5.6.crate) = 38ff0f21cfee8f97d94cef41359e0c89aa6113028ab0291aa8ca0038995a95aa
-SIZE (rust/crates/zstd-sys-2.0.13+zstd.1.5.6.crate) = 749090
-SHA256 (valeriansaliou-vigil-v1.27.0_GH0.tar.gz) = b0351387376e5d8efbae0f97530d1a9213765cc915abcc995795fb42db9fcef0
-SIZE (valeriansaliou-vigil-v1.27.0_GH0.tar.gz) = 355183
+SHA256 (rust/crates/windows_x86_64_msvc-0.53.0.crate) = 271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486
+SIZE (rust/crates/windows_x86_64_msvc-0.53.0.crate) = 834400
+SHA256 (rust/crates/winnow-0.7.13.crate) = 21a0236b59786fed61e2a80582dd500fe61f18b5dca67a4a067d0bc9039339cf
+SIZE (rust/crates/winnow-0.7.13.crate) = 174454
+SHA256 (rust/crates/wit-bindgen-0.46.0.crate) = f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59
+SIZE (rust/crates/wit-bindgen-0.46.0.crate) = 60508
+SHA256 (rust/crates/writeable-0.6.1.crate) = ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb
+SIZE (rust/crates/writeable-0.6.1.crate) = 24068
+SHA256 (rust/crates/yoke-0.8.0.crate) = 5f41bb01b8226ef4bfd589436a297c53d118f65921786300e427be8d487695cc
+SIZE (rust/crates/yoke-0.8.0.crate) = 28726
+SHA256 (rust/crates/yoke-derive-0.8.0.crate) = 38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6
+SIZE (rust/crates/yoke-derive-0.8.0.crate) = 7521
+SHA256 (rust/crates/zerocopy-0.8.27.crate) = 0894878a5fa3edfd6da3f88c4805f4c8558e2b996227a3d864f47fe11e38282c
+SIZE (rust/crates/zerocopy-0.8.27.crate) = 252663
+SHA256 (rust/crates/zerocopy-derive-0.8.27.crate) = 88d2b8d9c68ad2b9e4340d7832716a4d21a22a1154777ad56ea55c51a9cf3831
+SIZE (rust/crates/zerocopy-derive-0.8.27.crate) = 89827
+SHA256 (rust/crates/zerofrom-0.1.6.crate) = 50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5
+SIZE (rust/crates/zerofrom-0.1.6.crate) = 5669
+SHA256 (rust/crates/zerofrom-derive-0.1.6.crate) = d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502
+SIZE (rust/crates/zerofrom-derive-0.1.6.crate) = 8305
+SHA256 (rust/crates/zeroize-1.8.1.crate) = ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde
+SIZE (rust/crates/zeroize-1.8.1.crate) = 20029
+SHA256 (rust/crates/zerotrie-0.2.2.crate) = 36f0bbd478583f79edad978b407914f61b2972f5af6fa089686016be8f9af595
+SIZE (rust/crates/zerotrie-0.2.2.crate) = 74423
+SHA256 (rust/crates/zerovec-0.11.4.crate) = e7aa2bd55086f1ab526693ecbe444205da57e25f4489879da80635a46d90e73b
+SIZE (rust/crates/zerovec-0.11.4.crate) = 125080
+SHA256 (rust/crates/zerovec-derive-0.11.1.crate) = 5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f
+SIZE (rust/crates/zerovec-derive-0.11.1.crate) = 21294
+SHA256 (rust/crates/zstd-0.13.3.crate) = e91ee311a569c327171651566e07972200e76fcfe2242a4fa446149a3881c08a
+SIZE (rust/crates/zstd-0.13.3.crate) = 30514
+SHA256 (rust/crates/zstd-safe-7.2.4.crate) = 8f49c4d5f0abb602a93fb8736af2a4f4dd9512e36f7f570d66e65ff867ed3b9d
+SIZE (rust/crates/zstd-safe-7.2.4.crate) = 29350
+SHA256 (rust/crates/zstd-sys-2.0.16+zstd.1.5.7.crate) = 91e19ebc2adc8f83e43039e79776e3fda8ca919132d68a1fed6a5faca2683748
+SIZE (rust/crates/zstd-sys-2.0.16+zstd.1.5.7.crate) = 775620
+SHA256 (valeriansaliou-vigil-v1.28.4_GH0.tar.gz) = ca4d418c5485d4d9179c74035af098a2a6b72f78fb7c9041908209aef95c1fdb
+SIZE (valeriansaliou-vigil-v1.28.4_GH0.tar.gz) = 361319
diff --git a/www/yarn-node25/Makefile b/www/yarn-node25/Makefile
new file mode 100644
index 000000000000..2aaae2918ce9
--- /dev/null
+++ b/www/yarn-node25/Makefile
@@ -0,0 +1,5 @@
+USES= nodejs:25,run
+
+MASTERDIR= ${.CURDIR}/../yarn-node22
+
+.include "${MASTERDIR}/Makefile"